genosdb 0.22.11 → 0.22.12

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.
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
3
- var E_=Object.create;var{getPrototypeOf:$_,defineProperty:UA,getOwnPropertyNames:F_}=Object;var S_=Object.prototype.hasOwnProperty;function x_(W){return this[W]}var k_,__,v1=(W,G,X)=>{var Y=W!=null&&typeof W==="object";if(Y){var Z=G?k_??=new WeakMap:__??=new WeakMap,V=Z.get(W);if(V)return V}X=W!=null?E_($_(W)):{};let Q=G||!W||!W.__esModule?UA(X,"default",{value:W,enumerable:!0}):X;for(let J of F_(W))if(!S_.call(Q,J))UA(Q,J,{get:x_.bind(W,J),enumerable:!0});if(Y)Z.set(W,Q);return Q};var Z1=(W,G)=>()=>(G||W((G={exports:{}}).exports,G),G.exports);var y_=(W)=>W;function v_(W,G){this[W]=y_.bind(null,G)}var NA=(W,G)=>{for(var X in G)UA(W,X,{get:G[X],enumerable:!0,configurable:!0,set:v_.bind(G,X)})};var S8=import.meta.require;var rM=Z1((Fe,iM)=>{var qX=1000,HX=qX*60,AX=HX*60,EW=AX*24,Eh=EW*7,$h=EW*365.25;iM.exports=function(W,G){G=G||{};var X=typeof W;if(X==="string"&&W.length>0)return Fh(W);else if(X==="number"&&isFinite(W))return G.long?xh(W):Sh(W);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(W))};function Fh(W){if(W=String(W),W.length>100)return;var G=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(W);if(!G)return;var X=parseFloat(G[1]),Y=(G[2]||"ms").toLowerCase();switch(Y){case"years":case"year":case"yrs":case"yr":case"y":return X*$h;case"weeks":case"week":case"w":return X*Eh;case"days":case"day":case"d":return X*EW;case"hours":case"hour":case"hrs":case"hr":case"h":return X*AX;case"minutes":case"minute":case"mins":case"min":case"m":return X*HX;case"seconds":case"second":case"secs":case"sec":case"s":return X*qX;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return X;default:return}}function Sh(W){var G=Math.abs(W);if(G>=EW)return Math.round(W/EW)+"d";if(G>=AX)return Math.round(W/AX)+"h";if(G>=HX)return Math.round(W/HX)+"m";if(G>=qX)return Math.round(W/qX)+"s";return W+"ms"}function xh(W){var G=Math.abs(W);if(G>=EW)return RU(W,G,EW,"day");if(G>=AX)return RU(W,G,AX,"hour");if(G>=HX)return RU(W,G,HX,"minute");if(G>=qX)return RU(W,G,qX,"second");return W+" ms"}function RU(W,G,X,Y){var Z=G>=X*1.5;return Math.round(W/X)+" "+Y+(Z?"s":"")}});var Rz=Z1((Se,aM)=>{function kh(W){X.debug=X,X.default=X,X.coerce=U,X.disable=Q,X.enable=Z,X.enabled=J,X.humanize=rM(),X.destroy=N,Object.keys(W).forEach((q)=>{X[q]=W[q]}),X.names=[],X.skips=[],X.formatters={};function G(q){let A=0;for(let H=0;H<q.length;H++)A=(A<<5)-A+q.charCodeAt(H),A|=0;return X.colors[Math.abs(A)%X.colors.length]}X.selectColor=G;function X(q){let A,H=null,I,w;function C(...D){if(!C.enabled)return;let x=C,h=Number(new Date),l=h-(A||h);if(x.diff=l,x.prev=A,x.curr=h,A=h,D[0]=X.coerce(D[0]),typeof D[0]!=="string")D.unshift("%O");let u=0;D[0]=D[0].replace(/%([a-zA-Z%])/g,(c,p)=>{if(c==="%%")return"%";u++;let W0=X.formatters[p];if(typeof W0==="function"){let m=D[u];c=W0.call(x,m),D.splice(u,1),u--}return c}),X.formatArgs.call(x,D),(x.log||X.log).apply(x,D)}if(C.namespace=q,C.useColors=X.useColors(),C.color=X.selectColor(q),C.extend=Y,C.destroy=X.destroy,Object.defineProperty(C,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(I!==X.namespaces)I=X.namespaces,w=X.enabled(q);return w},set:(D)=>{H=D}}),typeof X.init==="function")X.init(C);return C}function Y(q,A){let H=X(this.namespace+(typeof A>"u"?":":A)+q);return H.log=this.log,H}function Z(q){X.save(q),X.namespaces=q,X.names=[],X.skips=[];let A=(typeof q==="string"?q:"").trim().replace(" ",",").split(",").filter(Boolean);for(let H of A)if(H[0]==="-")X.skips.push(H.slice(1));else X.names.push(H)}function V(q,A){let H=0,I=0,w=-1,C=0;while(H<q.length)if(I<A.length&&(A[I]===q[H]||A[I]==="*"))if(A[I]==="*")w=I,C=H,I++;else H++,I++;else if(w!==-1)I=w+1,C++,H=C;else return!1;while(I<A.length&&A[I]==="*")I++;return I===A.length}function Q(){let q=[...X.names,...X.skips.map((A)=>"-"+A)].join(",");return X.enable(""),q}function J(q){for(let A of X.skips)if(V(q,A))return!1;for(let A of X.names)if(V(q,A))return!0;return!1}function U(q){if(q instanceof Error)return q.stack||q.message;return q}function N(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return X.enable(X.load()),X}aM.exports=kh});var tM=Z1((sM,BU)=>{sM.formatArgs=yh;sM.save=vh;sM.load=gh;sM.useColors=_h;sM.storage=uh();sM.destroy=(()=>{let W=!1;return()=>{if(!W)W=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();sM.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function _h(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let W;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(W=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(W[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function yh(W){if(W[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+W[0]+(this.useColors?"%c ":" ")+"+"+BU.exports.humanize(this.diff),!this.useColors)return;let G="color: "+this.color;W.splice(1,0,G,"color: inherit");let X=0,Y=0;W[0].replace(/%[a-zA-Z%]/g,(Z)=>{if(Z==="%%")return;if(X++,Z==="%c")Y=X}),W.splice(Y,0,G)}sM.log=console.debug||console.log||(()=>{});function vh(W){try{if(W)sM.storage.setItem("debug",W);else sM.storage.removeItem("debug")}catch(G){}}function gh(){let W;try{W=sM.storage.getItem("debug")}catch(G){}if(!W&&typeof process<"u"&&"env"in process)W=process.env.DEBUG;return W}function uh(){try{return localStorage}catch(W){}}BU.exports=Rz()(sM);var{formatters:hh}=BU.exports;hh.j=function(W){try{return JSON.stringify(W)}catch(G){return"[UnexpectedJSONParseError]: "+G.message}}});var XT=Z1((WT,$U)=>{var oh=S8("tty"),EU=S8("util");WT.init=eh;WT.log=ah;WT.formatArgs=ih;WT.save=sh;WT.load=th;WT.useColors=nh;WT.destroy=EU.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");WT.colors=[6,2,3,4,5,1];try{let W=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(W&&(W.stderr||W).level>=2)WT.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(W){}WT.inspectOpts=Object.keys(process.env).filter((W)=>{return/^debug_/i.test(W)}).reduce((W,G)=>{let X=G.substring(6).toLowerCase().replace(/_([a-z])/g,(Z,V)=>{return V.toUpperCase()}),Y=process.env[G];if(/^(yes|on|true|enabled)$/i.test(Y))Y=!0;else if(/^(no|off|false|disabled)$/i.test(Y))Y=!1;else if(Y==="null")Y=null;else Y=Number(Y);return W[X]=Y,W},{});function nh(){return"colors"in WT.inspectOpts?Boolean(WT.inspectOpts.colors):oh.isatty(process.stderr.fd)}function ih(W){let{namespace:G,useColors:X}=this;if(X){let Y=this.color,Z="\x1B[3"+(Y<8?Y:"8;5;"+Y),V=` ${Z};1m${G} \x1B[0m`;W[0]=V+W[0].split(`
3
+ var E_=Object.create;var{getPrototypeOf:$_,defineProperty:UA,getOwnPropertyNames:F_}=Object;var S_=Object.prototype.hasOwnProperty;function x_(W){return this[W]}var k_,__,v1=(W,G,X)=>{var Y=W!=null&&typeof W==="object";if(Y){var Z=G?k_??=new WeakMap:__??=new WeakMap,V=Z.get(W);if(V)return V}X=W!=null?E_($_(W)):{};let Q=G||!W||!W.__esModule?UA(X,"default",{value:W,enumerable:!0}):X;for(let J of F_(W))if(!S_.call(Q,J))UA(Q,J,{get:x_.bind(W,J),enumerable:!0});if(Y)Z.set(W,Q);return Q};var Z1=(W,G)=>()=>(G||W((G={exports:{}}).exports,G),G.exports);var y_=(W)=>W;function v_(W,G){this[W]=y_.bind(null,G)}var NA=(W,G)=>{for(var X in G)UA(W,X,{get:G[X],enumerable:!0,configurable:!0,set:v_.bind(G,X)})};var S8=import.meta.require;var rM=Z1((Fe,iM)=>{var qX=1000,HX=qX*60,AX=HX*60,EW=AX*24,Eh=EW*7,$h=EW*365.25;iM.exports=function(W,G){G=G||{};var X=typeof W;if(X==="string"&&W.length>0)return Fh(W);else if(X==="number"&&isFinite(W))return G.long?xh(W):Sh(W);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(W))};function Fh(W){if(W=String(W),W.length>100)return;var G=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(W);if(!G)return;var X=parseFloat(G[1]),Y=(G[2]||"ms").toLowerCase();switch(Y){case"years":case"year":case"yrs":case"yr":case"y":return X*$h;case"weeks":case"week":case"w":return X*Eh;case"days":case"day":case"d":return X*EW;case"hours":case"hour":case"hrs":case"hr":case"h":return X*AX;case"minutes":case"minute":case"mins":case"min":case"m":return X*HX;case"seconds":case"second":case"secs":case"sec":case"s":return X*qX;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return X;default:return}}function Sh(W){var G=Math.abs(W);if(G>=EW)return Math.round(W/EW)+"d";if(G>=AX)return Math.round(W/AX)+"h";if(G>=HX)return Math.round(W/HX)+"m";if(G>=qX)return Math.round(W/qX)+"s";return W+"ms"}function xh(W){var G=Math.abs(W);if(G>=EW)return RU(W,G,EW,"day");if(G>=AX)return RU(W,G,AX,"hour");if(G>=HX)return RU(W,G,HX,"minute");if(G>=qX)return RU(W,G,qX,"second");return W+" ms"}function RU(W,G,X,Y){var Z=G>=X*1.5;return Math.round(W/X)+" "+Y+(Z?"s":"")}});var Rz=Z1((Se,aM)=>{function kh(W){X.debug=X,X.default=X,X.coerce=U,X.disable=Q,X.enable=Z,X.enabled=J,X.humanize=rM(),X.destroy=N,Object.keys(W).forEach((q)=>{X[q]=W[q]}),X.names=[],X.skips=[],X.formatters={};function G(q){let A=0;for(let H=0;H<q.length;H++)A=(A<<5)-A+q.charCodeAt(H),A|=0;return X.colors[Math.abs(A)%X.colors.length]}X.selectColor=G;function X(q){let A,H=null,I,w;function C(...D){if(!C.enabled)return;let x=C,h=Number(new Date),p=h-(A||h);if(x.diff=p,x.prev=A,x.curr=h,A=h,D[0]=X.coerce(D[0]),typeof D[0]!=="string")D.unshift("%O");let u=0;D[0]=D[0].replace(/%([a-zA-Z%])/g,(c,l)=>{if(c==="%%")return"%";u++;let W0=X.formatters[l];if(typeof W0==="function"){let m=D[u];c=W0.call(x,m),D.splice(u,1),u--}return c}),X.formatArgs.call(x,D),(x.log||X.log).apply(x,D)}if(C.namespace=q,C.useColors=X.useColors(),C.color=X.selectColor(q),C.extend=Y,C.destroy=X.destroy,Object.defineProperty(C,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(I!==X.namespaces)I=X.namespaces,w=X.enabled(q);return w},set:(D)=>{H=D}}),typeof X.init==="function")X.init(C);return C}function Y(q,A){let H=X(this.namespace+(typeof A>"u"?":":A)+q);return H.log=this.log,H}function Z(q){X.save(q),X.namespaces=q,X.names=[],X.skips=[];let A=(typeof q==="string"?q:"").trim().replace(" ",",").split(",").filter(Boolean);for(let H of A)if(H[0]==="-")X.skips.push(H.slice(1));else X.names.push(H)}function V(q,A){let H=0,I=0,w=-1,C=0;while(H<q.length)if(I<A.length&&(A[I]===q[H]||A[I]==="*"))if(A[I]==="*")w=I,C=H,I++;else H++,I++;else if(w!==-1)I=w+1,C++,H=C;else return!1;while(I<A.length&&A[I]==="*")I++;return I===A.length}function Q(){let q=[...X.names,...X.skips.map((A)=>"-"+A)].join(",");return X.enable(""),q}function J(q){for(let A of X.skips)if(V(q,A))return!1;for(let A of X.names)if(V(q,A))return!0;return!1}function U(q){if(q instanceof Error)return q.stack||q.message;return q}function N(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return X.enable(X.load()),X}aM.exports=kh});var tM=Z1((sM,BU)=>{sM.formatArgs=yh;sM.save=vh;sM.load=gh;sM.useColors=_h;sM.storage=uh();sM.destroy=(()=>{let W=!1;return()=>{if(!W)W=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();sM.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function _h(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let W;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(W=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(W[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function yh(W){if(W[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+W[0]+(this.useColors?"%c ":" ")+"+"+BU.exports.humanize(this.diff),!this.useColors)return;let G="color: "+this.color;W.splice(1,0,G,"color: inherit");let X=0,Y=0;W[0].replace(/%[a-zA-Z%]/g,(Z)=>{if(Z==="%%")return;if(X++,Z==="%c")Y=X}),W.splice(Y,0,G)}sM.log=console.debug||console.log||(()=>{});function vh(W){try{if(W)sM.storage.setItem("debug",W);else sM.storage.removeItem("debug")}catch(G){}}function gh(){let W;try{W=sM.storage.getItem("debug")}catch(G){}if(!W&&typeof process<"u"&&"env"in process)W=process.env.DEBUG;return W}function uh(){try{return localStorage}catch(W){}}BU.exports=Rz()(sM);var{formatters:hh}=BU.exports;hh.j=function(W){try{return JSON.stringify(W)}catch(G){return"[UnexpectedJSONParseError]: "+G.message}}});var XT=Z1((WT,$U)=>{var oh=S8("tty"),EU=S8("util");WT.init=eh;WT.log=ah;WT.formatArgs=ih;WT.save=sh;WT.load=th;WT.useColors=nh;WT.destroy=EU.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");WT.colors=[6,2,3,4,5,1];try{let W=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(W&&(W.stderr||W).level>=2)WT.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(W){}WT.inspectOpts=Object.keys(process.env).filter((W)=>{return/^debug_/i.test(W)}).reduce((W,G)=>{let X=G.substring(6).toLowerCase().replace(/_([a-z])/g,(Z,V)=>{return V.toUpperCase()}),Y=process.env[G];if(/^(yes|on|true|enabled)$/i.test(Y))Y=!0;else if(/^(no|off|false|disabled)$/i.test(Y))Y=!1;else if(Y==="null")Y=null;else Y=Number(Y);return W[X]=Y,W},{});function nh(){return"colors"in WT.inspectOpts?Boolean(WT.inspectOpts.colors):oh.isatty(process.stderr.fd)}function ih(W){let{namespace:G,useColors:X}=this;if(X){let Y=this.color,Z="\x1B[3"+(Y<8?Y:"8;5;"+Y),V=` ${Z};1m${G} \x1B[0m`;W[0]=V+W[0].split(`
4
4
  `).join(`
5
5
  `+V),W.push(Z+"m+"+$U.exports.humanize(this.diff)+"\x1B[0m")}else W[0]=rh()+G+" "+W[0]}function rh(){if(WT.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function ah(...W){return process.stderr.write(EU.formatWithOptions(WT.inspectOpts,...W)+`
6
6
  `)}function sh(W){if(W)process.env.DEBUG=W;else delete process.env.DEBUG}function th(){return process.env.DEBUG}function eh(W){W.inspectOpts={};let G=Object.keys(WT.inspectOpts);for(let X=0;X<G.length;X++)W.inspectOpts[G[X]]=WT.inspectOpts[G[X]]}$U.exports=Rz()(WT);var{formatters:eM}=$U.exports;eM.o=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts).split(`
7
- `).map((G)=>G.trim()).join(" ")};eM.O=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts)}});var YT=Z1((_e,Lz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Lz.exports=tM();else Lz.exports=XT()});var FU=Z1((VT)=>{Object.defineProperty(VT,"__esModule",{value:!0});var Jb=S8("net");function Ub(W){switch(Jb.isIP(W)){case 4:return Buffer.from(W.split(".").map((Z)=>parseInt(Z,10)));case 6:let G=W.split(":"),X=Buffer.alloc(16),Y=0;if(G[G.length-1]==="")G[G.length-1]="0";for(let Z=0;Z<G.length;Z++){if(G[Z]===""){if(Z+1<G.length&&G[Z+1]!=="")Y=16-(G.length-Z-1)*2;continue}X.writeUInt16BE(parseInt(G[Z],16),Y),Y+=2}return X;default:return null}}VT.bytesFromIP=Ub;function Nb(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let G=[],X=-1,Y=0,Z=-1,V=0;for(let Q=0;Q<W.length;Q+=2){let J=W[Q]<<8|W[Q+1];if(J===0){if(Y++,X===-1)X=G.length;if(Y>V)V=Y,Z=X}else X=-1,Y=0;G.push(J.toString(16))}if(V>0){let Q="",J=G.slice(Z+V);if(G.length=Z,G.length===0)Q+=":";if(J.length===0)Q+=":";G.push(Q,...J)}return G.join(":");default:return""}}VT.bytesToIP=Nb;var A6=Object.create(null),ZT=/^[0-9.]+$/;function qb(W){if(ZT.test(W)&&A6[W]!=="")return W;return A6[W]==null?"":A6[W]}VT.getOID=qb;function Hb(W){if(!ZT.test(W)&&A6[W]!=="")return W;return A6[W]==null?W:A6[W]}VT.getOIDName=Hb;function z0(W,G){A6[W]=G,A6[G]=W}z0("1.2.840.113549.1.1.1","rsaEncryption");z0("1.2.840.113549.1.1.4","md5WithRsaEncryption");z0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");z0("1.2.840.113549.1.1.8","mgf1");z0("1.2.840.113549.1.1.10","RSASSA-PSS");z0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");z0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");z0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");z0("1.2.840.10045.2.1","ecEncryption");z0("1.2.840.10045.4.1","ecdsaWithSha1");z0("1.2.840.10045.4.3.2","ecdsaWithSha256");z0("1.2.840.10045.4.3.3","ecdsaWithSha384");z0("1.2.840.10045.4.3.4","ecdsaWithSha512");z0("1.2.840.10040.4.3","dsaWithSha1");z0("2.16.840.1.101.3.4.3.2","dsaWithSha256");z0("1.3.14.3.2.7","desCBC");z0("1.3.14.3.2.26","sha1");z0("2.16.840.1.101.3.4.2.1","sha256");z0("2.16.840.1.101.3.4.2.2","sha384");z0("2.16.840.1.101.3.4.2.3","sha512");z0("1.2.840.113549.2.5","md5");z0("1.3.101.110","X25519");z0("1.3.101.111","X448");z0("1.3.101.112","Ed25519");z0("1.3.101.113","Ed448");z0("1.2.840.113549.1.7.1","data");z0("1.2.840.113549.1.7.2","signedData");z0("1.2.840.113549.1.7.3","envelopedData");z0("1.2.840.113549.1.7.4","signedAndEnvelopedData");z0("1.2.840.113549.1.7.5","digestedData");z0("1.2.840.113549.1.7.6","encryptedData");z0("1.2.840.113549.1.9.1","emailAddress");z0("1.2.840.113549.1.9.2","unstructuredName");z0("1.2.840.113549.1.9.3","contentType");z0("1.2.840.113549.1.9.4","messageDigest");z0("1.2.840.113549.1.9.5","signingTime");z0("1.2.840.113549.1.9.6","counterSignature");z0("1.2.840.113549.1.9.7","challengePassword");z0("1.2.840.113549.1.9.8","unstructuredAddress");z0("1.2.840.113549.1.9.14","extensionRequest");z0("1.2.840.113549.1.9.20","friendlyName");z0("1.2.840.113549.1.9.21","localKeyId");z0("1.2.840.113549.1.9.22.1","x509Certificate");z0("1.2.840.113549.1.12.10.1.1","keyBag");z0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");z0("1.2.840.113549.1.12.10.1.3","certBag");z0("1.2.840.113549.1.12.10.1.4","crlBag");z0("1.2.840.113549.1.12.10.1.5","secretBag");z0("1.2.840.113549.1.12.10.1.6","safeContentsBag");z0("1.2.840.113549.1.5.13","pkcs5PBES2");z0("1.2.840.113549.1.5.12","pkcs5PBKDF2");z0("1.2.840.113549.2.7","hmacWithSha1");z0("1.2.840.113549.2.9","hmacWithSha256");z0("1.2.840.113549.2.10","hmacWithSha384");z0("1.2.840.113549.2.11","hmacWithSha512");z0("1.2.840.113549.3.7","3desCBC");z0("2.16.840.1.101.3.4.1.2","aesCBC128");z0("2.16.840.1.101.3.4.1.42","aesCBC256");z0("2.5.4.3","commonName");z0("2.5.4.5","serialName");z0("2.5.4.6","countryName");z0("2.5.4.7","localityName");z0("2.5.4.8","stateOrProvinceName");z0("2.5.4.10","organizationName");z0("2.5.4.11","organizationalUnitName");z0("2.5.4.15","businessCategory");z0("2.16.840.1.113730.1.1","nsCertType");z0("2.5.29.2","keyAttributes");z0("2.5.29.4","keyUsageRestriction");z0("2.5.29.6","subtreesConstraint");z0("2.5.29.9","subjectDirectoryAttributes");z0("2.5.29.14","subjectKeyIdentifier");z0("2.5.29.15","keyUsage");z0("2.5.29.16","privateKeyUsagePeriod");z0("2.5.29.17","subjectAltName");z0("2.5.29.18","issuerAltName");z0("2.5.29.19","basicConstraints");z0("2.5.29.20","cRLNumber");z0("2.5.29.21","cRLReason");z0("2.5.29.22","expirationDate");z0("2.5.29.23","instructionCode");z0("2.5.29.24","invalidityDate");z0("2.5.29.27","deltaCRLIndicator");z0("2.5.29.28","issuingDistributionPoint");z0("2.5.29.29","certificateIssuer");z0("2.5.29.30","nameConstraints");z0("2.5.29.31","cRLDistributionPoints");z0("2.5.29.32","certificatePolicies");z0("2.5.29.33","policyMappings");z0("2.5.29.35","authorityKeyIdentifier");z0("2.5.29.36","policyConstraints");z0("2.5.29.37","extKeyUsage");z0("2.5.29.46","freshestCRL");z0("2.5.29.54","inhibitAnyPolicy");z0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");z0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");z0("1.3.6.1.4.1.11129.2.4.2","timestampList");z0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");z0("1.3.6.1.5.5.7.3.1","serverAuth");z0("1.3.6.1.5.5.7.3.2","clientAuth");z0("1.3.6.1.5.5.7.3.3","codeSigning");z0("1.3.6.1.5.5.7.3.4","emailProtection");z0("1.3.6.1.5.5.7.3.8","timeStamping");z0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");z0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var xU=Z1((ve,SU)=>{(function(W){var G=function(O){var T,M=new Float64Array(16);if(O)for(T=0;T<O.length;T++)M[T]=O[T];return M},X=function(){throw Error("no PRNG")},Y=new Uint8Array(16),Z=new Uint8Array(32);Z[0]=9;var V=G(),Q=G([1]),J=G([56129,1]),U=G([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),N=G([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),q=G([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=G([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=G([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(O,T,M,z){O[T]=M>>24&255,O[T+1]=M>>16&255,O[T+2]=M>>8&255,O[T+3]=M&255,O[T+4]=z>>24&255,O[T+5]=z>>16&255,O[T+6]=z>>8&255,O[T+7]=z&255}function w(O,T,M,z,L){var r,t=0;for(r=0;r<L;r++)t|=O[T+r]^M[z+r];return(1&t-1>>>8)-1}function C(O,T,M,z){return w(O,T,M,z,16)}function D(O,T,M,z){return w(O,T,M,z,32)}function x(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,o0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,c1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,N1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,H1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,P1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,D1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,A1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,w1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,z1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,l0=H0,d0=M0,_0=o0,Z0=v0,V0=c1,I0=m0,q0=N1,A0=H1,O0=P1,J1=D1,R1=A1,B1=w1,L1=z1,g;for(var F1=0;F1<20;F1+=2)g=c0+J1|0,d0^=g<<7|g>>>25,g=d0+c0|0,I0^=g<<9|g>>>23,g=I0+d0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,q0^=g<<7|g>>>25,g=q0+_0|0,R1^=g<<9|g>>>23,g=R1+q0|0,a0^=g<<13|g>>>19,g=a0+R1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,B1^=g<<7|g>>>25,g=B1+A0|0,u0^=g<<9|g>>>23,g=u0+B1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=L1+O0|0,l0^=g<<7|g>>>25,g=l0+L1|0,V0^=g<<9|g>>>23,g=V0+l0|0,O0^=g<<13|g>>>19,g=O0+V0|0,L1^=g<<18|g>>>14,g=c0+l0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,l0^=g<<13|g>>>19,g=l0+u0|0,c0^=g<<18|g>>>14,g=_0+d0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,d0^=g<<13|g>>>19,g=d0+V0|0,_0^=g<<18|g>>>14,g=A0+q0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,q0^=g<<13|g>>>19,g=q0+I0|0,A0^=g<<18|g>>>14,g=L1+B1|0,J1^=g<<7|g>>>25,g=J1+L1|0,R1^=g<<9|g>>>23,g=R1+J1|0,B1^=g<<13|g>>>19,g=B1+R1|0,L1^=g<<18|g>>>14;c0=c0+L|0,a0=a0+r|0,u0=u0+t|0,l0=l0+H0|0,d0=d0+M0|0,_0=_0+o0|0,Z0=Z0+v0|0,V0=V0+c1|0,I0=I0+m0|0,q0=q0+N1|0,A0=A0+H1|0,O0=O0+P1|0,J1=J1+D1|0,R1=R1+A1|0,B1=B1+w1|0,L1=L1+z1|0,O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=a0>>>0&255,O[5]=a0>>>8&255,O[6]=a0>>>16&255,O[7]=a0>>>24&255,O[8]=u0>>>0&255,O[9]=u0>>>8&255,O[10]=u0>>>16&255,O[11]=u0>>>24&255,O[12]=l0>>>0&255,O[13]=l0>>>8&255,O[14]=l0>>>16&255,O[15]=l0>>>24&255,O[16]=d0>>>0&255,O[17]=d0>>>8&255,O[18]=d0>>>16&255,O[19]=d0>>>24&255,O[20]=_0>>>0&255,O[21]=_0>>>8&255,O[22]=_0>>>16&255,O[23]=_0>>>24&255,O[24]=Z0>>>0&255,O[25]=Z0>>>8&255,O[26]=Z0>>>16&255,O[27]=Z0>>>24&255,O[28]=V0>>>0&255,O[29]=V0>>>8&255,O[30]=V0>>>16&255,O[31]=V0>>>24&255,O[32]=I0>>>0&255,O[33]=I0>>>8&255,O[34]=I0>>>16&255,O[35]=I0>>>24&255,O[36]=q0>>>0&255,O[37]=q0>>>8&255,O[38]=q0>>>16&255,O[39]=q0>>>24&255,O[40]=A0>>>0&255,O[41]=A0>>>8&255,O[42]=A0>>>16&255,O[43]=A0>>>24&255,O[44]=O0>>>0&255,O[45]=O0>>>8&255,O[46]=O0>>>16&255,O[47]=O0>>>24&255,O[48]=J1>>>0&255,O[49]=J1>>>8&255,O[50]=J1>>>16&255,O[51]=J1>>>24&255,O[52]=R1>>>0&255,O[53]=R1>>>8&255,O[54]=R1>>>16&255,O[55]=R1>>>24&255,O[56]=B1>>>0&255,O[57]=B1>>>8&255,O[58]=B1>>>16&255,O[59]=B1>>>24&255,O[60]=L1>>>0&255,O[61]=L1>>>8&255,O[62]=L1>>>16&255,O[63]=L1>>>24&255}function h(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,o0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,c1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,N1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,H1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,P1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,D1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,A1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,w1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,z1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,l0=H0,d0=M0,_0=o0,Z0=v0,V0=c1,I0=m0,q0=N1,A0=H1,O0=P1,J1=D1,R1=A1,B1=w1,L1=z1,g;for(var F1=0;F1<20;F1+=2)g=c0+J1|0,d0^=g<<7|g>>>25,g=d0+c0|0,I0^=g<<9|g>>>23,g=I0+d0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,q0^=g<<7|g>>>25,g=q0+_0|0,R1^=g<<9|g>>>23,g=R1+q0|0,a0^=g<<13|g>>>19,g=a0+R1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,B1^=g<<7|g>>>25,g=B1+A0|0,u0^=g<<9|g>>>23,g=u0+B1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=L1+O0|0,l0^=g<<7|g>>>25,g=l0+L1|0,V0^=g<<9|g>>>23,g=V0+l0|0,O0^=g<<13|g>>>19,g=O0+V0|0,L1^=g<<18|g>>>14,g=c0+l0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,l0^=g<<13|g>>>19,g=l0+u0|0,c0^=g<<18|g>>>14,g=_0+d0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,d0^=g<<13|g>>>19,g=d0+V0|0,_0^=g<<18|g>>>14,g=A0+q0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,q0^=g<<13|g>>>19,g=q0+I0|0,A0^=g<<18|g>>>14,g=L1+B1|0,J1^=g<<7|g>>>25,g=J1+L1|0,R1^=g<<9|g>>>23,g=R1+J1|0,B1^=g<<13|g>>>19,g=B1+R1|0,L1^=g<<18|g>>>14;O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=_0>>>0&255,O[5]=_0>>>8&255,O[6]=_0>>>16&255,O[7]=_0>>>24&255,O[8]=A0>>>0&255,O[9]=A0>>>8&255,O[10]=A0>>>16&255,O[11]=A0>>>24&255,O[12]=L1>>>0&255,O[13]=L1>>>8&255,O[14]=L1>>>16&255,O[15]=L1>>>24&255,O[16]=Z0>>>0&255,O[17]=Z0>>>8&255,O[18]=Z0>>>16&255,O[19]=Z0>>>24&255,O[20]=V0>>>0&255,O[21]=V0>>>8&255,O[22]=V0>>>16&255,O[23]=V0>>>24&255,O[24]=I0>>>0&255,O[25]=I0>>>8&255,O[26]=I0>>>16&255,O[27]=I0>>>24&255,O[28]=q0>>>0&255,O[29]=q0>>>8&255,O[30]=q0>>>16&255,O[31]=q0>>>24&255}function l(O,T,M,z){x(O,T,M,z)}function u(O,T,M,z){h(O,T,M,z)}var n=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function c(O,T,M,z,L,r,t){var H0=new Uint8Array(16),M0=new Uint8Array(64),o0,v0;for(v0=0;v0<16;v0++)H0[v0]=0;for(v0=0;v0<8;v0++)H0[v0]=r[v0];while(L>=64){l(M0,H0,t,n);for(v0=0;v0<64;v0++)O[T+v0]=M[z+v0]^M0[v0];o0=1;for(v0=8;v0<16;v0++)o0=o0+(H0[v0]&255)|0,H0[v0]=o0&255,o0>>>=8;L-=64,T+=64,z+=64}if(L>0){l(M0,H0,t,n);for(v0=0;v0<L;v0++)O[T+v0]=M[z+v0]^M0[v0]}return 0}function p(O,T,M,z,L){var r=new Uint8Array(16),t=new Uint8Array(64),H0,M0;for(M0=0;M0<16;M0++)r[M0]=0;for(M0=0;M0<8;M0++)r[M0]=z[M0];while(M>=64){l(t,r,L,n);for(M0=0;M0<64;M0++)O[T+M0]=t[M0];H0=1;for(M0=8;M0<16;M0++)H0=H0+(r[M0]&255)|0,r[M0]=H0&255,H0>>>=8;M-=64,T+=64}if(M>0){l(t,r,L,n);for(M0=0;M0<M;M0++)O[T+M0]=t[M0]}return 0}function W0(O,T,M,z,L){var r=new Uint8Array(32);u(r,z,L,n);var t=new Uint8Array(8);for(var H0=0;H0<8;H0++)t[H0]=z[H0+16];return p(O,T,M,t,r)}function m(O,T,M,z,L,r,t){var H0=new Uint8Array(32);u(H0,r,t,n);var M0=new Uint8Array(8);for(var o0=0;o0<8;o0++)M0[o0]=r[o0+16];return c(O,T,M,z,L,M0,H0)}var Y0=function(O){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var T,M,z,L,r,t,H0,M0;T=O[0]&255|(O[1]&255)<<8,this.r[0]=T&8191,M=O[2]&255|(O[3]&255)<<8,this.r[1]=(T>>>13|M<<3)&8191,z=O[4]&255|(O[5]&255)<<8,this.r[2]=(M>>>10|z<<6)&7939,L=O[6]&255|(O[7]&255)<<8,this.r[3]=(z>>>7|L<<9)&8191,r=O[8]&255|(O[9]&255)<<8,this.r[4]=(L>>>4|r<<12)&255,this.r[5]=r>>>1&8190,t=O[10]&255|(O[11]&255)<<8,this.r[6]=(r>>>14|t<<2)&8191,H0=O[12]&255|(O[13]&255)<<8,this.r[7]=(t>>>11|H0<<5)&8065,M0=O[14]&255|(O[15]&255)<<8,this.r[8]=(H0>>>8|M0<<8)&8191,this.r[9]=M0>>>5&127,this.pad[0]=O[16]&255|(O[17]&255)<<8,this.pad[1]=O[18]&255|(O[19]&255)<<8,this.pad[2]=O[20]&255|(O[21]&255)<<8,this.pad[3]=O[22]&255|(O[23]&255)<<8,this.pad[4]=O[24]&255|(O[25]&255)<<8,this.pad[5]=O[26]&255|(O[27]&255)<<8,this.pad[6]=O[28]&255|(O[29]&255)<<8,this.pad[7]=O[30]&255|(O[31]&255)<<8};Y0.prototype.blocks=function(O,T,M){var z=this.fin?0:2048,L,r,t,H0,M0,o0,v0,c1,m0,N1,H1,P1,D1,A1,w1,z1,c0,a0,u0,l0=this.h[0],d0=this.h[1],_0=this.h[2],Z0=this.h[3],V0=this.h[4],I0=this.h[5],q0=this.h[6],A0=this.h[7],O0=this.h[8],J1=this.h[9],R1=this.r[0],B1=this.r[1],L1=this.r[2],g=this.r[3],F1=this.r[4],p1=this.r[5],l1=this.r[6],E1=this.r[7],b1=this.r[8],m1=this.r[9];while(M>=16)L=O[T+0]&255|(O[T+1]&255)<<8,l0+=L&8191,r=O[T+2]&255|(O[T+3]&255)<<8,d0+=(L>>>13|r<<3)&8191,t=O[T+4]&255|(O[T+5]&255)<<8,_0+=(r>>>10|t<<6)&8191,H0=O[T+6]&255|(O[T+7]&255)<<8,Z0+=(t>>>7|H0<<9)&8191,M0=O[T+8]&255|(O[T+9]&255)<<8,V0+=(H0>>>4|M0<<12)&8191,I0+=M0>>>1&8191,o0=O[T+10]&255|(O[T+11]&255)<<8,q0+=(M0>>>14|o0<<2)&8191,v0=O[T+12]&255|(O[T+13]&255)<<8,A0+=(o0>>>11|v0<<5)&8191,c1=O[T+14]&255|(O[T+15]&255)<<8,O0+=(v0>>>8|c1<<8)&8191,J1+=c1>>>5|z,m0=0,N1=m0,N1+=l0*R1,N1+=d0*(5*m1),N1+=_0*(5*b1),N1+=Z0*(5*E1),N1+=V0*(5*l1),m0=N1>>>13,N1&=8191,N1+=I0*(5*p1),N1+=q0*(5*F1),N1+=A0*(5*g),N1+=O0*(5*L1),N1+=J1*(5*B1),m0+=N1>>>13,N1&=8191,H1=m0,H1+=l0*B1,H1+=d0*R1,H1+=_0*(5*m1),H1+=Z0*(5*b1),H1+=V0*(5*E1),m0=H1>>>13,H1&=8191,H1+=I0*(5*l1),H1+=q0*(5*p1),H1+=A0*(5*F1),H1+=O0*(5*g),H1+=J1*(5*L1),m0+=H1>>>13,H1&=8191,P1=m0,P1+=l0*L1,P1+=d0*B1,P1+=_0*R1,P1+=Z0*(5*m1),P1+=V0*(5*b1),m0=P1>>>13,P1&=8191,P1+=I0*(5*E1),P1+=q0*(5*l1),P1+=A0*(5*p1),P1+=O0*(5*F1),P1+=J1*(5*g),m0+=P1>>>13,P1&=8191,D1=m0,D1+=l0*g,D1+=d0*L1,D1+=_0*B1,D1+=Z0*R1,D1+=V0*(5*m1),m0=D1>>>13,D1&=8191,D1+=I0*(5*b1),D1+=q0*(5*E1),D1+=A0*(5*l1),D1+=O0*(5*p1),D1+=J1*(5*F1),m0+=D1>>>13,D1&=8191,A1=m0,A1+=l0*F1,A1+=d0*g,A1+=_0*L1,A1+=Z0*B1,A1+=V0*R1,m0=A1>>>13,A1&=8191,A1+=I0*(5*m1),A1+=q0*(5*b1),A1+=A0*(5*E1),A1+=O0*(5*l1),A1+=J1*(5*p1),m0+=A1>>>13,A1&=8191,w1=m0,w1+=l0*p1,w1+=d0*F1,w1+=_0*g,w1+=Z0*L1,w1+=V0*B1,m0=w1>>>13,w1&=8191,w1+=I0*R1,w1+=q0*(5*m1),w1+=A0*(5*b1),w1+=O0*(5*E1),w1+=J1*(5*l1),m0+=w1>>>13,w1&=8191,z1=m0,z1+=l0*l1,z1+=d0*p1,z1+=_0*F1,z1+=Z0*g,z1+=V0*L1,m0=z1>>>13,z1&=8191,z1+=I0*B1,z1+=q0*R1,z1+=A0*(5*m1),z1+=O0*(5*b1),z1+=J1*(5*E1),m0+=z1>>>13,z1&=8191,c0=m0,c0+=l0*E1,c0+=d0*l1,c0+=_0*p1,c0+=Z0*F1,c0+=V0*g,m0=c0>>>13,c0&=8191,c0+=I0*L1,c0+=q0*B1,c0+=A0*R1,c0+=O0*(5*m1),c0+=J1*(5*b1),m0+=c0>>>13,c0&=8191,a0=m0,a0+=l0*b1,a0+=d0*E1,a0+=_0*l1,a0+=Z0*p1,a0+=V0*F1,m0=a0>>>13,a0&=8191,a0+=I0*g,a0+=q0*L1,a0+=A0*B1,a0+=O0*R1,a0+=J1*(5*m1),m0+=a0>>>13,a0&=8191,u0=m0,u0+=l0*m1,u0+=d0*b1,u0+=_0*E1,u0+=Z0*l1,u0+=V0*p1,m0=u0>>>13,u0&=8191,u0+=I0*F1,u0+=q0*g,u0+=A0*L1,u0+=O0*B1,u0+=J1*R1,m0+=u0>>>13,u0&=8191,m0=(m0<<2)+m0|0,m0=m0+N1|0,N1=m0&8191,m0=m0>>>13,H1+=m0,l0=N1,d0=H1,_0=P1,Z0=D1,V0=A1,I0=w1,q0=z1,A0=c0,O0=a0,J1=u0,T+=16,M-=16;this.h[0]=l0,this.h[1]=d0,this.h[2]=_0,this.h[3]=Z0,this.h[4]=V0,this.h[5]=I0,this.h[6]=q0,this.h[7]=A0,this.h[8]=O0,this.h[9]=J1},Y0.prototype.finish=function(O,T){var M=new Uint16Array(10),z,L,r,t;if(this.leftover){t=this.leftover,this.buffer[t++]=1;for(;t<16;t++)this.buffer[t]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(t=2;t<10;t++)this.h[t]+=z,z=this.h[t]>>>13,this.h[t]&=8191;this.h[0]+=z*5,z=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=z,z=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=z,M[0]=this.h[0]+5,z=M[0]>>>13,M[0]&=8191;for(t=1;t<10;t++)M[t]=this.h[t]+z,z=M[t]>>>13,M[t]&=8191;M[9]-=8192,L=(z^1)-1;for(t=0;t<10;t++)M[t]&=L;L=~L;for(t=0;t<10;t++)this.h[t]=this.h[t]&L|M[t];this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,r=this.h[0]+this.pad[0],this.h[0]=r&65535;for(t=1;t<8;t++)r=(this.h[t]+this.pad[t]|0)+(r>>>16)|0,this.h[t]=r&65535;O[T+0]=this.h[0]>>>0&255,O[T+1]=this.h[0]>>>8&255,O[T+2]=this.h[1]>>>0&255,O[T+3]=this.h[1]>>>8&255,O[T+4]=this.h[2]>>>0&255,O[T+5]=this.h[2]>>>8&255,O[T+6]=this.h[3]>>>0&255,O[T+7]=this.h[3]>>>8&255,O[T+8]=this.h[4]>>>0&255,O[T+9]=this.h[4]>>>8&255,O[T+10]=this.h[5]>>>0&255,O[T+11]=this.h[5]>>>8&255,O[T+12]=this.h[6]>>>0&255,O[T+13]=this.h[6]>>>8&255,O[T+14]=this.h[7]>>>0&255,O[T+15]=this.h[7]>>>8&255},Y0.prototype.update=function(O,T,M){var z,L;if(this.leftover){if(L=16-this.leftover,L>M)L=M;for(z=0;z<L;z++)this.buffer[this.leftover+z]=O[T+z];if(M-=L,T+=L,this.leftover+=L,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(M>=16)L=M-M%16,this.blocks(O,T,L),T+=L,M-=L;if(M){for(z=0;z<M;z++)this.buffer[this.leftover+z]=O[T+z];this.leftover+=M}};function U0(O,T,M,z,L,r){var t=new Y0(r);return t.update(M,z,L),t.finish(O,T),0}function y(O,T,M,z,L,r){var t=new Uint8Array(16);return U0(t,0,M,z,L,r),C(O,T,t,0)}function o(O,T,M,z,L){var r;if(M<32)return-1;m(O,0,T,0,M,z,L),U0(O,16,O,32,M-32,O);for(r=0;r<16;r++)O[r]=0;return 0}function B(O,T,M,z,L){var r,t=new Uint8Array(32);if(M<32)return-1;if(W0(t,0,32,z,L),y(T,16,T,32,M-32,t)!==0)return-1;m(O,0,T,0,M,z,L);for(r=0;r<32;r++)O[r]=0;return 0}function R(O,T){var M;for(M=0;M<16;M++)O[M]=T[M]|0}function _(O){var T,M,z=1;for(T=0;T<16;T++)M=O[T]+z+65535,z=Math.floor(M/65536),O[T]=M-z*65536;O[0]+=z-1+37*(z-1)}function S(O,T,M){var z,L=~(M-1);for(var r=0;r<16;r++)z=L&(O[r]^T[r]),O[r]^=z,T[r]^=z}function v(O,T){var M,z,L,r=G(),t=G();for(M=0;M<16;M++)t[M]=T[M];_(t),_(t),_(t);for(z=0;z<2;z++){r[0]=t[0]-65517;for(M=1;M<15;M++)r[M]=t[M]-65535-(r[M-1]>>16&1),r[M-1]&=65535;r[15]=t[15]-32767-(r[14]>>16&1),L=r[15]>>16&1,r[14]&=65535,S(t,r,1-L)}for(M=0;M<16;M++)O[2*M]=t[M]&255,O[2*M+1]=t[M]>>8}function P(O,T){var M=new Uint8Array(32),z=new Uint8Array(32);return v(M,O),v(z,T),D(M,0,z,0)}function E(O){var T=new Uint8Array(32);return v(T,O),T[0]&1}function b(O,T){var M;for(M=0;M<16;M++)O[M]=T[2*M]+(T[2*M+1]<<8);O[15]&=32767}function k(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]+M[z]}function f(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]-M[z]}function e(O,T,M){var z,L,r=0,t=0,H0=0,M0=0,o0=0,v0=0,c1=0,m0=0,N1=0,H1=0,P1=0,D1=0,A1=0,w1=0,z1=0,c0=0,a0=0,u0=0,l0=0,d0=0,_0=0,Z0=0,V0=0,I0=0,q0=0,A0=0,O0=0,J1=0,R1=0,B1=0,L1=0,g=M[0],F1=M[1],p1=M[2],l1=M[3],E1=M[4],b1=M[5],m1=M[6],F8=M[7],t1=M[8],D8=M[9],M8=M[10],T8=M[11],u8=M[12],U9=M[13],N9=M[14],q9=M[15];z=T[0],r+=z*g,t+=z*F1,H0+=z*p1,M0+=z*l1,o0+=z*E1,v0+=z*b1,c1+=z*m1,m0+=z*F8,N1+=z*t1,H1+=z*D8,P1+=z*M8,D1+=z*T8,A1+=z*u8,w1+=z*U9,z1+=z*N9,c0+=z*q9,z=T[1],t+=z*g,H0+=z*F1,M0+=z*p1,o0+=z*l1,v0+=z*E1,c1+=z*b1,m0+=z*m1,N1+=z*F8,H1+=z*t1,P1+=z*D8,D1+=z*M8,A1+=z*T8,w1+=z*u8,z1+=z*U9,c0+=z*N9,a0+=z*q9,z=T[2],H0+=z*g,M0+=z*F1,o0+=z*p1,v0+=z*l1,c1+=z*E1,m0+=z*b1,N1+=z*m1,H1+=z*F8,P1+=z*t1,D1+=z*D8,A1+=z*M8,w1+=z*T8,z1+=z*u8,c0+=z*U9,a0+=z*N9,u0+=z*q9,z=T[3],M0+=z*g,o0+=z*F1,v0+=z*p1,c1+=z*l1,m0+=z*E1,N1+=z*b1,H1+=z*m1,P1+=z*F8,D1+=z*t1,A1+=z*D8,w1+=z*M8,z1+=z*T8,c0+=z*u8,a0+=z*U9,u0+=z*N9,l0+=z*q9,z=T[4],o0+=z*g,v0+=z*F1,c1+=z*p1,m0+=z*l1,N1+=z*E1,H1+=z*b1,P1+=z*m1,D1+=z*F8,A1+=z*t1,w1+=z*D8,z1+=z*M8,c0+=z*T8,a0+=z*u8,u0+=z*U9,l0+=z*N9,d0+=z*q9,z=T[5],v0+=z*g,c1+=z*F1,m0+=z*p1,N1+=z*l1,H1+=z*E1,P1+=z*b1,D1+=z*m1,A1+=z*F8,w1+=z*t1,z1+=z*D8,c0+=z*M8,a0+=z*T8,u0+=z*u8,l0+=z*U9,d0+=z*N9,_0+=z*q9,z=T[6],c1+=z*g,m0+=z*F1,N1+=z*p1,H1+=z*l1,P1+=z*E1,D1+=z*b1,A1+=z*m1,w1+=z*F8,z1+=z*t1,c0+=z*D8,a0+=z*M8,u0+=z*T8,l0+=z*u8,d0+=z*U9,_0+=z*N9,Z0+=z*q9,z=T[7],m0+=z*g,N1+=z*F1,H1+=z*p1,P1+=z*l1,D1+=z*E1,A1+=z*b1,w1+=z*m1,z1+=z*F8,c0+=z*t1,a0+=z*D8,u0+=z*M8,l0+=z*T8,d0+=z*u8,_0+=z*U9,Z0+=z*N9,V0+=z*q9,z=T[8],N1+=z*g,H1+=z*F1,P1+=z*p1,D1+=z*l1,A1+=z*E1,w1+=z*b1,z1+=z*m1,c0+=z*F8,a0+=z*t1,u0+=z*D8,l0+=z*M8,d0+=z*T8,_0+=z*u8,Z0+=z*U9,V0+=z*N9,I0+=z*q9,z=T[9],H1+=z*g,P1+=z*F1,D1+=z*p1,A1+=z*l1,w1+=z*E1,z1+=z*b1,c0+=z*m1,a0+=z*F8,u0+=z*t1,l0+=z*D8,d0+=z*M8,_0+=z*T8,Z0+=z*u8,V0+=z*U9,I0+=z*N9,q0+=z*q9,z=T[10],P1+=z*g,D1+=z*F1,A1+=z*p1,w1+=z*l1,z1+=z*E1,c0+=z*b1,a0+=z*m1,u0+=z*F8,l0+=z*t1,d0+=z*D8,_0+=z*M8,Z0+=z*T8,V0+=z*u8,I0+=z*U9,q0+=z*N9,A0+=z*q9,z=T[11],D1+=z*g,A1+=z*F1,w1+=z*p1,z1+=z*l1,c0+=z*E1,a0+=z*b1,u0+=z*m1,l0+=z*F8,d0+=z*t1,_0+=z*D8,Z0+=z*M8,V0+=z*T8,I0+=z*u8,q0+=z*U9,A0+=z*N9,O0+=z*q9,z=T[12],A1+=z*g,w1+=z*F1,z1+=z*p1,c0+=z*l1,a0+=z*E1,u0+=z*b1,l0+=z*m1,d0+=z*F8,_0+=z*t1,Z0+=z*D8,V0+=z*M8,I0+=z*T8,q0+=z*u8,A0+=z*U9,O0+=z*N9,J1+=z*q9,z=T[13],w1+=z*g,z1+=z*F1,c0+=z*p1,a0+=z*l1,u0+=z*E1,l0+=z*b1,d0+=z*m1,_0+=z*F8,Z0+=z*t1,V0+=z*D8,I0+=z*M8,q0+=z*T8,A0+=z*u8,O0+=z*U9,J1+=z*N9,R1+=z*q9,z=T[14],z1+=z*g,c0+=z*F1,a0+=z*p1,u0+=z*l1,l0+=z*E1,d0+=z*b1,_0+=z*m1,Z0+=z*F8,V0+=z*t1,I0+=z*D8,q0+=z*M8,A0+=z*T8,O0+=z*u8,J1+=z*U9,R1+=z*N9,B1+=z*q9,z=T[15],c0+=z*g,a0+=z*F1,u0+=z*p1,l0+=z*l1,d0+=z*E1,_0+=z*b1,Z0+=z*m1,V0+=z*F8,I0+=z*t1,q0+=z*D8,A0+=z*M8,O0+=z*T8,J1+=z*u8,R1+=z*U9,B1+=z*N9,L1+=z*q9,r+=38*a0,t+=38*u0,H0+=38*l0,M0+=38*d0,o0+=38*_0,v0+=38*Z0,c1+=38*V0,m0+=38*I0,N1+=38*q0,H1+=38*A0,P1+=38*O0,D1+=38*J1,A1+=38*R1,w1+=38*B1,z1+=38*L1,L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=o0+L+65535,L=Math.floor(z/65536),o0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=c1+L+65535,L=Math.floor(z/65536),c1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=N1+L+65535,L=Math.floor(z/65536),N1=z-L*65536,z=H1+L+65535,L=Math.floor(z/65536),H1=z-L*65536,z=P1+L+65535,L=Math.floor(z/65536),P1=z-L*65536,z=D1+L+65535,L=Math.floor(z/65536),D1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=o0+L+65535,L=Math.floor(z/65536),o0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=c1+L+65535,L=Math.floor(z/65536),c1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=N1+L+65535,L=Math.floor(z/65536),N1=z-L*65536,z=H1+L+65535,L=Math.floor(z/65536),H1=z-L*65536,z=P1+L+65535,L=Math.floor(z/65536),P1=z-L*65536,z=D1+L+65535,L=Math.floor(z/65536),D1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),O[0]=r,O[1]=t,O[2]=H0,O[3]=M0,O[4]=o0,O[5]=v0,O[6]=c1,O[7]=m0,O[8]=N1,O[9]=H1,O[10]=P1,O[11]=D1,O[12]=A1,O[13]=w1,O[14]=z1,O[15]=c0}function N0(O,T){e(O,T,T)}function Q0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=253;z>=0;z--)if(N0(M,M),z!==2&&z!==4)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function $0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=250;z>=0;z--)if(N0(M,M),z!==1)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function D0(O,T,M){var z=new Uint8Array(32),L=new Float64Array(80),r,t,H0=G(),M0=G(),o0=G(),v0=G(),c1=G(),m0=G();for(t=0;t<31;t++)z[t]=T[t];z[31]=T[31]&127|64,z[0]&=248,b(L,M);for(t=0;t<16;t++)M0[t]=L[t],v0[t]=H0[t]=o0[t]=0;H0[0]=v0[0]=1;for(t=254;t>=0;--t)r=z[t>>>3]>>>(t&7)&1,S(H0,M0,r),S(o0,v0,r),k(c1,H0,o0),f(H0,H0,o0),k(o0,M0,v0),f(M0,M0,v0),N0(v0,c1),N0(m0,H0),e(H0,o0,H0),e(o0,M0,c1),k(c1,H0,o0),f(H0,H0,o0),N0(M0,H0),f(o0,v0,m0),e(H0,o0,J),k(H0,H0,v0),e(o0,o0,H0),e(H0,v0,m0),e(v0,M0,L),N0(M0,c1),S(H0,M0,r),S(o0,v0,r);for(t=0;t<16;t++)L[t+16]=H0[t],L[t+32]=o0[t],L[t+48]=M0[t],L[t+64]=v0[t];var N1=L.subarray(32),H1=L.subarray(16);return Q0(N1,N1),e(H1,H1,N1),v(O,H1),0}function x0(O,T){return D0(O,T,Z)}function q1(O,T){return X(T,32),x0(O,T)}function U1(O,T,M){var z=new Uint8Array(32);return D0(z,M,T),u(O,Y,z,n)}var J0=o,B0=B;function h0(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),J0(O,T,M,z,t)}function Y1(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),B0(O,T,M,z,t)}var w8=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function x1(O,T,M,z){var L=new Int32Array(16),r=new Int32Array(16),t,H0,M0,o0,v0,c1,m0,N1,H1,P1,D1,A1,w1,z1,c0,a0,u0,l0,d0,_0,Z0,V0,I0,q0,A0,O0,J1=O[0],R1=O[1],B1=O[2],L1=O[3],g=O[4],F1=O[5],p1=O[6],l1=O[7],E1=T[0],b1=T[1],m1=T[2],F8=T[3],t1=T[4],D8=T[5],M8=T[6],T8=T[7],u8=0;while(z>=128){for(d0=0;d0<16;d0++)_0=8*d0+u8,L[d0]=M[_0+0]<<24|M[_0+1]<<16|M[_0+2]<<8|M[_0+3],r[d0]=M[_0+4]<<24|M[_0+5]<<16|M[_0+6]<<8|M[_0+7];for(d0=0;d0<80;d0++)if(t=J1,H0=R1,M0=B1,o0=L1,v0=g,c1=F1,m0=p1,N1=l1,H1=E1,P1=b1,D1=m1,A1=F8,w1=t1,z1=D8,c0=M8,a0=T8,Z0=l1,V0=T8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(g>>>14|t1<<18)^(g>>>18|t1<<14)^(t1>>>9|g<<23),V0=(t1>>>14|g<<18)^(t1>>>18|g<<14)^(g>>>9|t1<<23),I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=g&F1^~g&p1,V0=t1&D8^~t1&M8,I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=w8[d0*2],V0=w8[d0*2+1],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=L[d0%16],V0=r[d0%16],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,u0=A0&65535|O0<<16,l0=I0&65535|q0<<16,Z0=u0,V0=l0,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(J1>>>28|E1<<4)^(E1>>>2|J1<<30)^(E1>>>7|J1<<25),V0=(E1>>>28|J1<<4)^(J1>>>2|E1<<30)^(J1>>>7|E1<<25),I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=J1&R1^J1&B1^R1&B1,V0=E1&b1^E1&m1^b1&m1,I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,N1=A0&65535|O0<<16,a0=I0&65535|q0<<16,Z0=o0,V0=A1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=u0,V0=l0,I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,o0=A0&65535|O0<<16,A1=I0&65535|q0<<16,R1=t,B1=H0,L1=M0,g=o0,F1=v0,p1=c1,l1=m0,J1=N1,b1=H1,m1=P1,F8=D1,t1=A1,D8=w1,M8=z1,T8=c0,E1=a0,d0%16===15)for(_0=0;_0<16;_0++)Z0=L[_0],V0=r[_0],I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=L[(_0+9)%16],V0=r[(_0+9)%16],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+1)%16],l0=r[(_0+1)%16],Z0=(u0>>>1|l0<<31)^(u0>>>8|l0<<24)^u0>>>7,V0=(l0>>>1|u0<<31)^(l0>>>8|u0<<24)^(l0>>>7|u0<<25),I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+14)%16],l0=r[(_0+14)%16],Z0=(u0>>>19|l0<<13)^(l0>>>29|u0<<3)^u0>>>6,V0=(l0>>>19|u0<<13)^(u0>>>29|l0<<3)^(l0>>>6|u0<<26),I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,L[_0]=A0&65535|O0<<16,r[_0]=I0&65535|q0<<16;Z0=J1,V0=E1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[0],V0=T[0],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[0]=J1=A0&65535|O0<<16,T[0]=E1=I0&65535|q0<<16,Z0=R1,V0=b1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[1],V0=T[1],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[1]=R1=A0&65535|O0<<16,T[1]=b1=I0&65535|q0<<16,Z0=B1,V0=m1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[2],V0=T[2],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[2]=B1=A0&65535|O0<<16,T[2]=m1=I0&65535|q0<<16,Z0=L1,V0=F8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[3],V0=T[3],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[3]=L1=A0&65535|O0<<16,T[3]=F8=I0&65535|q0<<16,Z0=g,V0=t1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[4],V0=T[4],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[4]=g=A0&65535|O0<<16,T[4]=t1=I0&65535|q0<<16,Z0=F1,V0=D8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[5],V0=T[5],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[5]=F1=A0&65535|O0<<16,T[5]=D8=I0&65535|q0<<16,Z0=p1,V0=M8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[6],V0=T[6],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[6]=p1=A0&65535|O0<<16,T[6]=M8=I0&65535|q0<<16,Z0=l1,V0=T8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[7],V0=T[7],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[7]=l1=A0&65535|O0<<16,T[7]=T8=I0&65535|q0<<16,u8+=128,z-=128}return z}function E0(O,T,M){var z=new Int32Array(8),L=new Int32Array(8),r=new Uint8Array(256),t,H0=M;z[0]=1779033703,z[1]=3144134277,z[2]=1013904242,z[3]=2773480762,z[4]=1359893119,z[5]=2600822924,z[6]=528734635,z[7]=1541459225,L[0]=4089235720,L[1]=2227873595,L[2]=4271175723,L[3]=1595750129,L[4]=2917565137,L[5]=725511199,L[6]=4215389547,L[7]=327033209,x1(z,L,T,M),M%=128;for(t=0;t<M;t++)r[t]=T[H0-M+t];r[M]=128,M=256-128*(M<112?1:0),r[M-9]=0,I(r,M-8,H0/536870912|0,H0<<3),x1(z,L,r,M);for(t=0;t<8;t++)I(O,8*t,z[t],L[t]);return 0}function n0(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G(),o0=G(),v0=G();f(M,O[1],O[0]),f(v0,T[1],T[0]),e(M,M,v0),k(z,O[0],O[1]),k(v0,T[0],T[1]),e(z,z,v0),e(L,O[3],T[3]),e(L,L,N),e(r,O[2],T[2]),k(r,r,r),f(t,z,M),f(H0,r,L),k(M0,r,L),k(o0,z,M),e(O[0],t,H0),e(O[1],o0,M0),e(O[2],M0,H0),e(O[3],t,o0)}function O1(O,T,M){var z;for(z=0;z<4;z++)S(O[z],T[z],M)}function $1(O,T){var M=G(),z=G(),L=G();Q0(L,T[2]),e(M,T[0],L),e(z,T[1],L),v(O,z),O[31]^=E(M)<<7}function U8(O,T,M){var z,L;R(O[0],V),R(O[1],Q),R(O[2],Q),R(O[3],V);for(L=255;L>=0;--L)z=M[L/8|0]>>(L&7)&1,O1(O,T,z),n0(T,O),n0(O,O),O1(O,T,z)}function H8(O,T){var M=[G(),G(),G(),G()];R(M[0],q),R(M[1],A),R(M[2],Q),e(M[3],q,A),U8(O,M,T)}function A8(O,T,M){var z=new Uint8Array(64),L=[G(),G(),G(),G()],r;if(!M)X(T,32);E0(z,T,32),z[0]&=248,z[31]&=127,z[31]|=64,H8(L,z),$1(O,L);for(r=0;r<32;r++)T[r+32]=O[r];return 0}var K1=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function j8(O,T){var M,z,L,r;for(z=63;z>=32;--z){M=0;for(L=z-32,r=z-12;L<r;++L)T[L]+=M-16*T[z]*K1[L-(z-32)],M=Math.floor((T[L]+128)/256),T[L]-=M*256;T[L]+=M,T[z]=0}M=0;for(L=0;L<32;L++)T[L]+=M-(T[31]>>4)*K1[L],M=T[L]>>8,T[L]&=255;for(L=0;L<32;L++)T[L]-=M*K1[L];for(z=0;z<32;z++)T[z+1]+=T[z]>>8,O[z]=T[z]&255}function k5(O){var T=new Float64Array(64),M;for(M=0;M<64;M++)T[M]=O[M];for(M=0;M<64;M++)O[M]=0;j8(O,T)}function HW(O,T,M,z){var L=new Uint8Array(64),r=new Uint8Array(64),t=new Uint8Array(64),H0,M0,o0=new Float64Array(64),v0=[G(),G(),G(),G()];E0(L,z,32),L[0]&=248,L[31]&=127,L[31]|=64;var c1=M+64;for(H0=0;H0<M;H0++)O[64+H0]=T[H0];for(H0=0;H0<32;H0++)O[32+H0]=L[32+H0];E0(t,O.subarray(32),M+32),k5(t),H8(v0,t),$1(O,v0);for(H0=32;H0<64;H0++)O[H0]=z[H0];E0(r,O,M+64),k5(r);for(H0=0;H0<64;H0++)o0[H0]=0;for(H0=0;H0<32;H0++)o0[H0]=t[H0];for(H0=0;H0<32;H0++)for(M0=0;M0<32;M0++)o0[H0+M0]+=r[H0]*L[M0];return j8(O.subarray(32),o0),c1}function QZ(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G();if(R(O[2],Q),b(O[1],T),N0(L,O[1]),e(r,L,U),f(L,L,O[2]),k(r,O[2],r),N0(t,r),N0(H0,t),e(M0,H0,t),e(M,M0,L),e(M,M,r),$0(M,M),e(M,M,L),e(M,M,r),e(M,M,r),e(O[0],M,r),N0(z,O[0]),e(z,z,r),P(z,L))e(O[0],O[0],H);if(N0(z,O[0]),e(z,z,r),P(z,L))return-1;if(E(O[0])===T[31]>>7)f(O[0],V,O[0]);return e(O[3],O[0],O[1]),0}function i7(O,T,M,z){var L,r=new Uint8Array(32),t=new Uint8Array(64),H0=[G(),G(),G(),G()],M0=[G(),G(),G(),G()];if(M<64)return-1;if(QZ(M0,z))return-1;for(L=0;L<M;L++)O[L]=T[L];for(L=0;L<32;L++)O[L+32]=z[L];if(E0(t,O,M),k5(t),U8(H0,M0,t),H8(M0,T.subarray(32)),n0(H0,M0),$1(r,H0),M-=64,D(T,0,r,0)){for(L=0;L<M;L++)O[L]=0;return-1}for(L=0;L<M;L++)O[L]=T[L+64];return M}var i=32,$=24,d=32,X0=16,w0=32,e0=32,C1=32,r0=32,K0=32,F0=$,g0=d,k0=X0,Q1=64,X1=32,k1=64,n1=32,Q7=64;W.lowlevel={crypto_core_hsalsa20:u,crypto_stream_xor:m,crypto_stream:W0,crypto_stream_salsa20_xor:c,crypto_stream_salsa20:p,crypto_onetimeauth:U0,crypto_onetimeauth_verify:y,crypto_verify_16:C,crypto_verify_32:D,crypto_secretbox:o,crypto_secretbox_open:B,crypto_scalarmult:D0,crypto_scalarmult_base:x0,crypto_box_beforenm:U1,crypto_box_afternm:J0,crypto_box:h0,crypto_box_open:Y1,crypto_box_keypair:q1,crypto_hash:E0,crypto_sign:HW,crypto_sign_keypair:A8,crypto_sign_open:i7,crypto_secretbox_KEYBYTES:i,crypto_secretbox_NONCEBYTES:$,crypto_secretbox_ZEROBYTES:d,crypto_secretbox_BOXZEROBYTES:X0,crypto_scalarmult_BYTES:w0,crypto_scalarmult_SCALARBYTES:e0,crypto_box_PUBLICKEYBYTES:C1,crypto_box_SECRETKEYBYTES:r0,crypto_box_BEFORENMBYTES:K0,crypto_box_NONCEBYTES:F0,crypto_box_ZEROBYTES:g0,crypto_box_BOXZEROBYTES:k0,crypto_sign_BYTES:Q1,crypto_sign_PUBLICKEYBYTES:X1,crypto_sign_SECRETKEYBYTES:k1,crypto_sign_SEEDBYTES:n1,crypto_hash_BYTES:Q7,gf:G,D:U,L:K1,pack25519:v,unpack25519:b,M:e,A:k,S:N0,Z:f,pow2523:$0,add:n0,set25519:R,modL:j8,scalarmult:U8,scalarbase:H8};function AW(O,T){if(O.length!==i)throw Error("bad key size");if(T.length!==$)throw Error("bad nonce size")}function JZ(O,T){if(O.length!==C1)throw Error("bad public key size");if(T.length!==r0)throw Error("bad secret key size")}function J9(){for(var O=0;O<arguments.length;O++)if(!(arguments[O]instanceof Uint8Array))throw TypeError("unexpected type, use Uint8Array")}function _J(O){for(var T=0;T<O.length;T++)O[T]=0}W.randomBytes=function(O){var T=new Uint8Array(O);return X(T,O),T},W.secretbox=function(O,T,M){J9(O,T,M),AW(M,T);var z=new Uint8Array(d+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+d]=O[r];return o(L,z,z.length,T,M),L.subarray(X0)},W.secretbox.open=function(O,T,M){J9(O,T,M),AW(M,T);var z=new Uint8Array(X0+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+X0]=O[r];if(z.length<32)return null;if(B(L,z,z.length,T,M)!==0)return null;return L.subarray(d)},W.secretbox.keyLength=i,W.secretbox.nonceLength=$,W.secretbox.overheadLength=X0,W.scalarMult=function(O,T){if(J9(O,T),O.length!==e0)throw Error("bad n size");if(T.length!==w0)throw Error("bad p size");var M=new Uint8Array(w0);return D0(M,O,T),M},W.scalarMult.base=function(O){if(J9(O),O.length!==e0)throw Error("bad n size");var T=new Uint8Array(w0);return x0(T,O),T},W.scalarMult.scalarLength=e0,W.scalarMult.groupElementLength=w0,W.box=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox(O,T,L)},W.box.before=function(O,T){J9(O,T),JZ(O,T);var M=new Uint8Array(K0);return U1(M,O,T),M},W.box.after=W.secretbox,W.box.open=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox.open(O,T,L)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var O=new Uint8Array(C1),T=new Uint8Array(r0);return q1(O,T),{publicKey:O,secretKey:T}},W.box.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==r0)throw Error("bad secret key size");var T=new Uint8Array(C1);return x0(T,O),{publicKey:T,secretKey:new Uint8Array(O)}},W.box.publicKeyLength=C1,W.box.secretKeyLength=r0,W.box.sharedKeyLength=K0,W.box.nonceLength=F0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(O,T){if(J9(O,T),T.length!==k1)throw Error("bad secret key size");var M=new Uint8Array(Q1+O.length);return HW(M,O,O.length,T),M},W.sign.open=function(O,T){if(J9(O,T),T.length!==X1)throw Error("bad public key size");var M=new Uint8Array(O.length),z=i7(M,O,O.length,T);if(z<0)return null;var L=new Uint8Array(z);for(var r=0;r<L.length;r++)L[r]=M[r];return L},W.sign.detached=function(O,T){var M=W.sign(O,T),z=new Uint8Array(Q1);for(var L=0;L<z.length;L++)z[L]=M[L];return z},W.sign.detached.verify=function(O,T,M){if(J9(O,T,M),T.length!==Q1)throw Error("bad signature size");if(M.length!==X1)throw Error("bad public key size");var z=new Uint8Array(Q1+O.length),L=new Uint8Array(Q1+O.length),r;for(r=0;r<Q1;r++)z[r]=T[r];for(r=0;r<O.length;r++)z[r+Q1]=O[r];return i7(L,z,z.length,M)>=0},W.sign.keyPair=function(){var O=new Uint8Array(X1),T=new Uint8Array(k1);return A8(O,T),{publicKey:O,secretKey:T}},W.sign.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==k1)throw Error("bad secret key size");var T=new Uint8Array(X1);for(var M=0;M<T.length;M++)T[M]=O[32+M];return{publicKey:T,secretKey:new Uint8Array(O)}},W.sign.keyPair.fromSeed=function(O){if(J9(O),O.length!==n1)throw Error("bad seed size");var T=new Uint8Array(X1),M=new Uint8Array(k1);for(var z=0;z<32;z++)M[z]=O[z];return A8(T,M,!0),{publicKey:T,secretKey:M}},W.sign.publicKeyLength=X1,W.sign.secretKeyLength=k1,W.sign.seedLength=n1,W.sign.signatureLength=Q1,W.hash=function(O){J9(O);var T=new Uint8Array(Q7);return E0(T,O,O.length),T},W.hash.hashLength=Q7,W.verify=function(O,T){if(J9(O,T),O.length===0||T.length===0)return!1;if(O.length!==T.length)return!1;return w(O,0,T,0,O.length)===0?!0:!1},W.setPRNG=function(O){X=O},function(){var O=typeof self<"u"?self.crypto||self.msCrypto:null;if(O&&O.getRandomValues){var T=65536;W.setPRNG(function(M,z){var L,r=new Uint8Array(z);for(L=0;L<z;L+=T)O.getRandomValues(r.subarray(L,L+Math.min(z-L,T)));for(L=0;L<z;L++)M[L]=r[L];_J(r)})}else if(O=S8("crypto"),O&&O.randomBytes)W.setPRNG(function(M,z){var L,r=O.randomBytes(z);for(L=0;L<z;L++)M[L]=r[L];_J(r)})}()})(typeof SU<"u"&&ve?ve:self.nacl=self.nacl||{})});var Bz=Z1((JT)=>{Object.defineProperty(JT,"__esModule",{value:!0});class QT{constructor(W,G=0,X=0){this.start=G,this.end=X>G?X:G,this.buf=W}get length(){return this.buf.length}reset(W=0,G=0){if(this.start=W,G>=this.start)this.end=G;else if(this.end<this.start)this.end=this.start;return this}walk(W){return this.start=this.end,this.end+=W,this}mustHas(W,G="Too few bytes to parse."){let X=this.end+W;if(X>this.buf.length){let Y=Error(G);throw Y.available=this.buf.length,Y.requested=X,Y}return this.walk(0),this}mustWalk(W,G){return this.mustHas(W,G),this.walk(W),this}}JT.BufferVisitor=QT});var HT=Z1((qT)=>{Object.defineProperty(qT,"__esModule",{value:!0});var UT=S8("util"),NT=64,$z="-----BEGIN ",Fz="-----END ",mZ="-----",Ez="Proc-Type";class Sz{static parse(W){let G=[],X=W.toString("utf8").split(`
7
+ `).map((G)=>G.trim()).join(" ")};eM.O=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts)}});var YT=Z1((_e,Lz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Lz.exports=tM();else Lz.exports=XT()});var FU=Z1((VT)=>{Object.defineProperty(VT,"__esModule",{value:!0});var Jb=S8("net");function Ub(W){switch(Jb.isIP(W)){case 4:return Buffer.from(W.split(".").map((Z)=>parseInt(Z,10)));case 6:let G=W.split(":"),X=Buffer.alloc(16),Y=0;if(G[G.length-1]==="")G[G.length-1]="0";for(let Z=0;Z<G.length;Z++){if(G[Z]===""){if(Z+1<G.length&&G[Z+1]!=="")Y=16-(G.length-Z-1)*2;continue}X.writeUInt16BE(parseInt(G[Z],16),Y),Y+=2}return X;default:return null}}VT.bytesFromIP=Ub;function Nb(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let G=[],X=-1,Y=0,Z=-1,V=0;for(let Q=0;Q<W.length;Q+=2){let J=W[Q]<<8|W[Q+1];if(J===0){if(Y++,X===-1)X=G.length;if(Y>V)V=Y,Z=X}else X=-1,Y=0;G.push(J.toString(16))}if(V>0){let Q="",J=G.slice(Z+V);if(G.length=Z,G.length===0)Q+=":";if(J.length===0)Q+=":";G.push(Q,...J)}return G.join(":");default:return""}}VT.bytesToIP=Nb;var A6=Object.create(null),ZT=/^[0-9.]+$/;function qb(W){if(ZT.test(W)&&A6[W]!=="")return W;return A6[W]==null?"":A6[W]}VT.getOID=qb;function Hb(W){if(!ZT.test(W)&&A6[W]!=="")return W;return A6[W]==null?W:A6[W]}VT.getOIDName=Hb;function z0(W,G){A6[W]=G,A6[G]=W}z0("1.2.840.113549.1.1.1","rsaEncryption");z0("1.2.840.113549.1.1.4","md5WithRsaEncryption");z0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");z0("1.2.840.113549.1.1.8","mgf1");z0("1.2.840.113549.1.1.10","RSASSA-PSS");z0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");z0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");z0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");z0("1.2.840.10045.2.1","ecEncryption");z0("1.2.840.10045.4.1","ecdsaWithSha1");z0("1.2.840.10045.4.3.2","ecdsaWithSha256");z0("1.2.840.10045.4.3.3","ecdsaWithSha384");z0("1.2.840.10045.4.3.4","ecdsaWithSha512");z0("1.2.840.10040.4.3","dsaWithSha1");z0("2.16.840.1.101.3.4.3.2","dsaWithSha256");z0("1.3.14.3.2.7","desCBC");z0("1.3.14.3.2.26","sha1");z0("2.16.840.1.101.3.4.2.1","sha256");z0("2.16.840.1.101.3.4.2.2","sha384");z0("2.16.840.1.101.3.4.2.3","sha512");z0("1.2.840.113549.2.5","md5");z0("1.3.101.110","X25519");z0("1.3.101.111","X448");z0("1.3.101.112","Ed25519");z0("1.3.101.113","Ed448");z0("1.2.840.113549.1.7.1","data");z0("1.2.840.113549.1.7.2","signedData");z0("1.2.840.113549.1.7.3","envelopedData");z0("1.2.840.113549.1.7.4","signedAndEnvelopedData");z0("1.2.840.113549.1.7.5","digestedData");z0("1.2.840.113549.1.7.6","encryptedData");z0("1.2.840.113549.1.9.1","emailAddress");z0("1.2.840.113549.1.9.2","unstructuredName");z0("1.2.840.113549.1.9.3","contentType");z0("1.2.840.113549.1.9.4","messageDigest");z0("1.2.840.113549.1.9.5","signingTime");z0("1.2.840.113549.1.9.6","counterSignature");z0("1.2.840.113549.1.9.7","challengePassword");z0("1.2.840.113549.1.9.8","unstructuredAddress");z0("1.2.840.113549.1.9.14","extensionRequest");z0("1.2.840.113549.1.9.20","friendlyName");z0("1.2.840.113549.1.9.21","localKeyId");z0("1.2.840.113549.1.9.22.1","x509Certificate");z0("1.2.840.113549.1.12.10.1.1","keyBag");z0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");z0("1.2.840.113549.1.12.10.1.3","certBag");z0("1.2.840.113549.1.12.10.1.4","crlBag");z0("1.2.840.113549.1.12.10.1.5","secretBag");z0("1.2.840.113549.1.12.10.1.6","safeContentsBag");z0("1.2.840.113549.1.5.13","pkcs5PBES2");z0("1.2.840.113549.1.5.12","pkcs5PBKDF2");z0("1.2.840.113549.2.7","hmacWithSha1");z0("1.2.840.113549.2.9","hmacWithSha256");z0("1.2.840.113549.2.10","hmacWithSha384");z0("1.2.840.113549.2.11","hmacWithSha512");z0("1.2.840.113549.3.7","3desCBC");z0("2.16.840.1.101.3.4.1.2","aesCBC128");z0("2.16.840.1.101.3.4.1.42","aesCBC256");z0("2.5.4.3","commonName");z0("2.5.4.5","serialName");z0("2.5.4.6","countryName");z0("2.5.4.7","localityName");z0("2.5.4.8","stateOrProvinceName");z0("2.5.4.10","organizationName");z0("2.5.4.11","organizationalUnitName");z0("2.5.4.15","businessCategory");z0("2.16.840.1.113730.1.1","nsCertType");z0("2.5.29.2","keyAttributes");z0("2.5.29.4","keyUsageRestriction");z0("2.5.29.6","subtreesConstraint");z0("2.5.29.9","subjectDirectoryAttributes");z0("2.5.29.14","subjectKeyIdentifier");z0("2.5.29.15","keyUsage");z0("2.5.29.16","privateKeyUsagePeriod");z0("2.5.29.17","subjectAltName");z0("2.5.29.18","issuerAltName");z0("2.5.29.19","basicConstraints");z0("2.5.29.20","cRLNumber");z0("2.5.29.21","cRLReason");z0("2.5.29.22","expirationDate");z0("2.5.29.23","instructionCode");z0("2.5.29.24","invalidityDate");z0("2.5.29.27","deltaCRLIndicator");z0("2.5.29.28","issuingDistributionPoint");z0("2.5.29.29","certificateIssuer");z0("2.5.29.30","nameConstraints");z0("2.5.29.31","cRLDistributionPoints");z0("2.5.29.32","certificatePolicies");z0("2.5.29.33","policyMappings");z0("2.5.29.35","authorityKeyIdentifier");z0("2.5.29.36","policyConstraints");z0("2.5.29.37","extKeyUsage");z0("2.5.29.46","freshestCRL");z0("2.5.29.54","inhibitAnyPolicy");z0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");z0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");z0("1.3.6.1.4.1.11129.2.4.2","timestampList");z0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");z0("1.3.6.1.5.5.7.3.1","serverAuth");z0("1.3.6.1.5.5.7.3.2","clientAuth");z0("1.3.6.1.5.5.7.3.3","codeSigning");z0("1.3.6.1.5.5.7.3.4","emailProtection");z0("1.3.6.1.5.5.7.3.8","timeStamping");z0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");z0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var xU=Z1((ve,SU)=>{(function(W){var G=function(O){var T,M=new Float64Array(16);if(O)for(T=0;T<O.length;T++)M[T]=O[T];return M},X=function(){throw Error("no PRNG")},Y=new Uint8Array(16),Z=new Uint8Array(32);Z[0]=9;var V=G(),Q=G([1]),J=G([56129,1]),U=G([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),N=G([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),q=G([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=G([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=G([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(O,T,M,z){O[T]=M>>24&255,O[T+1]=M>>16&255,O[T+2]=M>>8&255,O[T+3]=M&255,O[T+4]=z>>24&255,O[T+5]=z>>16&255,O[T+6]=z>>8&255,O[T+7]=z&255}function w(O,T,M,z,L){var r,t=0;for(r=0;r<L;r++)t|=O[T+r]^M[z+r];return(1&t-1>>>8)-1}function C(O,T,M,z){return w(O,T,M,z,16)}function D(O,T,M,z){return w(O,T,M,z,32)}function x(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,o0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,c1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,N1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,H1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,P1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,D1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,A1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,w1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,z1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,l0=H0,d0=M0,_0=o0,Z0=v0,V0=c1,I0=m0,q0=N1,A0=H1,O0=P1,J1=D1,R1=A1,B1=w1,L1=z1,g;for(var F1=0;F1<20;F1+=2)g=c0+J1|0,d0^=g<<7|g>>>25,g=d0+c0|0,I0^=g<<9|g>>>23,g=I0+d0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,q0^=g<<7|g>>>25,g=q0+_0|0,R1^=g<<9|g>>>23,g=R1+q0|0,a0^=g<<13|g>>>19,g=a0+R1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,B1^=g<<7|g>>>25,g=B1+A0|0,u0^=g<<9|g>>>23,g=u0+B1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=L1+O0|0,l0^=g<<7|g>>>25,g=l0+L1|0,V0^=g<<9|g>>>23,g=V0+l0|0,O0^=g<<13|g>>>19,g=O0+V0|0,L1^=g<<18|g>>>14,g=c0+l0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,l0^=g<<13|g>>>19,g=l0+u0|0,c0^=g<<18|g>>>14,g=_0+d0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,d0^=g<<13|g>>>19,g=d0+V0|0,_0^=g<<18|g>>>14,g=A0+q0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,q0^=g<<13|g>>>19,g=q0+I0|0,A0^=g<<18|g>>>14,g=L1+B1|0,J1^=g<<7|g>>>25,g=J1+L1|0,R1^=g<<9|g>>>23,g=R1+J1|0,B1^=g<<13|g>>>19,g=B1+R1|0,L1^=g<<18|g>>>14;c0=c0+L|0,a0=a0+r|0,u0=u0+t|0,l0=l0+H0|0,d0=d0+M0|0,_0=_0+o0|0,Z0=Z0+v0|0,V0=V0+c1|0,I0=I0+m0|0,q0=q0+N1|0,A0=A0+H1|0,O0=O0+P1|0,J1=J1+D1|0,R1=R1+A1|0,B1=B1+w1|0,L1=L1+z1|0,O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=a0>>>0&255,O[5]=a0>>>8&255,O[6]=a0>>>16&255,O[7]=a0>>>24&255,O[8]=u0>>>0&255,O[9]=u0>>>8&255,O[10]=u0>>>16&255,O[11]=u0>>>24&255,O[12]=l0>>>0&255,O[13]=l0>>>8&255,O[14]=l0>>>16&255,O[15]=l0>>>24&255,O[16]=d0>>>0&255,O[17]=d0>>>8&255,O[18]=d0>>>16&255,O[19]=d0>>>24&255,O[20]=_0>>>0&255,O[21]=_0>>>8&255,O[22]=_0>>>16&255,O[23]=_0>>>24&255,O[24]=Z0>>>0&255,O[25]=Z0>>>8&255,O[26]=Z0>>>16&255,O[27]=Z0>>>24&255,O[28]=V0>>>0&255,O[29]=V0>>>8&255,O[30]=V0>>>16&255,O[31]=V0>>>24&255,O[32]=I0>>>0&255,O[33]=I0>>>8&255,O[34]=I0>>>16&255,O[35]=I0>>>24&255,O[36]=q0>>>0&255,O[37]=q0>>>8&255,O[38]=q0>>>16&255,O[39]=q0>>>24&255,O[40]=A0>>>0&255,O[41]=A0>>>8&255,O[42]=A0>>>16&255,O[43]=A0>>>24&255,O[44]=O0>>>0&255,O[45]=O0>>>8&255,O[46]=O0>>>16&255,O[47]=O0>>>24&255,O[48]=J1>>>0&255,O[49]=J1>>>8&255,O[50]=J1>>>16&255,O[51]=J1>>>24&255,O[52]=R1>>>0&255,O[53]=R1>>>8&255,O[54]=R1>>>16&255,O[55]=R1>>>24&255,O[56]=B1>>>0&255,O[57]=B1>>>8&255,O[58]=B1>>>16&255,O[59]=B1>>>24&255,O[60]=L1>>>0&255,O[61]=L1>>>8&255,O[62]=L1>>>16&255,O[63]=L1>>>24&255}function h(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,o0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,c1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,N1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,H1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,P1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,D1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,A1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,w1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,z1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,l0=H0,d0=M0,_0=o0,Z0=v0,V0=c1,I0=m0,q0=N1,A0=H1,O0=P1,J1=D1,R1=A1,B1=w1,L1=z1,g;for(var F1=0;F1<20;F1+=2)g=c0+J1|0,d0^=g<<7|g>>>25,g=d0+c0|0,I0^=g<<9|g>>>23,g=I0+d0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,q0^=g<<7|g>>>25,g=q0+_0|0,R1^=g<<9|g>>>23,g=R1+q0|0,a0^=g<<13|g>>>19,g=a0+R1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,B1^=g<<7|g>>>25,g=B1+A0|0,u0^=g<<9|g>>>23,g=u0+B1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=L1+O0|0,l0^=g<<7|g>>>25,g=l0+L1|0,V0^=g<<9|g>>>23,g=V0+l0|0,O0^=g<<13|g>>>19,g=O0+V0|0,L1^=g<<18|g>>>14,g=c0+l0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,l0^=g<<13|g>>>19,g=l0+u0|0,c0^=g<<18|g>>>14,g=_0+d0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,d0^=g<<13|g>>>19,g=d0+V0|0,_0^=g<<18|g>>>14,g=A0+q0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,q0^=g<<13|g>>>19,g=q0+I0|0,A0^=g<<18|g>>>14,g=L1+B1|0,J1^=g<<7|g>>>25,g=J1+L1|0,R1^=g<<9|g>>>23,g=R1+J1|0,B1^=g<<13|g>>>19,g=B1+R1|0,L1^=g<<18|g>>>14;O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=_0>>>0&255,O[5]=_0>>>8&255,O[6]=_0>>>16&255,O[7]=_0>>>24&255,O[8]=A0>>>0&255,O[9]=A0>>>8&255,O[10]=A0>>>16&255,O[11]=A0>>>24&255,O[12]=L1>>>0&255,O[13]=L1>>>8&255,O[14]=L1>>>16&255,O[15]=L1>>>24&255,O[16]=Z0>>>0&255,O[17]=Z0>>>8&255,O[18]=Z0>>>16&255,O[19]=Z0>>>24&255,O[20]=V0>>>0&255,O[21]=V0>>>8&255,O[22]=V0>>>16&255,O[23]=V0>>>24&255,O[24]=I0>>>0&255,O[25]=I0>>>8&255,O[26]=I0>>>16&255,O[27]=I0>>>24&255,O[28]=q0>>>0&255,O[29]=q0>>>8&255,O[30]=q0>>>16&255,O[31]=q0>>>24&255}function p(O,T,M,z){x(O,T,M,z)}function u(O,T,M,z){h(O,T,M,z)}var n=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function c(O,T,M,z,L,r,t){var H0=new Uint8Array(16),M0=new Uint8Array(64),o0,v0;for(v0=0;v0<16;v0++)H0[v0]=0;for(v0=0;v0<8;v0++)H0[v0]=r[v0];while(L>=64){p(M0,H0,t,n);for(v0=0;v0<64;v0++)O[T+v0]=M[z+v0]^M0[v0];o0=1;for(v0=8;v0<16;v0++)o0=o0+(H0[v0]&255)|0,H0[v0]=o0&255,o0>>>=8;L-=64,T+=64,z+=64}if(L>0){p(M0,H0,t,n);for(v0=0;v0<L;v0++)O[T+v0]=M[z+v0]^M0[v0]}return 0}function l(O,T,M,z,L){var r=new Uint8Array(16),t=new Uint8Array(64),H0,M0;for(M0=0;M0<16;M0++)r[M0]=0;for(M0=0;M0<8;M0++)r[M0]=z[M0];while(M>=64){p(t,r,L,n);for(M0=0;M0<64;M0++)O[T+M0]=t[M0];H0=1;for(M0=8;M0<16;M0++)H0=H0+(r[M0]&255)|0,r[M0]=H0&255,H0>>>=8;M-=64,T+=64}if(M>0){p(t,r,L,n);for(M0=0;M0<M;M0++)O[T+M0]=t[M0]}return 0}function W0(O,T,M,z,L){var r=new Uint8Array(32);u(r,z,L,n);var t=new Uint8Array(8);for(var H0=0;H0<8;H0++)t[H0]=z[H0+16];return l(O,T,M,t,r)}function m(O,T,M,z,L,r,t){var H0=new Uint8Array(32);u(H0,r,t,n);var M0=new Uint8Array(8);for(var o0=0;o0<8;o0++)M0[o0]=r[o0+16];return c(O,T,M,z,L,M0,H0)}var Y0=function(O){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var T,M,z,L,r,t,H0,M0;T=O[0]&255|(O[1]&255)<<8,this.r[0]=T&8191,M=O[2]&255|(O[3]&255)<<8,this.r[1]=(T>>>13|M<<3)&8191,z=O[4]&255|(O[5]&255)<<8,this.r[2]=(M>>>10|z<<6)&7939,L=O[6]&255|(O[7]&255)<<8,this.r[3]=(z>>>7|L<<9)&8191,r=O[8]&255|(O[9]&255)<<8,this.r[4]=(L>>>4|r<<12)&255,this.r[5]=r>>>1&8190,t=O[10]&255|(O[11]&255)<<8,this.r[6]=(r>>>14|t<<2)&8191,H0=O[12]&255|(O[13]&255)<<8,this.r[7]=(t>>>11|H0<<5)&8065,M0=O[14]&255|(O[15]&255)<<8,this.r[8]=(H0>>>8|M0<<8)&8191,this.r[9]=M0>>>5&127,this.pad[0]=O[16]&255|(O[17]&255)<<8,this.pad[1]=O[18]&255|(O[19]&255)<<8,this.pad[2]=O[20]&255|(O[21]&255)<<8,this.pad[3]=O[22]&255|(O[23]&255)<<8,this.pad[4]=O[24]&255|(O[25]&255)<<8,this.pad[5]=O[26]&255|(O[27]&255)<<8,this.pad[6]=O[28]&255|(O[29]&255)<<8,this.pad[7]=O[30]&255|(O[31]&255)<<8};Y0.prototype.blocks=function(O,T,M){var z=this.fin?0:2048,L,r,t,H0,M0,o0,v0,c1,m0,N1,H1,P1,D1,A1,w1,z1,c0,a0,u0,l0=this.h[0],d0=this.h[1],_0=this.h[2],Z0=this.h[3],V0=this.h[4],I0=this.h[5],q0=this.h[6],A0=this.h[7],O0=this.h[8],J1=this.h[9],R1=this.r[0],B1=this.r[1],L1=this.r[2],g=this.r[3],F1=this.r[4],p1=this.r[5],l1=this.r[6],E1=this.r[7],b1=this.r[8],m1=this.r[9];while(M>=16)L=O[T+0]&255|(O[T+1]&255)<<8,l0+=L&8191,r=O[T+2]&255|(O[T+3]&255)<<8,d0+=(L>>>13|r<<3)&8191,t=O[T+4]&255|(O[T+5]&255)<<8,_0+=(r>>>10|t<<6)&8191,H0=O[T+6]&255|(O[T+7]&255)<<8,Z0+=(t>>>7|H0<<9)&8191,M0=O[T+8]&255|(O[T+9]&255)<<8,V0+=(H0>>>4|M0<<12)&8191,I0+=M0>>>1&8191,o0=O[T+10]&255|(O[T+11]&255)<<8,q0+=(M0>>>14|o0<<2)&8191,v0=O[T+12]&255|(O[T+13]&255)<<8,A0+=(o0>>>11|v0<<5)&8191,c1=O[T+14]&255|(O[T+15]&255)<<8,O0+=(v0>>>8|c1<<8)&8191,J1+=c1>>>5|z,m0=0,N1=m0,N1+=l0*R1,N1+=d0*(5*m1),N1+=_0*(5*b1),N1+=Z0*(5*E1),N1+=V0*(5*l1),m0=N1>>>13,N1&=8191,N1+=I0*(5*p1),N1+=q0*(5*F1),N1+=A0*(5*g),N1+=O0*(5*L1),N1+=J1*(5*B1),m0+=N1>>>13,N1&=8191,H1=m0,H1+=l0*B1,H1+=d0*R1,H1+=_0*(5*m1),H1+=Z0*(5*b1),H1+=V0*(5*E1),m0=H1>>>13,H1&=8191,H1+=I0*(5*l1),H1+=q0*(5*p1),H1+=A0*(5*F1),H1+=O0*(5*g),H1+=J1*(5*L1),m0+=H1>>>13,H1&=8191,P1=m0,P1+=l0*L1,P1+=d0*B1,P1+=_0*R1,P1+=Z0*(5*m1),P1+=V0*(5*b1),m0=P1>>>13,P1&=8191,P1+=I0*(5*E1),P1+=q0*(5*l1),P1+=A0*(5*p1),P1+=O0*(5*F1),P1+=J1*(5*g),m0+=P1>>>13,P1&=8191,D1=m0,D1+=l0*g,D1+=d0*L1,D1+=_0*B1,D1+=Z0*R1,D1+=V0*(5*m1),m0=D1>>>13,D1&=8191,D1+=I0*(5*b1),D1+=q0*(5*E1),D1+=A0*(5*l1),D1+=O0*(5*p1),D1+=J1*(5*F1),m0+=D1>>>13,D1&=8191,A1=m0,A1+=l0*F1,A1+=d0*g,A1+=_0*L1,A1+=Z0*B1,A1+=V0*R1,m0=A1>>>13,A1&=8191,A1+=I0*(5*m1),A1+=q0*(5*b1),A1+=A0*(5*E1),A1+=O0*(5*l1),A1+=J1*(5*p1),m0+=A1>>>13,A1&=8191,w1=m0,w1+=l0*p1,w1+=d0*F1,w1+=_0*g,w1+=Z0*L1,w1+=V0*B1,m0=w1>>>13,w1&=8191,w1+=I0*R1,w1+=q0*(5*m1),w1+=A0*(5*b1),w1+=O0*(5*E1),w1+=J1*(5*l1),m0+=w1>>>13,w1&=8191,z1=m0,z1+=l0*l1,z1+=d0*p1,z1+=_0*F1,z1+=Z0*g,z1+=V0*L1,m0=z1>>>13,z1&=8191,z1+=I0*B1,z1+=q0*R1,z1+=A0*(5*m1),z1+=O0*(5*b1),z1+=J1*(5*E1),m0+=z1>>>13,z1&=8191,c0=m0,c0+=l0*E1,c0+=d0*l1,c0+=_0*p1,c0+=Z0*F1,c0+=V0*g,m0=c0>>>13,c0&=8191,c0+=I0*L1,c0+=q0*B1,c0+=A0*R1,c0+=O0*(5*m1),c0+=J1*(5*b1),m0+=c0>>>13,c0&=8191,a0=m0,a0+=l0*b1,a0+=d0*E1,a0+=_0*l1,a0+=Z0*p1,a0+=V0*F1,m0=a0>>>13,a0&=8191,a0+=I0*g,a0+=q0*L1,a0+=A0*B1,a0+=O0*R1,a0+=J1*(5*m1),m0+=a0>>>13,a0&=8191,u0=m0,u0+=l0*m1,u0+=d0*b1,u0+=_0*E1,u0+=Z0*l1,u0+=V0*p1,m0=u0>>>13,u0&=8191,u0+=I0*F1,u0+=q0*g,u0+=A0*L1,u0+=O0*B1,u0+=J1*R1,m0+=u0>>>13,u0&=8191,m0=(m0<<2)+m0|0,m0=m0+N1|0,N1=m0&8191,m0=m0>>>13,H1+=m0,l0=N1,d0=H1,_0=P1,Z0=D1,V0=A1,I0=w1,q0=z1,A0=c0,O0=a0,J1=u0,T+=16,M-=16;this.h[0]=l0,this.h[1]=d0,this.h[2]=_0,this.h[3]=Z0,this.h[4]=V0,this.h[5]=I0,this.h[6]=q0,this.h[7]=A0,this.h[8]=O0,this.h[9]=J1},Y0.prototype.finish=function(O,T){var M=new Uint16Array(10),z,L,r,t;if(this.leftover){t=this.leftover,this.buffer[t++]=1;for(;t<16;t++)this.buffer[t]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(t=2;t<10;t++)this.h[t]+=z,z=this.h[t]>>>13,this.h[t]&=8191;this.h[0]+=z*5,z=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=z,z=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=z,M[0]=this.h[0]+5,z=M[0]>>>13,M[0]&=8191;for(t=1;t<10;t++)M[t]=this.h[t]+z,z=M[t]>>>13,M[t]&=8191;M[9]-=8192,L=(z^1)-1;for(t=0;t<10;t++)M[t]&=L;L=~L;for(t=0;t<10;t++)this.h[t]=this.h[t]&L|M[t];this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,r=this.h[0]+this.pad[0],this.h[0]=r&65535;for(t=1;t<8;t++)r=(this.h[t]+this.pad[t]|0)+(r>>>16)|0,this.h[t]=r&65535;O[T+0]=this.h[0]>>>0&255,O[T+1]=this.h[0]>>>8&255,O[T+2]=this.h[1]>>>0&255,O[T+3]=this.h[1]>>>8&255,O[T+4]=this.h[2]>>>0&255,O[T+5]=this.h[2]>>>8&255,O[T+6]=this.h[3]>>>0&255,O[T+7]=this.h[3]>>>8&255,O[T+8]=this.h[4]>>>0&255,O[T+9]=this.h[4]>>>8&255,O[T+10]=this.h[5]>>>0&255,O[T+11]=this.h[5]>>>8&255,O[T+12]=this.h[6]>>>0&255,O[T+13]=this.h[6]>>>8&255,O[T+14]=this.h[7]>>>0&255,O[T+15]=this.h[7]>>>8&255},Y0.prototype.update=function(O,T,M){var z,L;if(this.leftover){if(L=16-this.leftover,L>M)L=M;for(z=0;z<L;z++)this.buffer[this.leftover+z]=O[T+z];if(M-=L,T+=L,this.leftover+=L,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(M>=16)L=M-M%16,this.blocks(O,T,L),T+=L,M-=L;if(M){for(z=0;z<M;z++)this.buffer[this.leftover+z]=O[T+z];this.leftover+=M}};function U0(O,T,M,z,L,r){var t=new Y0(r);return t.update(M,z,L),t.finish(O,T),0}function y(O,T,M,z,L,r){var t=new Uint8Array(16);return U0(t,0,M,z,L,r),C(O,T,t,0)}function o(O,T,M,z,L){var r;if(M<32)return-1;m(O,0,T,0,M,z,L),U0(O,16,O,32,M-32,O);for(r=0;r<16;r++)O[r]=0;return 0}function B(O,T,M,z,L){var r,t=new Uint8Array(32);if(M<32)return-1;if(W0(t,0,32,z,L),y(T,16,T,32,M-32,t)!==0)return-1;m(O,0,T,0,M,z,L);for(r=0;r<32;r++)O[r]=0;return 0}function R(O,T){var M;for(M=0;M<16;M++)O[M]=T[M]|0}function _(O){var T,M,z=1;for(T=0;T<16;T++)M=O[T]+z+65535,z=Math.floor(M/65536),O[T]=M-z*65536;O[0]+=z-1+37*(z-1)}function S(O,T,M){var z,L=~(M-1);for(var r=0;r<16;r++)z=L&(O[r]^T[r]),O[r]^=z,T[r]^=z}function v(O,T){var M,z,L,r=G(),t=G();for(M=0;M<16;M++)t[M]=T[M];_(t),_(t),_(t);for(z=0;z<2;z++){r[0]=t[0]-65517;for(M=1;M<15;M++)r[M]=t[M]-65535-(r[M-1]>>16&1),r[M-1]&=65535;r[15]=t[15]-32767-(r[14]>>16&1),L=r[15]>>16&1,r[14]&=65535,S(t,r,1-L)}for(M=0;M<16;M++)O[2*M]=t[M]&255,O[2*M+1]=t[M]>>8}function P(O,T){var M=new Uint8Array(32),z=new Uint8Array(32);return v(M,O),v(z,T),D(M,0,z,0)}function E(O){var T=new Uint8Array(32);return v(T,O),T[0]&1}function b(O,T){var M;for(M=0;M<16;M++)O[M]=T[2*M]+(T[2*M+1]<<8);O[15]&=32767}function k(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]+M[z]}function f(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]-M[z]}function e(O,T,M){var z,L,r=0,t=0,H0=0,M0=0,o0=0,v0=0,c1=0,m0=0,N1=0,H1=0,P1=0,D1=0,A1=0,w1=0,z1=0,c0=0,a0=0,u0=0,l0=0,d0=0,_0=0,Z0=0,V0=0,I0=0,q0=0,A0=0,O0=0,J1=0,R1=0,B1=0,L1=0,g=M[0],F1=M[1],p1=M[2],l1=M[3],E1=M[4],b1=M[5],m1=M[6],F8=M[7],t1=M[8],D8=M[9],M8=M[10],T8=M[11],u8=M[12],U9=M[13],N9=M[14],q9=M[15];z=T[0],r+=z*g,t+=z*F1,H0+=z*p1,M0+=z*l1,o0+=z*E1,v0+=z*b1,c1+=z*m1,m0+=z*F8,N1+=z*t1,H1+=z*D8,P1+=z*M8,D1+=z*T8,A1+=z*u8,w1+=z*U9,z1+=z*N9,c0+=z*q9,z=T[1],t+=z*g,H0+=z*F1,M0+=z*p1,o0+=z*l1,v0+=z*E1,c1+=z*b1,m0+=z*m1,N1+=z*F8,H1+=z*t1,P1+=z*D8,D1+=z*M8,A1+=z*T8,w1+=z*u8,z1+=z*U9,c0+=z*N9,a0+=z*q9,z=T[2],H0+=z*g,M0+=z*F1,o0+=z*p1,v0+=z*l1,c1+=z*E1,m0+=z*b1,N1+=z*m1,H1+=z*F8,P1+=z*t1,D1+=z*D8,A1+=z*M8,w1+=z*T8,z1+=z*u8,c0+=z*U9,a0+=z*N9,u0+=z*q9,z=T[3],M0+=z*g,o0+=z*F1,v0+=z*p1,c1+=z*l1,m0+=z*E1,N1+=z*b1,H1+=z*m1,P1+=z*F8,D1+=z*t1,A1+=z*D8,w1+=z*M8,z1+=z*T8,c0+=z*u8,a0+=z*U9,u0+=z*N9,l0+=z*q9,z=T[4],o0+=z*g,v0+=z*F1,c1+=z*p1,m0+=z*l1,N1+=z*E1,H1+=z*b1,P1+=z*m1,D1+=z*F8,A1+=z*t1,w1+=z*D8,z1+=z*M8,c0+=z*T8,a0+=z*u8,u0+=z*U9,l0+=z*N9,d0+=z*q9,z=T[5],v0+=z*g,c1+=z*F1,m0+=z*p1,N1+=z*l1,H1+=z*E1,P1+=z*b1,D1+=z*m1,A1+=z*F8,w1+=z*t1,z1+=z*D8,c0+=z*M8,a0+=z*T8,u0+=z*u8,l0+=z*U9,d0+=z*N9,_0+=z*q9,z=T[6],c1+=z*g,m0+=z*F1,N1+=z*p1,H1+=z*l1,P1+=z*E1,D1+=z*b1,A1+=z*m1,w1+=z*F8,z1+=z*t1,c0+=z*D8,a0+=z*M8,u0+=z*T8,l0+=z*u8,d0+=z*U9,_0+=z*N9,Z0+=z*q9,z=T[7],m0+=z*g,N1+=z*F1,H1+=z*p1,P1+=z*l1,D1+=z*E1,A1+=z*b1,w1+=z*m1,z1+=z*F8,c0+=z*t1,a0+=z*D8,u0+=z*M8,l0+=z*T8,d0+=z*u8,_0+=z*U9,Z0+=z*N9,V0+=z*q9,z=T[8],N1+=z*g,H1+=z*F1,P1+=z*p1,D1+=z*l1,A1+=z*E1,w1+=z*b1,z1+=z*m1,c0+=z*F8,a0+=z*t1,u0+=z*D8,l0+=z*M8,d0+=z*T8,_0+=z*u8,Z0+=z*U9,V0+=z*N9,I0+=z*q9,z=T[9],H1+=z*g,P1+=z*F1,D1+=z*p1,A1+=z*l1,w1+=z*E1,z1+=z*b1,c0+=z*m1,a0+=z*F8,u0+=z*t1,l0+=z*D8,d0+=z*M8,_0+=z*T8,Z0+=z*u8,V0+=z*U9,I0+=z*N9,q0+=z*q9,z=T[10],P1+=z*g,D1+=z*F1,A1+=z*p1,w1+=z*l1,z1+=z*E1,c0+=z*b1,a0+=z*m1,u0+=z*F8,l0+=z*t1,d0+=z*D8,_0+=z*M8,Z0+=z*T8,V0+=z*u8,I0+=z*U9,q0+=z*N9,A0+=z*q9,z=T[11],D1+=z*g,A1+=z*F1,w1+=z*p1,z1+=z*l1,c0+=z*E1,a0+=z*b1,u0+=z*m1,l0+=z*F8,d0+=z*t1,_0+=z*D8,Z0+=z*M8,V0+=z*T8,I0+=z*u8,q0+=z*U9,A0+=z*N9,O0+=z*q9,z=T[12],A1+=z*g,w1+=z*F1,z1+=z*p1,c0+=z*l1,a0+=z*E1,u0+=z*b1,l0+=z*m1,d0+=z*F8,_0+=z*t1,Z0+=z*D8,V0+=z*M8,I0+=z*T8,q0+=z*u8,A0+=z*U9,O0+=z*N9,J1+=z*q9,z=T[13],w1+=z*g,z1+=z*F1,c0+=z*p1,a0+=z*l1,u0+=z*E1,l0+=z*b1,d0+=z*m1,_0+=z*F8,Z0+=z*t1,V0+=z*D8,I0+=z*M8,q0+=z*T8,A0+=z*u8,O0+=z*U9,J1+=z*N9,R1+=z*q9,z=T[14],z1+=z*g,c0+=z*F1,a0+=z*p1,u0+=z*l1,l0+=z*E1,d0+=z*b1,_0+=z*m1,Z0+=z*F8,V0+=z*t1,I0+=z*D8,q0+=z*M8,A0+=z*T8,O0+=z*u8,J1+=z*U9,R1+=z*N9,B1+=z*q9,z=T[15],c0+=z*g,a0+=z*F1,u0+=z*p1,l0+=z*l1,d0+=z*E1,_0+=z*b1,Z0+=z*m1,V0+=z*F8,I0+=z*t1,q0+=z*D8,A0+=z*M8,O0+=z*T8,J1+=z*u8,R1+=z*U9,B1+=z*N9,L1+=z*q9,r+=38*a0,t+=38*u0,H0+=38*l0,M0+=38*d0,o0+=38*_0,v0+=38*Z0,c1+=38*V0,m0+=38*I0,N1+=38*q0,H1+=38*A0,P1+=38*O0,D1+=38*J1,A1+=38*R1,w1+=38*B1,z1+=38*L1,L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=o0+L+65535,L=Math.floor(z/65536),o0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=c1+L+65535,L=Math.floor(z/65536),c1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=N1+L+65535,L=Math.floor(z/65536),N1=z-L*65536,z=H1+L+65535,L=Math.floor(z/65536),H1=z-L*65536,z=P1+L+65535,L=Math.floor(z/65536),P1=z-L*65536,z=D1+L+65535,L=Math.floor(z/65536),D1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=o0+L+65535,L=Math.floor(z/65536),o0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=c1+L+65535,L=Math.floor(z/65536),c1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=N1+L+65535,L=Math.floor(z/65536),N1=z-L*65536,z=H1+L+65535,L=Math.floor(z/65536),H1=z-L*65536,z=P1+L+65535,L=Math.floor(z/65536),P1=z-L*65536,z=D1+L+65535,L=Math.floor(z/65536),D1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),O[0]=r,O[1]=t,O[2]=H0,O[3]=M0,O[4]=o0,O[5]=v0,O[6]=c1,O[7]=m0,O[8]=N1,O[9]=H1,O[10]=P1,O[11]=D1,O[12]=A1,O[13]=w1,O[14]=z1,O[15]=c0}function N0(O,T){e(O,T,T)}function Q0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=253;z>=0;z--)if(N0(M,M),z!==2&&z!==4)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function $0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=250;z>=0;z--)if(N0(M,M),z!==1)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function D0(O,T,M){var z=new Uint8Array(32),L=new Float64Array(80),r,t,H0=G(),M0=G(),o0=G(),v0=G(),c1=G(),m0=G();for(t=0;t<31;t++)z[t]=T[t];z[31]=T[31]&127|64,z[0]&=248,b(L,M);for(t=0;t<16;t++)M0[t]=L[t],v0[t]=H0[t]=o0[t]=0;H0[0]=v0[0]=1;for(t=254;t>=0;--t)r=z[t>>>3]>>>(t&7)&1,S(H0,M0,r),S(o0,v0,r),k(c1,H0,o0),f(H0,H0,o0),k(o0,M0,v0),f(M0,M0,v0),N0(v0,c1),N0(m0,H0),e(H0,o0,H0),e(o0,M0,c1),k(c1,H0,o0),f(H0,H0,o0),N0(M0,H0),f(o0,v0,m0),e(H0,o0,J),k(H0,H0,v0),e(o0,o0,H0),e(H0,v0,m0),e(v0,M0,L),N0(M0,c1),S(H0,M0,r),S(o0,v0,r);for(t=0;t<16;t++)L[t+16]=H0[t],L[t+32]=o0[t],L[t+48]=M0[t],L[t+64]=v0[t];var N1=L.subarray(32),H1=L.subarray(16);return Q0(N1,N1),e(H1,H1,N1),v(O,H1),0}function x0(O,T){return D0(O,T,Z)}function q1(O,T){return X(T,32),x0(O,T)}function U1(O,T,M){var z=new Uint8Array(32);return D0(z,M,T),u(O,Y,z,n)}var J0=o,B0=B;function h0(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),J0(O,T,M,z,t)}function Y1(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),B0(O,T,M,z,t)}var w8=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function x1(O,T,M,z){var L=new Int32Array(16),r=new Int32Array(16),t,H0,M0,o0,v0,c1,m0,N1,H1,P1,D1,A1,w1,z1,c0,a0,u0,l0,d0,_0,Z0,V0,I0,q0,A0,O0,J1=O[0],R1=O[1],B1=O[2],L1=O[3],g=O[4],F1=O[5],p1=O[6],l1=O[7],E1=T[0],b1=T[1],m1=T[2],F8=T[3],t1=T[4],D8=T[5],M8=T[6],T8=T[7],u8=0;while(z>=128){for(d0=0;d0<16;d0++)_0=8*d0+u8,L[d0]=M[_0+0]<<24|M[_0+1]<<16|M[_0+2]<<8|M[_0+3],r[d0]=M[_0+4]<<24|M[_0+5]<<16|M[_0+6]<<8|M[_0+7];for(d0=0;d0<80;d0++)if(t=J1,H0=R1,M0=B1,o0=L1,v0=g,c1=F1,m0=p1,N1=l1,H1=E1,P1=b1,D1=m1,A1=F8,w1=t1,z1=D8,c0=M8,a0=T8,Z0=l1,V0=T8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(g>>>14|t1<<18)^(g>>>18|t1<<14)^(t1>>>9|g<<23),V0=(t1>>>14|g<<18)^(t1>>>18|g<<14)^(g>>>9|t1<<23),I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=g&F1^~g&p1,V0=t1&D8^~t1&M8,I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=w8[d0*2],V0=w8[d0*2+1],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=L[d0%16],V0=r[d0%16],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,u0=A0&65535|O0<<16,l0=I0&65535|q0<<16,Z0=u0,V0=l0,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(J1>>>28|E1<<4)^(E1>>>2|J1<<30)^(E1>>>7|J1<<25),V0=(E1>>>28|J1<<4)^(J1>>>2|E1<<30)^(J1>>>7|E1<<25),I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=J1&R1^J1&B1^R1&B1,V0=E1&b1^E1&m1^b1&m1,I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,N1=A0&65535|O0<<16,a0=I0&65535|q0<<16,Z0=o0,V0=A1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=u0,V0=l0,I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,o0=A0&65535|O0<<16,A1=I0&65535|q0<<16,R1=t,B1=H0,L1=M0,g=o0,F1=v0,p1=c1,l1=m0,J1=N1,b1=H1,m1=P1,F8=D1,t1=A1,D8=w1,M8=z1,T8=c0,E1=a0,d0%16===15)for(_0=0;_0<16;_0++)Z0=L[_0],V0=r[_0],I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=L[(_0+9)%16],V0=r[(_0+9)%16],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+1)%16],l0=r[(_0+1)%16],Z0=(u0>>>1|l0<<31)^(u0>>>8|l0<<24)^u0>>>7,V0=(l0>>>1|u0<<31)^(l0>>>8|u0<<24)^(l0>>>7|u0<<25),I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+14)%16],l0=r[(_0+14)%16],Z0=(u0>>>19|l0<<13)^(l0>>>29|u0<<3)^u0>>>6,V0=(l0>>>19|u0<<13)^(u0>>>29|l0<<3)^(l0>>>6|u0<<26),I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,L[_0]=A0&65535|O0<<16,r[_0]=I0&65535|q0<<16;Z0=J1,V0=E1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[0],V0=T[0],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[0]=J1=A0&65535|O0<<16,T[0]=E1=I0&65535|q0<<16,Z0=R1,V0=b1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[1],V0=T[1],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[1]=R1=A0&65535|O0<<16,T[1]=b1=I0&65535|q0<<16,Z0=B1,V0=m1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[2],V0=T[2],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[2]=B1=A0&65535|O0<<16,T[2]=m1=I0&65535|q0<<16,Z0=L1,V0=F8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[3],V0=T[3],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[3]=L1=A0&65535|O0<<16,T[3]=F8=I0&65535|q0<<16,Z0=g,V0=t1,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[4],V0=T[4],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[4]=g=A0&65535|O0<<16,T[4]=t1=I0&65535|q0<<16,Z0=F1,V0=D8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[5],V0=T[5],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[5]=F1=A0&65535|O0<<16,T[5]=D8=I0&65535|q0<<16,Z0=p1,V0=M8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[6],V0=T[6],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[6]=p1=A0&65535|O0<<16,T[6]=M8=I0&65535|q0<<16,Z0=l1,V0=T8,I0=V0&65535,q0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[7],V0=T[7],I0+=V0&65535,q0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,q0+=I0>>>16,A0+=q0>>>16,O0+=A0>>>16,O[7]=l1=A0&65535|O0<<16,T[7]=T8=I0&65535|q0<<16,u8+=128,z-=128}return z}function E0(O,T,M){var z=new Int32Array(8),L=new Int32Array(8),r=new Uint8Array(256),t,H0=M;z[0]=1779033703,z[1]=3144134277,z[2]=1013904242,z[3]=2773480762,z[4]=1359893119,z[5]=2600822924,z[6]=528734635,z[7]=1541459225,L[0]=4089235720,L[1]=2227873595,L[2]=4271175723,L[3]=1595750129,L[4]=2917565137,L[5]=725511199,L[6]=4215389547,L[7]=327033209,x1(z,L,T,M),M%=128;for(t=0;t<M;t++)r[t]=T[H0-M+t];r[M]=128,M=256-128*(M<112?1:0),r[M-9]=0,I(r,M-8,H0/536870912|0,H0<<3),x1(z,L,r,M);for(t=0;t<8;t++)I(O,8*t,z[t],L[t]);return 0}function n0(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G(),o0=G(),v0=G();f(M,O[1],O[0]),f(v0,T[1],T[0]),e(M,M,v0),k(z,O[0],O[1]),k(v0,T[0],T[1]),e(z,z,v0),e(L,O[3],T[3]),e(L,L,N),e(r,O[2],T[2]),k(r,r,r),f(t,z,M),f(H0,r,L),k(M0,r,L),k(o0,z,M),e(O[0],t,H0),e(O[1],o0,M0),e(O[2],M0,H0),e(O[3],t,o0)}function O1(O,T,M){var z;for(z=0;z<4;z++)S(O[z],T[z],M)}function $1(O,T){var M=G(),z=G(),L=G();Q0(L,T[2]),e(M,T[0],L),e(z,T[1],L),v(O,z),O[31]^=E(M)<<7}function U8(O,T,M){var z,L;R(O[0],V),R(O[1],Q),R(O[2],Q),R(O[3],V);for(L=255;L>=0;--L)z=M[L/8|0]>>(L&7)&1,O1(O,T,z),n0(T,O),n0(O,O),O1(O,T,z)}function H8(O,T){var M=[G(),G(),G(),G()];R(M[0],q),R(M[1],A),R(M[2],Q),e(M[3],q,A),U8(O,M,T)}function A8(O,T,M){var z=new Uint8Array(64),L=[G(),G(),G(),G()],r;if(!M)X(T,32);E0(z,T,32),z[0]&=248,z[31]&=127,z[31]|=64,H8(L,z),$1(O,L);for(r=0;r<32;r++)T[r+32]=O[r];return 0}var K1=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function j8(O,T){var M,z,L,r;for(z=63;z>=32;--z){M=0;for(L=z-32,r=z-12;L<r;++L)T[L]+=M-16*T[z]*K1[L-(z-32)],M=Math.floor((T[L]+128)/256),T[L]-=M*256;T[L]+=M,T[z]=0}M=0;for(L=0;L<32;L++)T[L]+=M-(T[31]>>4)*K1[L],M=T[L]>>8,T[L]&=255;for(L=0;L<32;L++)T[L]-=M*K1[L];for(z=0;z<32;z++)T[z+1]+=T[z]>>8,O[z]=T[z]&255}function k5(O){var T=new Float64Array(64),M;for(M=0;M<64;M++)T[M]=O[M];for(M=0;M<64;M++)O[M]=0;j8(O,T)}function HW(O,T,M,z){var L=new Uint8Array(64),r=new Uint8Array(64),t=new Uint8Array(64),H0,M0,o0=new Float64Array(64),v0=[G(),G(),G(),G()];E0(L,z,32),L[0]&=248,L[31]&=127,L[31]|=64;var c1=M+64;for(H0=0;H0<M;H0++)O[64+H0]=T[H0];for(H0=0;H0<32;H0++)O[32+H0]=L[32+H0];E0(t,O.subarray(32),M+32),k5(t),H8(v0,t),$1(O,v0);for(H0=32;H0<64;H0++)O[H0]=z[H0];E0(r,O,M+64),k5(r);for(H0=0;H0<64;H0++)o0[H0]=0;for(H0=0;H0<32;H0++)o0[H0]=t[H0];for(H0=0;H0<32;H0++)for(M0=0;M0<32;M0++)o0[H0+M0]+=r[H0]*L[M0];return j8(O.subarray(32),o0),c1}function QZ(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G();if(R(O[2],Q),b(O[1],T),N0(L,O[1]),e(r,L,U),f(L,L,O[2]),k(r,O[2],r),N0(t,r),N0(H0,t),e(M0,H0,t),e(M,M0,L),e(M,M,r),$0(M,M),e(M,M,L),e(M,M,r),e(M,M,r),e(O[0],M,r),N0(z,O[0]),e(z,z,r),P(z,L))e(O[0],O[0],H);if(N0(z,O[0]),e(z,z,r),P(z,L))return-1;if(E(O[0])===T[31]>>7)f(O[0],V,O[0]);return e(O[3],O[0],O[1]),0}function i7(O,T,M,z){var L,r=new Uint8Array(32),t=new Uint8Array(64),H0=[G(),G(),G(),G()],M0=[G(),G(),G(),G()];if(M<64)return-1;if(QZ(M0,z))return-1;for(L=0;L<M;L++)O[L]=T[L];for(L=0;L<32;L++)O[L+32]=z[L];if(E0(t,O,M),k5(t),U8(H0,M0,t),H8(M0,T.subarray(32)),n0(H0,M0),$1(r,H0),M-=64,D(T,0,r,0)){for(L=0;L<M;L++)O[L]=0;return-1}for(L=0;L<M;L++)O[L]=T[L+64];return M}var i=32,$=24,d=32,X0=16,w0=32,e0=32,C1=32,r0=32,K0=32,F0=$,g0=d,k0=X0,Q1=64,X1=32,k1=64,n1=32,Q7=64;W.lowlevel={crypto_core_hsalsa20:u,crypto_stream_xor:m,crypto_stream:W0,crypto_stream_salsa20_xor:c,crypto_stream_salsa20:l,crypto_onetimeauth:U0,crypto_onetimeauth_verify:y,crypto_verify_16:C,crypto_verify_32:D,crypto_secretbox:o,crypto_secretbox_open:B,crypto_scalarmult:D0,crypto_scalarmult_base:x0,crypto_box_beforenm:U1,crypto_box_afternm:J0,crypto_box:h0,crypto_box_open:Y1,crypto_box_keypair:q1,crypto_hash:E0,crypto_sign:HW,crypto_sign_keypair:A8,crypto_sign_open:i7,crypto_secretbox_KEYBYTES:i,crypto_secretbox_NONCEBYTES:$,crypto_secretbox_ZEROBYTES:d,crypto_secretbox_BOXZEROBYTES:X0,crypto_scalarmult_BYTES:w0,crypto_scalarmult_SCALARBYTES:e0,crypto_box_PUBLICKEYBYTES:C1,crypto_box_SECRETKEYBYTES:r0,crypto_box_BEFORENMBYTES:K0,crypto_box_NONCEBYTES:F0,crypto_box_ZEROBYTES:g0,crypto_box_BOXZEROBYTES:k0,crypto_sign_BYTES:Q1,crypto_sign_PUBLICKEYBYTES:X1,crypto_sign_SECRETKEYBYTES:k1,crypto_sign_SEEDBYTES:n1,crypto_hash_BYTES:Q7,gf:G,D:U,L:K1,pack25519:v,unpack25519:b,M:e,A:k,S:N0,Z:f,pow2523:$0,add:n0,set25519:R,modL:j8,scalarmult:U8,scalarbase:H8};function AW(O,T){if(O.length!==i)throw Error("bad key size");if(T.length!==$)throw Error("bad nonce size")}function JZ(O,T){if(O.length!==C1)throw Error("bad public key size");if(T.length!==r0)throw Error("bad secret key size")}function J9(){for(var O=0;O<arguments.length;O++)if(!(arguments[O]instanceof Uint8Array))throw TypeError("unexpected type, use Uint8Array")}function _J(O){for(var T=0;T<O.length;T++)O[T]=0}W.randomBytes=function(O){var T=new Uint8Array(O);return X(T,O),T},W.secretbox=function(O,T,M){J9(O,T,M),AW(M,T);var z=new Uint8Array(d+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+d]=O[r];return o(L,z,z.length,T,M),L.subarray(X0)},W.secretbox.open=function(O,T,M){J9(O,T,M),AW(M,T);var z=new Uint8Array(X0+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+X0]=O[r];if(z.length<32)return null;if(B(L,z,z.length,T,M)!==0)return null;return L.subarray(d)},W.secretbox.keyLength=i,W.secretbox.nonceLength=$,W.secretbox.overheadLength=X0,W.scalarMult=function(O,T){if(J9(O,T),O.length!==e0)throw Error("bad n size");if(T.length!==w0)throw Error("bad p size");var M=new Uint8Array(w0);return D0(M,O,T),M},W.scalarMult.base=function(O){if(J9(O),O.length!==e0)throw Error("bad n size");var T=new Uint8Array(w0);return x0(T,O),T},W.scalarMult.scalarLength=e0,W.scalarMult.groupElementLength=w0,W.box=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox(O,T,L)},W.box.before=function(O,T){J9(O,T),JZ(O,T);var M=new Uint8Array(K0);return U1(M,O,T),M},W.box.after=W.secretbox,W.box.open=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox.open(O,T,L)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var O=new Uint8Array(C1),T=new Uint8Array(r0);return q1(O,T),{publicKey:O,secretKey:T}},W.box.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==r0)throw Error("bad secret key size");var T=new Uint8Array(C1);return x0(T,O),{publicKey:T,secretKey:new Uint8Array(O)}},W.box.publicKeyLength=C1,W.box.secretKeyLength=r0,W.box.sharedKeyLength=K0,W.box.nonceLength=F0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(O,T){if(J9(O,T),T.length!==k1)throw Error("bad secret key size");var M=new Uint8Array(Q1+O.length);return HW(M,O,O.length,T),M},W.sign.open=function(O,T){if(J9(O,T),T.length!==X1)throw Error("bad public key size");var M=new Uint8Array(O.length),z=i7(M,O,O.length,T);if(z<0)return null;var L=new Uint8Array(z);for(var r=0;r<L.length;r++)L[r]=M[r];return L},W.sign.detached=function(O,T){var M=W.sign(O,T),z=new Uint8Array(Q1);for(var L=0;L<z.length;L++)z[L]=M[L];return z},W.sign.detached.verify=function(O,T,M){if(J9(O,T,M),T.length!==Q1)throw Error("bad signature size");if(M.length!==X1)throw Error("bad public key size");var z=new Uint8Array(Q1+O.length),L=new Uint8Array(Q1+O.length),r;for(r=0;r<Q1;r++)z[r]=T[r];for(r=0;r<O.length;r++)z[r+Q1]=O[r];return i7(L,z,z.length,M)>=0},W.sign.keyPair=function(){var O=new Uint8Array(X1),T=new Uint8Array(k1);return A8(O,T),{publicKey:O,secretKey:T}},W.sign.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==k1)throw Error("bad secret key size");var T=new Uint8Array(X1);for(var M=0;M<T.length;M++)T[M]=O[32+M];return{publicKey:T,secretKey:new Uint8Array(O)}},W.sign.keyPair.fromSeed=function(O){if(J9(O),O.length!==n1)throw Error("bad seed size");var T=new Uint8Array(X1),M=new Uint8Array(k1);for(var z=0;z<32;z++)M[z]=O[z];return A8(T,M,!0),{publicKey:T,secretKey:M}},W.sign.publicKeyLength=X1,W.sign.secretKeyLength=k1,W.sign.seedLength=n1,W.sign.signatureLength=Q1,W.hash=function(O){J9(O);var T=new Uint8Array(Q7);return E0(T,O,O.length),T},W.hash.hashLength=Q7,W.verify=function(O,T){if(J9(O,T),O.length===0||T.length===0)return!1;if(O.length!==T.length)return!1;return w(O,0,T,0,O.length)===0?!0:!1},W.setPRNG=function(O){X=O},function(){var O=typeof self<"u"?self.crypto||self.msCrypto:null;if(O&&O.getRandomValues){var T=65536;W.setPRNG(function(M,z){var L,r=new Uint8Array(z);for(L=0;L<z;L+=T)O.getRandomValues(r.subarray(L,L+Math.min(z-L,T)));for(L=0;L<z;L++)M[L]=r[L];_J(r)})}else if(O=S8("crypto"),O&&O.randomBytes)W.setPRNG(function(M,z){var L,r=O.randomBytes(z);for(L=0;L<z;L++)M[L]=r[L];_J(r)})}()})(typeof SU<"u"&&ve?ve:self.nacl=self.nacl||{})});var Bz=Z1((JT)=>{Object.defineProperty(JT,"__esModule",{value:!0});class QT{constructor(W,G=0,X=0){this.start=G,this.end=X>G?X:G,this.buf=W}get length(){return this.buf.length}reset(W=0,G=0){if(this.start=W,G>=this.start)this.end=G;else if(this.end<this.start)this.end=this.start;return this}walk(W){return this.start=this.end,this.end+=W,this}mustHas(W,G="Too few bytes to parse."){let X=this.end+W;if(X>this.buf.length){let Y=Error(G);throw Y.available=this.buf.length,Y.requested=X,Y}return this.walk(0),this}mustWalk(W,G){return this.mustHas(W,G),this.walk(W),this}}JT.BufferVisitor=QT});var HT=Z1((qT)=>{Object.defineProperty(qT,"__esModule",{value:!0});var UT=S8("util"),NT=64,$z="-----BEGIN ",Fz="-----END ",mZ="-----",Ez="Proc-Type";class Sz{static parse(W){let G=[],X=W.toString("utf8").split(`
8
8
  `).map((Y)=>Y.trim()).filter((Y)=>Y!==""&&!Y.startsWith("#"));while(X.length>0)G.push(Ob(X));if(G.length===0)throw Error("PEM: no block");return G}constructor(W,G){this.type=W,this.body=G,this.headers=Object.create(null)}get procType(){return this.getHeader(Ez)}getHeader(W){let G=this.headers[W];return G==null?"":G}setHeader(W,G){if(W.includes(":"))throw Error("pem: cannot encode a header key that contains a colon");if(W===""||G==="")throw Error("pem: invalid header key or value");this.headers[W]=G}toString(){let W=$z+this.type+mZ+`
9
9
  `,G=Object.keys(this.headers);if(G.length>0){let Z=this.procType;if(Z!=="")W+=`${Ez}: ${Z}
10
10
  `;G.sort();for(let V of G)if(V!==Ez)W+=`${V}: ${this.headers[V]}
@@ -24,7 +24,7 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
24
24
 
25
25
  See the Apache Version 2.0 License for specific language governing permissions
26
26
  and limitations under the License.
27
- ***************************************************************************** */var ST;(function(W){(function(G){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:J(),Y=Z(W);if(typeof X.Reflect<"u")Y=Z(X.Reflect,Y);if(G(Y,X),typeof X.Reflect>"u")X.Reflect=W;function Z(U,N){return function(q,A){if(Object.defineProperty(U,q,{configurable:!0,writable:!0,value:A}),N)N(q,A)}}function V(){try{return Function("return this;")()}catch(U){}}function Q(){try{return(0,eval)("(function() { return this; })()")}catch(U){}}function J(){return V()||Q()}})(function(G,X){var Y=Object.prototype.hasOwnProperty,Z=typeof Symbol==="function",V=Z&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",Q=Z&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",J=typeof Object.create==="function",U={__proto__:[]}instanceof Array,N=!J&&!U,q={create:J?function(){return i7(Object.create(null))}:U?function(){return i7({__proto__:null})}:function(){return i7({})},has:N?function(i,$){return Y.call(i,$)}:function(i,$){return $ in i},get:N?function(i,$){return Y.call(i,$)?i[$]:void 0}:function(i,$){return i[$]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:k5(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:HW(),w=typeof WeakMap==="function"?WeakMap:QZ(),C=Z?Symbol.for("@reflect-metadata:registry"):void 0,D=H8(),x=A8(D);function h(i,$,d,X0){if(!k(d)){if(!U1(i))throw TypeError();if(!N0($))throw TypeError();if(!N0(X0)&&!k(X0)&&!f(X0))throw TypeError();if(f(X0))X0=void 0;return d=q1(d),o(i,$,d,X0)}else{if(!U1(i))throw TypeError();if(!B0($))throw TypeError();return y(i,$)}}G("decorate",h);function l(i,$){function d(X0,w0){if(!N0(X0))throw TypeError();if(!k(w0)&&!h0(w0))throw TypeError();v(i,$,X0,w0)}return d}G("metadata",l);function u(i,$,d,X0){if(!N0(d))throw TypeError();if(!k(X0))X0=q1(X0);return v(i,$,d,X0)}G("defineMetadata",u);function n(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);return B(i,$,d)}G("hasMetadata",n);function c(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);return R(i,$,d)}G("hasOwnMetadata",c);function p(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);return _(i,$,d)}G("getMetadata",p);function W0(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);return S(i,$,d)}G("getOwnMetadata",W0);function m(i,$){if(!N0(i))throw TypeError();if(!k($))$=q1($);return P(i,$)}G("getMetadataKeys",m);function Y0(i,$){if(!N0(i))throw TypeError();if(!k($))$=q1($);return E(i,$)}G("getOwnMetadataKeys",Y0);function U0(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);if(!N0($))throw TypeError();if(!k(d))d=q1(d);var X0=j8($,d,!1);if(k(X0))return!1;return X0.OrdinaryDeleteMetadata(i,$,d)}G("deleteMetadata",U0);function y(i,$){for(var d=i.length-1;d>=0;--d){var X0=i[d],w0=X0($);if(!k(w0)&&!f(w0)){if(!B0(w0))throw TypeError();$=w0}}return $}function o(i,$,d,X0){for(var w0=i.length-1;w0>=0;--w0){var e0=i[w0],C1=e0($,d,X0);if(!k(C1)&&!f(C1)){if(!N0(C1))throw TypeError();X0=C1}}return X0}function B(i,$,d){var X0=R(i,$,d);if(X0)return!0;var w0=$1($);if(!f(w0))return B(i,w0,d);return!1}function R(i,$,d){var X0=j8($,d,!1);if(k(X0))return!1;return D0(X0.OrdinaryHasOwnMetadata(i,$,d))}function _(i,$,d){var X0=R(i,$,d);if(X0)return S(i,$,d);var w0=$1($);if(!f(w0))return _(i,w0,d);return}function S(i,$,d){var X0=j8($,d,!1);if(k(X0))return;return X0.OrdinaryGetOwnMetadata(i,$,d)}function v(i,$,d,X0){var w0=j8(d,X0,!0);w0.OrdinaryDefineOwnMetadata(i,$,d,X0)}function P(i,$){var d=E(i,$),X0=$1(i);if(X0===null)return d;var w0=P(X0,$);if(w0.length<=0)return d;if(d.length<=0)return w0;var e0=new I,C1=[];for(var r0=0,K0=d;r0<K0.length;r0++){var F0=K0[r0],g0=e0.has(F0);if(!g0)e0.add(F0),C1.push(F0)}for(var k0=0,Q1=w0;k0<Q1.length;k0++){var F0=Q1[k0],g0=e0.has(F0);if(!g0)e0.add(F0),C1.push(F0)}return C1}function E(i,$){var d=j8(i,$,!1);if(!d)return[];return d.OrdinaryOwnMetadataKeys(i,$)}function b(i){if(i===null)return 1;switch(typeof i){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return i===null?1:6;default:return 6}}function k(i){return i===void 0}function f(i){return i===null}function e(i){return typeof i==="symbol"}function N0(i){return typeof i==="object"?i!==null:typeof i==="function"}function Q0(i,$){switch(b(i)){case 0:return i;case 1:return i;case 2:return i;case 3:return i;case 4:return i;case 5:return i}var d=$===3?"string":$===5?"number":"default",X0=w8(i,V);if(X0!==void 0){var w0=X0.call(i,d);if(N0(w0))throw TypeError();return w0}return $0(i,d==="default"?"number":d)}function $0(i,$){if($==="string"){var d=i.toString;if(J0(d)){var X0=d.call(i);if(!N0(X0))return X0}var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!N0(X0))return X0}}else{var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!N0(X0))return X0}var e0=i.toString;if(J0(e0)){var X0=e0.call(i);if(!N0(X0))return X0}}throw TypeError()}function D0(i){return!!i}function x0(i){return""+i}function q1(i){var $=Q0(i,3);if(e($))return $;return x0($)}function U1(i){return Array.isArray?Array.isArray(i):i instanceof Object?i instanceof Array:Object.prototype.toString.call(i)==="[object Array]"}function J0(i){return typeof i==="function"}function B0(i){return typeof i==="function"}function h0(i){switch(b(i)){case 3:return!0;case 4:return!0;default:return!1}}function Y1(i,$){return i===$||i!==i&&$!==$}function w8(i,$){var d=i[$];if(d===void 0||d===null)return;if(!J0(d))throw TypeError();return d}function x1(i){var $=w8(i,Q);if(!J0($))throw TypeError();var d=$.call(i);if(!N0(d))throw TypeError();return d}function E0(i){return i.value}function n0(i){var $=i.next();return $.done?!1:$}function O1(i){var $=i.return;if($)$.call(i)}function $1(i){var $=Object.getPrototypeOf(i);if(typeof i!=="function"||i===A)return $;if($!==A)return $;var d=i.prototype,X0=d&&Object.getPrototypeOf(d);if(X0==null||X0===Object.prototype)return $;var w0=X0.constructor;if(typeof w0!=="function")return $;if(w0===i)return $;return w0}function U8(){var i;if(!k(C)&&typeof X.Reflect<"u"&&!(C in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")i=K1(X.Reflect);var $,d,X0,w0=new w,e0={registerProvider:C1,getProvider:K0,setProvider:g0};return e0;function C1(k0){if(!Object.isExtensible(e0))throw Error("Cannot add provider to a frozen registry.");switch(!0){case i===k0:break;case k($):$=k0;break;case $===k0:break;case k(d):d=k0;break;case d===k0:break;default:if(X0===void 0)X0=new I;X0.add(k0);break}}function r0(k0,Q1){if(!k($)){if($.isProviderFor(k0,Q1))return $;if(!k(d)){if(d.isProviderFor(k0,Q1))return $;if(!k(X0)){var X1=x1(X0);while(!0){var k1=n0(X1);if(!k1)return;var n1=E0(k1);if(n1.isProviderFor(k0,Q1))return O1(X1),n1}}}}if(!k(i)&&i.isProviderFor(k0,Q1))return i;return}function K0(k0,Q1){var X1=w0.get(k0),k1;if(!k(X1))k1=X1.get(Q1);if(!k(k1))return k1;if(k1=r0(k0,Q1),!k(k1)){if(k(X1))X1=new H,w0.set(k0,X1);X1.set(Q1,k1)}return k1}function F0(k0){if(k(k0))throw TypeError();return $===k0||d===k0||!k(X0)&&X0.has(k0)}function g0(k0,Q1,X1){if(!F0(X1))throw Error("Metadata provider not registered.");var k1=K0(k0,Q1);if(k1!==X1){if(!k(k1))return!1;var n1=w0.get(k0);if(k(n1))n1=new H,w0.set(k0,n1);n1.set(Q1,X1)}return!0}}function H8(){var i;if(!k(C)&&N0(X.Reflect)&&Object.isExtensible(X.Reflect))i=X.Reflect[C];if(k(i))i=U8();if(!k(C)&&N0(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,C,{enumerable:!1,configurable:!1,writable:!1,value:i});return i}function A8(i){var $=new w,d={isProviderFor:function(F0,g0){var k0=$.get(F0);if(k(k0))return!1;return k0.has(g0)},OrdinaryDefineOwnMetadata:C1,OrdinaryHasOwnMetadata:w0,OrdinaryGetOwnMetadata:e0,OrdinaryOwnMetadataKeys:r0,OrdinaryDeleteMetadata:K0};return D.registerProvider(d),d;function X0(F0,g0,k0){var Q1=$.get(F0),X1=!1;if(k(Q1)){if(!k0)return;Q1=new H,$.set(F0,Q1),X1=!0}var k1=Q1.get(g0);if(k(k1)){if(!k0)return;if(k1=new H,Q1.set(g0,k1),!i.setProvider(F0,g0,d)){if(Q1.delete(g0),X1)$.delete(F0);throw Error("Wrong provider for target.")}}return k1}function w0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return!1;return D0(Q1.has(F0))}function e0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return;return Q1.get(F0)}function C1(F0,g0,k0,Q1){var X1=X0(k0,Q1,!0);X1.set(F0,g0)}function r0(F0,g0){var k0=[],Q1=X0(F0,g0,!1);if(k(Q1))return k0;var X1=Q1.keys(),k1=x1(X1),n1=0;while(!0){var Q7=n0(k1);if(!Q7)return k0.length=n1,k0;var AW=E0(Q7);try{k0[n1]=AW}catch(JZ){try{O1(k1)}finally{throw JZ}}n1++}}function K0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return!1;if(!Q1.delete(F0))return!1;if(Q1.size===0){var X1=$.get(g0);if(!k(X1)){if(X1.delete(k0),X1.size===0)$.delete(X1)}}return!0}}function K1(i){var{defineMetadata:$,hasOwnMetadata:d,getOwnMetadata:X0,getOwnMetadataKeys:w0,deleteMetadata:e0}=i,C1=new w,r0={isProviderFor:function(K0,F0){var g0=C1.get(K0);if(!k(g0)&&g0.has(F0))return!0;if(w0(K0,F0).length){if(k(g0))g0=new I,C1.set(K0,g0);return g0.add(F0),!0}return!1},OrdinaryDefineOwnMetadata:$,OrdinaryHasOwnMetadata:d,OrdinaryGetOwnMetadata:X0,OrdinaryOwnMetadataKeys:w0,OrdinaryDeleteMetadata:e0};return r0}function j8(i,$,d){var X0=D.getProvider(i,$);if(!k(X0))return X0;if(d){if(D.setProvider(i,$,x))return x;throw Error("Illegal state.")}return}function k5(){var i={},$=[],d=function(){function r0(K0,F0,g0){this._index=0,this._keys=K0,this._values=F0,this._selector=g0}return r0.prototype["@@iterator"]=function(){return this},r0.prototype[Q]=function(){return this},r0.prototype.next=function(){var K0=this._index;if(K0>=0&&K0<this._keys.length){var F0=this._selector(this._keys[K0],this._values[K0]);if(K0+1>=this._keys.length)this._index=-1,this._keys=$,this._values=$;else this._index++;return{value:F0,done:!1}}return{value:void 0,done:!0}},r0.prototype.throw=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;throw K0},r0.prototype.return=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;return{value:K0,done:!0}},r0}(),X0=function(){function r0(){this._keys=[],this._values=[],this._cacheKey=i,this._cacheIndex=-2}return Object.defineProperty(r0.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),r0.prototype.has=function(K0){return this._find(K0,!1)>=0},r0.prototype.get=function(K0){var F0=this._find(K0,!1);return F0>=0?this._values[F0]:void 0},r0.prototype.set=function(K0,F0){var g0=this._find(K0,!0);return this._values[g0]=F0,this},r0.prototype.delete=function(K0){var F0=this._find(K0,!1);if(F0>=0){var g0=this._keys.length;for(var k0=F0+1;k0<g0;k0++)this._keys[k0-1]=this._keys[k0],this._values[k0-1]=this._values[k0];if(this._keys.length--,this._values.length--,Y1(K0,this._cacheKey))this._cacheKey=i,this._cacheIndex=-2;return!0}return!1},r0.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=i,this._cacheIndex=-2},r0.prototype.keys=function(){return new d(this._keys,this._values,w0)},r0.prototype.values=function(){return new d(this._keys,this._values,e0)},r0.prototype.entries=function(){return new d(this._keys,this._values,C1)},r0.prototype["@@iterator"]=function(){return this.entries()},r0.prototype[Q]=function(){return this.entries()},r0.prototype._find=function(K0,F0){if(!Y1(this._cacheKey,K0)){this._cacheIndex=-1;for(var g0=0;g0<this._keys.length;g0++)if(Y1(this._keys[g0],K0)){this._cacheIndex=g0;break}}if(this._cacheIndex<0&&F0)this._cacheIndex=this._keys.length,this._keys.push(K0),this._values.push(void 0);return this._cacheIndex},r0}();return X0;function w0(r0,K0){return r0}function e0(r0,K0){return K0}function C1(r0,K0){return[r0,K0]}}function HW(){var i=function(){function $(){this._map=new H}return Object.defineProperty($.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),$.prototype.has=function(d){return this._map.has(d)},$.prototype.add=function(d){return this._map.set(d,d),this},$.prototype.delete=function(d){return this._map.delete(d)},$.prototype.clear=function(){this._map.clear()},$.prototype.keys=function(){return this._map.keys()},$.prototype.values=function(){return this._map.keys()},$.prototype.entries=function(){return this._map.entries()},$.prototype["@@iterator"]=function(){return this.keys()},$.prototype[Q]=function(){return this.keys()},$}();return i}function QZ(){var i=16,$=q.create(),d=X0();return function(){function K0(){this._key=X0()}return K0.prototype.has=function(F0){var g0=w0(F0,!1);return g0!==void 0?q.has(g0,this._key):!1},K0.prototype.get=function(F0){var g0=w0(F0,!1);return g0!==void 0?q.get(g0,this._key):void 0},K0.prototype.set=function(F0,g0){var k0=w0(F0,!0);return k0[this._key]=g0,this},K0.prototype.delete=function(F0){var g0=w0(F0,!1);return g0!==void 0?delete g0[this._key]:!1},K0.prototype.clear=function(){this._key=X0()},K0}();function X0(){var K0;do K0="@@WeakMap@@"+r0();while(q.has($,K0));return $[K0]=!0,K0}function w0(K0,F0){if(!Y.call(K0,d)){if(!F0)return;Object.defineProperty(K0,d,{value:q.create()})}return K0[d]}function e0(K0,F0){for(var g0=0;g0<F0;++g0)K0[g0]=Math.random()*255|0;return K0}function C1(K0){if(typeof Uint8Array==="function"){var F0=new Uint8Array(K0);if(typeof crypto<"u")crypto.getRandomValues(F0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(F0);else e0(F0,K0);return F0}return e0(Array(K0),K0)}function r0(){var K0=C1(i);K0[6]=K0[6]&79|64,K0[8]=K0[8]&191|128;var F0="";for(var g0=0;g0<i;++g0){var k0=K0[g0];if(g0===4||g0===6||g0===8)F0+="-";if(k0<16)F0+="0";F0+=k0.toString(16).toLowerCase()}return F0}}function i7(i){return i.__=void 0,delete i.__,i}})})(ST||(ST={}))});var XR=Z1((j10,ZN)=>{var $P,FP,SP,xP,kP,_P,yP,vP,gP,uP,hP,bP,mP,XN,HI,fP,cP,pP,FX,lP,dP,oP,nP,iP,rP,aP,sP,tP,YN,eP,WR,GR;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof ZN==="object"&&typeof j10==="object")W(X(G,X(j10)));else W(X(G));function X(Y,Z){if(Y!==G)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(V,Q){return Y[V]=Z?Z(V,Q):Q}}})(function(W){var G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(V,Q){V.__proto__=Q}||function(V,Q){for(var J in Q)if(Object.prototype.hasOwnProperty.call(Q,J))V[J]=Q[J]};$P=function(V,Q){if(typeof Q!=="function"&&Q!==null)throw TypeError("Class extends value "+String(Q)+" is not a constructor or null");G(V,Q);function J(){this.constructor=V}V.prototype=Q===null?Object.create(Q):(J.prototype=Q.prototype,new J)},FP=Object.assign||function(V){for(var Q,J=1,U=arguments.length;J<U;J++){Q=arguments[J];for(var N in Q)if(Object.prototype.hasOwnProperty.call(Q,N))V[N]=Q[N]}return V},SP=function(V,Q){var J={};for(var U in V)if(Object.prototype.hasOwnProperty.call(V,U)&&Q.indexOf(U)<0)J[U]=V[U];if(V!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var N=0,U=Object.getOwnPropertySymbols(V);N<U.length;N++)if(Q.indexOf(U[N])<0&&Object.prototype.propertyIsEnumerable.call(V,U[N]))J[U[N]]=V[U[N]]}return J},xP=function(V,Q,J,U){var N=arguments.length,q=N<3?Q:U===null?U=Object.getOwnPropertyDescriptor(Q,J):U,A;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")q=Reflect.decorate(V,Q,J,U);else for(var H=V.length-1;H>=0;H--)if(A=V[H])q=(N<3?A(q):N>3?A(Q,J,q):A(Q,J))||q;return N>3&&q&&Object.defineProperty(Q,J,q),q},kP=function(V,Q){return function(J,U){Q(J,U,V)}},_P=function(V,Q,J,U,N,q){function A(c){if(c!==void 0&&typeof c!=="function")throw TypeError("Function expected");return c}var H=U.kind,I=H==="getter"?"get":H==="setter"?"set":"value",w=!Q&&V?U.static?V:V.prototype:null,C=Q||(w?Object.getOwnPropertyDescriptor(w,U.name):{}),D,x=!1;for(var h=J.length-1;h>=0;h--){var l={};for(var u in U)l[u]=u==="access"?{}:U[u];for(var u in U.access)l.access[u]=U.access[u];l.addInitializer=function(c){if(x)throw TypeError("Cannot add initializers after decoration has completed");q.push(A(c||null))};var n=(0,J[h])(H==="accessor"?{get:C.get,set:C.set}:C[I],l);if(H==="accessor"){if(n===void 0)continue;if(n===null||typeof n!=="object")throw TypeError("Object expected");if(D=A(n.get))C.get=D;if(D=A(n.set))C.set=D;if(D=A(n.init))N.unshift(D)}else if(D=A(n))if(H==="field")N.unshift(D);else C[I]=D}if(w)Object.defineProperty(w,U.name,C);x=!0},yP=function(V,Q,J){var U=arguments.length>2;for(var N=0;N<Q.length;N++)J=U?Q[N].call(V,J):Q[N].call(V);return U?J:void 0},vP=function(V){return typeof V==="symbol"?V:"".concat(V)},gP=function(V,Q,J){if(typeof Q==="symbol")Q=Q.description?"[".concat(Q.description,"]"):"";return Object.defineProperty(V,"name",{configurable:!0,value:J?"".concat(J," ",Q):Q})},uP=function(V,Q){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(V,Q)},hP=function(V,Q,J,U){function N(q){return q instanceof J?q:new J(function(A){A(q)})}return new(J||(J=Promise))(function(q,A){function H(C){try{w(U.next(C))}catch(D){A(D)}}function I(C){try{w(U.throw(C))}catch(D){A(D)}}function w(C){C.done?q(C.value):N(C.value).then(H,I)}w((U=U.apply(V,Q||[])).next())})},bP=function(V,Q){var J={label:0,sent:function(){if(q[0]&1)throw q[1];return q[1]},trys:[],ops:[]},U,N,q,A=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return A.next=H(0),A.throw=H(1),A.return=H(2),typeof Symbol==="function"&&(A[Symbol.iterator]=function(){return this}),A;function H(w){return function(C){return I([w,C])}}function I(w){if(U)throw TypeError("Generator is already executing.");while(A&&(A=0,w[0]&&(J=0)),J)try{if(U=1,N&&(q=w[0]&2?N.return:w[0]?N.throw||((q=N.return)&&q.call(N),0):N.next)&&!(q=q.call(N,w[1])).done)return q;if(N=0,q)w=[w[0]&2,q.value];switch(w[0]){case 0:case 1:q=w;break;case 4:return J.label++,{value:w[1],done:!1};case 5:J.label++,N=w[1],w=[0];continue;case 7:w=J.ops.pop(),J.trys.pop();continue;default:if((q=J.trys,!(q=q.length>0&&q[q.length-1]))&&(w[0]===6||w[0]===2)){J=0;continue}if(w[0]===3&&(!q||w[1]>q[0]&&w[1]<q[3])){J.label=w[1];break}if(w[0]===6&&J.label<q[1]){J.label=q[1],q=w;break}if(q&&J.label<q[2]){J.label=q[2],J.ops.push(w);break}if(q[2])J.ops.pop();J.trys.pop();continue}w=Q.call(V,J)}catch(C){w=[6,C],N=0}finally{U=q=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}},mP=function(V,Q){for(var J in V)if(J!=="default"&&!Object.prototype.hasOwnProperty.call(Q,J))YN(Q,V,J)},YN=Object.create?function(V,Q,J,U){if(U===void 0)U=J;var N=Object.getOwnPropertyDescriptor(Q,J);if(!N||("get"in N?!Q.__esModule:N.writable||N.configurable))N={enumerable:!0,get:function(){return Q[J]}};Object.defineProperty(V,U,N)}:function(V,Q,J,U){if(U===void 0)U=J;V[U]=Q[J]},XN=function(V){var Q=typeof Symbol==="function"&&Symbol.iterator,J=Q&&V[Q],U=0;if(J)return J.call(V);if(V&&typeof V.length==="number")return{next:function(){if(V&&U>=V.length)V=void 0;return{value:V&&V[U++],done:!V}}};throw TypeError(Q?"Object is not iterable.":"Symbol.iterator is not defined.")},HI=function(V,Q){var J=typeof Symbol==="function"&&V[Symbol.iterator];if(!J)return V;var U=J.call(V),N,q=[],A;try{while((Q===void 0||Q-- >0)&&!(N=U.next()).done)q.push(N.value)}catch(H){A={error:H}}finally{try{if(N&&!N.done&&(J=U.return))J.call(U)}finally{if(A)throw A.error}}return q},fP=function(){for(var V=[],Q=0;Q<arguments.length;Q++)V=V.concat(HI(arguments[Q]));return V},cP=function(){for(var V=0,Q=0,J=arguments.length;Q<J;Q++)V+=arguments[Q].length;for(var U=Array(V),N=0,Q=0;Q<J;Q++)for(var q=arguments[Q],A=0,H=q.length;A<H;A++,N++)U[N]=q[A];return U},pP=function(V,Q,J){if(J||arguments.length===2){for(var U=0,N=Q.length,q;U<N;U++)if(q||!(U in Q)){if(!q)q=Array.prototype.slice.call(Q,0,U);q[U]=Q[U]}}return V.concat(q||Array.prototype.slice.call(Q))},FX=function(V){return this instanceof FX?(this.v=V,this):new FX(V)},lP=function(V,Q,J){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var U=J.apply(V,Q||[]),N,q=[];return N=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),H("next"),H("throw"),H("return",A),N[Symbol.asyncIterator]=function(){return this},N;function A(h){return function(l){return Promise.resolve(l).then(h,D)}}function H(h,l){if(U[h]){if(N[h]=function(u){return new Promise(function(n,c){q.push([h,u,n,c])>1||I(h,u)})},l)N[h]=l(N[h])}}function I(h,l){try{w(U[h](l))}catch(u){x(q[0][3],u)}}function w(h){h.value instanceof FX?Promise.resolve(h.value.v).then(C,D):x(q[0][2],h)}function C(h){I("next",h)}function D(h){I("throw",h)}function x(h,l){if(h(l),q.shift(),q.length)I(q[0][0],q[0][1])}},dP=function(V){var Q,J;return Q={},U("next"),U("throw",function(N){throw N}),U("return"),Q[Symbol.iterator]=function(){return this},Q;function U(N,q){Q[N]=V[N]?function(A){return(J=!J)?{value:FX(V[N](A)),done:!1}:q?q(A):A}:q}},oP=function(V){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=V[Symbol.asyncIterator],J;return Q?Q.call(V):(V=typeof XN==="function"?XN(V):V[Symbol.iterator](),J={},U("next"),U("throw"),U("return"),J[Symbol.asyncIterator]=function(){return this},J);function U(q){J[q]=V[q]&&function(A){return new Promise(function(H,I){A=V[q](A),N(H,I,A.done,A.value)})}}function N(q,A,H,I){Promise.resolve(I).then(function(w){q({value:w,done:H})},A)}},nP=function(V,Q){if(Object.defineProperty)Object.defineProperty(V,"raw",{value:Q});else V.raw=Q;return V};var X=Object.create?function(V,Q){Object.defineProperty(V,"default",{enumerable:!0,value:Q})}:function(V,Q){V.default=Q},Y=function(V){return Y=Object.getOwnPropertyNames||function(Q){var J=[];for(var U in Q)if(Object.prototype.hasOwnProperty.call(Q,U))J[J.length]=U;return J},Y(V)};iP=function(V){if(V&&V.__esModule)return V;var Q={};if(V!=null){for(var J=Y(V),U=0;U<J.length;U++)if(J[U]!=="default")YN(Q,V,J[U])}return X(Q,V),Q},rP=function(V){return V&&V.__esModule?V:{default:V}},aP=function(V,Q,J,U){if(J==="a"&&!U)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?V!==Q||!U:!Q.has(V))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?U:J==="a"?U.call(V):U?U.value:Q.get(V)},sP=function(V,Q,J,U,N){if(U==="m")throw TypeError("Private method is not writable");if(U==="a"&&!N)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?V!==Q||!N:!Q.has(V))throw TypeError("Cannot write private member to an object whose class did not declare it");return U==="a"?N.call(V,J):N?N.value=J:Q.set(V,J),J},tP=function(V,Q){if(Q===null||typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof V==="function"?Q===V:V.has(Q)},eP=function(V,Q,J){if(Q!==null&&Q!==void 0){if(typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Object expected.");var U,N;if(J){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");U=Q[Symbol.asyncDispose]}if(U===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(U=Q[Symbol.dispose],J)N=U}if(typeof U!=="function")throw TypeError("Object not disposable.");if(N)U=function(){try{N.call(this)}catch(q){return Promise.reject(q)}};V.stack.push({value:Q,dispose:U,async:J})}else if(J)V.stack.push({async:!0});return Q};var Z=typeof SuppressedError==="function"?SuppressedError:function(V,Q,J){var U=Error(J);return U.name="SuppressedError",U.error=V,U.suppressed=Q,U};WR=function(V){function Q(q){V.error=V.hasError?new Z(q,V.error,"An error was suppressed during disposal."):q,V.hasError=!0}var J,U=0;function N(){while(J=V.stack.pop())try{if(!J.async&&U===1)return U=0,V.stack.push(J),Promise.resolve().then(N);if(J.dispose){var q=J.dispose.call(J.value);if(J.async)return U|=2,Promise.resolve(q).then(N,function(A){return Q(A),N()})}else U|=1}catch(A){Q(A)}if(U===1)return V.hasError?Promise.reject(V.error):Promise.resolve();if(V.hasError)throw V.error}return N()},GR=function(V,Q){if(typeof V==="string"&&/^\.\.?\//.test(V))return V.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(J,U,N,q,A){return U?Q?".jsx":".js":N&&(!q||!A)?J:N+q+"."+A.toLowerCase()+"js"});return V},W("__extends",$P),W("__assign",FP),W("__rest",SP),W("__decorate",xP),W("__param",kP),W("__esDecorate",_P),W("__runInitializers",yP),W("__propKey",vP),W("__setFunctionName",gP),W("__metadata",uP),W("__awaiter",hP),W("__generator",bP),W("__exportStar",mP),W("__createBinding",YN),W("__values",XN),W("__read",HI),W("__spread",fP),W("__spreadArrays",cP),W("__spreadArray",pP),W("__await",FX),W("__asyncGenerator",lP),W("__asyncDelegator",dP),W("__asyncValues",oP),W("__makeTemplateObject",nP),W("__importStar",iP),W("__importDefault",rP),W("__classPrivateFieldGet",aP),W("__classPrivateFieldSet",sP),W("__classPrivateFieldIn",tP),W("__addDisposableResource",eP),W("__disposeResources",WR),W("__rewriteRelativeImportExtension",GR)})});var zL=Z1((FZ0,fN)=>{/*! *****************************************************************************
27
+ ***************************************************************************** */var ST;(function(W){(function(G){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:J(),Y=Z(W);if(typeof X.Reflect<"u")Y=Z(X.Reflect,Y);if(G(Y,X),typeof X.Reflect>"u")X.Reflect=W;function Z(U,N){return function(q,A){if(Object.defineProperty(U,q,{configurable:!0,writable:!0,value:A}),N)N(q,A)}}function V(){try{return Function("return this;")()}catch(U){}}function Q(){try{return(0,eval)("(function() { return this; })()")}catch(U){}}function J(){return V()||Q()}})(function(G,X){var Y=Object.prototype.hasOwnProperty,Z=typeof Symbol==="function",V=Z&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",Q=Z&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",J=typeof Object.create==="function",U={__proto__:[]}instanceof Array,N=!J&&!U,q={create:J?function(){return i7(Object.create(null))}:U?function(){return i7({__proto__:null})}:function(){return i7({})},has:N?function(i,$){return Y.call(i,$)}:function(i,$){return $ in i},get:N?function(i,$){return Y.call(i,$)?i[$]:void 0}:function(i,$){return i[$]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:k5(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:HW(),w=typeof WeakMap==="function"?WeakMap:QZ(),C=Z?Symbol.for("@reflect-metadata:registry"):void 0,D=H8(),x=A8(D);function h(i,$,d,X0){if(!k(d)){if(!U1(i))throw TypeError();if(!N0($))throw TypeError();if(!N0(X0)&&!k(X0)&&!f(X0))throw TypeError();if(f(X0))X0=void 0;return d=q1(d),o(i,$,d,X0)}else{if(!U1(i))throw TypeError();if(!B0($))throw TypeError();return y(i,$)}}G("decorate",h);function p(i,$){function d(X0,w0){if(!N0(X0))throw TypeError();if(!k(w0)&&!h0(w0))throw TypeError();v(i,$,X0,w0)}return d}G("metadata",p);function u(i,$,d,X0){if(!N0(d))throw TypeError();if(!k(X0))X0=q1(X0);return v(i,$,d,X0)}G("defineMetadata",u);function n(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);return B(i,$,d)}G("hasMetadata",n);function c(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);return R(i,$,d)}G("hasOwnMetadata",c);function l(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);return _(i,$,d)}G("getMetadata",l);function W0(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);return S(i,$,d)}G("getOwnMetadata",W0);function m(i,$){if(!N0(i))throw TypeError();if(!k($))$=q1($);return P(i,$)}G("getMetadataKeys",m);function Y0(i,$){if(!N0(i))throw TypeError();if(!k($))$=q1($);return E(i,$)}G("getOwnMetadataKeys",Y0);function U0(i,$,d){if(!N0($))throw TypeError();if(!k(d))d=q1(d);if(!N0($))throw TypeError();if(!k(d))d=q1(d);var X0=j8($,d,!1);if(k(X0))return!1;return X0.OrdinaryDeleteMetadata(i,$,d)}G("deleteMetadata",U0);function y(i,$){for(var d=i.length-1;d>=0;--d){var X0=i[d],w0=X0($);if(!k(w0)&&!f(w0)){if(!B0(w0))throw TypeError();$=w0}}return $}function o(i,$,d,X0){for(var w0=i.length-1;w0>=0;--w0){var e0=i[w0],C1=e0($,d,X0);if(!k(C1)&&!f(C1)){if(!N0(C1))throw TypeError();X0=C1}}return X0}function B(i,$,d){var X0=R(i,$,d);if(X0)return!0;var w0=$1($);if(!f(w0))return B(i,w0,d);return!1}function R(i,$,d){var X0=j8($,d,!1);if(k(X0))return!1;return D0(X0.OrdinaryHasOwnMetadata(i,$,d))}function _(i,$,d){var X0=R(i,$,d);if(X0)return S(i,$,d);var w0=$1($);if(!f(w0))return _(i,w0,d);return}function S(i,$,d){var X0=j8($,d,!1);if(k(X0))return;return X0.OrdinaryGetOwnMetadata(i,$,d)}function v(i,$,d,X0){var w0=j8(d,X0,!0);w0.OrdinaryDefineOwnMetadata(i,$,d,X0)}function P(i,$){var d=E(i,$),X0=$1(i);if(X0===null)return d;var w0=P(X0,$);if(w0.length<=0)return d;if(d.length<=0)return w0;var e0=new I,C1=[];for(var r0=0,K0=d;r0<K0.length;r0++){var F0=K0[r0],g0=e0.has(F0);if(!g0)e0.add(F0),C1.push(F0)}for(var k0=0,Q1=w0;k0<Q1.length;k0++){var F0=Q1[k0],g0=e0.has(F0);if(!g0)e0.add(F0),C1.push(F0)}return C1}function E(i,$){var d=j8(i,$,!1);if(!d)return[];return d.OrdinaryOwnMetadataKeys(i,$)}function b(i){if(i===null)return 1;switch(typeof i){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return i===null?1:6;default:return 6}}function k(i){return i===void 0}function f(i){return i===null}function e(i){return typeof i==="symbol"}function N0(i){return typeof i==="object"?i!==null:typeof i==="function"}function Q0(i,$){switch(b(i)){case 0:return i;case 1:return i;case 2:return i;case 3:return i;case 4:return i;case 5:return i}var d=$===3?"string":$===5?"number":"default",X0=w8(i,V);if(X0!==void 0){var w0=X0.call(i,d);if(N0(w0))throw TypeError();return w0}return $0(i,d==="default"?"number":d)}function $0(i,$){if($==="string"){var d=i.toString;if(J0(d)){var X0=d.call(i);if(!N0(X0))return X0}var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!N0(X0))return X0}}else{var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!N0(X0))return X0}var e0=i.toString;if(J0(e0)){var X0=e0.call(i);if(!N0(X0))return X0}}throw TypeError()}function D0(i){return!!i}function x0(i){return""+i}function q1(i){var $=Q0(i,3);if(e($))return $;return x0($)}function U1(i){return Array.isArray?Array.isArray(i):i instanceof Object?i instanceof Array:Object.prototype.toString.call(i)==="[object Array]"}function J0(i){return typeof i==="function"}function B0(i){return typeof i==="function"}function h0(i){switch(b(i)){case 3:return!0;case 4:return!0;default:return!1}}function Y1(i,$){return i===$||i!==i&&$!==$}function w8(i,$){var d=i[$];if(d===void 0||d===null)return;if(!J0(d))throw TypeError();return d}function x1(i){var $=w8(i,Q);if(!J0($))throw TypeError();var d=$.call(i);if(!N0(d))throw TypeError();return d}function E0(i){return i.value}function n0(i){var $=i.next();return $.done?!1:$}function O1(i){var $=i.return;if($)$.call(i)}function $1(i){var $=Object.getPrototypeOf(i);if(typeof i!=="function"||i===A)return $;if($!==A)return $;var d=i.prototype,X0=d&&Object.getPrototypeOf(d);if(X0==null||X0===Object.prototype)return $;var w0=X0.constructor;if(typeof w0!=="function")return $;if(w0===i)return $;return w0}function U8(){var i;if(!k(C)&&typeof X.Reflect<"u"&&!(C in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")i=K1(X.Reflect);var $,d,X0,w0=new w,e0={registerProvider:C1,getProvider:K0,setProvider:g0};return e0;function C1(k0){if(!Object.isExtensible(e0))throw Error("Cannot add provider to a frozen registry.");switch(!0){case i===k0:break;case k($):$=k0;break;case $===k0:break;case k(d):d=k0;break;case d===k0:break;default:if(X0===void 0)X0=new I;X0.add(k0);break}}function r0(k0,Q1){if(!k($)){if($.isProviderFor(k0,Q1))return $;if(!k(d)){if(d.isProviderFor(k0,Q1))return $;if(!k(X0)){var X1=x1(X0);while(!0){var k1=n0(X1);if(!k1)return;var n1=E0(k1);if(n1.isProviderFor(k0,Q1))return O1(X1),n1}}}}if(!k(i)&&i.isProviderFor(k0,Q1))return i;return}function K0(k0,Q1){var X1=w0.get(k0),k1;if(!k(X1))k1=X1.get(Q1);if(!k(k1))return k1;if(k1=r0(k0,Q1),!k(k1)){if(k(X1))X1=new H,w0.set(k0,X1);X1.set(Q1,k1)}return k1}function F0(k0){if(k(k0))throw TypeError();return $===k0||d===k0||!k(X0)&&X0.has(k0)}function g0(k0,Q1,X1){if(!F0(X1))throw Error("Metadata provider not registered.");var k1=K0(k0,Q1);if(k1!==X1){if(!k(k1))return!1;var n1=w0.get(k0);if(k(n1))n1=new H,w0.set(k0,n1);n1.set(Q1,X1)}return!0}}function H8(){var i;if(!k(C)&&N0(X.Reflect)&&Object.isExtensible(X.Reflect))i=X.Reflect[C];if(k(i))i=U8();if(!k(C)&&N0(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,C,{enumerable:!1,configurable:!1,writable:!1,value:i});return i}function A8(i){var $=new w,d={isProviderFor:function(F0,g0){var k0=$.get(F0);if(k(k0))return!1;return k0.has(g0)},OrdinaryDefineOwnMetadata:C1,OrdinaryHasOwnMetadata:w0,OrdinaryGetOwnMetadata:e0,OrdinaryOwnMetadataKeys:r0,OrdinaryDeleteMetadata:K0};return D.registerProvider(d),d;function X0(F0,g0,k0){var Q1=$.get(F0),X1=!1;if(k(Q1)){if(!k0)return;Q1=new H,$.set(F0,Q1),X1=!0}var k1=Q1.get(g0);if(k(k1)){if(!k0)return;if(k1=new H,Q1.set(g0,k1),!i.setProvider(F0,g0,d)){if(Q1.delete(g0),X1)$.delete(F0);throw Error("Wrong provider for target.")}}return k1}function w0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return!1;return D0(Q1.has(F0))}function e0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return;return Q1.get(F0)}function C1(F0,g0,k0,Q1){var X1=X0(k0,Q1,!0);X1.set(F0,g0)}function r0(F0,g0){var k0=[],Q1=X0(F0,g0,!1);if(k(Q1))return k0;var X1=Q1.keys(),k1=x1(X1),n1=0;while(!0){var Q7=n0(k1);if(!Q7)return k0.length=n1,k0;var AW=E0(Q7);try{k0[n1]=AW}catch(JZ){try{O1(k1)}finally{throw JZ}}n1++}}function K0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return!1;if(!Q1.delete(F0))return!1;if(Q1.size===0){var X1=$.get(g0);if(!k(X1)){if(X1.delete(k0),X1.size===0)$.delete(X1)}}return!0}}function K1(i){var{defineMetadata:$,hasOwnMetadata:d,getOwnMetadata:X0,getOwnMetadataKeys:w0,deleteMetadata:e0}=i,C1=new w,r0={isProviderFor:function(K0,F0){var g0=C1.get(K0);if(!k(g0)&&g0.has(F0))return!0;if(w0(K0,F0).length){if(k(g0))g0=new I,C1.set(K0,g0);return g0.add(F0),!0}return!1},OrdinaryDefineOwnMetadata:$,OrdinaryHasOwnMetadata:d,OrdinaryGetOwnMetadata:X0,OrdinaryOwnMetadataKeys:w0,OrdinaryDeleteMetadata:e0};return r0}function j8(i,$,d){var X0=D.getProvider(i,$);if(!k(X0))return X0;if(d){if(D.setProvider(i,$,x))return x;throw Error("Illegal state.")}return}function k5(){var i={},$=[],d=function(){function r0(K0,F0,g0){this._index=0,this._keys=K0,this._values=F0,this._selector=g0}return r0.prototype["@@iterator"]=function(){return this},r0.prototype[Q]=function(){return this},r0.prototype.next=function(){var K0=this._index;if(K0>=0&&K0<this._keys.length){var F0=this._selector(this._keys[K0],this._values[K0]);if(K0+1>=this._keys.length)this._index=-1,this._keys=$,this._values=$;else this._index++;return{value:F0,done:!1}}return{value:void 0,done:!0}},r0.prototype.throw=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;throw K0},r0.prototype.return=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;return{value:K0,done:!0}},r0}(),X0=function(){function r0(){this._keys=[],this._values=[],this._cacheKey=i,this._cacheIndex=-2}return Object.defineProperty(r0.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),r0.prototype.has=function(K0){return this._find(K0,!1)>=0},r0.prototype.get=function(K0){var F0=this._find(K0,!1);return F0>=0?this._values[F0]:void 0},r0.prototype.set=function(K0,F0){var g0=this._find(K0,!0);return this._values[g0]=F0,this},r0.prototype.delete=function(K0){var F0=this._find(K0,!1);if(F0>=0){var g0=this._keys.length;for(var k0=F0+1;k0<g0;k0++)this._keys[k0-1]=this._keys[k0],this._values[k0-1]=this._values[k0];if(this._keys.length--,this._values.length--,Y1(K0,this._cacheKey))this._cacheKey=i,this._cacheIndex=-2;return!0}return!1},r0.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=i,this._cacheIndex=-2},r0.prototype.keys=function(){return new d(this._keys,this._values,w0)},r0.prototype.values=function(){return new d(this._keys,this._values,e0)},r0.prototype.entries=function(){return new d(this._keys,this._values,C1)},r0.prototype["@@iterator"]=function(){return this.entries()},r0.prototype[Q]=function(){return this.entries()},r0.prototype._find=function(K0,F0){if(!Y1(this._cacheKey,K0)){this._cacheIndex=-1;for(var g0=0;g0<this._keys.length;g0++)if(Y1(this._keys[g0],K0)){this._cacheIndex=g0;break}}if(this._cacheIndex<0&&F0)this._cacheIndex=this._keys.length,this._keys.push(K0),this._values.push(void 0);return this._cacheIndex},r0}();return X0;function w0(r0,K0){return r0}function e0(r0,K0){return K0}function C1(r0,K0){return[r0,K0]}}function HW(){var i=function(){function $(){this._map=new H}return Object.defineProperty($.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),$.prototype.has=function(d){return this._map.has(d)},$.prototype.add=function(d){return this._map.set(d,d),this},$.prototype.delete=function(d){return this._map.delete(d)},$.prototype.clear=function(){this._map.clear()},$.prototype.keys=function(){return this._map.keys()},$.prototype.values=function(){return this._map.keys()},$.prototype.entries=function(){return this._map.entries()},$.prototype["@@iterator"]=function(){return this.keys()},$.prototype[Q]=function(){return this.keys()},$}();return i}function QZ(){var i=16,$=q.create(),d=X0();return function(){function K0(){this._key=X0()}return K0.prototype.has=function(F0){var g0=w0(F0,!1);return g0!==void 0?q.has(g0,this._key):!1},K0.prototype.get=function(F0){var g0=w0(F0,!1);return g0!==void 0?q.get(g0,this._key):void 0},K0.prototype.set=function(F0,g0){var k0=w0(F0,!0);return k0[this._key]=g0,this},K0.prototype.delete=function(F0){var g0=w0(F0,!1);return g0!==void 0?delete g0[this._key]:!1},K0.prototype.clear=function(){this._key=X0()},K0}();function X0(){var K0;do K0="@@WeakMap@@"+r0();while(q.has($,K0));return $[K0]=!0,K0}function w0(K0,F0){if(!Y.call(K0,d)){if(!F0)return;Object.defineProperty(K0,d,{value:q.create()})}return K0[d]}function e0(K0,F0){for(var g0=0;g0<F0;++g0)K0[g0]=Math.random()*255|0;return K0}function C1(K0){if(typeof Uint8Array==="function"){var F0=new Uint8Array(K0);if(typeof crypto<"u")crypto.getRandomValues(F0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(F0);else e0(F0,K0);return F0}return e0(Array(K0),K0)}function r0(){var K0=C1(i);K0[6]=K0[6]&79|64,K0[8]=K0[8]&191|128;var F0="";for(var g0=0;g0<i;++g0){var k0=K0[g0];if(g0===4||g0===6||g0===8)F0+="-";if(k0<16)F0+="0";F0+=k0.toString(16).toLowerCase()}return F0}}function i7(i){return i.__=void 0,delete i.__,i}})})(ST||(ST={}))});var XR=Z1((j10,ZN)=>{var $P,FP,SP,xP,kP,_P,yP,vP,gP,uP,hP,bP,mP,XN,HI,fP,cP,pP,FX,lP,dP,oP,nP,iP,rP,aP,sP,tP,YN,eP,WR,GR;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof ZN==="object"&&typeof j10==="object")W(X(G,X(j10)));else W(X(G));function X(Y,Z){if(Y!==G)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(V,Q){return Y[V]=Z?Z(V,Q):Q}}})(function(W){var G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(V,Q){V.__proto__=Q}||function(V,Q){for(var J in Q)if(Object.prototype.hasOwnProperty.call(Q,J))V[J]=Q[J]};$P=function(V,Q){if(typeof Q!=="function"&&Q!==null)throw TypeError("Class extends value "+String(Q)+" is not a constructor or null");G(V,Q);function J(){this.constructor=V}V.prototype=Q===null?Object.create(Q):(J.prototype=Q.prototype,new J)},FP=Object.assign||function(V){for(var Q,J=1,U=arguments.length;J<U;J++){Q=arguments[J];for(var N in Q)if(Object.prototype.hasOwnProperty.call(Q,N))V[N]=Q[N]}return V},SP=function(V,Q){var J={};for(var U in V)if(Object.prototype.hasOwnProperty.call(V,U)&&Q.indexOf(U)<0)J[U]=V[U];if(V!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var N=0,U=Object.getOwnPropertySymbols(V);N<U.length;N++)if(Q.indexOf(U[N])<0&&Object.prototype.propertyIsEnumerable.call(V,U[N]))J[U[N]]=V[U[N]]}return J},xP=function(V,Q,J,U){var N=arguments.length,q=N<3?Q:U===null?U=Object.getOwnPropertyDescriptor(Q,J):U,A;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")q=Reflect.decorate(V,Q,J,U);else for(var H=V.length-1;H>=0;H--)if(A=V[H])q=(N<3?A(q):N>3?A(Q,J,q):A(Q,J))||q;return N>3&&q&&Object.defineProperty(Q,J,q),q},kP=function(V,Q){return function(J,U){Q(J,U,V)}},_P=function(V,Q,J,U,N,q){function A(c){if(c!==void 0&&typeof c!=="function")throw TypeError("Function expected");return c}var H=U.kind,I=H==="getter"?"get":H==="setter"?"set":"value",w=!Q&&V?U.static?V:V.prototype:null,C=Q||(w?Object.getOwnPropertyDescriptor(w,U.name):{}),D,x=!1;for(var h=J.length-1;h>=0;h--){var p={};for(var u in U)p[u]=u==="access"?{}:U[u];for(var u in U.access)p.access[u]=U.access[u];p.addInitializer=function(c){if(x)throw TypeError("Cannot add initializers after decoration has completed");q.push(A(c||null))};var n=(0,J[h])(H==="accessor"?{get:C.get,set:C.set}:C[I],p);if(H==="accessor"){if(n===void 0)continue;if(n===null||typeof n!=="object")throw TypeError("Object expected");if(D=A(n.get))C.get=D;if(D=A(n.set))C.set=D;if(D=A(n.init))N.unshift(D)}else if(D=A(n))if(H==="field")N.unshift(D);else C[I]=D}if(w)Object.defineProperty(w,U.name,C);x=!0},yP=function(V,Q,J){var U=arguments.length>2;for(var N=0;N<Q.length;N++)J=U?Q[N].call(V,J):Q[N].call(V);return U?J:void 0},vP=function(V){return typeof V==="symbol"?V:"".concat(V)},gP=function(V,Q,J){if(typeof Q==="symbol")Q=Q.description?"[".concat(Q.description,"]"):"";return Object.defineProperty(V,"name",{configurable:!0,value:J?"".concat(J," ",Q):Q})},uP=function(V,Q){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(V,Q)},hP=function(V,Q,J,U){function N(q){return q instanceof J?q:new J(function(A){A(q)})}return new(J||(J=Promise))(function(q,A){function H(C){try{w(U.next(C))}catch(D){A(D)}}function I(C){try{w(U.throw(C))}catch(D){A(D)}}function w(C){C.done?q(C.value):N(C.value).then(H,I)}w((U=U.apply(V,Q||[])).next())})},bP=function(V,Q){var J={label:0,sent:function(){if(q[0]&1)throw q[1];return q[1]},trys:[],ops:[]},U,N,q,A=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return A.next=H(0),A.throw=H(1),A.return=H(2),typeof Symbol==="function"&&(A[Symbol.iterator]=function(){return this}),A;function H(w){return function(C){return I([w,C])}}function I(w){if(U)throw TypeError("Generator is already executing.");while(A&&(A=0,w[0]&&(J=0)),J)try{if(U=1,N&&(q=w[0]&2?N.return:w[0]?N.throw||((q=N.return)&&q.call(N),0):N.next)&&!(q=q.call(N,w[1])).done)return q;if(N=0,q)w=[w[0]&2,q.value];switch(w[0]){case 0:case 1:q=w;break;case 4:return J.label++,{value:w[1],done:!1};case 5:J.label++,N=w[1],w=[0];continue;case 7:w=J.ops.pop(),J.trys.pop();continue;default:if((q=J.trys,!(q=q.length>0&&q[q.length-1]))&&(w[0]===6||w[0]===2)){J=0;continue}if(w[0]===3&&(!q||w[1]>q[0]&&w[1]<q[3])){J.label=w[1];break}if(w[0]===6&&J.label<q[1]){J.label=q[1],q=w;break}if(q&&J.label<q[2]){J.label=q[2],J.ops.push(w);break}if(q[2])J.ops.pop();J.trys.pop();continue}w=Q.call(V,J)}catch(C){w=[6,C],N=0}finally{U=q=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}},mP=function(V,Q){for(var J in V)if(J!=="default"&&!Object.prototype.hasOwnProperty.call(Q,J))YN(Q,V,J)},YN=Object.create?function(V,Q,J,U){if(U===void 0)U=J;var N=Object.getOwnPropertyDescriptor(Q,J);if(!N||("get"in N?!Q.__esModule:N.writable||N.configurable))N={enumerable:!0,get:function(){return Q[J]}};Object.defineProperty(V,U,N)}:function(V,Q,J,U){if(U===void 0)U=J;V[U]=Q[J]},XN=function(V){var Q=typeof Symbol==="function"&&Symbol.iterator,J=Q&&V[Q],U=0;if(J)return J.call(V);if(V&&typeof V.length==="number")return{next:function(){if(V&&U>=V.length)V=void 0;return{value:V&&V[U++],done:!V}}};throw TypeError(Q?"Object is not iterable.":"Symbol.iterator is not defined.")},HI=function(V,Q){var J=typeof Symbol==="function"&&V[Symbol.iterator];if(!J)return V;var U=J.call(V),N,q=[],A;try{while((Q===void 0||Q-- >0)&&!(N=U.next()).done)q.push(N.value)}catch(H){A={error:H}}finally{try{if(N&&!N.done&&(J=U.return))J.call(U)}finally{if(A)throw A.error}}return q},fP=function(){for(var V=[],Q=0;Q<arguments.length;Q++)V=V.concat(HI(arguments[Q]));return V},cP=function(){for(var V=0,Q=0,J=arguments.length;Q<J;Q++)V+=arguments[Q].length;for(var U=Array(V),N=0,Q=0;Q<J;Q++)for(var q=arguments[Q],A=0,H=q.length;A<H;A++,N++)U[N]=q[A];return U},pP=function(V,Q,J){if(J||arguments.length===2){for(var U=0,N=Q.length,q;U<N;U++)if(q||!(U in Q)){if(!q)q=Array.prototype.slice.call(Q,0,U);q[U]=Q[U]}}return V.concat(q||Array.prototype.slice.call(Q))},FX=function(V){return this instanceof FX?(this.v=V,this):new FX(V)},lP=function(V,Q,J){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var U=J.apply(V,Q||[]),N,q=[];return N=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),H("next"),H("throw"),H("return",A),N[Symbol.asyncIterator]=function(){return this},N;function A(h){return function(p){return Promise.resolve(p).then(h,D)}}function H(h,p){if(U[h]){if(N[h]=function(u){return new Promise(function(n,c){q.push([h,u,n,c])>1||I(h,u)})},p)N[h]=p(N[h])}}function I(h,p){try{w(U[h](p))}catch(u){x(q[0][3],u)}}function w(h){h.value instanceof FX?Promise.resolve(h.value.v).then(C,D):x(q[0][2],h)}function C(h){I("next",h)}function D(h){I("throw",h)}function x(h,p){if(h(p),q.shift(),q.length)I(q[0][0],q[0][1])}},dP=function(V){var Q,J;return Q={},U("next"),U("throw",function(N){throw N}),U("return"),Q[Symbol.iterator]=function(){return this},Q;function U(N,q){Q[N]=V[N]?function(A){return(J=!J)?{value:FX(V[N](A)),done:!1}:q?q(A):A}:q}},oP=function(V){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=V[Symbol.asyncIterator],J;return Q?Q.call(V):(V=typeof XN==="function"?XN(V):V[Symbol.iterator](),J={},U("next"),U("throw"),U("return"),J[Symbol.asyncIterator]=function(){return this},J);function U(q){J[q]=V[q]&&function(A){return new Promise(function(H,I){A=V[q](A),N(H,I,A.done,A.value)})}}function N(q,A,H,I){Promise.resolve(I).then(function(w){q({value:w,done:H})},A)}},nP=function(V,Q){if(Object.defineProperty)Object.defineProperty(V,"raw",{value:Q});else V.raw=Q;return V};var X=Object.create?function(V,Q){Object.defineProperty(V,"default",{enumerable:!0,value:Q})}:function(V,Q){V.default=Q},Y=function(V){return Y=Object.getOwnPropertyNames||function(Q){var J=[];for(var U in Q)if(Object.prototype.hasOwnProperty.call(Q,U))J[J.length]=U;return J},Y(V)};iP=function(V){if(V&&V.__esModule)return V;var Q={};if(V!=null){for(var J=Y(V),U=0;U<J.length;U++)if(J[U]!=="default")YN(Q,V,J[U])}return X(Q,V),Q},rP=function(V){return V&&V.__esModule?V:{default:V}},aP=function(V,Q,J,U){if(J==="a"&&!U)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?V!==Q||!U:!Q.has(V))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?U:J==="a"?U.call(V):U?U.value:Q.get(V)},sP=function(V,Q,J,U,N){if(U==="m")throw TypeError("Private method is not writable");if(U==="a"&&!N)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?V!==Q||!N:!Q.has(V))throw TypeError("Cannot write private member to an object whose class did not declare it");return U==="a"?N.call(V,J):N?N.value=J:Q.set(V,J),J},tP=function(V,Q){if(Q===null||typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof V==="function"?Q===V:V.has(Q)},eP=function(V,Q,J){if(Q!==null&&Q!==void 0){if(typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Object expected.");var U,N;if(J){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");U=Q[Symbol.asyncDispose]}if(U===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(U=Q[Symbol.dispose],J)N=U}if(typeof U!=="function")throw TypeError("Object not disposable.");if(N)U=function(){try{N.call(this)}catch(q){return Promise.reject(q)}};V.stack.push({value:Q,dispose:U,async:J})}else if(J)V.stack.push({async:!0});return Q};var Z=typeof SuppressedError==="function"?SuppressedError:function(V,Q,J){var U=Error(J);return U.name="SuppressedError",U.error=V,U.suppressed=Q,U};WR=function(V){function Q(q){V.error=V.hasError?new Z(q,V.error,"An error was suppressed during disposal."):q,V.hasError=!0}var J,U=0;function N(){while(J=V.stack.pop())try{if(!J.async&&U===1)return U=0,V.stack.push(J),Promise.resolve().then(N);if(J.dispose){var q=J.dispose.call(J.value);if(J.async)return U|=2,Promise.resolve(q).then(N,function(A){return Q(A),N()})}else U|=1}catch(A){Q(A)}if(U===1)return V.hasError?Promise.reject(V.error):Promise.resolve();if(V.hasError)throw V.error}return N()},GR=function(V,Q){if(typeof V==="string"&&/^\.\.?\//.test(V))return V.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(J,U,N,q,A){return U?Q?".jsx":".js":N&&(!q||!A)?J:N+q+"."+A.toLowerCase()+"js"});return V},W("__extends",$P),W("__assign",FP),W("__rest",SP),W("__decorate",xP),W("__param",kP),W("__esDecorate",_P),W("__runInitializers",yP),W("__propKey",vP),W("__setFunctionName",gP),W("__metadata",uP),W("__awaiter",hP),W("__generator",bP),W("__exportStar",mP),W("__createBinding",YN),W("__values",XN),W("__read",HI),W("__spread",fP),W("__spreadArrays",cP),W("__spreadArray",pP),W("__await",FX),W("__asyncGenerator",lP),W("__asyncDelegator",dP),W("__asyncValues",oP),W("__makeTemplateObject",nP),W("__importStar",iP),W("__importDefault",rP),W("__classPrivateFieldGet",aP),W("__classPrivateFieldSet",sP),W("__classPrivateFieldIn",tP),W("__addDisposableResource",eP),W("__disposeResources",WR),W("__rewriteRelativeImportExtension",GR)})});var zL=Z1((FZ0,fN)=>{/*! *****************************************************************************
28
28
  Copyright (c) Microsoft Corporation.
29
29
 
30
30
  Permission to use, copy, modify, and/or distribute this software for any
@@ -144,7 +144,7 @@ PERFORMANCE OF THIS SOFTWARE.
144
144
  this.index += bytes;
145
145
  return value;
146
146
  }
147
- `),Vq.prototype[W]=G.toFunction({assertSize:Pj})});YE.exports=Vq;function Pj(W,G){if(W>G)throw new vp(W,G)}});var I8=Z1((lN0,AE)=>{var Rj=wQ(),gp=gB(),up=mB(),hp=cB(),bp=lB(),mp=nB(),VE=rB(),fp=sB(),cp=WE(),{encode:UE}=OQ(),{decode:NE}=zY(),{encodingLength:pp}=KQ(),lp=ZE(),qE=HY(),HE={array:gp,bool:hp,buffer:up,reserved:bp,string:mp,when:fp,select:cp};for(let W of Object.keys(VE))HE[W]=VE[W];var Qq=Symbol("schema");function QE(W){let G=new Rj({readableObjectMode:!1,writableObjectMode:!0,transform:dp});return G[Qq]=W,G}function JE(W){let G=null,X=Buffer.isBuffer(W);if(!X)G=W;let Y=new Rj({transform:op,readableObjectMode:!0,writableObjectMode:!1});if(Y[Qq]=G,X)Y.append(W);return Y}function dp(W,G,X){try{UE(W,this[Qq],this);let Y=this.slice();this.consume(Y.length),X(null,Y)}catch(Y){X(Y)}}function op(W,G,X){this.append(W);try{while(this.length>0){let Y=new lp(this),Z=NE(Y,this[Qq]);Y.commit(),this.push(Z)}X()}catch(Y){if(Y instanceof qE)X();else X(Y)}}AE.exports={createEncodeStream:QE,createDecodeStream:JE,encode:UE,decode:NE,encodingLength:pp,createEncode:QE,createDecode:JE,types:HE,BinaryStream:Rj,NotEnoughDataError:qE}});var H$=Z1((N$)=>{Object.defineProperty(N$,"__esModule",{value:!0});N$.LEB128=N$.SignedLEB128=N$.UnsignedLEB128=void 0;var DY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(DY||(DY={}));var U$=(W)=>Number.isSafeInteger(W);class MY{static decode(W,G=0){let X=this.$scanForNullBytes(W,G),Y=0,Z=0;for(let V=0;V<=X-G;V++){let Q=W[G+V]&DY.LOWER_7;Y|=Q<<Z,Z+=7}return Y}static encode(W){if(this.check(W),W<0)throw Error(`An unsigned number must NOT be negative, ${W} is!`);let G=[],X=W;do{let Y=X&DY.LOWER_7;if(X>>=7,X)Y=Y|DY.UPPER_1;G.push(Y)}while(X);return Uint8Array.from(G)}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,G=0){let X=G,Y=0;do{if(X>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(X,X+1)[0],X++}while(Y&DY.UPPER_1);return X-1}static getLength(W,G=0){return this.$scanForNullBytes(W,G)-G}}N$.UnsignedLEB128=MY;class Dq{static $ceil7mul(W){let G=W;while(G%7)G++;return G}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static encode(W){if(this.check(W),W>=0)throw Error(`A signed number must be negative, ${W} isn't!`);let G=Math.ceil(Math.log2(-W));return MY.encode((1<<this.$ceil7mul(G))+W)}static decode(W,G=0){let X=MY.decode(W,G);return-((1<<Math.ceil(Math.log2(X)))-X)}}N$.SignedLEB128=Dq;class Mq{}N$.LEB128=Mq;Mq.encode=(W)=>(W>=0?MY:Dq).encode(W);Mq.decode=(W,G=0,X=!1)=>(X?Dq:MY).decode(W,G)});var z$=Z1((dj,A$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function G(P){return parseInt(P)===P}function X(P){if(!G(P.length))return!1;for(var E=0;E<P.length;E++)if(!G(P[E])||P[E]<0||P[E]>255)return!1;return!0}function Y(P,E){if(P.buffer&&P.name==="Uint8Array"){if(E)if(P.slice)P=P.slice();else P=Array.prototype.slice.call(P);return P}if(Array.isArray(P)){if(!X(P))throw Error("Array contains invalid value: "+P);return new Uint8Array(P)}if(G(P.length)&&X(P))return new Uint8Array(P);throw Error("unsupported array-like object")}function Z(P){return new Uint8Array(P)}function V(P,E,b,k,f){if(k!=null||f!=null)if(P.slice)P=P.slice(k,f);else P=Array.prototype.slice.call(P,k,f);E.set(P,b)}var Q=function(){function P(b){var k=[],f=0;b=encodeURI(b);while(f<b.length){var e=b.charCodeAt(f++);if(e===37)k.push(parseInt(b.substr(f,2),16)),f+=2;else k.push(e)}return Y(k)}function E(b){var k=[],f=0;while(f<b.length){var e=b[f];if(e<128)k.push(String.fromCharCode(e)),f++;else if(e>191&&e<224)k.push(String.fromCharCode((e&31)<<6|b[f+1]&63)),f+=2;else k.push(String.fromCharCode((e&15)<<12|(b[f+1]&63)<<6|b[f+2]&63)),f+=3}return k.join("")}return{toBytes:P,fromBytes:E}}(),J=function(){function P(k){var f=[];for(var e=0;e<k.length;e+=2)f.push(parseInt(k.substr(e,2),16));return f}var E="0123456789abcdef";function b(k){var f=[];for(var e=0;e<k.length;e++){var N0=k[e];f.push(E[(N0&240)>>4]+E[N0&15])}return f.join("")}return{toBytes:P,fromBytes:b}}(),U={16:10,24:12,32:14},N=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],q=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],A=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],H=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],I=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],w=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],C=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],D=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],x=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],h=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],l=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],u=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],n=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],c=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],p=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function W0(P){var E=[];for(var b=0;b<P.length;b+=4)E.push(P[b]<<24|P[b+1]<<16|P[b+2]<<8|P[b+3]);return E}var m=function(P){if(!(this instanceof m))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(P,!0)}),this._prepare()};m.prototype._prepare=function(){var P=U[this.key.length];if(P==null)throw Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var E=0;E<=P;E++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var b=(P+1)*4,k=this.key.length/4,f=W0(this.key),e;for(var E=0;E<k;E++)e=E>>2,this._Ke[e][E%4]=f[E],this._Kd[P-e][E%4]=f[E];var N0=0,Q0=k,$0;while(Q0<b){if($0=f[k-1],f[0]^=q[$0>>16&255]<<24^q[$0>>8&255]<<16^q[$0&255]<<8^q[$0>>24&255]^N[N0]<<24,N0+=1,k!=8)for(var E=1;E<k;E++)f[E]^=f[E-1];else{for(var E=1;E<k/2;E++)f[E]^=f[E-1];$0=f[k/2-1],f[k/2]^=q[$0&255]^q[$0>>8&255]<<8^q[$0>>16&255]<<16^q[$0>>24&255]<<24;for(var E=k/2+1;E<k;E++)f[E]^=f[E-1]}var E=0,D0,x0;while(E<k&&Q0<b)D0=Q0>>2,x0=Q0%4,this._Ke[D0][x0]=f[E],this._Kd[P-D0][x0]=f[E++],Q0++}for(var D0=1;D0<P;D0++)for(var x0=0;x0<4;x0++)$0=this._Kd[D0][x0],this._Kd[D0][x0]=u[$0>>24&255]^n[$0>>16&255]^c[$0>>8&255]^p[$0&255]},m.prototype.encrypt=function(P){if(P.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var E=this._Ke.length-1,b=[0,0,0,0],k=W0(P);for(var f=0;f<4;f++)k[f]^=this._Ke[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=H[k[f]>>24&255]^I[k[(f+1)%4]>>16&255]^w[k[(f+2)%4]>>8&255]^C[k[(f+3)%4]&255]^this._Ke[e][f];k=b.slice()}var N0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Ke[E][f],N0[4*f]=(q[k[f]>>24&255]^Q0>>24)&255,N0[4*f+1]=(q[k[(f+1)%4]>>16&255]^Q0>>16)&255,N0[4*f+2]=(q[k[(f+2)%4]>>8&255]^Q0>>8)&255,N0[4*f+3]=(q[k[(f+3)%4]&255]^Q0)&255;return N0},m.prototype.decrypt=function(P){if(P.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var E=this._Kd.length-1,b=[0,0,0,0],k=W0(P);for(var f=0;f<4;f++)k[f]^=this._Kd[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=D[k[f]>>24&255]^x[k[(f+3)%4]>>16&255]^h[k[(f+2)%4]>>8&255]^l[k[(f+1)%4]&255]^this._Kd[e][f];k=b.slice()}var N0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Kd[E][f],N0[4*f]=(A[k[f]>>24&255]^Q0>>24)&255,N0[4*f+1]=(A[k[(f+3)%4]>>16&255]^Q0>>16)&255,N0[4*f+2]=(A[k[(f+2)%4]>>8&255]^Q0>>8)&255,N0[4*f+3]=(A[k[(f+1)%4]&255]^Q0)&255;return N0};var Y0=function(P){if(!(this instanceof Y0))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new m(P)};Y0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.encrypt(b),V(b,E,k);return E},Y0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.decrypt(b),V(b,E,k);return E};var U0=function(P,E){if(!(this instanceof U0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y(E,!0),this._aes=new m(P)};U0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16);for(var f=0;f<16;f++)b[f]^=this._lastCipherblock[f];this._lastCipherblock=this._aes.encrypt(b),V(this._lastCipherblock,E,k)}return E},U0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16),b=this._aes.decrypt(b);for(var f=0;f<16;f++)E[k+f]=b[f]^this._lastCipherblock[f];V(P,this._lastCipherblock,0,k,k+16)}return E};var y=function(P,E,b){if(!(this instanceof y))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!b)b=1;this.segmentSize=b,this._shiftRegister=Y(E,!0),this._aes=new m(P)};y.prototype.encrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(E,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E},y.prototype.decrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(P,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E};var o=function(P,E){if(!(this instanceof o))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y(E,!0),this._lastPrecipherIndex=16,this._aes=new m(P)};o.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;E[b]^=this._lastPrecipher[this._lastPrecipherIndex++]}return E},o.prototype.decrypt=o.prototype.encrypt;var B=function(P){if(!(this instanceof B))throw Error("Counter must be instanitated with `new`");if(P!==0&&!P)P=1;if(typeof P==="number")this._counter=Z(16),this.setValue(P);else this.setBytes(P)};B.prototype.setValue=function(P){if(typeof P!=="number"||parseInt(P)!=P)throw Error("invalid counter value (must be an integer)");if(P>Number.MAX_SAFE_INTEGER)throw Error("integer value out of safe range");for(var E=15;E>=0;--E)this._counter[E]=P%256,P=parseInt(P/256)},B.prototype.setBytes=function(P){if(P=Y(P,!0),P.length!=16)throw Error("invalid counter bytes size (must be 16 bytes)");this._counter=P},B.prototype.increment=function(){for(var P=15;P>=0;P--)if(this._counter[P]===255)this._counter[P]=0;else{this._counter[P]++;break}};var R=function(P,E){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!(E instanceof B))E=new B(E);this._counter=E,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new m(P)};R.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();E[b]^=this._remainingCounter[this._remainingCounterIndex++]}return E},R.prototype.decrypt=R.prototype.encrypt;function _(P){P=Y(P,!0);var E=16-P.length%16,b=Z(P.length+E);V(P,b);for(var k=P.length;k<b.length;k++)b[k]=E;return b}function S(P){if(P=Y(P,!0),P.length<16)throw Error("PKCS#7 invalid length");var E=P[P.length-1];if(E>16)throw Error("PKCS#7 padding byte out of range");var b=P.length-E;for(var k=0;k<E;k++)if(P[b+k]!==E)throw Error("PKCS#7 invalid padding byte");var f=Z(b);return V(P,f,0,0,b),f}var v={AES:m,Counter:B,ModeOfOperation:{ecb:Y0,cbc:U0,cfb:y,ofb:o,ctr:R},utils:{hex:J,utf8:Q},padding:{pkcs7:{pad:_,strip:S}},_arrayTest:{coerceArray:Y,createArray:Z,copyArray:V}};if(typeof dj<"u")A$.exports=v;else if(typeof define==="function"&&define.amd)define([],function(){return v});else{if(W.aesjs)v._aesjs=W.aesjs;W.aesjs=v}})(dj)});var rj=Z1((C$)=>{var s0=C$,{Buffer:Lq}=S8("buffer"),xl=S8("os");s0.toBuffer=function(W,G,X){X=~~X;let Y;if(this.isV4Format(W))Y=G||Lq.alloc(X+4),W.split(/\./g).map((Z)=>{Y[X++]=parseInt(Z,10)&255});else if(this.isV6Format(W)){let Z=W.split(":",8),V;for(V=0;V<Z.length;V++){let Q=this.isV4Format(Z[V]),J;if(Q)J=this.toBuffer(Z[V]),Z[V]=J.slice(0,2).toString("hex");if(J&&++V<8)Z.splice(V,0,J.slice(2,4).toString("hex"))}if(Z[0]==="")while(Z.length<8)Z.unshift("0");else if(Z[Z.length-1]==="")while(Z.length<8)Z.push("0");else if(Z.length<8){for(V=0;V<Z.length&&Z[V]!=="";V++);let Q=[V,1];for(V=9-Z.length;V>0;V--)Q.push("0");Z.splice(...Q)}Y=G||Lq.alloc(X+16);for(V=0;V<Z.length;V++){let Q=parseInt(Z[V],16);Y[X++]=Q>>8&255,Y[X++]=Q&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};s0.toString=function(W,G,X){G=~~G,X=X||W.length-G;let Y=[];if(X===4){for(let Z=0;Z<X;Z++)Y.push(W[G+Z]);Y=Y.join(".")}else if(X===16){for(let Z=0;Z<X;Z+=2)Y.push(W.readUInt16BE(G+Z).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var kl=/^(\d{1,3}\.){3,3}\d{1,3}$/,_l=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;s0.isV4Format=function(W){return kl.test(W)};s0.isV6Format=function(W){return _l.test(W)};function FQ(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}s0.fromPrefixLen=function(W,G){if(W>32)G="ipv6";else G=FQ(G);let X=4;if(G==="ipv6")X=16;let Y=Lq.alloc(X);for(let Z=0,V=Y.length;Z<V;++Z){let Q=8;if(W<8)Q=W;W-=Q,Y[Z]=~(255>>Q)&255}return s0.toString(Y)};s0.mask=function(W,G){W=s0.toBuffer(W),G=s0.toBuffer(G);let X=Lq.alloc(Math.max(W.length,G.length)),Y;if(W.length===G.length)for(Y=0;Y<W.length;Y++)X[Y]=W[Y]&G[Y];else if(G.length===4)for(Y=0;Y<G.length;Y++)X[Y]=W[W.length-4+Y]&G[Y];else{for(Y=0;Y<X.length-6;Y++)X[Y]=0;X[10]=255,X[11]=255;for(Y=0;Y<W.length;Y++)X[Y+12]=W[Y]&G[Y+12];Y+=12}for(;Y<X.length;Y++)X[Y]=0;return s0.toString(X)};s0.cidr=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.mask(X,Y)};s0.subnet=function(W,G){let X=s0.toLong(s0.mask(W,G)),Y=s0.toBuffer(G),Z=0;for(let Q=0;Q<Y.length;Q++)if(Y[Q]===255)Z+=8;else{let J=Y[Q]&255;while(J)J=J<<1&255,Z++}let V=2**(32-Z);return{networkAddress:s0.fromLong(X),firstAddress:V<=2?s0.fromLong(X):s0.fromLong(X+1),lastAddress:V<=2?s0.fromLong(X+V-1):s0.fromLong(X+V-2),broadcastAddress:s0.fromLong(X+V-1),subnetMask:G,subnetMaskLength:Z,numHosts:V<=2?V:V-2,length:V,contains(Q){return X===s0.toLong(s0.mask(Q,G))}}};s0.cidrSubnet=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.subnet(X,Y)};s0.not=function(W){let G=s0.toBuffer(W);for(let X=0;X<G.length;X++)G[X]=255^G[X];return s0.toString(G)};s0.or=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let V=0;V<W.length;++V)W[V]|=G[V];return s0.toString(W)}let X=W,Y=G;if(G.length>W.length)X=G,Y=W;let Z=X.length-Y.length;for(let V=Z;V<X.length;++V)X[V]|=Y[V-Z];return s0.toString(X)};s0.isEqual=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==G[Y])return!1;return!0}if(G.length===4){let Y=G;G=W,W=Y}for(let Y=0;Y<10;Y++)if(G[Y]!==0)return!1;let X=G.readUInt16BE(10);if(X!==0&&X!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==G[Y+12])return!1;return!0};s0.isPrivate=function(W){if(s0.isLoopback(W))return!0;if(!s0.isV6Format(W)){let G=s0.normalizeToLong(W);if(G<0)throw Error("invalid ipv4 address");W=s0.fromLong(G)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^f[cd][0-9a-f]{2}:/i.test(W)||/^fe80:/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.isPublic=function(W){return!s0.isPrivate(W)};s0.isLoopback=function(W){if(!/\./.test(W)&&!/:/.test(W))W=s0.fromLong(Number(W));return/^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(W)||/^0177\./.test(W)||/^0x7f\./i.test(W)||/^fe80::1$/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.loopback=function(W){if(W=FQ(W),W!=="ipv4"&&W!=="ipv6")throw Error("family must be ipv4 or ipv6");return W==="ipv4"?"127.0.0.1":"fe80::1"};s0.address=function(W,G){let X=xl.networkInterfaces();if(G=FQ(G),W&&W!=="private"&&W!=="public"){let Z=X[W].filter((V)=>{return FQ(V.family)===G});if(Z.length===0)return;return Z[0].address}let Y=Object.keys(X).map((Z)=>{let V=X[Z].filter((Q)=>{if(Q.family=FQ(Q.family),Q.family!==G||s0.isLoopback(Q.address))return!1;if(!W)return!0;return W==="public"?s0.isPrivate(Q.address):s0.isPublic(Q.address)});return V.length?V[0].address:void 0}).filter(Boolean);return!Y.length?s0.loopback(G):Y[0]};s0.toLong=function(W){let G=0;return W.split(".").forEach((X)=>{G<<=8,G+=parseInt(X)}),G>>>0};s0.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};s0.normalizeToLong=function(W){let G=W.split(".").map((Z)=>{if(Z.startsWith("0x")||Z.startsWith("0X"))return parseInt(Z,16);else if(Z.startsWith("0")&&Z!=="0"&&/^[0-7]+$/.test(Z))return parseInt(Z,8);else if(/^[1-9]\d*$/.test(Z)||Z==="0")return parseInt(Z,10);else return NaN});if(G.some(isNaN))return-1;let X=0;switch(G.length){case 1:X=G[0];break;case 2:if(G[0]>255||G[1]>16777215)return-1;X=G[0]<<24|G[1]&16777215;break;case 3:if(G[0]>255||G[1]>255||G[2]>65535)return-1;X=G[0]<<24|G[1]<<16|G[2]&65535;break;case 4:if(G.some((Z)=>Z>255))return-1;X=G[0]<<24|G[1]<<16|G[2]<<8|G[3];break;default:return-1}return X>>>0}});var M$=Z1((xq0,D$)=>{D$.exports=function W(G,X){if(G===X)return!0;if(G&&X&&typeof G=="object"&&typeof X=="object"){if(G.constructor!==X.constructor)return!1;var Y,Z,V;if(Array.isArray(G)){if(Y=G.length,Y!=X.length)return!1;for(Z=Y;Z--!==0;)if(!W(G[Z],X[Z]))return!1;return!0}if(G.constructor===RegExp)return G.source===X.source&&G.flags===X.flags;if(G.valueOf!==Object.prototype.valueOf)return G.valueOf()===X.valueOf();if(G.toString!==Object.prototype.toString)return G.toString()===X.toString();if(V=Object.keys(G),Y=V.length,Y!==Object.keys(X).length)return!1;for(Z=Y;Z--!==0;)if(!Object.prototype.hasOwnProperty.call(X,V[Z]))return!1;for(Z=Y;Z--!==0;){var Q=V[Z];if(!W(G[Q],X[Q]))return!1}return!0}return G!==G&&X!==X}});var T$=Z1((yl)=>{yl.toString=function(W){switch(W){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+W};yl.toType=function(W){switch(W.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":return 255;case"*":return 255}if(W.toUpperCase().startsWith("UNKNOWN_"))return parseInt(W.slice(8));return 0}});var P$=Z1((ul)=>{ul.toString=function(W){switch(W){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+W};ul.toRcode=function(W){switch(W.toUpperCase()){case"NOERROR":return 0;case"FORMERR":return 1;case"SERVFAIL":return 2;case"NXDOMAIN":return 3;case"NOTIMP":return 4;case"REFUSED":return 5;case"YXDOMAIN":return 6;case"YXRRSET":return 7;case"NXRRSET":return 8;case"NOTAUTH":return 9;case"NOTZONE":return 10;case"RCODE_11":return 11;case"RCODE_12":return 12;case"RCODE_13":return 13;case"RCODE_14":return 14;case"RCODE_15":return 15}return 0}});var R$=Z1((ml)=>{ml.toString=function(W){switch(W){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+W};ml.toOpcode=function(W){switch(W.toUpperCase()){case"QUERY":return 0;case"IQUERY":return 1;case"STATUS":return 2;case"OPCODE_3":return 3;case"NOTIFY":return 4;case"UPDATE":return 5;case"OPCODE_6":return 6;case"OPCODE_7":return 7;case"OPCODE_8":return 8;case"OPCODE_9":return 9;case"OPCODE_10":return 10;case"OPCODE_11":return 11;case"OPCODE_12":return 12;case"OPCODE_13":return 13;case"OPCODE_14":return 14;case"OPCODE_15":return 15}return 0}});var L$=Z1((pl)=>{pl.toString=function(W){switch(W){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+W};pl.toClass=function(W){switch(W.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var B$=Z1((ol)=>{ol.toString=function(W){switch(W){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}if(W<0)return null;return`OPTION_${W}`};ol.toCode=function(W){if(typeof W==="number")return W;if(!W)return-1;switch(W.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let G=W.match(/_(\d+)$/);if(G)return parseInt(G[1],10);return-1}});var F$=Z1(($$,aj)=>{var E$=function(W){Object.defineProperty(W,"__esModule",{value:!0}),W.decode=A,W.encode=q,W.familyOf=N,W.name=void 0,W.sizeOf=U,W.v6=W.v4=void 0;let G=/^(\d{1,3}\.){3,3}\d{1,3}$/,X=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,Z=16,V={name:"v4",size:X,isFormat:(H)=>G.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+X);let C=H.length,D=0;for(let x=0;x<C;){let h=H.charCodeAt(x++);if(h===46)I[w++]=D,D=0;else D=D*10+(h-48)}return I[w]=D,I},decode(H,I){return I=~~I,`${H[I++]}.${H[I++]}.${H[I++]}.${H[I]}`}};W.v4=V;let Q={name:"v6",size:Z,isFormat:(H)=>H.length>0&&Y.test(H),encode(H,I,w){w=~~w;let C=w+Z,D=-1,x=0,h=0,l=!0,u=!1;I=I||new Uint8Array(w+Z);for(let n=0;n<H.length;n++){let c=H.charCodeAt(n);if(c===58){if(l){if(D!==-1){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(w<C)D=w}else{if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}x=0,h=0}l=!0,u=!1}else if(c===46){if(w<C)I[w]=h;w++,h=0,x=0,l=!1,u=!0}else{if(l=!1,c>=97)c-=87;else if(c>=65)c-=55;else c-=48,h=h*10+c;x=(x<<4)+c}}if(l===!1)if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}else if(D===0){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(D!==-1){w+=2;for(let n=Math.min(w-1,C-1);n>=D+2;n--)I[n]=I[n-2];I[D]=0,I[D+1]=0,D=w}if(D!==w&&D!==-1){if(w>C-2)w=C-2;while(C>D)I[--C]=w<C&&w>D?I[--w]:0}else while(w<C)I[w++]=0;return I},decode(H,I){I=~~I;let w="";for(let C=0;C<Z;C+=2){if(C!==0)w+=":";w+=(H[I+C]<<8|H[I+C+1]).toString(16)}return w.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};W.v6=Q;let J="ip";W.name=J;function U(H){if(V.isFormat(H))return V.size;if(Q.isFormat(H))return Q.size;throw Error(`Invalid ip address: ${H}`)}function N(H){return U(H)===V.size?1:2}function q(H,I,w){w=~~w;let C=U(H);if(typeof I==="function")I=I(w+C);if(C===V.size)return V.encode(H,I,w);return Q.encode(H,I,w)}function A(H,I,w){if(I=~~I,w=w||H.length-I,w===V.size)return V.decode(H,I,w);if(w===Q.size)return Q.decode(H,I,w);throw Error(`Invalid buffer size needs to be ${V.size} for v4 or ${Q.size} for v6.`)}return"default"in W?W.default:W}({});if(typeof define==="function"&&define.amd)define([],function(){return E$});else if(typeof aj==="object"&&typeof $$==="object")aj.exports=E$});var S$=Z1((el)=>{var G1=S8("buffer").Buffer,h4=T$(),rl=P$(),al=R$(),Eq=L$(),ej=B$(),jG=F$(),y0=el.name={};y0.encode=function(W,G,X,{mail:Y=!1}={}){if(!G)G=G1.alloc(y0.encodingLength(W));if(!X)X=0;let Z=X,V=W.replace(/^\.|\.$/gm,"");if(V.length){let Q=[];if(Y){let J="";V.split(".").forEach((U)=>{if(U.endsWith("\\"))J+=(J.length?".":"")+U.slice(0,-1);else if(Q.length===0&&J.length)Q.push(J+"."+U);else Q.push(U)})}else Q=V.split(".");for(let J=0;J<Q.length;J++){let U=G.write(Q[J],X+1);G[X]=U,X+=U+1}}return G[X++]=0,y0.encode.bytes=X-Z,G};y0.encode.bytes=0;y0.decode=function(W,G,{mail:X=!1}={}){if(!G)G=0;let Y=[],Z=G,V=0,Q=0,J=!1;while(!0){if(G>=W.length)throw Error("Cannot decode name (buffer overflow)");let U=W[G++];if(Q+=J?0:1,U===0)break;else if((U&192)===0){if(G+U>W.length)throw Error("Cannot decode name (buffer overflow)");if(V+=U+1,V>254)throw Error("Cannot decode name (name too long)");let N=W.toString("utf-8",G,G+U);if(X)N=N.replace(/\./g,"\\.");Y.push(N),G+=U,Q+=J?0:U}else if((U&192)===192){if(G+1>W.length)throw Error("Cannot decode name (buffer overflow)");let N=W.readUInt16BE(G-1)-49152;if(N>=Z)throw Error("Cannot decode name (bad pointer)");G=N,Z=N,Q+=J?0:1,J=!0}else throw Error("Cannot decode name (bad label)")}return y0.decode.bytes=Q,Y.length===0?".":Y.join(".")};y0.decode.bytes=0;y0.encodingLength=function(W){if(W==="."||W==="..")return 1;return G1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var S1={};S1.encode=function(W,G,X){if(!G)G=G1.alloc(S1.encodingLength(W));if(!X)X=0;let Y=G.write(W,X+1);return G[X]=Y,S1.encode.bytes=Y+1,G};S1.encode.bytes=0;S1.decode=function(W,G){if(!G)G=0;let X=W[G],Y=W.toString("utf-8",G+1,G+1+X);return S1.decode.bytes=X+1,Y};S1.decode.bytes=0;S1.encodingLength=function(W){return G1.byteLength(W)+1};var r5={};r5.encode=function(W,G,X){if(!G)G=r5.encodingLength(W);if(!X)X=0;let Y=(W.flags||0)&32767,Z=W.type==="response"?32768:0;return G.writeUInt16BE(W.id||0,X),G.writeUInt16BE(Y|Z,X+2),G.writeUInt16BE(W.questions.length,X+4),G.writeUInt16BE(W.answers.length,X+6),G.writeUInt16BE(W.authorities.length,X+8),G.writeUInt16BE(W.additionals.length,X+10),G};r5.encode.bytes=12;r5.decode=function(W,G){if(!G)G=0;if(W.length<12)throw Error("Header must be 12 bytes");let X=W.readUInt16BE(G+2);return{id:W.readUInt16BE(G),type:X&32768?"response":"query",flags:X&32767,flag_qr:(X>>15&1)===1,opcode:al.toString(X>>11&15),flag_aa:(X>>10&1)===1,flag_tc:(X>>9&1)===1,flag_rd:(X>>8&1)===1,flag_ra:(X>>7&1)===1,flag_z:(X>>6&1)===1,flag_ad:(X>>5&1)===1,flag_cd:(X>>4&1)===1,rcode:rl.toString(X&15),questions:Array(W.readUInt16BE(G+4)),answers:Array(W.readUInt16BE(G+6)),authorities:Array(W.readUInt16BE(G+8)),additionals:Array(W.readUInt16BE(G+10))}};r5.decode.bytes=12;r5.encodingLength=function(){return 12};var F4=el.unknown={};F4.encode=function(W,G,X){if(!G)G=G1.alloc(F4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(W.length,X),W.copy(G,X+2),F4.encode.bytes=W.length+2,G};F4.encode.bytes=0;F4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=W.slice(G+2,G+2+X);return F4.decode.bytes=X+2,Y};F4.decode.bytes=0;F4.encodingLength=function(W){return W.length+2};var S4=el.ns={};S4.encode=function(W,G,X){if(!G)G=G1.alloc(S4.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),S4.encode.bytes=y0.encode.bytes+2,G};S4.encode.bytes=0;S4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=y0.decode(W,G+2);return S4.decode.bytes=X+2,Y};S4.decode.bytes=0;S4.encodingLength=function(W){return y0.encodingLength(W)+2};var x4=el.soa={};x4.encode=function(W,G,X){if(!G)G=G1.alloc(x4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mname,G,X),X+=y0.encode.bytes,y0.encode(W.rname,G,X,{mail:!0}),X+=y0.encode.bytes,G.writeUInt32BE(W.serial||0,X),X+=4,G.writeUInt32BE(W.refresh||0,X),X+=4,G.writeUInt32BE(W.retry||0,X),X+=4,G.writeUInt32BE(W.expire||0,X),X+=4,G.writeUInt32BE(W.minimum||0,X),X+=4,G.writeUInt16BE(X-Y-2,Y),x4.encode.bytes=X-Y,G};x4.encode.bytes=0;x4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mname=y0.decode(W,G),G+=y0.decode.bytes,Y.rname=y0.decode(W,G,{mail:!0}),G+=y0.decode.bytes,Y.serial=W.readUInt32BE(G),G+=4,Y.refresh=W.readUInt32BE(G),G+=4,Y.retry=W.readUInt32BE(G),G+=4,Y.expire=W.readUInt32BE(G),G+=4,Y.minimum=W.readUInt32BE(G),G+=4,x4.decode.bytes=G-X,Y};x4.decode.bytes=0;x4.encodingLength=function(W){return 22+y0.encodingLength(W.mname)+y0.encodingLength(W.rname)};var k4=el.txt={};k4.encode=function(W,G,X){if(!Array.isArray(W))W=[W];for(let Z=0;Z<W.length;Z++){if(typeof W[Z]==="string")W[Z]=G1.from(W[Z]);if(!G1.isBuffer(W[Z]))throw Error("Must be a Buffer")}if(!G)G=G1.alloc(k4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,W.forEach(function(Z){G[X++]=Z.length,Z.copy(G,X,0,Z.length),X+=Z.length}),G.writeUInt16BE(X-Y-2,Y),k4.encode.bytes=X-Y,G};k4.encode.bytes=0;k4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=[];while(Y>0){let V=W[G++];if(--Y,Y<V)throw Error("Buffer overflow");Z.push(W.slice(G,G+V)),G+=V,Y-=V}return k4.decode.bytes=G-X,Z};k4.decode.bytes=0;k4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let G=2;return W.forEach(function(X){if(typeof X==="string")G+=G1.byteLength(X)+1;else G+=X.length+1}),G};var _4=el.null={};_4.encode=function(W,G,X){if(!G)G=G1.alloc(_4.encodingLength(W));if(!X)X=0;if(typeof W==="string")W=G1.from(W);if(!W)W=G1.alloc(0);let Y=X;X+=2;let Z=W.length;return W.copy(G,X,0,Z),X+=Z,G.writeUInt16BE(X-Y-2,Y),_4.encode.bytes=X-Y,G};_4.encode.bytes=0;_4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=W.slice(G,G+Y);return G+=Y,_4.decode.bytes=G-X,Z};_4.decode.bytes=0;_4.encodingLength=function(W){if(!W)return 2;return(G1.isBuffer(W)?W.length:G1.byteLength(W))+2};var y4=el.hinfo={};y4.encode=function(W,G,X){if(!G)G=G1.alloc(y4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,S1.encode(W.cpu,G,X),X+=S1.encode.bytes,S1.encode(W.os,G,X),X+=S1.encode.bytes,G.writeUInt16BE(X-Y-2,Y),y4.encode.bytes=X-Y,G};y4.encode.bytes=0;y4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.cpu=S1.decode(W,G),G+=S1.decode.bytes,Y.os=S1.decode(W,G),G+=S1.decode.bytes,y4.decode.bytes=G-X,Y};y4.decode.bytes=0;y4.encodingLength=function(W){return S1.encodingLength(W.cpu)+S1.encodingLength(W.os)+2};var n5=el.ptr={},sl=el.cname=n5,tl=el.dname=n5;n5.encode=function(W,G,X){if(!G)G=G1.alloc(n5.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),n5.encode.bytes=y0.encode.bytes+2,G};n5.encode.bytes=0;n5.decode=function(W,G){if(!G)G=0;let X=y0.decode(W,G+2);return n5.decode.bytes=y0.decode.bytes+2,X};n5.decode.bytes=0;n5.encodingLength=function(W){return y0.encodingLength(W)+2};var v4=el.srv={};v4.encode=function(W,G,X){if(!G)G=G1.alloc(v4.encodingLength(W));if(!X)X=0;G.writeUInt16BE(W.priority||0,X+2),G.writeUInt16BE(W.weight||0,X+4),G.writeUInt16BE(W.port||0,X+6),y0.encode(W.target,G,X+8);let Y=y0.encode.bytes+6;return G.writeUInt16BE(Y,X),v4.encode.bytes=Y+2,G};v4.encode.bytes=0;v4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y={};return Y.priority=W.readUInt16BE(G+2),Y.weight=W.readUInt16BE(G+4),Y.port=W.readUInt16BE(G+6),Y.target=y0.decode(W,G+8),v4.decode.bytes=X+2,Y};v4.decode.bytes=0;v4.encodingLength=function(W){return 8+y0.encodingLength(W.target)};var Q5=el.caa={};Q5.ISSUER_CRITICAL=128;Q5.encode=function(W,G,X){let Y=Q5.encodingLength(W);if(!G)G=G1.alloc(Q5.encodingLength(W));if(!X)X=0;if(W.issuerCritical)W.flags=Q5.ISSUER_CRITICAL;return G.writeUInt16BE(Y-2,X),X+=2,G.writeUInt8(W.flags||0,X),X+=1,S1.encode(W.tag,G,X),X+=S1.encode.bytes,G.write(W.value,X),X+=G1.byteLength(W.value),Q5.encode.bytes=Y,G};Q5.encode.bytes=0;Q5.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G);G+=2;let Y=G,Z={};return Z.flags=W.readUInt8(G),G+=1,Z.tag=S1.decode(W,G),G+=S1.decode.bytes,Z.value=W.toString("utf-8",G,Y+X),Z.issuerCritical=!!(Z.flags&Q5.ISSUER_CRITICAL),Q5.decode.bytes=X+2,Z};Q5.decode.bytes=0;Q5.encodingLength=function(W){return S1.encodingLength(W.tag)+S1.encodingLength(W.value)+2};var o6=el.mx={};o6.encode=function(W,G,X){if(!G)G=G1.alloc(o6.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,y0.encode(W.exchange,G,X),X+=y0.encode.bytes,G.writeUInt16BE(X-Y-2,Y),o6.encode.bytes=X-Y,G};o6.encode.bytes=0;o6.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.exchange=y0.decode(W,G),G+=y0.decode.bytes,o6.decode.bytes=G-X,Y};o6.encodingLength=function(W){return 4+y0.encodingLength(W.exchange)};var g4=el.a={};g4.encode=function(W,G,X){if(!G)G=G1.alloc(g4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(4,X),X+=2,jG.v4.encode(W,G,X),g4.encode.bytes=6,G};g4.encode.bytes=0;g4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v4.decode(W,G);return g4.decode.bytes=6,X};g4.decode.bytes=0;g4.encodingLength=function(){return 6};var u4=el.aaaa={};u4.encode=function(W,G,X){if(!G)G=G1.alloc(u4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(16,X),X+=2,jG.v6.encode(W,G,X),u4.encode.bytes=18,G};u4.encode.bytes=0;u4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v6.decode(W,G);return u4.decode.bytes=18,X};u4.decode.bytes=0;u4.encodingLength=function(){return 18};var n9=el.option={};n9.encode=function(W,G,X){if(!G)G=G1.alloc(n9.encodingLength(W));if(!X)X=0;let Y=X,Z=ej.toCode(W.code);if(G.writeUInt16BE(Z,X),X+=2,W.data)G.writeUInt16BE(W.data.length,X),X+=2,W.data.copy(G,X),X+=W.data.length;else switch(Z){case 8:let V=W.sourcePrefixLength||0,Q=W.family||jG.familyOf(W.ip),J=jG.encode(W.ip,G1.alloc),U=Math.ceil(V/8);G.writeUInt16BE(U+4,X),X+=2,G.writeUInt16BE(Q,X),X+=2,G.writeUInt8(V,X++),G.writeUInt8(W.scopePrefixLength||0,X++),J.copy(G,X,0,U),X+=U;break;case 11:if(W.timeout)G.writeUInt16BE(2,X),X+=2,G.writeUInt16BE(W.timeout,X),X+=2;else G.writeUInt16BE(0,X),X+=2;break;case 12:let N=W.length||0;G.writeUInt16BE(N,X),X+=2,G.fill(0,X,X+N),X+=N;break;case 14:let q=W.tags.length*2;G.writeUInt16BE(q,X),X+=2;for(let A of W.tags)G.writeUInt16BE(A,X),X+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return n9.encode.bytes=X-Y,G};n9.encode.bytes=0;n9.decode=function(W,G){if(!G)G=0;let X={};X.code=W.readUInt16BE(G),X.type=ej.toString(X.code),G+=2;let Y=W.readUInt16BE(G);switch(G+=2,X.data=W.slice(G,G+Y),X.code){case 8:X.family=W.readUInt16BE(G),G+=2,X.sourcePrefixLength=W.readUInt8(G++),X.scopePrefixLength=W.readUInt8(G++);let Z=G1.alloc(X.family===1?4:16);W.copy(Z,0,G,G+Y-4),X.ip=jG.decode(Z);break;case 11:if(Y>0)X.timeout=W.readUInt16BE(G),G+=2;break;case 14:X.tags=[];for(let V=0;V<Y;V+=2)X.tags.push(W.readUInt16BE(G)),G+=2}return n9.decode.bytes=Y+4,X};n9.decode.bytes=0;n9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(ej.toCode(W.code)){case 8:let X=W.sourcePrefixLength||0;return Math.ceil(X/8)+8;case 11:return typeof W.timeout==="number"?6:4;case 12:return W.length+4;case 14:return 4+W.tags.length*2}throw Error(`Unknown roption code: ${W.code}`)};var U5=el.opt={};U5.encode=function(W,G,X){if(!G)G=G1.alloc(U5.encodingLength(W));if(!X)X=0;let Y=X,Z=BY(W,n9);return G.writeUInt16BE(Z,X),X=SQ(W,n9,G,X+2),U5.encode.bytes=X-Y,G};U5.encode.bytes=0;U5.decode=function(W,G){if(!G)G=0;let X=G,Y=[],Z=W.readUInt16BE(G);G+=2;let V=0;while(Z>0)Y[V++]=n9.decode(W,G),G+=n9.decode.bytes,Z-=n9.decode.bytes;return U5.decode.bytes=G-X,Y};U5.decode.bytes=0;U5.encodingLength=function(W){return 2+BY(W||[],n9)};var y9=el.dnskey={};y9.PROTOCOL_DNSSEC=3;y9.ZONE_KEY=128;y9.SECURE_ENTRYPOINT=32768;y9.encode=function(W,G,X){if(!G)G=G1.alloc(y9.encodingLength(W));if(!X)X=0;let Y=X,Z=W.key;if(!G1.isBuffer(Z))throw Error("Key must be a Buffer");return X+=2,G.writeUInt16BE(W.flags,X),X+=2,G.writeUInt8(y9.PROTOCOL_DNSSEC,X),X+=1,G.writeUInt8(W.algorithm,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y9.encode.bytes=X-Y,G.writeUInt16BE(y9.encode.bytes-2,Y),G};y9.encode.bytes=0;y9.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);if(G+=2,Y.flags=W.readUInt16BE(G),G+=2,W.readUInt8(G)!==y9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return G+=1,Y.algorithm=W.readUInt8(G),G+=1,Y.key=W.slice(G,X+Z+2),G+=Y.key.length,y9.decode.bytes=G-X,Y};y9.decode.bytes=0;y9.encodingLength=function(W){return 6+G1.byteLength(W.key)};var S7=el.rrsig={};S7.encode=function(W,G,X){if(!G)G=G1.alloc(S7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.signature;if(!G1.isBuffer(Z))throw Error("Signature must be a Buffer");return X+=2,G.writeUInt16BE(h4.toType(W.typeCovered),X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.labels,X),X+=1,G.writeUInt32BE(W.originalTTL,X),X+=4,G.writeUInt32BE(W.expiration,X),X+=4,G.writeUInt32BE(W.inception,X),X+=4,G.writeUInt16BE(W.keyTag,X),X+=2,y0.encode(W.signersName,G,X),X+=y0.encode.bytes,Z.copy(G,X,0,Z.length),X+=Z.length,S7.encode.bytes=X-Y,G.writeUInt16BE(S7.encode.bytes-2,Y),G};S7.encode.bytes=0;S7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.typeCovered=h4.toString(W.readUInt16BE(G)),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.labels=W.readUInt8(G),G+=1,Y.originalTTL=W.readUInt32BE(G),G+=4,Y.expiration=W.readUInt32BE(G),G+=4,Y.inception=W.readUInt32BE(G),G+=4,Y.keyTag=W.readUInt16BE(G),G+=2,Y.signersName=y0.decode(W,G),G+=y0.decode.bytes,Y.signature=W.slice(G,X+Z+2),G+=Y.signature.length,S7.decode.bytes=G-X,Y};S7.decode.bytes=0;S7.encodingLength=function(W){return 20+y0.encodingLength(W.signersName)+G1.byteLength(W.signature)};var x7=el.rp={};x7.encode=function(W,G,X){if(!G)G=G1.alloc(x7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mbox||".",G,X,{mail:!0}),X+=y0.encode.bytes,y0.encode(W.txt||".",G,X),X+=y0.encode.bytes,x7.encode.bytes=X-Y,G.writeUInt16BE(x7.encode.bytes-2,Y),G};x7.encode.bytes=0;x7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mbox=y0.decode(W,G,{mail:!0})||".",G+=y0.decode.bytes,Y.txt=y0.decode(W,G)||".",G+=y0.decode.bytes,x7.decode.bytes=G-X,Y};x7.decode.bytes=0;x7.encodingLength=function(W){return 2+y0.encodingLength(W.mbox||".")+y0.encodingLength(W.txt||".")};var n8={};n8.encode=function(W,G,X){if(!G)G=G1.alloc(n8.encodingLength(W));if(!X)X=0;let Y=X;var Z=[];for(var V=0;V<W.length;V++){var Q=h4.toType(W[V]);if(Z[Q>>8]===void 0)Z[Q>>8]=[];Z[Q>>8][Q>>3&31]|=1<<7-(Q&7)}for(V=0;V<Z.length;V++)if(Z[V]!==void 0){var J=G1.from(Z[V]);G.writeUInt8(V,X),X+=1,G.writeUInt8(J.length,X),X+=1,J.copy(G,X),X+=J.length}return n8.encode.bytes=X-Y,G};n8.encode.bytes=0;n8.decode=function(W,G,X){if(!G)G=0;let Y=G;var Z=[];while(G-Y<X){var V=W.readUInt8(G);G+=1;var Q=W.readUInt8(G);G+=1;for(var J=0;J<Q;J++){var U=W.readUInt8(G+J);for(var N=0;N<8;N++)if(U&1<<7-N){var q=h4.toString(V<<8|J<<3|N);Z.push(q)}}G+=Q}return n8.decode.bytes=G-Y,Z};n8.decode.bytes=0;n8.encodingLength=function(W){var G=[];for(var X=0;X<W.length;X++){var Y=h4.toType(W[X]);G[Y>>8]=Math.max(G[Y>>8]||0,Y&255)}var Z=0;for(X=0;X<G.length;X++)if(G[X]!==void 0)Z+=2+Math.ceil((G[X]+1)/8);return Z};var k7=el.nsec={};k7.encode=function(W,G,X){if(!G)G=G1.alloc(k7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.nextDomain,G,X),X+=y0.encode.bytes,n8.encode(W.rrtypes,G,X),X+=n8.encode.bytes,k7.encode.bytes=X-Y,G.writeUInt16BE(k7.encode.bytes-2,Y),G};k7.encode.bytes=0;k7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.nextDomain=y0.decode(W,G),G+=y0.decode.bytes,Y.rrtypes=n8.decode(W,G,Z-(G-X)),G+=n8.decode.bytes,k7.decode.bytes=G-X,Y};k7.decode.bytes=0;k7.encodingLength=function(W){return 2+y0.encodingLength(W.nextDomain)+n8.encodingLength(W.rrtypes)};var _7=el.nsec3={};_7.encode=function(W,G,X){if(!G)G=G1.alloc(_7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.salt;if(!G1.isBuffer(Z))throw Error("salt must be a Buffer");let V=W.nextDomain;if(!G1.isBuffer(V))throw Error("nextDomain must be a Buffer");return X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.flags,X),X+=1,G.writeUInt16BE(W.iterations,X),X+=2,G.writeUInt8(Z.length,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,G.writeUInt8(V.length,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,n8.encode(W.rrtypes,G,X),X+=n8.encode.bytes,_7.encode.bytes=X-Y,G.writeUInt16BE(_7.encode.bytes-2,Y),G};_7.encode.bytes=0;_7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.flags=W.readUInt8(G),G+=1,Y.iterations=W.readUInt16BE(G),G+=2;let V=W.readUInt8(G);G+=1,Y.salt=W.slice(G,G+V),G+=V;let Q=W.readUInt8(G);return G+=1,Y.nextDomain=W.slice(G,G+Q),G+=Q,Y.rrtypes=n8.decode(W,G,Z-(G-X)),G+=n8.decode.bytes,_7.decode.bytes=G-X,Y};_7.decode.bytes=0;_7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+n8.encodingLength(W.rrtypes)};var y7=el.ds={};y7.encode=function(W,G,X){if(!G)G=G1.alloc(y7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.digest;if(!G1.isBuffer(Z))throw Error("Digest must be a Buffer");return X+=2,G.writeUInt16BE(W.keyTag,X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.digestType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y7.encode.bytes=X-Y,G.writeUInt16BE(y7.encode.bytes-2,Y),G};y7.encode.bytes=0;y7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.keyTag=W.readUInt16BE(G),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.digestType=W.readUInt8(G),G+=1,Y.digest=W.slice(G,X+Z+2),G+=Y.digest.length,y7.decode.bytes=G-X,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return 6+G1.byteLength(W.digest)};var J5=el.sshfp={};J5.getFingerprintLengthForHashType=function(G){switch(G){case 1:return 20;case 2:return 32}};J5.encode=function(G,X,Y){if(!X)X=G1.alloc(J5.encodingLength(G));if(!Y)Y=0;let Z=Y;Y+=2,X[Y]=G.algorithm,Y+=1,X[Y]=G.hash,Y+=1;let V=G1.from(G.fingerprint.toUpperCase(),"hex");if(V.length!==J5.getFingerprintLengthForHashType(G.hash))throw Error("Invalid fingerprint length");return V.copy(X,Y),Y+=V.byteLength,J5.encode.bytes=Y-Z,X.writeUInt16BE(J5.encode.bytes-2,Z),X};J5.encode.bytes=0;J5.decode=function(G,X){if(!X)X=0;let Y=X,Z={};X+=2,Z.algorithm=G[X],X+=1,Z.hash=G[X],X+=1;let V=J5.getFingerprintLengthForHashType(Z.hash);return Z.fingerprint=G.slice(X,X+V).toString("hex").toUpperCase(),X+=V,J5.decode.bytes=X-Y,Z};J5.decode.bytes=0;J5.encodingLength=function(W){return 4+G1.from(W.fingerprint,"hex").byteLength};var v7=el.naptr={};v7.encode=function(W,G,X){if(!G)G=G1.alloc(v7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.order||0,X),X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,S1.encode(W.flags,G,X),X+=S1.encode.bytes,S1.encode(W.services,G,X),X+=S1.encode.bytes,S1.encode(W.regexp,G,X),X+=S1.encode.bytes,y0.encode(W.replacement,G,X),X+=y0.encode.bytes,v7.encode.bytes=X-Y,G.writeUInt16BE(v7.encode.bytes-2,Y),G};v7.encode.bytes=0;v7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.order=W.readUInt16BE(G),G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.flags=S1.decode(W,G),G+=S1.decode.bytes,Y.services=S1.decode(W,G),G+=S1.decode.bytes,Y.regexp=S1.decode(W,G),G+=S1.decode.bytes,Y.replacement=y0.decode(W,G),G+=y0.decode.bytes,v7.decode.bytes=G-X,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return S1.encodingLength(W.flags)+S1.encodingLength(W.services)+S1.encodingLength(W.regexp)+y0.encodingLength(W.replacement)+6};var g7=el.tlsa={};g7.encode=function(W,G,X){if(!G)G=G1.alloc(g7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.certificate;if(!G1.isBuffer(Z))throw Error("Certificate must be a Buffer");return X+=2,G.writeUInt8(W.usage,X),X+=1,G.writeUInt8(W.selector,X),X+=1,G.writeUInt8(W.matchingType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,g7.encode.bytes=X-Y,G.writeUInt16BE(g7.encode.bytes-2,Y),G};g7.encode.bytes=0;g7.decode=function(W,G){if(!G)G=0;let X=G,Y={},Z=W.readUInt16BE(G);return G+=2,Y.usage=W.readUInt8(G),G+=1,Y.selector=W.readUInt8(G),G+=1,Y.matchingType=W.readUInt8(G),G+=1,Y.certificate=W.slice(G,X+Z+2),G+=Y.certificate.length,g7.decode.bytes=G-X,Y};g7.decode.bytes=0;g7.encodingLength=function(W){return 5+G1.byteLength(W.certificate)};var WO=el.record=function(W){switch(W.toUpperCase()){case"A":return g4;case"PTR":return n5;case"CNAME":return sl;case"DNAME":return tl;case"TXT":return k4;case"NULL":return _4;case"AAAA":return u4;case"SRV":return v4;case"HINFO":return y4;case"CAA":return Q5;case"NS":return S4;case"SOA":return x4;case"MX":return o6;case"OPT":return U5;case"DNSKEY":return y9;case"RRSIG":return S7;case"RP":return x7;case"NSEC":return k7;case"NSEC3":return _7;case"SSHFP":return J5;case"DS":return y7;case"NAPTR":return v7;case"TLSA":return g7}return F4},Y9=el.answer={};Y9.encode=function(W,G,X){if(!G)G=G1.alloc(Y9.encodingLength(W));if(!X)X=0;let Y=X;if(y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(h4.toType(W.type),X),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");G.writeUInt16BE(W.udpPayloadSize||4096,X+2),G.writeUInt8(W.extendedRcode||0,X+4),G.writeUInt8(W.ednsVersion||0,X+5),G.writeUInt16BE(W.flags||0,X+6),X+=8,U5.encode(W.options||[],G,X),X+=U5.encode.bytes}else{let Z=Eq.toClass(W.class===void 0?"IN":W.class);if(W.flush)Z|=32768;G.writeUInt16BE(Z,X+2),G.writeUInt32BE(W.ttl||0,X+4),X+=8;let V=WO(W.type);V.encode(W.data,G,X),X+=V.encode.bytes}return Y9.encode.bytes=X-Y,G};Y9.encode.bytes=0;Y9.decode=function(W,G){if(!G)G=0;let X={},Y=G;if(X.name=y0.decode(W,G),G+=y0.decode.bytes,X.type=h4.toString(W.readUInt16BE(G)),X.type==="OPT")X.udpPayloadSize=W.readUInt16BE(G+2),X.extendedRcode=W.readUInt8(G+4),X.ednsVersion=W.readUInt8(G+5),X.flags=W.readUInt16BE(G+6),X.flag_do=(X.flags>>15&1)===1,X.options=U5.decode(W,G+8),G+=8+U5.decode.bytes;else{let Z=W.readUInt16BE(G+2);X.ttl=W.readUInt32BE(G+4),X.class=Eq.toString(Z&-32769),X.flush=!!(Z&32768);let V=WO(X.type);X.data=V.decode(W,G+8),G+=8+V.decode.bytes}return Y9.decode.bytes=G-Y,X};Y9.decode.bytes=0;Y9.encodingLength=function(W){let G=W.data!==null&&W.data!==void 0?W.data:W.options;return y0.encodingLength(W.name)+8+WO(W.type).encodingLength(G)};var i5=el.question={};i5.encode=function(W,G,X){if(!G)G=G1.alloc(i5.encodingLength(W));if(!X)X=0;let Y=X;return y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(h4.toType(W.type),X),X+=2,G.writeUInt16BE(Eq.toClass(W.class===void 0?"IN":W.class),X),X+=2,i5.encode.bytes=X-Y,W};i5.encode.bytes=0;i5.decode=function(W,G){if(!G)G=0;let X=G,Y={};if(Y.name=y0.decode(W,G),G+=y0.decode.bytes,Y.type=h4.toString(W.readUInt16BE(G)),G+=2,Y.class=Eq.toString(W.readUInt16BE(G)),G+=2,!!(Y.class&32768))Y.class&=-32769;return i5.decode.bytes=G-X,Y};i5.decode.bytes=0;i5.encodingLength=function(W){return y0.encodingLength(W.name)+4};el.AUTHORITATIVE_ANSWER=1024;el.TRUNCATED_RESPONSE=512;el.RECURSION_DESIRED=256;el.RECURSION_AVAILABLE=128;el.AUTHENTIC_DATA=32;el.CHECKING_DISABLED=16;el.DNSSEC_OK=32768;el.encode=function(W,G,X){let Y=!G;if(Y)G=G1.alloc(el.encodingLength(W));if(!X)X=0;let Z=X;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(r5.encode(W,G,X),X+=r5.encode.bytes,X=SQ(W.questions,i5,G,X),X=SQ(W.answers,Y9,G,X),X=SQ(W.authorities,Y9,G,X),X=SQ(W.additionals,Y9,G,X),el.encode.bytes=X-Z,Y&&el.encode.bytes!==G.length)return G.slice(0,el.encode.bytes);return G};el.encode.bytes=0;el.decode=function(W,G){if(!G)G=0;let X=G,Y=r5.decode(W,G);return G+=r5.decode.bytes,G=Bq(Y.questions,i5,W,G),G=Bq(Y.answers,Y9,W,G),G=Bq(Y.authorities,Y9,W,G),G=Bq(Y.additionals,Y9,W,G),el.decode.bytes=G-X,Y};el.decode.bytes=0;el.encodingLength=function(W){return r5.encodingLength(W)+BY(W.questions||[],i5)+BY(W.answers||[],Y9)+BY(W.authorities||[],Y9)+BY(W.additionals||[],Y9)};el.streamEncode=function(W){let G=el.encode(W),X=G1.alloc(2);X.writeUInt16BE(G.byteLength);let Y=G1.concat([X,G]);return el.streamEncode.bytes=Y.byteLength,Y};el.streamEncode.bytes=0;el.streamDecode=function(W){let G=W.readUInt16BE(0);if(W.byteLength<G+2)return null;let X=el.decode(W.slice(2));return el.streamDecode.bytes=el.decode.bytes,X};el.streamDecode.bytes=0;function BY(W,G){let X=0;for(let Y=0;Y<W.length;Y++)X+=G.encodingLength(W[Y]);return X}function SQ(W,G,X,Y){for(let Z=0;Z<W.length;Z++)G.encode(W[Z],X,Y),Y+=G.encode.bytes;return Y}function Bq(W,G,X,Y){for(let Z=0;Z<W.length;Z++)W[Z]=G.decode(X,Y),Y+=G.decode.bytes;return Y}});var _$=Z1((zH0,k$)=>{var x$=zd;process.nextTick(Ad,42);k$.exports=Ud;function Ud(W){var G=Y;return X;function X(Z){G(Z||qd)}function Y(Z){var V=[Z];G=Q,W(J);function Q(U){V.push(U)}function J(U){var N=arguments;G=Nd(U)?Y:q;while(V.length)q(V.shift());function q(A){x$(Hd,A,N)}}}}function Nd(W){return Object.prototype.toString.call(W)==="[object Error]"}function qd(){}function Hd(W,G){W.apply(null,G)}function Ad(W){if(W===42)x$=process.nextTick}function zd(W,G,X){process.nextTick(function(){W(G,X)})}});var g$=Z1((IH0,v$)=>{var GO=S$(),Id=S8("dgram"),wd=_$(),jd=S8("events"),YO=S8("os"),XO=function(){};v$.exports=function(W){if(!W)W={};var G=new jd.EventEmitter,X=typeof W.port==="number"?W.port:5353,Y=W.type||"udp4",Z=W.ip||W.host||(Y==="udp4"?"224.0.0.251":null),V={address:Z,port:X},Q={},J=!1,U=null;if(Y==="udp6"&&(!Z||!W.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var N=W.socket||Id.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});N.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")G.emit("error",A);else G.emit("warning",A)}),N.on("message",function(A,H){try{A=GO.decode(A)}catch(I){G.emit("warning",I);return}if(G.emit("packet",A,H),A.type==="query")G.emit("query",A,H);if(A.type==="response")G.emit("response",A,H)}),N.on("listening",function(){if(!X)X=V.port=N.address().port;if(W.multicast!==!1)G.update(),U=setInterval(G.update,5000),N.setMulticastTTL(W.ttl||255),N.setMulticastLoopback(W.loopback!==!1)});var q=wd(function(A){if(!X||W.bind===!1)return A(null);N.once("error",A),N.bind(X,W.bind||W.interface,function(){N.removeListener("error",A),A(null)})});return q(function(A){if(A)return G.emit("error",A);G.emit("ready")}),G.send=function(A,H,I){if(typeof H==="function")return G.send(A,null,H);if(!I)I=XO;if(!H)H=V;else if(!H.host&&!H.address)H.address=V.address;q(w);function w(C){if(J)return I();if(C)return I(C);var D=GO.encode(A);N.send(D,0,D.length,H.port,H.address||H.host,I)}},G.response=G.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|GO.AUTHORITATIVE_ANSWER,G.send(A,H,I)},G.query=function(A,H,I,w){if(typeof H==="function")return G.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return G.query(A,null,H,I);if(typeof I==="function")return G.query(A,H,null,I);if(!w)w=XO;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",G.send(A,I,w)},G.destroy=function(A){if(!A)A=XO;if(J)return process.nextTick(A);J=!0,clearInterval(U);for(var H in Q)try{N.dropMembership(Z,H)}catch(I){}Q={},N.close(A)},G.update=function(){var A=W.interface?[].concat(W.interface):Kd(),H=!1;for(var I=0;I<A.length;I++){var w=A[I];if(Q[w])continue;try{N.addMembership(Z,w),Q[w]=!0,H=!0}catch(C){G.emit("warning",C)}}if(H){if(N.setMulticastInterface)try{N.setMulticastInterface(W.interface||Od())}catch(C){G.emit("warning",C)}G.emit("networkInterface")}},G};function Od(){var W=YO.networkInterfaces(),G=Object.keys(W);for(var X=0;X<G.length;X++){var Y=W[G[X]];for(var Z=0;Z<Y.length;Z++){var V=Y[Z];if(y$(V.family)&&!V.internal){if(YO.platform()==="darwin"&&G[X]==="en0")return V.address;return"0.0.0.0"}}}return"127.0.0.1"}function Kd(){var W=YO.networkInterfaces(),G=Object.keys(W),X=[];for(var Y=0;Y<G.length;Y++){var Z=W[G[Y]];for(var V=0;V<Z.length;V++){var Q=Z[V];if(y$(Q.family)){X.push(Q.address);break}}}return X}function y$(W){return W===4||W==="IPv4"}});import{Database as qt}from"bun:sqlite";import{mkdirSync as Ht}from"fs";import{dirname as At}from"path";function JC(W){let G=W.length,X=0,Y=0;while(Y<G){let Z=W.charCodeAt(Y++);if((Z&4294967168)===0){X++;continue}else if((Z&4294965248)===0)X+=2;else{if(Z>=55296&&Z<=56319){if(Y<G){let V=W.charCodeAt(Y);if((V&64512)===56320)++Y,Z=((Z&1023)<<10)+(V&1023)+65536}}if((Z&4294901760)===0)X+=3;else X+=4}}return X}function g_(W,G,X){let Y=W.length,Z=X,V=0;while(V<Y){let Q=W.charCodeAt(V++);if((Q&4294967168)===0){G[Z++]=Q;continue}else if((Q&4294965248)===0)G[Z++]=Q>>6&31|192;else{if(Q>=55296&&Q<=56319){if(V<Y){let J=W.charCodeAt(V);if((J&64512)===56320)++V,Q=((Q&1023)<<10)+(J&1023)+65536}}if((Q&4294901760)===0)G[Z++]=Q>>12&15|224,G[Z++]=Q>>6&63|128;else G[Z++]=Q>>18&7|240,G[Z++]=Q>>12&63|128,G[Z++]=Q>>6&63|128}G[Z++]=Q&63|128}}var u_=new TextEncoder,h_=50;function b_(W,G,X){u_.encodeInto(W,G.subarray(X))}function UC(W,G,X){if(W.length>h_)b_(W,G,X);else g_(W,G,X)}var m_=4096;function qA(W,G,X){let Y=G,Z=Y+X,V=[],Q="";while(Y<Z){let J=W[Y++];if((J&128)===0)V.push(J);else if((J&224)===192){let U=W[Y++]&63;V.push((J&31)<<6|U)}else if((J&240)===224){let U=W[Y++]&63,N=W[Y++]&63;V.push((J&31)<<12|U<<6|N)}else if((J&248)===240){let U=W[Y++]&63,N=W[Y++]&63,q=W[Y++]&63,A=(J&7)<<18|U<<12|N<<6|q;if(A>65535)A-=65536,V.push(A>>>10&1023|55296),A=56320|A&1023;V.push(A)}else V.push(J);if(V.length>=m_)Q+=String.fromCharCode(...V),V.length=0}if(V.length>0)Q+=String.fromCharCode(...V);return Q}var f_=new TextDecoder,c_=200;function p_(W,G,X){let Y=W.subarray(G,G+X);return f_.decode(Y)}function NC(W,G,X){if(X>c_)return p_(W,G,X);else return qA(W,G,X)}class pG{type;data;constructor(W,G){this.type=W,this.data=G}}class $9 extends Error{constructor(W){super(W);let G=Object.create($9.prototype);Object.setPrototypeOf(this,G),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:$9.name})}}var lG=4294967295;function qC(W,G,X){let Y=X/4294967296,Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function yJ(W,G,X){let Y=Math.floor(X/4294967296),Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function vJ(W,G){let X=W.getInt32(G),Y=W.getUint32(G+4);return X*4294967296+Y}function HC(W,G){let X=W.getUint32(G),Y=W.getUint32(G+4);return X*4294967296+Y}var l_=-1,d_=4294967295,o_=17179869183;function n_({sec:W,nsec:G}){if(W>=0&&G>=0&&W<=o_)if(G===0&&W<=d_){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,W),X}else{let X=W/4294967296,Y=W&4294967295,Z=new Uint8Array(8),V=new DataView(Z.buffer);return V.setUint32(0,G<<2|X&3),V.setUint32(4,Y),Z}else{let X=new Uint8Array(12),Y=new DataView(X.buffer);return Y.setUint32(0,G),yJ(Y,4,W),X}}function i_(W){let G=W.getTime(),X=Math.floor(G/1000),Y=(G-X*1000)*1e6,Z=Math.floor(Y/1e9);return{sec:X+Z,nsec:Y-Z*1e9}}function r_(W){if(W instanceof Date){let G=i_(W);return n_(G)}else return null}function a_(W){let G=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let X=G.getUint32(0),Y=0;return{sec:X,nsec:0}}case 8:{let X=G.getUint32(0),Y=G.getUint32(4),Z=(X&3)*4294967296+Y,V=X>>>2;return{sec:Z,nsec:V}}case 12:{let X=vJ(G,4),Y=G.getUint32(0);return{sec:X,nsec:Y}}default:throw new $9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function s_(W){let G=a_(W);return new Date(G.sec*1000+G.nsec/1e6)}var AC={type:l_,encode:r_,decode:s_};class dG{static defaultCodec=new dG;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(AC)}register({type:W,encode:G,decode:X}){if(W>=0)this.encoders[W]=G,this.decoders[W]=X;else{let Y=-1-W;this.builtInEncoders[Y]=G,this.builtInDecoders[Y]=X}}tryToEncode(W,G){for(let X=0;X<this.builtInEncoders.length;X++){let Y=this.builtInEncoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null){let V=-1-X;return new pG(V,Z)}}}for(let X=0;X<this.encoders.length;X++){let Y=this.encoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null)return new pG(X,Z)}}if(W instanceof pG)return W;return null}decode(W,G,X){let Y=G<0?this.builtInDecoders[-1-G]:this.decoders[G];if(Y)return Y(W,G,X);else return new pG(G,W)}}function t_(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&W instanceof SharedArrayBuffer}function UZ(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(t_(W))return new Uint8Array(W);else return Uint8Array.from(W)}var e_=100,Wy=2048;class gJ{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??e_,this.initialBufferSize=W?.initialBufferSize??Wy,this.sortKeys=W?.sortKeys??!1,this.forceFloat32=W?.forceFloat32??!1,this.ignoreUndefined=W?.ignoreUndefined??!1,this.forceIntegerToFloat=W?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new gJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(W){if(this.entered)return this.clone().encodeSharedRef(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(W){if(this.entered)return this.clone().encode(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(W,G){if(G>this.maxDepth)throw Error(`Too deep objects in depth ${G}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,G)}ensureBufferSizeToWrite(W){let G=this.pos+W;if(this.view.byteLength<G)this.resizeBuffer(G*2)}resizeBuffer(W){let G=new ArrayBuffer(W),X=new Uint8Array(G),Y=new DataView(G);X.set(this.bytes),this.view=Y,this.bytes=X}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){let X=JC(W);this.ensureBufferSizeToWrite(5+X),this.writeStringHeader(X),UC(W,this.bytes,this.pos),this.pos+=X}encodeObject(W,G){let X=this.extensionCodec.tryToEncode(W,this.context);if(X!=null)this.encodeExtension(X);else if(Array.isArray(W))this.encodeArray(W,G);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,G);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let G=W.byteLength;if(G<256)this.writeU8(196),this.writeU8(G);else if(G<65536)this.writeU8(197),this.writeU16(G);else if(G<4294967296)this.writeU8(198),this.writeU32(G);else throw Error(`Too large binary: ${G}`);let X=UZ(W);this.writeU8a(X)}encodeArray(W,G){let X=W.length;if(X<16)this.writeU8(144+X);else if(X<65536)this.writeU8(220),this.writeU16(X);else if(X<4294967296)this.writeU8(221),this.writeU32(X);else throw Error(`Too large array: ${X}`);for(let Y of W)this.doEncode(Y,G+1)}countWithoutUndefined(W,G){let X=0;for(let Y of G)if(W[Y]!==void 0)X++;return X}encodeMap(W,G){let X=Object.keys(W);if(this.sortKeys)X.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,X):X.length;if(Y<16)this.writeU8(128+Y);else if(Y<65536)this.writeU8(222),this.writeU16(Y);else if(Y<4294967296)this.writeU8(223),this.writeU32(Y);else throw Error(`Too large map object: ${Y}`);for(let Z of X){let V=W[Z];if(!(this.ignoreUndefined&&V===void 0))this.encodeString(Z),this.doEncode(V,G+1)}}encodeExtension(W){if(typeof W.data==="function"){let X=W.data(this.pos+6),Y=X.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(X);return}let G=W.data.length;if(G===1)this.writeU8(212);else if(G===2)this.writeU8(213);else if(G===4)this.writeU8(214);else if(G===8)this.writeU8(215);else if(G===16)this.writeU8(216);else if(G<256)this.writeU8(199),this.writeU8(G);else if(G<65536)this.writeU8(200),this.writeU16(G);else if(G<4294967296)this.writeU8(201),this.writeU32(G);else throw Error(`Too large extension object: ${G}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let G=W.length;this.ensureBufferSizeToWrite(G),this.bytes.set(W,this.pos),this.pos+=G}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),qC(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),yJ(this.view,this.pos,W),this.pos+=8}writeBigUint64(W){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,W),this.pos+=8}writeBigInt64(W){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,W),this.pos+=8}}function NZ(W,G){return new gJ(G).encodeSharedRef(W)}function uJ(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Gy=16,Xy=16;class HA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Gy,G=Xy){this.maxKeyLength=W,this.maxLengthPerKey=G,this.caches=[];for(let X=0;X<this.maxKeyLength;X++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,G,X){let Y=this.caches[X-1];W:for(let Z of Y){let V=Z.bytes;for(let Q=0;Q<X;Q++)if(V[Q]!==W[G+Q])continue W;return Z.str}return null}store(W,G){let X=this.caches[W.length-1],Y={bytes:W,str:G};if(X.length>=this.maxLengthPerKey)X[Math.random()*X.length|0]=Y;else X.push(Y)}decode(W,G,X){let Y=this.find(W,G,X);if(Y!=null)return this.hit++,Y;this.miss++;let Z=qA(W,G,X),V=Uint8Array.prototype.slice.call(W,G,G+X);return this.store(V,Z),Z}}var AA="array",HZ="map_key",IC="map_value",Yy=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new $9("The type of key must be string or number but "+typeof W)};class wC{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let G=this.getUninitializedStateFromPool();G.type=AA,G.position=0,G.size=W,G.array=Array(W)}pushMapState(W){let G=this.getUninitializedStateFromPool();G.type=HZ,G.readCount=0,G.size=W,G.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===AA){let X=W;X.size=0,X.array=void 0,X.position=0,X.type=void 0}if(W.type===HZ||W.type===IC){let X=W;X.size=0,X.map=void 0,X.readCount=0,X.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var qZ=-1,zA=new DataView(new ArrayBuffer(0)),Zy=new Uint8Array(zA.buffer);try{zA.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var zC=RangeError("Insufficient data"),Vy=new HA;class hJ{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=zA;bytes=Zy;headByte=qZ;stack=new wC;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lG,this.maxBinLength=W?.maxBinLength??lG,this.maxArrayLength=W?.maxArrayLength??lG,this.maxMapLength=W?.maxMapLength??lG,this.maxExtLength=W?.maxExtLength??lG,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:Vy,this.mapKeyConverter=W?.mapKeyConverter??Yy}clone(){return new hJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=qZ,this.stack.reset()}setBuffer(W){let G=UZ(W);this.bytes=G,this.view=new DataView(G.buffer,G.byteOffset,G.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===qZ&&!this.hasRemaining(1))this.setBuffer(W);else{let G=this.bytes.subarray(this.pos),X=UZ(W),Y=new Uint8Array(G.length+X.length);Y.set(G),Y.set(X,G.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:G,pos:X}=this;return RangeError(`Extra ${G.byteLength-X} of ${G.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);let G=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return G}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let G=!1,X;for await(let Q of W){if(G)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Q);try{X=this.doDecodeSync(),G=!0}catch(J){if(!(J instanceof RangeError))throw J}this.totalPos+=this.pos}if(G){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return X}let{headByte:Y,pos:Z,totalPos:V}=this;throw RangeError(`Insufficient data in parsing ${uJ(Y)} at ${V} (${Z} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(W){return this.decodeMultiAsync(W,!0)}decodeStream(W){return this.decodeMultiAsync(W,!1)}async*decodeMultiAsync(W,G){if(this.entered){yield*this.clone().decodeMultiAsync(W,G);return}try{this.entered=!0;let X=G,Y=-1;for await(let Z of W){if(G&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(Z),X)Y=this.readArraySize(),X=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--Y===0)break}catch(V){if(!(V instanceof RangeError))throw V}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){let W=this.readHeadByte(),G;if(W>=224)G=W-256;else if(W<192)if(W<128)G=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else{let Y=W-160;G=this.decodeString(Y,0)}else if(W===192)G=null;else if(W===194)G=!1;else if(W===195)G=!0;else if(W===202)G=this.readF32();else if(W===203)G=this.readF64();else if(W===204)G=this.readU8();else if(W===205)G=this.readU16();else if(W===206)G=this.readU32();else if(W===207)if(this.useBigInt64)G=this.readU64AsBigInt();else G=this.readU64();else if(W===208)G=this.readI8();else if(W===209)G=this.readI16();else if(W===210)G=this.readI32();else if(W===211)if(this.useBigInt64)G=this.readI64AsBigInt();else G=this.readI64();else if(W===217){let Y=this.lookU8();G=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();G=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();G=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===196){let Y=this.lookU8();G=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();G=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();G=this.decodeBinary(Y,4)}else if(W===212)G=this.decodeExtension(1,0);else if(W===213)G=this.decodeExtension(2,0);else if(W===214)G=this.decodeExtension(4,0);else if(W===215)G=this.decodeExtension(8,0);else if(W===216)G=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();G=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();G=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();G=this.decodeExtension(Y,4)}else throw new $9(`Unrecognized type byte: ${uJ(W)}`);this.complete();let X=this.stack;while(X.length>0){let Y=X.top();if(Y.type===AA)if(Y.array[Y.position]=G,Y.position++,Y.position===Y.size)G=Y.array,X.release(Y);else continue W;else if(Y.type===HZ){if(G==="__proto__")throw new $9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(G),Y.type=IC;continue W}else if(Y.map[Y.key]=G,Y.readCount++,Y.readCount===Y.size)G=Y.map,X.release(Y);else{Y.key=null,Y.type=HZ;continue W}}return G}}readHeadByte(){if(this.headByte===qZ)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=qZ}readArraySize(){let W=this.readHeadByte();switch(W){case 220:return this.readU16();case 221:return this.readU32();default:if(W<160)return W-144;else throw new $9(`Unrecognized array type byte: ${uJ(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new $9(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new $9(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,G){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,G);return this.decodeBinary(W,G)}decodeUtf8String(W,G){if(W>this.maxStrLength)throw new $9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+G+W)throw zC;let X=this.pos+G,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,X,W);else Y=NC(this.bytes,X,W);return this.pos+=G+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===HZ;return!1}decodeBinary(W,G){if(W>this.maxBinLength)throw new $9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+G))throw zC;let X=this.pos+G,Y=this.bytes.subarray(X,X+W);return this.pos+=G+W,Y}decodeExtension(W,G){if(W>this.maxExtLength)throw new $9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let X=this.view.getInt8(this.pos+G),Y=this.decodeBinary(W,G+1);return this.extensionCodec.decode(Y,X,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){let W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){let W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){let W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){let W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){let W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){let W=HC(this.view,this.pos);return this.pos+=8,W}readI64(){let W=vJ(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){let W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){let W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){let W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){let W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function Y6(W,G){return new hJ(G).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sG(W){let G=W.length;while(--G>=0)W[G]=0}var Qy=0,WD=1,Jy=2,Uy=3,Ny=258,uA=29,BZ=256,KZ=BZ+1+uA,iG=30,hA=19,GD=2*KZ+1,zW=15,IA=16,qy=7,bA=256,XD=16,YD=17,ZD=18,$A=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),lJ=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Hy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),VD=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ay=512,a7=Array((KZ+2)*2);sG(a7);var wZ=Array(iG*2);sG(wZ);var CZ=Array(Ay);sG(CZ);var DZ=Array(Ny-Uy+1);sG(DZ);var mA=Array(uA);sG(mA);var dJ=Array(iG);sG(dJ);function wA(W,G,X,Y,Z){this.static_tree=W,this.extra_bits=G,this.extra_base=X,this.elems=Y,this.max_length=Z,this.has_stree=W&&W.length}var QD,JD,UD;function jA(W,G){this.dyn_tree=W,this.max_code=0,this.stat_desc=G}var ND=(W)=>{return W<256?CZ[W]:CZ[256+(W>>>7)]},MZ=(W,G)=>{W.pending_buf[W.pending++]=G&255,W.pending_buf[W.pending++]=G>>>8&255},g9=(W,G,X)=>{if(W.bi_valid>IA-X)W.bi_buf|=G<<W.bi_valid&65535,MZ(W,W.bi_buf),W.bi_buf=G>>IA-W.bi_valid,W.bi_valid+=X-IA;else W.bi_buf|=G<<W.bi_valid&65535,W.bi_valid+=X},U7=(W,G,X)=>{g9(W,X[G*2],X[G*2+1])},qD=(W,G)=>{let X=0;do X|=W&1,W>>>=1,X<<=1;while(--G>0);return X>>>1},zy=(W)=>{if(W.bi_valid===16)MZ(W,W.bi_buf),W.bi_buf=0,W.bi_valid=0;else if(W.bi_valid>=8)W.pending_buf[W.pending++]=W.bi_buf&255,W.bi_buf>>=8,W.bi_valid-=8},Iy=(W,G)=>{let{dyn_tree:X,max_code:Y}=G,Z=G.stat_desc.static_tree,V=G.stat_desc.has_stree,Q=G.stat_desc.extra_bits,J=G.stat_desc.extra_base,U=G.stat_desc.max_length,N,q,A,H,I,w,C=0;for(H=0;H<=zW;H++)W.bl_count[H]=0;X[W.heap[W.heap_max]*2+1]=0;for(N=W.heap_max+1;N<GD;N++){if(q=W.heap[N],H=X[X[q*2+1]*2+1]+1,H>U)H=U,C++;if(X[q*2+1]=H,q>Y)continue;if(W.bl_count[H]++,I=0,q>=J)I=Q[q-J];if(w=X[q*2],W.opt_len+=w*(H+I),V)W.static_len+=w*(Z[q*2+1]+I)}if(C===0)return;do{H=U-1;while(W.bl_count[H]===0)H--;W.bl_count[H]--,W.bl_count[H+1]+=2,W.bl_count[U]--,C-=2}while(C>0);for(H=U;H!==0;H--){q=W.bl_count[H];while(q!==0){if(A=W.heap[--N],A>Y)continue;if(X[A*2+1]!==H)W.opt_len+=(H-X[A*2+1])*X[A*2],X[A*2+1]=H;q--}}},HD=(W,G,X)=>{let Y=Array(zW+1),Z=0,V,Q;for(V=1;V<=zW;V++)Z=Z+X[V-1]<<1,Y[V]=Z;for(Q=0;Q<=G;Q++){let J=W[Q*2+1];if(J===0)continue;W[Q*2]=qD(Y[J]++,J)}},wy=()=>{let W,G,X,Y,Z,V=Array(zW+1);X=0;for(Y=0;Y<uA-1;Y++){mA[Y]=X;for(W=0;W<1<<$A[Y];W++)DZ[X++]=Y}DZ[X-1]=Y,Z=0;for(Y=0;Y<16;Y++){dJ[Y]=Z;for(W=0;W<1<<lJ[Y];W++)CZ[Z++]=Y}Z>>=7;for(;Y<iG;Y++){dJ[Y]=Z<<7;for(W=0;W<1<<lJ[Y]-7;W++)CZ[256+Z++]=Y}for(G=0;G<=zW;G++)V[G]=0;W=0;while(W<=143)a7[W*2+1]=8,W++,V[8]++;while(W<=255)a7[W*2+1]=9,W++,V[9]++;while(W<=279)a7[W*2+1]=7,W++,V[7]++;while(W<=287)a7[W*2+1]=8,W++,V[8]++;HD(a7,KZ+1,V);for(W=0;W<iG;W++)wZ[W*2+1]=5,wZ[W*2]=qD(W,5);QD=new wA(a7,$A,BZ+1,KZ,zW),JD=new wA(wZ,lJ,0,iG,zW),UD=new wA([],Hy,0,hA,qy)},AD=(W)=>{let G;for(G=0;G<KZ;G++)W.dyn_ltree[G*2]=0;for(G=0;G<iG;G++)W.dyn_dtree[G*2]=0;for(G=0;G<hA;G++)W.bl_tree[G*2]=0;W.dyn_ltree[bA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},zD=(W)=>{if(W.bi_valid>8)MZ(W,W.bi_buf);else if(W.bi_valid>0)W.pending_buf[W.pending++]=W.bi_buf;W.bi_buf=0,W.bi_valid=0},jC=(W,G,X,Y)=>{let Z=G*2,V=X*2;return W[Z]<W[V]||W[Z]===W[V]&&Y[G]<=Y[X]},OA=(W,G,X)=>{let Y=W.heap[X],Z=X<<1;while(Z<=W.heap_len){if(Z<W.heap_len&&jC(G,W.heap[Z+1],W.heap[Z],W.depth))Z++;if(jC(G,Y,W.heap[Z],W.depth))break;W.heap[X]=W.heap[Z],X=Z,Z<<=1}W.heap[X]=Y},OC=(W,G,X)=>{let Y,Z,V=0,Q,J;if(W.sym_next!==0)do if(Y=W.pending_buf[W.sym_buf+V++]&255,Y+=(W.pending_buf[W.sym_buf+V++]&255)<<8,Z=W.pending_buf[W.sym_buf+V++],Y===0)U7(W,Z,G);else{if(Q=DZ[Z],U7(W,Q+BZ+1,G),J=$A[Q],J!==0)Z-=mA[Q],g9(W,Z,J);if(Y--,Q=ND(Y),U7(W,Q,X),J=lJ[Q],J!==0)Y-=dJ[Q],g9(W,Y,J)}while(V<W.sym_next);U7(W,bA,G)},FA=(W,G)=>{let X=G.dyn_tree,Y=G.stat_desc.static_tree,Z=G.stat_desc.has_stree,V=G.stat_desc.elems,Q,J,U=-1,N;W.heap_len=0,W.heap_max=GD;for(Q=0;Q<V;Q++)if(X[Q*2]!==0)W.heap[++W.heap_len]=U=Q,W.depth[Q]=0;else X[Q*2+1]=0;while(W.heap_len<2)if(N=W.heap[++W.heap_len]=U<2?++U:0,X[N*2]=1,W.depth[N]=0,W.opt_len--,Z)W.static_len-=Y[N*2+1];G.max_code=U;for(Q=W.heap_len>>1;Q>=1;Q--)OA(W,X,Q);N=V;do Q=W.heap[1],W.heap[1]=W.heap[W.heap_len--],OA(W,X,1),J=W.heap[1],W.heap[--W.heap_max]=Q,W.heap[--W.heap_max]=J,X[N*2]=X[Q*2]+X[J*2],W.depth[N]=(W.depth[Q]>=W.depth[J]?W.depth[Q]:W.depth[J])+1,X[Q*2+1]=X[J*2+1]=N,W.heap[1]=N++,OA(W,X,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Iy(W,G),HD(X,U,W.bl_count)},KC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,N=4;if(Q===0)U=138,N=3;G[(X+1)*2+1]=65535;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<N)W.bl_tree[V*2]+=J;else if(V!==0){if(V!==Z)W.bl_tree[V*2]++;W.bl_tree[XD*2]++}else if(J<=10)W.bl_tree[YD*2]++;else W.bl_tree[ZD*2]++;if(J=0,Z=V,Q===0)U=138,N=3;else if(V===Q)U=6,N=3;else U=7,N=4}},CC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,N=4;if(Q===0)U=138,N=3;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<N)do U7(W,V,W.bl_tree);while(--J!==0);else if(V!==0){if(V!==Z)U7(W,V,W.bl_tree),J--;U7(W,XD,W.bl_tree),g9(W,J-3,2)}else if(J<=10)U7(W,YD,W.bl_tree),g9(W,J-3,3);else U7(W,ZD,W.bl_tree),g9(W,J-11,7);if(J=0,Z=V,Q===0)U=138,N=3;else if(V===Q)U=6,N=3;else U=7,N=4}},jy=(W)=>{let G;KC(W,W.dyn_ltree,W.l_desc.max_code),KC(W,W.dyn_dtree,W.d_desc.max_code),FA(W,W.bl_desc);for(G=hA-1;G>=3;G--)if(W.bl_tree[VD[G]*2+1]!==0)break;return W.opt_len+=3*(G+1)+5+5+4,G},Oy=(W,G,X,Y)=>{let Z;g9(W,G-257,5),g9(W,X-1,5),g9(W,Y-4,4);for(Z=0;Z<Y;Z++)g9(W,W.bl_tree[VD[Z]*2+1],3);CC(W,W.dyn_ltree,G-1),CC(W,W.dyn_dtree,X-1)},Ky=(W)=>{let G=4093624447,X;for(X=0;X<=31;X++,G>>>=1)if(G&1&&W.dyn_ltree[X*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(X=32;X<BZ;X++)if(W.dyn_ltree[X*2]!==0)return 1;return 0},DC=!1,Cy=(W)=>{if(!DC)wy(),DC=!0;W.l_desc=new jA(W.dyn_ltree,QD),W.d_desc=new jA(W.dyn_dtree,JD),W.bl_desc=new jA(W.bl_tree,UD),W.bi_buf=0,W.bi_valid=0,AD(W)},ID=(W,G,X,Y)=>{if(g9(W,(Qy<<1)+(Y?1:0),3),zD(W),MZ(W,X),MZ(W,~X),X)W.pending_buf.set(W.window.subarray(G,G+X),W.pending);W.pending+=X},Dy=(W)=>{g9(W,WD<<1,3),U7(W,bA,a7),zy(W)},My=(W,G,X,Y)=>{let Z,V,Q=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=Ky(W);if(FA(W,W.l_desc),FA(W,W.d_desc),Q=jy(W),Z=W.opt_len+3+7>>>3,V=W.static_len+3+7>>>3,V<=Z)Z=V}else Z=V=X+5;if(X+4<=Z&&G!==-1)ID(W,G,X,Y);else if(W.strategy===4||V===Z)g9(W,(WD<<1)+(Y?1:0),3),OC(W,a7,wZ);else g9(W,(Jy<<1)+(Y?1:0),3),Oy(W,W.l_desc.max_code+1,W.d_desc.max_code+1,Q+1),OC(W,W.dyn_ltree,W.dyn_dtree);if(AD(W),Y)zD(W)},Ty=(W,G,X)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=G,W.pending_buf[W.sym_buf+W.sym_next++]=G>>8,W.pending_buf[W.sym_buf+W.sym_next++]=X,G===0)W.dyn_ltree[X*2]++;else W.matches++,G--,W.dyn_ltree[(DZ[X]+BZ+1)*2]++,W.dyn_dtree[ND(G)*2]++;return W.sym_next===W.sym_end},Py=Cy,Ry=ID,Ly=My,By=Ty,Ey=Dy,$y={_tr_init:Py,_tr_stored_block:Ry,_tr_flush_block:Ly,_tr_tally:By,_tr_align:Ey},Fy=(W,G,X,Y)=>{let Z=W&65535|0,V=W>>>16&65535|0,Q=0;while(X!==0){Q=X>2000?2000:X,X-=Q;do Z=Z+G[Y++]|0,V=V+Z|0;while(--Q);Z%=65521,V%=65521}return Z|V<<16|0},TZ=Fy,Sy=()=>{let W,G=[];for(var X=0;X<256;X++){W=X;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;G[X]=W}return G},xy=new Uint32Array(Sy()),ky=(W,G,X,Y)=>{let Z=xy,V=Y+X;W^=-1;for(let Q=Y;Q<V;Q++)W=W>>>8^Z[(W^G[Q])&255];return W^-1},o8=ky,jW={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},CW={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:_y,_tr_stored_block:SA,_tr_flush_block:yy,_tr_tally:Q6,_tr_align:vy}=$y,{Z_NO_FLUSH:J6,Z_PARTIAL_FLUSH:gy,Z_FULL_FLUSH:uy,Z_FINISH:A5,Z_BLOCK:MC,Z_OK:s8,Z_STREAM_END:TC,Z_STREAM_ERROR:N7,Z_DATA_ERROR:hy,Z_BUF_ERROR:KA,Z_DEFAULT_COMPRESSION:by,Z_FILTERED:my,Z_HUFFMAN_ONLY:bJ,Z_RLE:fy,Z_FIXED:cy,Z_DEFAULT_STRATEGY:py,Z_UNKNOWN:ly,Z_DEFLATED:iJ}=CW,dy=9,oy=15,ny=8,iy=29,ry=256,xA=ry+1+iy,ay=30,sy=19,ty=2*xA+1,ey=15,g1=3,V6=258,q7=V6+g1+1,Wv=32,rG=42,fA=57,kA=69,_A=73,yA=91,vA=103,IW=113,zZ=666,F9=1,tG=2,OW=3,eG=4,Gv=3,wW=(W,G)=>{return W.msg=jW[G],G},PC=(W)=>{return W*2-(W>4?9:0)},Z6=(W)=>{let G=W.length;while(--G>=0)W[G]=0},Xv=(W)=>{let G,X,Y,Z=W.w_size;G=W.hash_size,Y=G;do X=W.head[--Y],W.head[Y]=X>=Z?X-Z:0;while(--G);G=Z,Y=G;do X=W.prev[--Y],W.prev[Y]=X>=Z?X-Z:0;while(--G)},Yv=(W,G,X)=>(G<<W.hash_shift^X)&W.hash_mask,U6=Yv,s9=(W)=>{let G=W.state,X=G.pending;if(X>W.avail_out)X=W.avail_out;if(X===0)return;if(W.output.set(G.pending_buf.subarray(G.pending_out,G.pending_out+X),W.next_out),W.next_out+=X,G.pending_out+=X,W.total_out+=X,W.avail_out-=X,G.pending-=X,G.pending===0)G.pending_out=0},t9=(W,G)=>{yy(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,G),W.block_start=W.strstart,s9(W.strm)},i1=(W,G)=>{W.pending_buf[W.pending++]=G},AZ=(W,G)=>{W.pending_buf[W.pending++]=G>>>8&255,W.pending_buf[W.pending++]=G&255},gA=(W,G,X,Y)=>{let Z=W.avail_in;if(Z>Y)Z=Y;if(Z===0)return 0;if(W.avail_in-=Z,G.set(W.input.subarray(W.next_in,W.next_in+Z),X),W.state.wrap===1)W.adler=TZ(W.adler,G,Z,X);else if(W.state.wrap===2)W.adler=o8(W.adler,G,Z,X);return W.next_in+=Z,W.total_in+=Z,Z},wD=(W,G)=>{let{max_chain_length:X,strstart:Y}=W,Z,V,Q=W.prev_length,J=W.nice_match,U=W.strstart>W.w_size-q7?W.strstart-(W.w_size-q7):0,N=W.window,q=W.w_mask,A=W.prev,H=W.strstart+V6,I=N[Y+Q-1],w=N[Y+Q];if(W.prev_length>=W.good_match)X>>=2;if(J>W.lookahead)J=W.lookahead;do{if(Z=G,N[Z+Q]!==w||N[Z+Q-1]!==I||N[Z]!==N[Y]||N[++Z]!==N[Y+1])continue;Y+=2,Z++;do;while(N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&Y<H);if(V=V6-(H-Y),Y=H-V6,V>Q){if(W.match_start=G,Q=V,V>=J)break;I=N[Y+Q-1],w=N[Y+Q]}}while((G=A[G&q])>U&&--X!==0);if(Q<=W.lookahead)return Q;return W.lookahead},aG=(W)=>{let G=W.w_size,X,Y,Z;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=G+(G-q7)){if(W.window.set(W.window.subarray(G,G+G-Y),0),W.match_start-=G,W.strstart-=G,W.block_start-=G,W.insert>W.strstart)W.insert=W.strstart;Xv(W),Y+=G}if(W.strm.avail_in===0)break;if(X=gA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=X,W.lookahead+W.insert>=g1){Z=W.strstart-W.insert,W.ins_h=W.window[Z],W.ins_h=U6(W,W.ins_h,W.window[Z+1]);while(W.insert)if(W.ins_h=U6(W,W.ins_h,W.window[Z+g1-1]),W.prev[Z&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=Z,Z++,W.insert--,W.lookahead+W.insert<g1)break}}while(W.lookahead<q7&&W.strm.avail_in!==0)},jD=(W,G)=>{let X=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,Y,Z,V,Q=0,J=W.strm.avail_in;do{if(Y=65535,V=W.bi_valid+42>>3,W.strm.avail_out<V)break;if(V=W.strm.avail_out-V,Z=W.strstart-W.block_start,Y>Z+W.strm.avail_in)Y=Z+W.strm.avail_in;if(Y>V)Y=V;if(Y<X&&(Y===0&&G!==A5||G===J6||Y!==Z+W.strm.avail_in))break;if(Q=G===A5&&Y===Z+W.strm.avail_in?1:0,SA(W,0,0,Q),W.pending_buf[W.pending-4]=Y,W.pending_buf[W.pending-3]=Y>>8,W.pending_buf[W.pending-2]=~Y,W.pending_buf[W.pending-1]=~Y>>8,s9(W.strm),Z){if(Z>Y)Z=Y;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+Z),W.strm.next_out),W.strm.next_out+=Z,W.strm.avail_out-=Z,W.strm.total_out+=Z,W.block_start+=Z,Y-=Z}if(Y)gA(W.strm,W.strm.output,W.strm.next_out,Y),W.strm.next_out+=Y,W.strm.avail_out-=Y,W.strm.total_out+=Y}while(Q===0);if(J-=W.strm.avail_in,J){if(J>=W.w_size)W.matches=2,W.window.set(W.strm.input.subarray(W.strm.next_in-W.w_size,W.strm.next_in),0),W.strstart=W.w_size,W.insert=W.strstart;else{if(W.window_size-W.strstart<=J){if(W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(W.insert>W.strstart)W.insert=W.strstart}W.window.set(W.strm.input.subarray(W.strm.next_in-J,W.strm.next_in),W.strstart),W.strstart+=J,W.insert+=J>W.w_size-W.insert?W.w_size-W.insert:J}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(Q)return eG;if(G!==J6&&G!==A5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tG;if(V=W.window_size-W.strstart,W.strm.avail_in>V&&W.block_start>=W.w_size){if(W.block_start-=W.w_size,W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(V+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(V>W.strm.avail_in)V=W.strm.avail_in;if(V)gA(W.strm,W.window,W.strstart,V),W.strstart+=V,W.insert+=V>W.w_size-W.insert?W.w_size-W.insert:V;if(W.high_water<W.strstart)W.high_water=W.strstart;if(V=W.bi_valid+42>>3,V=W.pending_buf_size-V>65535?65535:W.pending_buf_size-V,X=V>W.w_size?W.w_size:V,Z=W.strstart-W.block_start,Z>=X||(Z||G===A5)&&G!==J6&&W.strm.avail_in===0&&Z<=V)Y=Z>V?V:Z,Q=G===A5&&W.strm.avail_in===0&&Y===Z?1:0,SA(W,W.block_start,Y,Q),W.block_start+=Y,s9(W.strm);return Q?OW:F9},CA=(W,G)=>{let X,Y;for(;;){if(W.lookahead<q7){if(aG(W),W.lookahead<q7&&G===J6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=g1)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(X!==0&&W.strstart-X<=W.w_size-q7)W.match_length=wD(W,X);if(W.match_length>=g1)if(Y=Q6(W,W.strstart-W.match_start,W.match_length-g1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=g1){W.match_length--;do W.strstart++,W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=U6(W,W.ins_h,W.window[W.strstart+1]);else Y=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=W.strstart<g1-1?W.strstart:g1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},oG=(W,G)=>{let X,Y,Z;for(;;){if(W.lookahead<q7){if(aG(W),W.lookahead<q7&&G===J6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=g1)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=g1-1,X!==0&&W.prev_length<W.max_lazy_match&&W.strstart-X<=W.w_size-q7){if(W.match_length=wD(W,X),W.match_length<=5&&(W.strategy===my||W.match_length===g1&&W.strstart-W.match_start>4096))W.match_length=g1-1}if(W.prev_length>=g1&&W.match_length<=W.prev_length){Z=W.strstart+W.lookahead-g1,Y=Q6(W,W.strstart-1-W.prev_match,W.prev_length-g1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=Z)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=g1-1,W.strstart++,Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}else if(W.match_available){if(Y=Q6(W,0,W.window[W.strstart-1]),Y)t9(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return F9}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)Y=Q6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<g1-1?W.strstart:g1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Zv=(W,G)=>{let X,Y,Z,V,Q=W.window;for(;;){if(W.lookahead<=V6){if(aG(W),W.lookahead<=V6&&G===J6)return F9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=g1&&W.strstart>0){if(Z=W.strstart-1,Y=Q[Z],Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]){V=W.strstart+V6;do;while(Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Z<V);if(W.match_length=V6-(V-Z),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=g1)X=Q6(W,1,W.match_length-g1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else X=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Vv=(W,G)=>{let X;for(;;){if(W.lookahead===0){if(aG(W),W.lookahead===0){if(G===J6)return F9;break}}if(W.match_length=0,X=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG};function J7(W,G,X,Y,Z){this.good_length=W,this.max_lazy=G,this.nice_length=X,this.max_chain=Y,this.func=Z}var IZ=[new J7(0,0,0,0,jD),new J7(4,4,8,4,CA),new J7(4,5,16,8,CA),new J7(4,6,32,32,CA),new J7(4,4,16,16,oG),new J7(8,16,32,32,oG),new J7(8,16,128,128,oG),new J7(8,32,128,256,oG),new J7(32,128,258,1024,oG),new J7(32,258,258,4096,oG)],Qv=(W)=>{W.window_size=2*W.w_size,Z6(W.head),W.max_lazy_match=IZ[W.level].max_lazy,W.good_match=IZ[W.level].good_length,W.nice_match=IZ[W.level].nice_length,W.max_chain_length=IZ[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=g1-1,W.match_available=0,W.ins_h=0};function Jv(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=iJ,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(ty*2),this.dyn_dtree=new Uint16Array((2*ay+1)*2),this.bl_tree=new Uint16Array((2*sy+1)*2),Z6(this.dyn_ltree),Z6(this.dyn_dtree),Z6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ey+1),this.heap=new Uint16Array(2*xA+1),Z6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*xA+1),Z6(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var EZ=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.status!==rG&&G.status!==fA&&G.status!==kA&&G.status!==_A&&G.status!==yA&&G.status!==vA&&G.status!==IW&&G.status!==zZ)return 1;return 0},OD=(W)=>{if(EZ(W))return wW(W,N7);W.total_in=W.total_out=0,W.data_type=ly;let G=W.state;if(G.pending=0,G.pending_out=0,G.wrap<0)G.wrap=-G.wrap;return G.status=G.wrap===2?fA:G.wrap?rG:IW,W.adler=G.wrap===2?0:1,G.last_flush=-2,_y(G),s8},KD=(W)=>{let G=OD(W);if(G===s8)Qv(W.state);return G},Uv=(W,G)=>{if(EZ(W)||W.state.wrap!==2)return N7;return W.state.gzhead=G,s8},CD=(W,G,X,Y,Z,V)=>{if(!W)return N7;let Q=1;if(G===by)G=6;if(Y<0)Q=0,Y=-Y;else if(Y>15)Q=2,Y-=16;if(Z<1||Z>dy||X!==iJ||Y<8||Y>15||G<0||G>9||V<0||V>cy||Y===8&&Q!==1)return wW(W,N7);if(Y===8)Y=9;let J=new Jv;return W.state=J,J.strm=W,J.status=rG,J.wrap=Q,J.gzhead=null,J.w_bits=Y,J.w_size=1<<J.w_bits,J.w_mask=J.w_size-1,J.hash_bits=Z+7,J.hash_size=1<<J.hash_bits,J.hash_mask=J.hash_size-1,J.hash_shift=~~((J.hash_bits+g1-1)/g1),J.window=new Uint8Array(J.w_size*2),J.head=new Uint16Array(J.hash_size),J.prev=new Uint16Array(J.w_size),J.lit_bufsize=1<<Z+6,J.pending_buf_size=J.lit_bufsize*4,J.pending_buf=new Uint8Array(J.pending_buf_size),J.sym_buf=J.lit_bufsize,J.sym_end=(J.lit_bufsize-1)*3,J.level=G,J.strategy=V,J.method=X,KD(W)},Nv=(W,G)=>{return CD(W,G,iJ,oy,ny,py)},qv=(W,G)=>{if(EZ(W)||G>MC||G<0)return W?wW(W,N7):N7;let X=W.state;if(!W.output||W.avail_in!==0&&!W.input||X.status===zZ&&G!==A5)return wW(W,W.avail_out===0?KA:N7);let Y=X.last_flush;if(X.last_flush=G,X.pending!==0){if(s9(W),W.avail_out===0)return X.last_flush=-1,s8}else if(W.avail_in===0&&PC(G)<=PC(Y)&&G!==A5)return wW(W,KA);if(X.status===zZ&&W.avail_in!==0)return wW(W,KA);if(X.status===rG&&X.wrap===0)X.status=IW;if(X.status===rG){let Z=iJ+(X.w_bits-8<<4)<<8,V=-1;if(X.strategy>=bJ||X.level<2)V=0;else if(X.level<6)V=1;else if(X.level===6)V=2;else V=3;if(Z|=V<<6,X.strstart!==0)Z|=Wv;if(Z+=31-Z%31,AZ(X,Z),X.strstart!==0)AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(W.adler=1,X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}if(X.status===fA)if(W.adler=0,i1(X,31),i1(X,139),i1(X,8),!X.gzhead){if(i1(X,0),i1(X,0),i1(X,0),i1(X,0),i1(X,0),i1(X,X.level===9?2:X.strategy>=bJ||X.level<2?4:0),i1(X,Gv),X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}else{if(i1(X,(X.gzhead.text?1:0)+(X.gzhead.hcrc?2:0)+(!X.gzhead.extra?0:4)+(!X.gzhead.name?0:8)+(!X.gzhead.comment?0:16)),i1(X,X.gzhead.time&255),i1(X,X.gzhead.time>>8&255),i1(X,X.gzhead.time>>16&255),i1(X,X.gzhead.time>>24&255),i1(X,X.level===9?2:X.strategy>=bJ||X.level<2?4:0),i1(X,X.gzhead.os&255),X.gzhead.extra&&X.gzhead.extra.length)i1(X,X.gzhead.extra.length&255),i1(X,X.gzhead.extra.length>>8&255);if(X.gzhead.hcrc)W.adler=o8(W.adler,X.pending_buf,X.pending,0);X.gzindex=0,X.status=kA}if(X.status===kA){if(X.gzhead.extra){let Z=X.pending,V=(X.gzhead.extra.length&65535)-X.gzindex;while(X.pending+V>X.pending_buf_size){let J=X.pending_buf_size-X.pending;if(X.pending_buf.set(X.gzhead.extra.subarray(X.gzindex,X.gzindex+J),X.pending),X.pending=X.pending_buf_size,X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(X.gzindex+=J,s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0,V-=J}let Q=new Uint8Array(X.gzhead.extra);if(X.pending_buf.set(Q.subarray(X.gzindex,X.gzindex+V),X.pending),X.pending+=V,X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=_A}if(X.status===_A){if(X.gzhead.name){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0}if(X.gzindex<X.gzhead.name.length)V=X.gzhead.name.charCodeAt(X.gzindex++)&255;else V=0;i1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=yA}if(X.status===yA){if(X.gzhead.comment){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0}if(X.gzindex<X.gzhead.comment.length)V=X.gzhead.comment.charCodeAt(X.gzindex++)&255;else V=0;i1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z)}X.status=vA}if(X.status===vA){if(X.gzhead.hcrc){if(X.pending+2>X.pending_buf_size){if(s9(W),X.pending!==0)return X.last_flush=-1,s8}i1(X,W.adler&255),i1(X,W.adler>>8&255),W.adler=0}if(X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}if(W.avail_in!==0||X.lookahead!==0||G!==J6&&X.status!==zZ){let Z=X.level===0?jD(X,G):X.strategy===bJ?Vv(X,G):X.strategy===fy?Zv(X,G):IZ[X.level].func(X,G);if(Z===OW||Z===eG)X.status=zZ;if(Z===F9||Z===OW){if(W.avail_out===0)X.last_flush=-1;return s8}if(Z===tG){if(G===gy)vy(X);else if(G!==MC){if(SA(X,0,0,!1),G===uy){if(Z6(X.head),X.lookahead===0)X.strstart=0,X.block_start=0,X.insert=0}}if(s9(W),W.avail_out===0)return X.last_flush=-1,s8}}if(G!==A5)return s8;if(X.wrap<=0)return TC;if(X.wrap===2)i1(X,W.adler&255),i1(X,W.adler>>8&255),i1(X,W.adler>>16&255),i1(X,W.adler>>24&255),i1(X,W.total_in&255),i1(X,W.total_in>>8&255),i1(X,W.total_in>>16&255),i1(X,W.total_in>>24&255);else AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(s9(W),X.wrap>0)X.wrap=-X.wrap;return X.pending!==0?s8:TC},Hv=(W)=>{if(EZ(W))return N7;let G=W.state.status;return W.state=null,G===IW?wW(W,hy):s8},Av=(W,G)=>{let X=G.length;if(EZ(W))return N7;let Y=W.state,Z=Y.wrap;if(Z===2||Z===1&&Y.status!==rG||Y.lookahead)return N7;if(Z===1)W.adler=TZ(W.adler,G,X,0);if(Y.wrap=0,X>=Y.w_size){if(Z===0)Z6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let U=new Uint8Array(Y.w_size);U.set(G.subarray(X-Y.w_size,X),0),G=U,X=Y.w_size}let{avail_in:V,next_in:Q,input:J}=W;W.avail_in=X,W.next_in=0,W.input=G,aG(Y);while(Y.lookahead>=g1){let U=Y.strstart,N=Y.lookahead-(g1-1);do Y.ins_h=U6(Y,Y.ins_h,Y.window[U+g1-1]),Y.prev[U&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=U,U++;while(--N);Y.strstart=U,Y.lookahead=g1-1,aG(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=g1-1,Y.match_available=0,W.next_in=Q,W.input=J,W.avail_in=V,Y.wrap=Z,s8},zv=Nv,Iv=CD,wv=KD,jv=OD,Ov=Uv,Kv=qv,Cv=Hv,Dv=Av,Mv="pako deflate (from Nodeca project)",jZ={deflateInit:zv,deflateInit2:Iv,deflateReset:wv,deflateResetKeep:jv,deflateSetHeader:Ov,deflate:Kv,deflateEnd:Cv,deflateSetDictionary:Dv,deflateInfo:Mv},Tv=(W,G)=>{return Object.prototype.hasOwnProperty.call(W,G)},Pv=function(W){let G=Array.prototype.slice.call(arguments,1);while(G.length){let X=G.shift();if(!X)continue;if(typeof X!=="object")throw TypeError(X+"must be non-object");for(let Y in X)if(Tv(X,Y))W[Y]=X[Y]}return W},Rv=(W)=>{let G=0;for(let Y=0,Z=W.length;Y<Z;Y++)G+=W[Y].length;let X=new Uint8Array(G);for(let Y=0,Z=0,V=W.length;Y<V;Y++){let Q=W[Y];X.set(Q,Z),Z+=Q.length}return X},rJ={assign:Pv,flattenChunks:Rv},DD=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){DD=!1}var PZ=new Uint8Array(256);for(let W=0;W<256;W++)PZ[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;PZ[254]=PZ[254]=1;var Lv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let G,X,Y,Z,V,Q=W.length,J=0;for(Z=0;Z<Q;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}J+=X<128?1:X<2048?2:X<65536?3:4}G=new Uint8Array(J);for(V=0,Z=0;V<J;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}if(X<128)G[V++]=X;else if(X<2048)G[V++]=192|X>>>6,G[V++]=128|X&63;else if(X<65536)G[V++]=224|X>>>12,G[V++]=128|X>>>6&63,G[V++]=128|X&63;else G[V++]=240|X>>>18,G[V++]=128|X>>>12&63,G[V++]=128|X>>>6&63,G[V++]=128|X&63}return G},Bv=(W,G)=>{if(G<65534){if(W.subarray&&DD)return String.fromCharCode.apply(null,W.length===G?W:W.subarray(0,G))}let X="";for(let Y=0;Y<G;Y++)X+=String.fromCharCode(W[Y]);return X},Ev=(W,G)=>{let X=G||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,G));let Y,Z,V=Array(X*2);for(Z=0,Y=0;Y<X;){let Q=W[Y++];if(Q<128){V[Z++]=Q;continue}let J=PZ[Q];if(J>4){V[Z++]=65533,Y+=J-1;continue}Q&=J===2?31:J===3?15:7;while(J>1&&Y<X)Q=Q<<6|W[Y++]&63,J--;if(J>1){V[Z++]=65533;continue}if(Q<65536)V[Z++]=Q;else Q-=65536,V[Z++]=55296|Q>>10&1023,V[Z++]=56320|Q&1023}return Bv(V,Z)},$v=(W,G)=>{if(G=G||W.length,G>W.length)G=W.length;let X=G-1;while(X>=0&&(W[X]&192)===128)X--;if(X<0)return G;if(X===0)return G;return X+PZ[W[X]]>G?X:G},RZ={string2buf:Lv,buf2string:Ev,utf8border:$v};function Fv(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var MD=Fv,TD=Object.prototype.toString,{Z_NO_FLUSH:Sv,Z_SYNC_FLUSH:xv,Z_FULL_FLUSH:kv,Z_FINISH:_v,Z_OK:oJ,Z_STREAM_END:yv,Z_DEFAULT_COMPRESSION:vv,Z_DEFAULT_STRATEGY:gv,Z_DEFLATED:uv}=CW;function $Z(W){this.options=rJ.assign({level:vv,method:uv,chunkSize:16384,windowBits:15,memLevel:8,strategy:gv},W||{});let G=this.options;if(G.raw&&G.windowBits>0)G.windowBits=-G.windowBits;else if(G.gzip&&G.windowBits>0&&G.windowBits<16)G.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=jZ.deflateInit2(this.strm,G.level,G.method,G.windowBits,G.memLevel,G.strategy);if(X!==oJ)throw Error(jW[X]);if(G.header)jZ.deflateSetHeader(this.strm,G.header);if(G.dictionary){let Y;if(typeof G.dictionary==="string")Y=RZ.string2buf(G.dictionary);else if(TD.call(G.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(G.dictionary);else Y=G.dictionary;if(X=jZ.deflateSetDictionary(this.strm,Y),X!==oJ)throw Error(jW[X]);this._dict_set=!0}}$Z.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z,V;if(this.ended)return!1;if(G===~~G)V=G;else V=G===!0?_v:Sv;if(typeof W==="string")X.input=RZ.string2buf(W);else if(TD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if((V===xv||V===kv)&&X.avail_out<=6){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(Z=jZ.deflate(X,V),Z===yv){if(X.next_out>0)this.onData(X.output.subarray(0,X.next_out));return Z=jZ.deflateEnd(this.strm),this.onEnd(Z),this.ended=!0,Z===oJ}if(X.avail_out===0){this.onData(X.output);continue}if(V>0&&X.next_out>0){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(X.avail_in===0)break}return!0};$Z.prototype.onData=function(W){this.chunks.push(W)};$Z.prototype.onEnd=function(W){if(W===oJ)this.result=rJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function cA(W,G){let X=new $Z(G);if(X.push(W,!0),X.err)throw X.msg||jW[X.err];return X.result}function hv(W,G){return G=G||{},G.raw=!0,cA(W,G)}function bv(W,G){return G=G||{},G.gzip=!0,cA(W,G)}var mv=$Z,fv=cA,cv=hv,pv=bv,lv=CW,dv={Deflate:mv,deflate:fv,deflateRaw:cv,gzip:pv,constants:lv},mJ=16209,ov=16191,nv=function(G,X){let Y,Z,V,Q,J,U,N,q,A,H,I,w,C,D,x,h,l,u,n,c,p,W0,m,Y0,U0=G.state;Y=G.next_in,m=G.input,Z=Y+(G.avail_in-5),V=G.next_out,Y0=G.output,Q=V-(X-G.avail_out),J=V+(G.avail_out-257),U=U0.dmax,N=U0.wsize,q=U0.whave,A=U0.wnext,H=U0.window,I=U0.hold,w=U0.bits,C=U0.lencode,D=U0.distcode,x=(1<<U0.lenbits)-1,h=(1<<U0.distbits)-1;W:do{if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;l=C[I&x];G:for(;;){if(u=l>>>24,I>>>=u,w-=u,u=l>>>16&255,u===0)Y0[V++]=l&65535;else if(u&16){if(n=l&65535,u&=15,u){if(w<u)I+=m[Y++]<<w,w+=8;n+=I&(1<<u)-1,I>>>=u,w-=u}if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;l=D[I&h];X:for(;;){if(u=l>>>24,I>>>=u,w-=u,u=l>>>16&255,u&16){if(c=l&65535,u&=15,w<u){if(I+=m[Y++]<<w,w+=8,w<u)I+=m[Y++]<<w,w+=8}if(c+=I&(1<<u)-1,c>U){G.msg="invalid distance too far back",U0.mode=mJ;break W}if(I>>>=u,w-=u,u=V-Q,c>u){if(u=c-u,u>q){if(U0.sane){G.msg="invalid distance too far back",U0.mode=mJ;break W}}if(p=0,W0=H,A===0){if(p+=N-u,u<n){n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}}else if(A<u){if(p+=N+A-u,u-=A,u<n){n-=u;do Y0[V++]=H[p++];while(--u);if(p=0,A<n){u=A,n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}}}else if(p+=A-u,u<n){n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}while(n>2)Y0[V++]=W0[p++],Y0[V++]=W0[p++],Y0[V++]=W0[p++],n-=3;if(n){if(Y0[V++]=W0[p++],n>1)Y0[V++]=W0[p++]}}else{p=V-c;do Y0[V++]=Y0[p++],Y0[V++]=Y0[p++],Y0[V++]=Y0[p++],n-=3;while(n>2);if(n){if(Y0[V++]=Y0[p++],n>1)Y0[V++]=Y0[p++]}}}else if((u&64)===0){l=D[(l&65535)+(I&(1<<u)-1)];continue X}else{G.msg="invalid distance code",U0.mode=mJ;break W}break}}else if((u&64)===0){l=C[(l&65535)+(I&(1<<u)-1)];continue G}else if(u&32){U0.mode=ov;break W}else{G.msg="invalid literal/length code",U0.mode=mJ;break W}break}}while(Y<Z&&V<J);n=w>>3,Y-=n,w-=n<<3,I&=(1<<w)-1,G.next_in=Y,G.next_out=V,G.avail_in=Y<Z?5+(Z-Y):5-(Y-Z),G.avail_out=V<J?257+(J-V):257-(V-J),U0.hold=I,U0.bits=w;return},nG=15,RC=852,LC=592,BC=0,DA=1,EC=2,iv=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),rv=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),av=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),sv=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),tv=(W,G,X,Y,Z,V,Q,J)=>{let U=J.bits,N=0,q=0,A=0,H=0,I=0,w=0,C=0,D=0,x=0,h=0,l,u,n,c,p,W0=null,m,Y0=new Uint16Array(nG+1),U0=new Uint16Array(nG+1),y=null,o,B,R;for(N=0;N<=nG;N++)Y0[N]=0;for(q=0;q<Y;q++)Y0[G[X+q]]++;I=U;for(H=nG;H>=1;H--)if(Y0[H]!==0)break;if(I>H)I=H;if(H===0)return Z[V++]=20971520,Z[V++]=20971520,J.bits=1,0;for(A=1;A<H;A++)if(Y0[A]!==0)break;if(I<A)I=A;D=1;for(N=1;N<=nG;N++)if(D<<=1,D-=Y0[N],D<0)return-1;if(D>0&&(W===BC||H!==1))return-1;U0[1]=0;for(N=1;N<nG;N++)U0[N+1]=U0[N]+Y0[N];for(q=0;q<Y;q++)if(G[X+q]!==0)Q[U0[G[X+q]]++]=q;if(W===BC)W0=y=Q,m=20;else if(W===DA)W0=iv,y=rv,m=257;else W0=av,y=sv,m=0;if(h=0,q=0,N=A,p=V,w=I,C=0,n=-1,x=1<<I,c=x-1,W===DA&&x>RC||W===EC&&x>LC)return 1;for(;;){if(o=N-C,Q[q]+1<m)B=0,R=Q[q];else if(Q[q]>=m)B=y[Q[q]-m],R=W0[Q[q]-m];else B=96,R=0;l=1<<N-C,u=1<<w,A=u;do u-=l,Z[p+(h>>C)+u]=o<<24|B<<16|R|0;while(u!==0);l=1<<N-1;while(h&l)l>>=1;if(l!==0)h&=l-1,h+=l;else h=0;if(q++,--Y0[N]===0){if(N===H)break;N=G[X+Q[q]]}if(N>I&&(h&c)!==n){if(C===0)C=I;p+=A,w=N-C,D=1<<w;while(w+C<H){if(D-=Y0[w+C],D<=0)break;w++,D<<=1}if(x+=1<<w,W===DA&&x>RC||W===EC&&x>LC)return 1;n=h&c,Z[n]=I<<24|w<<16|p-V|0}}if(h!==0)Z[p+h]=N-C<<24|4194304|0;return J.bits=I,0},OZ=tv,ev=0,PD=1,RD=2,{Z_FINISH:$C,Z_BLOCK:Wg,Z_TREES:fJ,Z_OK:KW,Z_STREAM_END:Gg,Z_NEED_DICT:Xg,Z_STREAM_ERROR:z5,Z_DATA_ERROR:LD,Z_MEM_ERROR:BD,Z_BUF_ERROR:Yg,Z_DEFLATED:FC}=CW,aJ=16180,SC=16181,xC=16182,kC=16183,_C=16184,yC=16185,vC=16186,gC=16187,uC=16188,hC=16189,nJ=16190,r7=16191,MA=16192,bC=16193,TA=16194,mC=16195,fC=16196,cC=16197,pC=16198,cJ=16199,pJ=16200,lC=16201,dC=16202,oC=16203,nC=16204,iC=16205,PA=16206,rC=16207,aC=16208,z8=16209,ED=16210,$D=16211,Zg=852,Vg=592,Qg=15,Jg=Qg,sC=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function Ug(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var DW=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.mode<aJ||G.mode>$D)return 1;return 0},FD=(W)=>{if(DW(W))return z5;let G=W.state;if(W.total_in=W.total_out=G.total=0,W.msg="",G.wrap)W.adler=G.wrap&1;return G.mode=aJ,G.last=0,G.havedict=0,G.flags=-1,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new Int32Array(Zg),G.distcode=G.distdyn=new Int32Array(Vg),G.sane=1,G.back=-1,KW},SD=(W)=>{if(DW(W))return z5;let G=W.state;return G.wsize=0,G.whave=0,G.wnext=0,FD(W)},xD=(W,G)=>{let X;if(DW(W))return z5;let Y=W.state;if(G<0)X=0,G=-G;else if(X=(G>>4)+5,G<48)G&=15;if(G&&(G<8||G>15))return z5;if(Y.window!==null&&Y.wbits!==G)Y.window=null;return Y.wrap=X,Y.wbits=G,SD(W)},kD=(W,G)=>{if(!W)return z5;let X=new Ug;W.state=X,X.strm=W,X.window=null,X.mode=aJ;let Y=xD(W,G);if(Y!==KW)W.state=null;return Y},Ng=(W)=>{return kD(W,Jg)},tC=!0,RA,LA,qg=(W)=>{if(tC){RA=new Int32Array(512),LA=new Int32Array(32);let G=0;while(G<144)W.lens[G++]=8;while(G<256)W.lens[G++]=9;while(G<280)W.lens[G++]=7;while(G<288)W.lens[G++]=8;OZ(PD,W.lens,0,288,RA,0,W.work,{bits:9}),G=0;while(G<32)W.lens[G++]=5;OZ(RD,W.lens,0,32,LA,0,W.work,{bits:5}),tC=!1}W.lencode=RA,W.lenbits=9,W.distcode=LA,W.distbits=5},_D=(W,G,X,Y)=>{let Z,V=W.state;if(V.window===null)V.wsize=1<<V.wbits,V.wnext=0,V.whave=0,V.window=new Uint8Array(V.wsize);if(Y>=V.wsize)V.window.set(G.subarray(X-V.wsize,X),0),V.wnext=0,V.whave=V.wsize;else{if(Z=V.wsize-V.wnext,Z>Y)Z=Y;if(V.window.set(G.subarray(X-Y,X-Y+Z),V.wnext),Y-=Z,Y)V.window.set(G.subarray(X-Y,X),0),V.wnext=Y,V.whave=V.wsize;else{if(V.wnext+=Z,V.wnext===V.wsize)V.wnext=0;if(V.whave<V.wsize)V.whave+=Z}}return 0},Hg=(W,G)=>{let X,Y,Z,V,Q,J,U,N,q,A,H,I,w,C,D=0,x,h,l,u,n,c,p,W0,m=new Uint8Array(4),Y0,U0,y=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(DW(W)||!W.output||!W.input&&W.avail_in!==0)return z5;if(X=W.state,X.mode===r7)X.mode=MA;Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,N=X.hold,q=X.bits,A=J,H=U,W0=KW;W:for(;;)switch(X.mode){case aJ:if(X.wrap===0){X.mode=MA;break}while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.wrap&2&&N===35615){if(X.wbits===0)X.wbits=15;X.check=0,m[0]=N&255,m[1]=N>>>8&255,X.check=o8(X.check,m,2,0),N=0,q=0,X.mode=SC;break}if(X.head)X.head.done=!1;if(!(X.wrap&1)||(((N&255)<<8)+(N>>8))%31){W.msg="incorrect header check",X.mode=z8;break}if((N&15)!==FC){W.msg="unknown compression method",X.mode=z8;break}if(N>>>=4,q-=4,p=(N&15)+8,X.wbits===0)X.wbits=p;if(p>15||p>X.wbits){W.msg="invalid window size",X.mode=z8;break}X.dmax=1<<X.wbits,X.flags=0,W.adler=X.check=1,X.mode=N&512?hC:r7,N=0,q=0;break;case SC:while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.flags=N,(X.flags&255)!==FC){W.msg="unknown compression method",X.mode=z8;break}if(X.flags&57344){W.msg="unknown header flags set",X.mode=z8;break}if(X.head)X.head.text=N>>8&1;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=o8(X.check,m,2,0);N=0,q=0,X.mode=xC;case xC:while(q<32){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.head)X.head.time=N;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,m[2]=N>>>16&255,m[3]=N>>>24&255,X.check=o8(X.check,m,4,0);N=0,q=0,X.mode=kC;case kC:while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.head)X.head.xflags=N&255,X.head.os=N>>8;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=o8(X.check,m,2,0);N=0,q=0,X.mode=_C;case _C:if(X.flags&1024){while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.length=N,X.head)X.head.extra_len=N;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=o8(X.check,m,2,0);N=0,q=0}else if(X.head)X.head.extra=null;X.mode=yC;case yC:if(X.flags&1024){if(I=X.length,I>J)I=J;if(I){if(X.head){if(p=X.head.extra_len-X.length,!X.head.extra)X.head.extra=new Uint8Array(X.head.extra_len);X.head.extra.set(Y.subarray(V,V+I),p)}if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);J-=I,V+=I,X.length-=I}if(X.length)break W}X.length=0,X.mode=vC;case vC:if(X.flags&2048){if(J===0)break W;I=0;do if(p=Y[V+I++],X.head&&p&&X.length<65536)X.head.name+=String.fromCharCode(p);while(p&&I<J);if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);if(J-=I,V+=I,p)break W}else if(X.head)X.head.name=null;X.length=0,X.mode=gC;case gC:if(X.flags&4096){if(J===0)break W;I=0;do if(p=Y[V+I++],X.head&&p&&X.length<65536)X.head.comment+=String.fromCharCode(p);while(p&&I<J);if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);if(J-=I,V+=I,p)break W}else if(X.head)X.head.comment=null;X.mode=uC;case uC:if(X.flags&512){while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.wrap&4&&N!==(X.check&65535)){W.msg="header crc mismatch",X.mode=z8;break}N=0,q=0}if(X.head)X.head.hcrc=X.flags>>9&1,X.head.done=!0;W.adler=X.check=0,X.mode=r7;break;case hC:while(q<32){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}W.adler=X.check=sC(N),N=0,q=0,X.mode=nJ;case nJ:if(X.havedict===0)return W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=N,X.bits=q,Xg;W.adler=X.check=1,X.mode=r7;case r7:if(G===Wg||G===fJ)break W;case MA:if(X.last){N>>>=q&7,q-=q&7,X.mode=PA;break}while(q<3){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}switch(X.last=N&1,N>>>=1,q-=1,N&3){case 0:X.mode=bC;break;case 1:if(qg(X),X.mode=cJ,G===fJ){N>>>=2,q-=2;break W}break;case 2:X.mode=fC;break;case 3:W.msg="invalid block type",X.mode=z8}N>>>=2,q-=2;break;case bC:N>>>=q&7,q-=q&7;while(q<32){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if((N&65535)!==(N>>>16^65535)){W.msg="invalid stored block lengths",X.mode=z8;break}if(X.length=N&65535,N=0,q=0,X.mode=TA,G===fJ)break W;case TA:X.mode=mC;case mC:if(I=X.length,I){if(I>J)I=J;if(I>U)I=U;if(I===0)break W;Z.set(Y.subarray(V,V+I),Q),J-=I,V+=I,U-=I,Q+=I,X.length-=I;break}X.mode=r7;break;case fC:while(q<14){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.nlen=(N&31)+257,N>>>=5,q-=5,X.ndist=(N&31)+1,N>>>=5,q-=5,X.ncode=(N&15)+4,N>>>=4,q-=4,X.nlen>286||X.ndist>30){W.msg="too many length or distance symbols",X.mode=z8;break}X.have=0,X.mode=cC;case cC:while(X.have<X.ncode){while(q<3){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}X.lens[y[X.have++]]=N&7,N>>>=3,q-=3}while(X.have<19)X.lens[y[X.have++]]=0;if(X.lencode=X.lendyn,X.lenbits=7,Y0={bits:X.lenbits},W0=OZ(ev,X.lens,0,19,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,W0){W.msg="invalid code lengths set",X.mode=z8;break}X.have=0,X.mode=pC;case pC:while(X.have<X.nlen+X.ndist){for(;;){if(D=X.lencode[N&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(l<16)N>>>=x,q-=x,X.lens[X.have++]=l;else{if(l===16){U0=x+2;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(N>>>=x,q-=x,X.have===0){W.msg="invalid bit length repeat",X.mode=z8;break}p=X.lens[X.have-1],I=3+(N&3),N>>>=2,q-=2}else if(l===17){U0=x+3;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}N>>>=x,q-=x,p=0,I=3+(N&7),N>>>=3,q-=3}else{U0=x+7;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}N>>>=x,q-=x,p=0,I=11+(N&127),N>>>=7,q-=7}if(X.have+I>X.nlen+X.ndist){W.msg="invalid bit length repeat",X.mode=z8;break}while(I--)X.lens[X.have++]=p}}if(X.mode===z8)break;if(X.lens[256]===0){W.msg="invalid code -- missing end-of-block",X.mode=z8;break}if(X.lenbits=9,Y0={bits:X.lenbits},W0=OZ(PD,X.lens,0,X.nlen,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,W0){W.msg="invalid literal/lengths set",X.mode=z8;break}if(X.distbits=6,X.distcode=X.distdyn,Y0={bits:X.distbits},W0=OZ(RD,X.lens,X.nlen,X.ndist,X.distcode,0,X.work,Y0),X.distbits=Y0.bits,W0){W.msg="invalid distances set",X.mode=z8;break}if(X.mode=cJ,G===fJ)break W;case cJ:X.mode=pJ;case pJ:if(J>=6&&U>=258){if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=N,X.bits=q,nv(W,H),Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,N=X.hold,q=X.bits,X.mode===r7)X.back=-1;break}X.back=0;for(;;){if(D=X.lencode[N&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(h&&(h&240)===0){u=x,n=h,c=l;for(;;){if(D=X.lencode[c+((N&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,l=D&65535,u+x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}N>>>=u,q-=u,X.back+=u}if(N>>>=x,q-=x,X.back+=x,X.length=l,h===0){X.mode=iC;break}if(h&32){X.back=-1,X.mode=r7;break}if(h&64){W.msg="invalid literal/length code",X.mode=z8;break}X.extra=h&15,X.mode=lC;case lC:if(X.extra){U0=X.extra;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}X.length+=N&(1<<X.extra)-1,N>>>=X.extra,q-=X.extra,X.back+=X.extra}X.was=X.length,X.mode=dC;case dC:for(;;){if(D=X.distcode[N&(1<<X.distbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if((h&240)===0){u=x,n=h,c=l;for(;;){if(D=X.distcode[c+((N&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,l=D&65535,u+x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}N>>>=u,q-=u,X.back+=u}if(N>>>=x,q-=x,X.back+=x,h&64){W.msg="invalid distance code",X.mode=z8;break}X.offset=l,X.extra=h&15,X.mode=oC;case oC:if(X.extra){U0=X.extra;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}X.offset+=N&(1<<X.extra)-1,N>>>=X.extra,q-=X.extra,X.back+=X.extra}if(X.offset>X.dmax){W.msg="invalid distance too far back",X.mode=z8;break}X.mode=nC;case nC:if(U===0)break W;if(I=H-U,X.offset>I){if(I=X.offset-I,I>X.whave){if(X.sane){W.msg="invalid distance too far back",X.mode=z8;break}}if(I>X.wnext)I-=X.wnext,w=X.wsize-I;else w=X.wnext-I;if(I>X.length)I=X.length;C=X.window}else C=Z,w=Q-X.offset,I=X.length;if(I>U)I=U;U-=I,X.length-=I;do Z[Q++]=C[w++];while(--I);if(X.length===0)X.mode=pJ;break;case iC:if(U===0)break W;Z[Q++]=X.length,U--,X.mode=pJ;break;case PA:if(X.wrap){while(q<32){if(J===0)break W;J--,N|=Y[V++]<<q,q+=8}if(H-=U,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?o8(X.check,Z,H,Q-H):TZ(X.check,Z,H,Q-H);if(H=U,X.wrap&4&&(X.flags?N:sC(N))!==X.check){W.msg="incorrect data check",X.mode=z8;break}N=0,q=0}X.mode=rC;case rC:if(X.wrap&&X.flags){while(q<32){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.wrap&4&&N!==(X.total&4294967295)){W.msg="incorrect length check",X.mode=z8;break}N=0,q=0}X.mode=aC;case aC:W0=Gg;break W;case z8:W0=LD;break W;case ED:return BD;case $D:default:return z5}if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=N,X.bits=q,X.wsize||H!==W.avail_out&&X.mode<z8&&(X.mode<PA||G!==$C)){if(_D(W,W.output,W.next_out,H-W.avail_out));}if(A-=W.avail_in,H-=W.avail_out,W.total_in+=A,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?o8(X.check,Z,H,W.next_out-H):TZ(X.check,Z,H,W.next_out-H);if(W.data_type=X.bits+(X.last?64:0)+(X.mode===r7?128:0)+(X.mode===cJ||X.mode===TA?256:0),(A===0&&H===0||G===$C)&&W0===KW)W0=Yg;return W0},Ag=(W)=>{if(DW(W))return z5;let G=W.state;if(G.window)G.window=null;return W.state=null,KW},zg=(W,G)=>{if(DW(W))return z5;let X=W.state;if((X.wrap&2)===0)return z5;return X.head=G,G.done=!1,KW},Ig=(W,G)=>{let X=G.length,Y,Z,V;if(DW(W))return z5;if(Y=W.state,Y.wrap!==0&&Y.mode!==nJ)return z5;if(Y.mode===nJ){if(Z=1,Z=TZ(Z,G,X,0),Z!==Y.check)return LD}if(V=_D(W,G,X,X),V)return Y.mode=ED,BD;return Y.havedict=1,KW},wg=SD,jg=xD,Og=FD,Kg=Ng,Cg=kD,Dg=Hg,Mg=Ag,Tg=zg,Pg=Ig,Rg="pako inflate (from Nodeca project)",s7={inflateReset:wg,inflateReset2:jg,inflateResetKeep:Og,inflateInit:Kg,inflateInit2:Cg,inflate:Dg,inflateEnd:Mg,inflateGetHeader:Tg,inflateSetDictionary:Pg,inflateInfo:Rg};function Lg(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Bg=Lg,yD=Object.prototype.toString,{Z_NO_FLUSH:Eg,Z_FINISH:$g,Z_OK:LZ,Z_STREAM_END:BA,Z_NEED_DICT:EA,Z_STREAM_ERROR:Fg,Z_DATA_ERROR:eC,Z_MEM_ERROR:Sg}=CW;function FZ(W){this.options=rJ.assign({chunkSize:65536,windowBits:15,to:""},W||{});let G=this.options;if(G.raw&&G.windowBits>=0&&G.windowBits<16){if(G.windowBits=-G.windowBits,G.windowBits===0)G.windowBits=-15}if(G.windowBits>=0&&G.windowBits<16&&!(W&&W.windowBits))G.windowBits+=32;if(G.windowBits>15&&G.windowBits<48){if((G.windowBits&15)===0)G.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=s7.inflateInit2(this.strm,G.windowBits);if(X!==LZ)throw Error(jW[X]);if(this.header=new Bg,s7.inflateGetHeader(this.strm,this.header),G.dictionary){if(typeof G.dictionary==="string")G.dictionary=RZ.string2buf(G.dictionary);else if(yD.call(G.dictionary)==="[object ArrayBuffer]")G.dictionary=new Uint8Array(G.dictionary);if(G.raw){if(X=s7.inflateSetDictionary(this.strm,G.dictionary),X!==LZ)throw Error(jW[X])}}}FZ.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z=this.options.dictionary,V,Q,J;if(this.ended)return!1;if(G===~~G)Q=G;else Q=G===!0?$g:Eg;if(yD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if(V=s7.inflate(X,Q),V===EA&&Z){if(V=s7.inflateSetDictionary(X,Z),V===LZ)V=s7.inflate(X,Q);else if(V===eC)V=EA}while(X.avail_in>0&&V===BA&&X.state.wrap>0&&W[X.next_in]!==0)s7.inflateReset(X),V=s7.inflate(X,Q);switch(V){case Fg:case eC:case EA:case Sg:return this.onEnd(V),this.ended=!0,!1}if(J=X.avail_out,X.next_out){if(X.avail_out===0||V===BA)if(this.options.to==="string"){let U=RZ.utf8border(X.output,X.next_out),N=X.next_out-U,q=RZ.buf2string(X.output,U);if(X.next_out=N,X.avail_out=Y-N,N)X.output.set(X.output.subarray(U,U+N),0);this.onData(q)}else this.onData(X.output.length===X.next_out?X.output:X.output.subarray(0,X.next_out))}if(V===LZ&&J===0)continue;if(V===BA)return V=s7.inflateEnd(this.strm),this.onEnd(V),this.ended=!0,!0;if(X.avail_in===0)break}return!0};FZ.prototype.onData=function(W){this.chunks.push(W)};FZ.prototype.onEnd=function(W){if(W===LZ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=rJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function pA(W,G){let X=new FZ(G);if(X.push(W),X.err)throw X.msg||jW[X.err];return X.result}function xg(W,G){return G=G||{},G.raw=!0,pA(W,G)}var kg=FZ,_g=pA,yg=xg,vg=pA,gg=CW,ug={Inflate:kg,inflate:_g,inflateRaw:yg,ungzip:vg,constants:gg},{Deflate:hg,deflate:bg,deflateRaw:mg,gzip:fg}=dv,{Inflate:cg,inflate:pg,inflateRaw:lg,ungzip:dg}=ug,og=hg,ng=bg,ig=mg,rg=fg,ag=cg,sg=pg,tg=lg,eg=dg,Wu=CW,N6={Deflate:og,deflate:ng,deflateRaw:ig,gzip:rg,Inflate:ag,inflate:sg,inflateRaw:tg,ungzip:eg,constants:Wu};function vD(){let W=Date.now(),G=0;return{now(){return W=Math.max(W,Date.now()),G++,{physical:W,logical:G}},update(X){if(!X||typeof X.physical!=="number"||typeof X.logical!=="number")return;W=Math.max(W,X.physical),G=Math.max(G,X.logical)+1},compare(X,Y){if(!X&&!Y)return 0;if(!X)return-1;if(!Y)return 1;if(X.physical!==Y.physical)return X.physical>Y.physical?1:-1;if(X.logical!==Y.logical)return X.logical>Y.logical?1:-1;return 0}}}function gD(W,G,X){let Y=G.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(G?.value?.priority===!0&&typeof G.id==="string"&&G.id.startsWith("user:")&&"role"in G.value){let{priority:Z,...V}=G.value;return{resolved:!0,value:V,timestamp:Y}}if(G?.value?.priority!==void 0){let{priority:Z,...V}=G.value;G={...G,value:V}}if(!W?.timestamp)return{resolved:!0,value:G.value,timestamp:Y};if(X.compare(Y,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:G.value,timestamp:Y}}var SZ={$eq:(W,G)=>W===G,$ne:(W,G)=>W!==G,$gt:(W,G)=>W>G,$gte:(W,G)=>W>=G,$lt:(W,G)=>W<G,$lte:(W,G)=>W<=G,$in:(W,G)=>Array.isArray(G)&&(Array.isArray(W)?W.some((X)=>G.includes(X)):G.includes(W)),$between:(W,[G,X])=>W>=G&&W<=X,$exists:(W,G)=>G?W!==void 0:W===void 0,$startsWith:(W,G)=>typeof W==="string"&&W.startsWith(G),$endsWith:(W,G)=>typeof W==="string"&&W.endsWith(G),$contains:(W,G)=>typeof W==="string"&&W.includes(G),$text:{global:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Object.values(W).some((Z)=>typeof Z==="object"?null.fieldSearch(Z,Y):X(Z).includes(Y))},field:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Array.isArray(W)?W.some((Z)=>X(Z).includes(Y)):X(W).includes(Y)}},$like:(W,G)=>typeof W==="string"&&typeof G==="string"&&new RegExp(`^${G.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,G)=>typeof W==="string"&&new RegExp(G.$regex||G,"i").test(W),$and:(W,G,X)=>G.every((Y)=>X.createFilter(Y,X.allNodes)(W)),$or:(W,G,X)=>G.some((Y)=>X.createFilter(Y,X.allNodes)(W)),$not:(W,G,X)=>!X.createFilter(G,X.allNodes)(W),$edge:(W,G,X)=>{if(!W.edges?.length||typeof G!=="object"||G===null)return!1;let Y=X.createFilter(G,X.allNodes),Z=[...W.edges],V=new Set(Z).add(W.id),Q=[];while(Z.length){let J=Z.shift(),U=X.allNodes[J];if(!U)continue;if(Y(U))Q.push(U);U.edges?.forEach((N)=>!V.has(N)&&V.add(N)&&Z.push(N))}if(Q.length)W._edgeResult=Q;return Q.length>0}},sJ=(W,G)=>G.split(".").reduce((X,Y)=>X&&typeof X==="object"&&(Y in X)?X[Y]:void 0,W),tJ=(W,G)=>{if(Object.keys(W).length===0)return()=>!0;return(X)=>Object.entries(W).every(([Y,Z])=>{if(Y.startsWith("$"))return SZ[Y](X,Z,{createFilter:tJ,allNodes:G});let V=sJ(X.value,Y);if(V===void 0)V=sJ(X,Y);if(typeof Z!=="object"||Z===null)return SZ.$eq(V,Z);return Object.entries(Z).every(([Q,J])=>{if(Q==="$text")return SZ.$text.field(V,J);if(Q==="$between"&&J.every((U)=>U instanceof Date))return SZ.$between(new Date(V),J);return SZ[Q]?.(V,J,{createFilter:tJ,allNodes:G})??!1})})},lA=(W,G)=>{let{$edge:X,...Y}=G.query||{},Z=tJ(Y,W),V=Object.values(W).filter(Z),J=[...X?(()=>{let U=tJ({$edge:X},W);V.forEach((q)=>U(q));let N=new Map;return V.forEach((q)=>{if(q._edgeResult)q._edgeResult.forEach((A)=>N.set(A.id,A)),delete q._edgeResult}),Array.from(N.values())})():V];if(G.field){let U=G.order==="asc"?1:-1;J.sort((N,q)=>{let A=sJ(N.value,G.field),H=sJ(q.value,G.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*U;return((A??0)-(H??0))*U})}if(G.$after){let U=J.findIndex((N)=>N.id===G.$after);J=U>=0?J.slice(U+1):[]}if(G.$before){let U=J.findIndex((N)=>N.id===G.$before);J=U>=0?J.slice(0,U):[]}if(G.$limit)J=J.slice(0,G.$limit);return J};var dA=(()=>{let W=()=>{};return new Proxy(console,{get:(G,X)=>globalThis.__gdbDebug?G[X].bind(G):W})})(),WX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function MU(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Xz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function BW(W,...G){if(!MU(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function XM(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Xz(W.outputLen),Xz(W.blockLen)}function qU(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function Gu(W,G){BW(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function HU(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function oA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function H7(W,G){return W<<32-G|W>>>G}var YM=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Xu=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function YX(W){if(BW(W),YM)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Xu[W[X]];return G}var t7={_0:48,_9:57,A:65,F:70,a:97,f:102};function uD(W){if(W>=t7._0&&W<=t7._9)return W-t7._0;if(W>=t7.A&&W<=t7.F)return W-(t7.A-10);if(W>=t7.a&&W<=t7.f)return W-(t7.a-10);return}function AU(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(YM)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=uD(W.charCodeAt(V)),J=uD(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function ZM(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function Hz(W){if(typeof W==="string")W=ZM(W);return BW(W),W}function A7(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];BW(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class Az{}function Yu(W){let G=(Y)=>W().update(Hz(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function TU(W=32){if(WX&&typeof WX.getRandomValues==="function")return WX.getRandomValues(new Uint8Array(W));if(WX&&typeof WX.randomBytes==="function")return Uint8Array.from(WX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Zu(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,N=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+N,J,Y)}function Vu(W,G,X){return W&G^~W&X}function Qu(W,G,X){return W&G^W&X^G&X}class VM extends Az{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=oA(this.buffer)}update(W){qU(this),W=Hz(W),BW(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=oA(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){qU(this),Gu(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,HU(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let q=V;q<Y;q++)G[q]=0;Zu(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=oA(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,N=this.get();if(U>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<U;q++)Q.setUint32(4*q,N[q],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var q6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ju=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),H6=new Uint32Array(64);class QM extends VM{constructor(W=32){super(64,W,8,!1);this.A=q6[0]|0,this.B=q6[1]|0,this.C=q6[2]|0,this.D=q6[3]|0,this.E=q6[4]|0,this.F=q6[5]|0,this.G=q6[6]|0,this.H=q6[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let q=0;q<16;q++,G+=4)H6[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=H6[q-15],H=H6[q-2],I=H7(A,7)^H7(A,18)^A>>>3,w=H7(H,17)^H7(H,19)^H>>>10;H6[q]=w+H6[q-7]+I+H6[q-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:N}=this;for(let q=0;q<64;q++){let A=H7(Q,6)^H7(Q,11)^H7(Q,25),H=N+A+Vu(Q,J,U)+Ju[q]+H6[q]|0,I=(H7(X,2)^H7(X,13)^H7(X,22))+Qu(X,Y,Z)|0;N=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+I|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,N=N+this.H|0,this.set(X,Y,Z,V,Q,J,U,N)}roundClean(){HU(H6)}destroy(){this.set(0,0,0,0,0,0,0,0),HU(this.buffer)}}var Yz=Yu(()=>new QM);class zz extends Az{constructor(W,G){super();this.finished=!1,this.destroyed=!1,XM(W);let X=Hz(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),HU(Z)}update(W){return qU(this),this.iHash.update(W),this}digestInto(W){qU(this),BW(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var JM=(W,G,X)=>new zz(W,G).update(X).digest();JM.create=(W,G)=>new zz(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Iz=BigInt(0),Zz=BigInt(1);function zU(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function MW(W,G,X=""){let Y=MU(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function eJ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function UM(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Iz:BigInt("0x"+W)}function UX(W){return UM(YX(W))}function NM(W){return BW(W),UM(YX(Uint8Array.from(W).reverse()))}function PU(W,G){return AU(W.toString(16).padStart(G*2,"0"))}function qM(W,G){return PU(W,G).reverse()}function h8(W,G,X){let Y;if(typeof G==="string")try{Y=AU(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(MU(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var nA=(W)=>typeof W==="bigint"&&Iz<=W;function Vz(W,G,X){return nA(W)&&nA(G)&&nA(X)&&G<=W&&W<X}function Uu(W,G,X,Y){if(!Vz(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HM(W){let G;for(G=0;W>Iz;W>>=Zz,G+=1);return G}var hZ=(W)=>(Zz<<BigInt(W))-Zz;function Nu(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),Z=(H)=>Uint8Array.of(H),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},N=(...H)=>X(Q,V,...H),q=(H=Y(0))=>{if(Q=N(Z(0),H),V=N(),H.length===0)return;Q=N(Z(1),H),V=N()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let H=0,I=[];while(H<G){V=N();let w=V.slice();I.push(w),H+=V.length}return A7(...I)};return(H,I)=>{U(),q(H);let w=void 0;while(!(w=I(A())))q();return U(),w}}function wz(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function hD(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var S9=BigInt(0),H9=BigInt(1),TW=BigInt(2),AM=BigInt(3),zM=BigInt(4),IM=BigInt(5),qu=BigInt(7),wM=BigInt(8),Hu=BigInt(9),jM=BigInt(16);function w5(W,G){let X=W%G;return X>=S9?X:G+X}function I5(W,G,X){let Y=W;while(G-- >S9)Y*=Y,Y%=X;return Y}function bD(W,G){if(W===S9)throw Error("invert: expected non-zero number");if(G<=S9)throw Error("invert: expected positive modulus, got "+G);let X=w5(W,G),Y=G,Z=S9,V=H9,Q=H9,J=S9;while(X!==S9){let U=Y/X,N=Y%X,q=Z-Q*U,A=V-J*U;Y=X,X=N,Z=Q,V=J,Q=q,J=A}if(Y!==H9)throw Error("invert: does not exist");return w5(Z,G)}function jz(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function OM(W,G){let X=(W.ORDER+H9)/zM,Y=W.pow(G,X);return jz(W,Y,G),Y}function Au(W,G){let X=(W.ORDER-IM)/wM,Y=W.mul(G,TW),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,TW),Z),J=W.mul(V,W.sub(Q,W.ONE));return jz(W,J,G),J}function zu(W){let G=bZ(W),X=KM(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+qu)/jM;return(J,U)=>{let N=J.pow(U,Q),q=J.mul(N,Y),A=J.mul(N,Z),H=J.mul(N,V),I=J.eql(J.sqr(q),U),w=J.eql(J.sqr(A),U);N=J.cmov(N,q,I),q=J.cmov(H,A,w);let C=J.eql(J.sqr(q),U),D=J.cmov(N,q,C);return jz(J,D,U),D}}function KM(W){if(W<AM)throw Error("sqrt is not defined for small field");let G=W-H9,X=0;while(G%TW===S9)G/=TW,X++;let Y=TW,Z=bZ(W);while(mD(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return OM;let V=Z.pow(Y,G),Q=(G+H9)/TW;return function(J,U){if(J.is0(U))return U;if(mD(J,U)!==1)throw Error("Cannot find square root");let N=X,q=J.mul(J.ONE,V),A=J.pow(U,G),H=J.pow(U,Q);while(!J.eql(A,J.ONE)){if(J.is0(A))return J.ZERO;let I=1,w=J.sqr(A);while(!J.eql(w,J.ONE))if(I++,w=J.sqr(w),I===N)throw Error("Cannot find square root");let C=H9<<BigInt(N-I-1),D=J.pow(q,C);N=I,q=J.sqr(D),A=J.mul(A,q),H=J.mul(H,D)}return H}}function Iu(W){if(W%zM===AM)return OM;if(W%wM===IM)return Au;if(W%jM===Hu)return zu(W);return KM(W)}var wu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ju(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=wu.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return wz(W,X),W}function Ou(W,G,X){if(X<S9)throw Error("invalid exponent, negatives unsupported");if(X===S9)return W.ONE;if(X===H9)return G;let Y=W.ONE,Z=G;while(X>S9){if(X&H9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=H9}return Y}function CM(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function mD(W,G){let X=(W.ORDER-H9)/TW,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function DM(W,G){if(G!==void 0)Xz(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function bZ(W,G,X=!1,Y={}){if(W<=S9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:N}=DM(W,Z);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:N,MASK:hZ(U),ZERO:S9,ONE:H9,allowedLengths:J,create:(H)=>w5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return S9<=H&&H<W},is0:(H)=>H===S9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&H9)===H9,neg:(H)=>w5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>w5(H*H,W),add:(H,I)=>w5(H+I,W),sub:(H,I)=>w5(H-I,W),mul:(H,I)=>w5(H*I,W),pow:(H,I)=>Ou(A,H,I),div:(H,I)=>w5(H*bD(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>bD(H,W),sqrt:V||((H)=>{if(!q)q=Iu(W);return q(A,H)}),toBytes:(H)=>X?qM(H,N):PU(H,N),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>N)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(N);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=X?NM(H):UX(H);if(Q)w=w5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>CM(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function MM(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function TM(W){let G=MM(W);return G+Math.ceil(G/2)}function PM(W,G,X=!1){let Y=W.length,Z=MM(G),V=TM(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?NM(W):UX(W),J=w5(Q,G-H9)+H9;return X?qM(J,Z):PU(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt(0),PW=BigInt(1);function IU(W,G){let X=G.negate();return W?X:G}function iA(W,G){let X=CM(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function RM(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function rA(W,G){RM(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=hZ(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function fD(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=PW;let N=G*Y,q=N+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Ku(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Cu(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var aA=new WeakMap,LM=new WeakMap;function sA(W){return LM.get(W)||1}function cD(W){if(W!==QX)throw Error("invalid wNAF")}class BM{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>QX){if(G&PW)X=X.add(Y);Y=Y.double(),G>>=PW}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=rA(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=rA(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:N,isNeg:q,isNegF:A,offsetF:H}=fD(X,Q,V);if(X=J,N)Z=Z.add(IU(A,G[H]));else Y=Y.add(IU(q,G[U]))}return cD(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=rA(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===QX)break;let{nextN:Q,offset:J,isZero:U,isNeg:N}=fD(X,V,Z);if(X=Q,U)continue;else{let q=G[J];Y=Y.add(N?q.negate():q)}}return cD(X),Y}getPrecomputes(W,G,X){let Y=aA.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);aA.set(G,Y)}}return Y}cached(W,G,X){let Y=sA(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=sA(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){RM(G,this.bits),LM.set(W,G),aA.delete(W)}hasCache(W){return sA(W)!==1}}function Du(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>QX||Y>QX){if(X&PW)V=V.add(Z);if(Y&PW)Q=Q.add(Z);Z=Z.double(),X>>=PW,Y>>=PW}return{p1:V,p2:Q}}function Mu(W,G,X,Y){Ku(X,W),Cu(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HM(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let N=hZ(U),q=Array(Number(N)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){q.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&N);q[x]=q[x].add(X[C])}let w=Q;for(let C=q.length-1,D=Q;C>0;C--)D=D.add(q[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function pD(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return ju(G),G}else return bZ(W,{isLE:X})}function Tu(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let J of["p","n","h"]){let U=G[J];if(!(typeof U==="bigint"&&U>QX))throw Error(`CURVE.${J} must be positive bigint`)}let Z=pD(G.p,X.Fp,Y),V=pD(G.n,X.Fn,Y),Q=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let J of Q)if(!Z.isValid(G[J]))throw Error(`CURVE.${J} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var lD=(W,G)=>(W+(W>=0?G:-G)/$M)/G;function Pu(W,G,X){let[[Y,Z],[V,Q]]=G,J=lD(Q*W,X),U=lD(-Z*W,X),N=W-J*Y-U*V,q=-J*Z-U*Q,A=N<G4,H=q<G4;if(A)N=-N;if(H)q=-q;let I=hZ(Math.ceil(HM(X)/2))+ZX;if(N<G4||N>=I||q<G4||q>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}function Qz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function tA(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(zU(X.lowS,"lowS"),zU(X.prehash,"prehash"),X.format!==void 0)Qz(X.format);return X}class EM extends Error{constructor(W=""){super(W)}}var W4={Err:EM,_tlv:{encode:(W,G)=>{let{Err:X}=W4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=eJ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?eJ(Z.length/2|128):"";return eJ(W)+V+Z+G},decode(W,G){let{Err:X}=W4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let N=G.subarray(Y,Y+U);if(N.length!==U)throw new X("tlv.decode: length bytes not complete");if(N[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let q of N)Q=Q<<8|q;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=W4;if(W<G4)throw new G("integer: negative integers are not allowed");let X=eJ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=W4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return UX(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=W4,Z=h8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:N,l:q}=Y.decode(2,U);if(q.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(N)}},hexFromSig(W){let{_tlv:G,_int:X}=W4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},G4=BigInt(0),ZX=BigInt(1),$M=BigInt(2),WU=BigInt(3),Ru=BigInt(4);function RW(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=h8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Lu(W,G={}){let X=Tu("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;wz(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let N=SM(Y,Z);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(zU(B,"isCompressed"),B){q();let v=!Y.isOdd(_);return A7(FM(v),S)}else return A7(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){MW(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=N,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(k){let f=k instanceof Error?": "+k.message:"";throw Error("bad point: is not on curve, sqrt error"+f)}q();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,WU),Ru),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function l(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Pu(y,U.basises,Z.ORDER)}let c=hD((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),p=hD((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=IU(R,o),B=IU(_,B),o.add(B)}class m{constructor(y,o,B){this.X=l("x",y),this.Y=l("y",o,!0),this.Z=l("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(MW(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(h8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(WU);return this}assertValidity(){p(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,WU),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,WU),e=Y.mul(o,_),N0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,N0),$0=Y.sub($0,D0),D0=Y.add(o,R);let x0=Y.add(_,v);return D0=Y.mul(D0,x0),x0=Y.add(e,Q0),D0=Y.sub(D0,x0),x0=Y.add(B,R),P=Y.add(S,v),x0=Y.mul(x0,P),P=Y.add(N0,Q0),x0=Y.sub(x0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(N0,b),b=Y.add(N0,b),E=Y.mul(P,b),N0=Y.add(e,e),N0=Y.add(N0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),N0=Y.add(N0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(N0,D0),E=Y.add(E,e),e=Y.mul(x0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,N0),b=Y.mul(x0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>iA(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=W0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return iA(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===G4||B.is0())return m.ZERO;if(y===ZX)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=Du(m,B,_,v);return W0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===ZX)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===ZX)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return zU(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return YX(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return iA(m,y)}static msm(y,o){return Mu(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(RW(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new BM(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function FM(W){return Uint8Array.of(W?2:3)}function SM(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Bu(W,G={}){let{Fn:X}=W,Y=G.randomBytes||TU,Z=Object.assign(SM(W.Fp,X),{seed:TM(X.ORDER)});function V(H){try{return!!RW(X,H)}catch(I){return!1}}function Q(H,I){let{publicKey:w,publicKeyUncompressed:C}=Z;try{let D=H.length;if(I===!0&&D!==w)return!1;if(I===!1&&D!==C)return!1;return!!W.fromBytes(H)}catch(D){return!1}}function J(H=Y(Z.seed)){return PM(MW(H,Z.seed,"seed"),X.ORDER)}function U(H,I=!0){return W.BASE.multiply(RW(X,H)).toBytes(I)}function N(H){let I=J(H);return{secretKey:I,publicKey:U(I)}}function q(H){if(typeof H==="bigint")return!1;if(H instanceof W)return!0;let{secretKey:I,publicKey:w,publicKeyUncompressed:C}=Z;if(X.allowedLengths||I===w)return;let D=h8("key",H).length;return D===w||D===C}function A(H,I,w=!0){if(q(H)===!0)throw Error("first arg must be private key");if(q(I)===!1)throw Error("second arg must be public key");let C=RW(X,H);return W.fromHex(I).multiply(C).toBytes(w)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:N,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(H)=>RW(X,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:Z})}function Eu(W,G,X={}){XM(G),wz(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||TU,Z=X.hmac||((B,...R)=>JM(G,B,A7(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=Bu(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>ZX;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){Qz(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return MW(B,S,`${R} signature`)}class l{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=W4.toSig(MW(B));return new l(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new l(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(AU(B),R)}addRecoveryBit(B){return new l(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*$M<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let P=v===2||v===3?_+J:_;if(!V.isValid(P))throw Error("recovery id 2 or 3 invalid");let E=V.toBytes(P),b=W.fromBytes(A7(FM((v&1)===0),E)),k=Q.inv(P),f=n(h8("msgHash",B)),e=Q.create(-f*k),N0=Q.create(S*k),Q0=W.BASE.multiplyUnsafe(e).add(b.multiplyUnsafe(N0));if(Q0.is0())throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return D(this.s)}toBytes(B=C){if(Qz(B),B==="der")return AU(W4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return A7(Uint8Array.of(this.recovery),R,_)}return A7(R,_)}toHex(B){return YX(this.toBytes(B))}assertValidity(){}static fromCompact(B){return l.fromBytes(h8("sig",B),"compact")}static fromDER(B){return l.fromBytes(h8("sig",B),"der")}normalizeS(){return this.hasHighS()?new l(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return YX(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return YX(this.toBytes("compact"))}}let u=X.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let R=UX(B),_=B.length*8-U;return _>0?R>>BigInt(_):R},n=X.bits2int_modN||function(B){return Q.create(u(B))},c=hZ(U);function p(B){return Uu("num < 2^"+U,B,G4,c),Q.toBytes(B)}function W0(B,R){return MW(B,void 0,"message"),R?MW(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=tA(_,w);B=W0(B,v);let E=n(B),b=RW(Q,R),k=[p(b),p(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(h8("extraEntropy",Q0))}let f=A7(...k),e=E;function N0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),x0=W.BASE.multiply($0).toAffine(),q1=Q.create(x0.x);if(q1===G4)return;let U1=Q.create(D0*Q.create(e+q1*b));if(U1===G4)return;let J0=(x0.x===q1?0:2)|Number(x0.y&ZX),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new l(q1,B0,J0)}return{seed:f,k2sig:N0}}function Y0(B,R,_={}){B=h8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return Nu(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||MU(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new l(B.r,B.s);else if(_){try{R=l.fromBytes(h8("sig",B),"der")}catch(v){if(!(v instanceof W4.Err))throw v}if(!R)try{R=l.fromBytes(h8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=tA(S,w);if(_=h8("publicKey",_),R=W0(h8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):l.fromBytes(h8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,N0=n(R),Q0=Q.inv(e),$0=Q.create(N0*Q0),D0=Q.create(f*Q0),x0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(x0.is0())return!1;return Q.create(x0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=tA(_,w);return R=W0(R,S),l.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:l,hash:G})}function $u(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=bZ(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function Fu(W){let{CURVE:G,curveOpts:X}=$u(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function Su(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,DM(X.Fn.ORDER,X.Fn.BITS))})}function xu(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=Fu(W),V=Lu(G,X),Q=Eu(V,Y,Z);return Su(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ku(W,G){let X=(Y)=>xu({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var JX={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_u={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yu=BigInt(0),dD=BigInt(1),Jz=BigInt(2);function vu(W){let G=JX.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=I5(q,X,G)*q%G,H=I5(A,X,G)*q%G,I=I5(H,Jz,G)*N%G,w=I5(I,Z,G)*I%G,C=I5(w,V,G)*w%G,D=I5(C,J,G)*C%G,x=I5(D,U,G)*D%G,h=I5(x,J,G)*C%G,l=I5(h,X,G)*q%G,u=I5(l,Q,G)*w%G,n=I5(u,Y,G)*N%G,c=I5(n,Jz,G);if(!wU.eql(wU.sqr(c),W))throw Error("Cannot find square root");return c}var wU=bZ(JX.p,{sqrt:vu}),xM=ku({...JX,Fp:wU,lowS:!0,endo:_u},Yz),oD={};function jU(W,...G){let X=oD[W];if(X===void 0){let Y=Yz(ZM(W));X=A7(Y,Y),oD[W]=X}return Yz(A7(X,...G))}var Oz=(W)=>W.toBytes(!0).slice(1),NX=(()=>xM.Point)(),Kz=(W)=>W%Jz===yu;function Uz(W){let{Fn:G,BASE:X}=NX,Y=RW(G,W),Z=X.multiply(Y);return{scalar:Kz(Z.y)?Y:G.neg(Y),bytes:Oz(Z)}}function kM(W){let G=wU;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!Kz(Z))Z=G.neg(Z);let V=NX.fromAffine({x:W,y:Z});return V.assertValidity(),V}var uZ=UX;function _M(...W){return NX.Fn.create(uZ(jU("BIP0340/challenge",...W)))}function nD(W){return Uz(W).bytes}function gu(W,G,X=TU(32)){let{Fn:Y}=NX,Z=h8("message",W),{bytes:V,scalar:Q}=Uz(G),J=h8("auxRand",X,32),U=Y.toBytes(Q^uZ(jU("BIP0340/aux",J))),N=jU("BIP0340/nonce",U,V,Z),{bytes:q,scalar:A}=Uz(N),H=_M(q,V,Z),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!yM(I,Z,V))throw Error("sign: Invalid signature produced");return I}function yM(W,G,X){let{Fn:Y,BASE:Z}=NX,V=h8("signature",W,64),Q=h8("message",G),J=h8("publicKey",X,32);try{let U=kM(uZ(J)),N=uZ(V.subarray(0,32));if(!Vz(N,dD,JX.p))return!1;let q=uZ(V.subarray(32,64));if(!Vz(q,dD,JX.n))return!1;let A=_M(Y.toBytes(N),Oz(U),Q),H=Z.multiplyUnsafe(q).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Kz(w)||I!==N)return!1;return!0}catch(U){return!1}}var Cz=(()=>{let W=(X=TU(48))=>{return PM(X,JX.n)};xM.utils.randomSecretKey;function G(X){let Y=W(X);return{secretKey:Y,publicKey:nD(Y)}}return{keygen:G,getPublicKey:nD,sign:gu,verify:yM,Point:NX,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:jU,lift_x:kM,pointToBytes:Oz,numberToBytesBE:PU,bytesToNumberBE:UX,mod:w5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),uu=new TextEncoder,hu=new TextDecoder,LW=(W)=>uu.encode(W),_Z=(W)=>hu.decode(W),Nz=(W)=>Array.from(W,(G)=>G.toString(16).padStart(2,"0")).join(""),X4=JSON.stringify,OU=JSON.parse,vM=(W,G=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((X,Y)=>X+Y.charCodeAt(0),0)%G,Dz="AES-GCM",bu={},gM="$",uM=",",mu=(W)=>{let G=new Uint8Array(W),X=32768,Y="";for(let Z=0;Z<G.length;Z+=32768)Y+=String.fromCharCode(...G.subarray(Z,Z+32768));return btoa(Y)},fu=(W)=>Uint8Array.from(atob(W),(G)=>G.charCodeAt(0)).buffer,GU=(W)=>bu[W]??=crypto.subtle.digest("SHA-1",LW(W)).then((G)=>{let X=new Uint8Array(G),Y="";for(let Z of X)Y+=Z.toString(36);return Y}),cu=async(W,G,X)=>{let Y=await crypto.subtle.digest("SHA-256",LW(`${W}:${G}:${X}`));return crypto.subtle.importKey("raw",Y,{name:Dz},!1,["encrypt","decrypt"])},pu=async(W,G)=>{let X=crypto.getRandomValues(new Uint8Array(12)),Y=await W,Z=await crypto.subtle.encrypt({name:Dz,iv:X},Y,LW(G));return`${X.join(uM)}${gM}${mu(Z)}`},lu=async(W,G)=>{let[X,Y]=G.split(gM);if(!X||!Y)throw Error("Invalid encrypted payload format");let Z=Uint8Array.from(X.split(uM),Number),V=await W,Q=await crypto.subtle.decrypt({name:Dz,iv:Z},V,fu(Y));return _Z(Q)},_5="GenosRTC",Mz=(W,G)=>Array.from({length:W},G),KU=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(G)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[G%62]).join(""),W8=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=KU(20):KU(20),XX=Promise.all.bind(Promise),du=typeof window<"u",{entries:ou,fromEntries:hM,keys:Le}=Object,nu=()=>{},e7=(W)=>Error(`GenosRTC: ${W}`),XU=(...W)=>W.join("@"),iu=(W,G)=>{let X=[...W],Y=X.length,Z=()=>{let V=Math.sin(G++)*1e4;return V-Math.floor(V)};while(Y){let V=Math.floor(Z()*Y--);[X[Y],X[V]]=[X[V],X[Y]]}return X},ru=5000,iD="icegatheringstatechange",rD="offer",au="answer",su=[...Mz(3,(W,G)=>`stun:stun${G||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),aD=(W,{rtcConfig:G,rtcPolyfill:X,turnConfig:Y})=>{let Z=new(X||RTCPeerConnection)({iceServers:[...su,...Y||[]],...G}),V={},Q=!1,J=!1,U,N=(H)=>Object.assign(H,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage:(I)=>V.data?.(I.data),onopen:()=>V.connect?.(),onclose:()=>V.close?.(),onerror:(I)=>!I?.error?.message?.includes("User-Initiated Abort")&&V.error?.(I)}),q=()=>Promise.race([new Promise((H)=>{let I=()=>{if(Z.iceGatheringState==="complete")Z.removeEventListener(iD,I),H()};Z.addEventListener(iD,I),I()}),new Promise((H)=>setTimeout(H,ru))]).then(()=>({type:Z.localDescription.type,sdp:Z.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));if(W?N(U=Z.createDataChannel("data")):Z.ondatachannel=({channel:H})=>N(U=H),Z.onnegotiationneeded=async()=>{try{Q=!0,await Z.setLocalDescription(),V.signal?.(await q())}catch(H){V.error?.(H)}finally{Q=!1}},Z.onconnectionstatechange=()=>{if(["disconnected","failed","closed"].includes(Z.connectionState))V.close?.()},Z.ontrack=(H)=>{V.track?.(H.track,H.streams[0]),V.stream?.(H.streams[0])},Z.onremovestream=(H)=>V.stream?.(H.stream),W&&!Z.canTrickleIceCandidates)Z.onnegotiationneeded();let A=()=>Z.getSenders();return{created:Date.now(),connection:Z,get channel(){return U},get isDead(){return Z.connectionState==="closed"},async signal(H){if(U?.readyState==="open"&&!H.sdp?.includes("a=rtpmap"))return;try{if(H.type===rD){if(Q||Z.signalingState!=="stable"&&!J){if(W)return;await XX([Z.setLocalDescription({type:"rollback"}),Z.setRemoteDescription(H)])}else await Z.setRemoteDescription(H);await Z.setLocalDescription();let I=await q();return V.signal?.(I),I}if(H.type===au){J=!0;try{await Z.setRemoteDescription(H)}finally{J=!1}}}catch(I){V.error?.(I)}},sendData:(H)=>{if(U?.readyState==="open")U.send(H)},destroy:()=>{U?.close(),Z.close(),Q=J=!1},setHandlers:(H)=>Object.assign(V,H),offerPromise:W?new Promise((H)=>V.signal=(I)=>I.type===rD&&H(I)):Promise.resolve(),addStream:(H)=>H.getTracks().forEach((I)=>Z.addTrack(I,H)),removeStream:(H)=>A().filter((I)=>H.getTracks().includes(I.track)).forEach((I)=>Z.removeTrack(I)),addTrack:(H,I)=>Z.addTrack(H,I),removeTrack:(H)=>{let I=A().find((w)=>w.track===H);if(I)Z.removeTrack(I)},replaceTrack:(H,I)=>A().find((w)=>w.track===H)?.replaceTrack(I)}},tu=Object.getPrototypeOf(Uint8Array),QU=12,bM=0,JU=bM+QU,UU=JU+1,yZ=UU+1,vZ=yZ+1,xZ=16384-vZ,YU=255,eA="bufferedamountlow",GX=(W)=>`@_${W}`,Wz=100,eu=3,Wh=200,Gh=(W,G,X,Y)=>{let Z=new Map,V=new Map,Q=new Map,J={},U={},N={},q={},A=new Map,H=(S,v)=>{if(!A.has(S))A.set(S,new Set);A.get(S).add(v)},I=(S,v)=>A.get(S)?.delete(v),w=(S,...v)=>A.get(S)?.forEach((P)=>P(...v)),C=(S,v)=>{let P=S?Array.isArray(S)?S:[S]:Z.keys();return Array.from(P,(E)=>{let b=Z.get(E);if(!b)return console.warn(`${_5}: no peer with id ${E}`),null;return v(E,b)}).filter(Boolean)},D=(S)=>{if(!Z.has(S))return;Z.delete(S),delete J[S],delete U[S],delete N[S],delete q[S],w("peer:leave",S),G(S)},x=(S)=>new Promise((v,P)=>{let E=setTimeout(()=>{S.removeEventListener(eA,b),P(Error(`${_5}: bufferLow timeout`))},5000);function b(){clearTimeout(E),S.removeEventListener(eA,b),v()}S.addEventListener(eA,b)}),h=(S)=>{if(Q.has(S))return Q.get(S);if(!S)throw e7("action type is required");let v=LW(S);if(v.byteLength>QU)throw e7(`\u274C "${S}" exceeds ${QU} bytes. Use a shorter name.`);let P=new Uint8Array(QU).map((Q0,$0)=>v[$0]||0),E=0,b=new Map([["message",new Set],["progress",new Set]]),k=(Q0,$0)=>b.get(Q0)?.add($0),f=(Q0,$0)=>b.get(Q0)?.delete($0),e=async(Q0,$0,D0,x0)=>{if(D0&&typeof D0!=="object")throw e7("meta must be object");if(Q0===void 0)throw e7("data cannot be undefined");let q1=Q0 instanceof Blob,U1=q1||Q0 instanceof ArrayBuffer||Q0 instanceof tu,J0=typeof Q0!=="string";if(D0&&!U1)throw e7("meta only allowed with binary");let B0=U1?new Uint8Array(q1?await Q0.arrayBuffer():Q0):LW(J0?X4(Q0):Q0),h0=D0?LW(X4(D0)):null,Y1=Math.ceil(B0.byteLength/xZ)+(D0?1:0)||1;if(Y1>Wz)throw e7(`Message too large, exceeds max chunks ${Wz}`);let w8=Mz(Y1,(x1,E0)=>{let n0=E0===Y1-1,O1=D0&&E0===0,$1=O1?h0:B0.subarray(D0?(E0-1)*xZ:E0*xZ,D0?E0*xZ:(E0+1)*xZ),U8=new Uint8Array(vZ+$1.byteLength);return U8.set(P),U8.set([E],JU),U8.set([n0|O1<<1|U1<<2|J0<<3],UU),U8.set([Math.round((E0+1)/Y1*YU)],yZ),U8.set($1,vZ),U8});return E=E+1&YU,XX(C($0,async(x1,E0)=>{let{channel:n0}=E0;for(let O1=0;O1<Y1;O1++){let $1=0;while(n0.bufferedAmount>n0.bufferedAmountLowThreshold){if($1++>eu)throw e7(`${_5}: send buffer full, max retries reached for peer ${x1}`);try{await x(n0)}catch(U8){console.warn(U8.message),await new Promise((H8)=>setTimeout(H8,Wh))}}if(!Z.has(x1))break;E0.sendData(w8[O1]),x0?.(w8[O1][yZ]/YU,x1,D0)}}))};V.set(S,{listeners:b,send:e});let N0={send:e,on:k,off:f};return Q.set(S,N0),N0},l=(S,v)=>{try{let P=new Uint8Array(v),E=_Z(P.subarray(bM,JU)).replace(/\x00/g,"");if(!V.has(E))return console.warn(`${_5}: unregistered type (${E})`);let[b]=P.subarray(JU,UU),[k]=P.subarray(UU,yZ),[f]=P.subarray(yZ,vZ),e=P.subarray(vZ),N0=Boolean(k&1),Q0=Boolean(k&2),$0=Boolean(k&4),D0=Boolean(k&8),x0=V.get(E),q1=(J[S]||={})[E]||={};if(q1[b]?.chunks?.length>Wz){console.warn(`${_5}: peer ${S} sent too many chunks for nonce ${b}, ignoring.`);return}let U1=q1[b]||={chunks:[]};if(Q0)try{U1.meta=OU(_Z(e))}catch{console.warn(`${_5}: failed to parse meta from peer ${S} for type ${E}`);return}else U1.chunks.push(e);if(x0.listeners.get("progress").forEach((h0)=>{try{h0(f/YU,S,U1.meta)}catch(Y1){console.error(Y1)}}),!N0)return;let J0=new Uint8Array(U1.chunks.reduce((h0,Y1)=>h0+Y1.byteLength,0));U1.chunks.reduce((h0,Y1)=>(J0.set(Y1,h0),h0+Y1.byteLength),0),delete q1[b];let B0;if($0)B0=J0;else if(D0)try{B0=OU(_Z(J0))}catch{console.warn(`${_5}: failed to parse JSON message data from peer ${S} for type ${E}`);return}else B0=_Z(J0);x0.listeners.get("message").forEach((h0)=>{try{h0(B0,S,U1.meta)}catch(Y1){console.error(Y1)}})}catch(P){console.error(`${_5}: error handling data from peer ${S}:`,P)}},u=async()=>{try{await R(""),await new Promise((S)=>setTimeout(S,99))}catch(S){console.warn(`${_5}: error sending leave`,S)}for(let[S,v]of Z){try{v.destroy()}catch{}Z.delete(S)}X()},{send:n,on:c}=h(GX("ping")),{send:p,on:W0}=h(GX("pong")),{send:m,on:Y0}=h(GX("signal")),{send:U0,on:y}=h(GX("stream")),{send:o,on:B}=h(GX("track")),{send:R,on:_}=h(GX("leave"));if(W((S,v)=>{let P=Z.get(v);if(P===S)return;if(P){let E=()=>{};P.setHandlers({data:E,stream:E,track:E,signal:E,close:E,error:E})}Z.set(v,S),S.setHandlers({data:(E)=>l(v,E),stream:(E)=>{w("stream:add",E,v,N[v]),delete N[v]},track:(E,b)=>{w("track:add",E,b,v,q[v]),delete q[v]},signal:(E)=>m(E,v),close:()=>D(v),error:(E)=>{console.error(`${_5}: peer error for ${v}`,E),D(v)}}),w("peer:join",v,Y?.(v))}),c("message",(S,v)=>p("",v)),W0("message",(S,v)=>{U[v]?.(),delete U[v]}),Y0("message",(S,v)=>Z.get(v)?.signal(S)),y("message",(S,v)=>N[v]=S),B("message",(S,v)=>q[v]=S),_("message",(S,v)=>D(v)),du)addEventListener("beforeunload",u);return{on:H,off:I,channel:h,leave:u,ping:async(S)=>{if(!S)throw e7("ping() requires target peer ID");let v=Date.now();return n("",S),await new Promise((P)=>U[S]=P),Date.now()-v},getPeers:()=>hM(Array.from(Z,([S,v])=>[S,v.connection])),addStream:(S,v,P)=>C(v,async(E,b)=>{if(P)await U0(P,E);b.addStream(S)}),removeStream:(S,v)=>C(v,(P,E)=>E.removeStream(S)),addTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.addTrack(S,v)}),removeTrack:(S,v)=>C(v,(P,E)=>E.removeTrack(S)),replaceTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.replaceTrack(S,v)})}},Xh=5,Yh=10,Zh=2500,ZU=57333,Vh=({init:W,subscribe:G,announce:X})=>{let Y={},Z=!1,V,Q;return(J,U,N)=>{let{appId:q}=J;if(Y[q]?.[U])return Y[q][U];if(!J||!U||!q&&!J.firebaseApp)throw e7(!J?"config required":!U?"roomId required":"appId missing");let A=nu;if(!Z){let _=W(J);Q=Mz(Xh,()=>{try{return aD(!0,J)}catch{return null}}).filter(Boolean),V=Array.isArray(_)?_:[_];let S=setInterval(()=>{Q=Q.filter((v)=>{let P=Date.now()-v.created<ZU;if(!P)v.destroy();return P})},ZU);Y.offerCleanupTimer||=S,Z=!0}let H={},I={},w=new Map,C=new Map,D={},x=XU(_5,q,U),h=GU(x),l=GU(XU(x,W8)),u=cu(J.password||"",q,U),n=(_)=>async(S)=>({type:S.type,sdp:await _(u,S.sdp)}),c=n(lu),p=n(pu),W0=(_)=>{return setTimeout(()=>{if(!_.isDead&&!Object.values(I).includes(_))_.destroy()},ZU),_},m=(_)=>{try{return W0(aD(_,J))}catch{return null}},Y0=(_,S)=>{if(I[S]===_)return;I[S]?.destroy(),I[S]=_,A(_,S),H[S]?.forEach((v)=>v!==_&&v.destroy()),delete H[S]},U0=(_,S)=>{if(I[S]===_)delete I[S]},y=(_)=>async(S,v,P)=>{let[E,b]=await XX([h,l]);if(S!==E&&S!==b)return;let{peerId:k,offer:f,answer:e,type:N0}=typeof v==="string"?OU(v):v;if(k&&k!==W8)C.set(k,Date.now());if(N0&&k)D[k]=N0;if(k===W8||I[k])return;if(J.admit&&!J.admit(k))return;if(f){if(H[k]?.[_]&&W8>k)return;let Q0=m(!1);if(!Q0)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{let $0=await c(f);if(Q0.isDead)return;let[D0,x0]=await XX([GU(XU(x,k)),Q0.signal($0).then(p)]);P(D0,X4({peerId:W8,answer:x0,...J.type&&{type:J.type}}))}catch{N?.({error:"decryption failed (offer)",appId:q,peerId:k,roomId:U})}}else if(e){let Q0=H[k]?.[_];if(!Q0||Q0.isDead)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{Q0.signal(await c(e))}catch{N?.({error:"decryption failed (answer)",appId:q,peerId:k,roomId:U})}}else{let Q0=H[k]||=[];if(Q0.forEach((U1,J0)=>{if(U1&&(U1.isDead||Date.now()-(U1.dialedAt??U1.created)>ZU)){if(U1.isDead)w.set(k,Date.now()+30000);U1.destroy(),delete Q0[J0]}}),Q0[_]||Q0.filter(Boolean).length>=2||w.get(k)>Date.now())return;if(Object.values(H).reduce((U1,J0)=>U1+J0.filter((B0)=>B0&&!B0.isDead).length,0)>=Yh)return;let $0=Q.pop(),D0=$0?W0($0):m(!0);if(!D0){w.set(k,Date.now()+30000);return}D0.dialedAt=Date.now();let[x0,{offer:q1}]=await XX([GU(XU(x,k)),D0.offerPromise.then(p).then((U1)=>({offer:U1}))]);Q0[_]=D0,D0.setHandlers({connect:()=>Y0(D0,k),close:()=>U0(D0,k)}),P(x0,X4({peerId:W8,offer:q1,peer:D0,...J.type&&{type:J.type}}))}},o=[],B=[];V.forEach(async(_,S)=>{let v=await _;if(!v)return;let[P,E]=await XX([h,l]);B[S]=G(v,P,E,y(S));let b=async()=>{let k=await X(v,P,E);o[S]=setTimeout(b,typeof k==="number"?k:Zh)};b()}),Y[q]||={};let R=Gh((_)=>A=_,(_)=>delete I[_],()=>R.onCleanup?.(),(_)=>D[_]);return R.onCleanup=()=>{if(delete Y[q][U],o.forEach(clearTimeout),B.forEach((_)=>_?.()),Object.keys(Y).length===0)clearInterval(Y.offerCleanupTimer),delete Y.offerCleanupTimer},R._census=()=>{for(let S of Object.keys(I))C.set(S,Date.now());let _=Date.now()-120000;for(let[S,v]of C)if(v<_)C.delete(S);return[...C.keys()]},Y[q][U]=R}},sD=3333,Qh=30000,kZ={},mM={},Jh=(W,G)=>{let X={},Y=null;X.reopenHandlers=new Set;let Z=()=>{if(Y)clearTimeout(Y),Y=null;if(X.socket)X.socket.onclose=null,X.socket.close();let V=new WebSocket(W);V.onclose=()=>{kZ[W]??=sD,Y=setTimeout(Z,kZ[W]),kZ[W]=Math.min(kZ[W]*2,Qh)},V.onmessage=(Q)=>G(Q.data),X.socket=V,X.url=V.url,X.ready=new Promise((Q)=>{V.onopen=()=>{kZ[W]=sD,Q(X),X.reopenHandlers.forEach((J)=>J())}}),X.send=(Q)=>{if(V.readyState===1)V.send(Q)}};return X.forceReconnect=Z,Z(),mM[W]=X,X};if(typeof window<"u"){let W=(G)=>{dA.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(mM).forEach((X)=>{if(X.socket&&X.socket.readyState!==WebSocket.OPEN&&(G||X.socket.readyState!==WebSocket.CONNECTING))X.forceReconnect()})};window.addEventListener("online",()=>{dA.info("\u2705 Reconnected to the network."),W(!0)}),window.addEventListener("offline",async()=>{dA.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var Uh=(W)=>()=>hM(ou(W).map(([G,X])=>[G,X.socket])),Nh=(W,G,X,Y)=>(W.relayUrls??(Y?iu(G,vM(W.appId)):G)).slice(0,W.relayUrls?.length??W.relayRedundancy??X),qh=["wss://relay.primal.net","wss://relay.snort.social","wss://nostr.oxtr.dev","wss://nostr.vulpem.com","wss://relay.nostr.net","wss://nostr.sathoarder.com","wss://nostr.data.haus","wss://relay.damus.io","wss://relay.mostr.pub","wss://nostr.bitcoiner.social"],VX={},Hh=10,fM="x",cM="EVENT",Ah=/pow:\s*(\d+)\s*bits needed\.?/i,qz=new Set,pM=Cz.utils.randomSecretKey(),zh=Nz(Cz.getPublicKey(pM)),Tz={},gZ={},Ih={},lM=()=>Math.floor(Date.now()/1000),dM=(W)=>Ih[W]??=vM(W,1e4)+20000,CU=(W)=>W.replace(/\/$/,""),wh=(W,G)=>{let[X,Y,Z,V]=OU(G);if(X===cM)return gZ[Y]?.(Tz[Y],Z.content);if(X==="NOTICE"||X==="OK"&&!Z){if(+((X==="NOTICE"?Y:V).match(Ah)?.[1]??0)>0){let Q=CU(W);qz.add(Q),VX[Q]?.close?.(),delete VX[Q]}}},jh=(W)=>{let G=CU(W);if(VX[G])return VX[G];let X=Jh(G,(Y)=>wh(G,Y));return VX[G]=X},tD=async(W,G)=>{let X={kind:dM(W),content:G,pubkey:zh,created_at:lM(),tags:[[fM,W]]},Y=LW(X4([0,X.pubkey,X.created_at,X.kind,X.tags,X.content])),Z=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),V=Cz.sign(Z,pM);return X4([cM,{...X,id:Nz(Z),sig:Nz(V)}])},eD=(W,G)=>{return Tz[W]=G,X4(["REQ",W,{kinds:[dM(G)],since:lM(),["#"+fM]:[G]}])},WM=(W)=>{return delete Tz[W],X4(["CLOSE",W])},oM=Vh({init:(W)=>{let G=(W?.relayUrls?.length?W.relayUrls:null)??qh;return Nh(W,G,Hh,!1).map(jh).map((X)=>X.ready.then(()=>X).catch(()=>null))},subscribe:(W,G,X,Y)=>{let Z=KU(64),V=KU(64);gZ[Z]=gZ[V]=(J,U)=>Y(J,U,async(N,q)=>{if(qz.has(CU(W.url)))return;W.send(await tD(N,q))});let Q=()=>{W.send(eD(Z,G)),W.send(eD(V,X))};return Q(),W.reopenHandlers.add(Q),()=>{W.reopenHandlers.delete(Q),W.send(WM(Z)),W.send(WM(V)),delete gZ[Z],delete gZ[V]}},announce:async(W,G)=>{if(qz.has(CU(W.url)))return;W.send(await tD(G,X4({peerId:W8})))}}),Be=Uh(VX),Oh={cellSize:"auto",bridgesPerEdge:2,maxCellSize:50,targetCells:100,debug:!1},GM=5000,Kh=3000,Ch=30000,Dh=2000,DU=(W)=>{let G=String(W||"").match(/cell-(\d+)/);return G?Number(G[1]):null},Mh=(W,G)=>{let X=DU(W);if(X==null)return[];let Y=[];for(let Z=1;Z<G;Z*=2){if(X-Z>=0)Y.push(`cell-${X-Z}`);if(X+Z<G)Y.push(`cell-${X+Z}`)}return Y},VU=(W)=>`c${(DU(W)||0).toString(36)}`,Th=(W,G,X)=>{if(W<=10)return Math.max(2,W);let Y=10,Z=Math.ceil(W/G);return Math.max(Y,Math.min(X,Z))},Ph=(W,G)=>{return Math.max(1,Math.ceil(W/G))},nM=(W)=>{let G=0;for(let X=0;X<W.length;X++)G=Math.imul(G^W.charCodeAt(X),2654435761);return G>>>0},Gz=(W,G)=>{let X=0,Y=-1;for(let Z=0;Z<G;Z++){let V=nM(`${W}:${Z}`);if(V>Y)Y=V,X=Z}return X};class NU{constructor(W){this.peerId=W,this.joinedAt=Date.now(),this.lastSeen=Date.now(),this.rttSamples=[],this.stability=1,this.reconnects=0,this.isResponsive=!0,this.connectedCells=new Set}get uptime(){return Date.now()-this.joinedAt}get avgRtt(){if(this.rttSamples.length===0)return 1/0;return Math.round(this.rttSamples.reduce((W,G)=>W+G,0)/this.rttSamples.length)}get healthScore(){let W=this.avgRtt===1/0?0.5:Math.max(0,100-this.avgRtt)/100,G=Math.min(1,this.uptime/60000),X=this.stability,Y=this.isResponsive?1:0.3;return W*0.25+G*0.25+X*0.3+Y*0.2}get isStale(){return Date.now()-this.lastSeen>Ch}addRttSample(W){if(this.rttSamples.push(W),this.rttSamples.length>10)this.rttSamples.shift();this.lastSeen=Date.now(),this.isResponsive=!0}markReconnect(){this.reconnects++,this.stability=Math.max(0,1-this.reconnects*0.1)}markUnresponsive(){this.isResponsive=!1}markSeen(){this.lastSeen=Date.now()}addConnectedCell(W){if(W)this.connectedCells.add(W)}}function Rh(W,G={},X={}){let Y={...Oh,...G},Z=!!Y.debug,V=(...$)=>Z&&console.debug("[cells]",...$),Q=Math.max(0,Y.bridgesPerEdge|0),J=Math.max(5,Y.maxCellSize|0),U=Math.max(10,Y.targetCells|0),N=Y.cellSize==="auto",q=N?2:Math.max(1,Y.cellSize|0),A={cellId:null,bridges:[],isBridge:!1},H=null,I=null,w=null,C=new Map,D=new Map,x=new Set,h=new Map,l=new Set,u=new Set,n=0,c=[],p=new Map,W0=new Set,m=new Map,Y0=new Map,U0=1,y=0,o=1,B=0,R=()=>{B0();let $=Ph(J0().length,q);if($!==o)o=$,B=Date.now();let d=Date.now()-B;if($>U0&&d>4000)U0=$;else if($<U0&&d>30000)U0=$;return U0},_=()=>Math.min(150,Math.ceil(Math.log2(R()+1))*2+3),S=($)=>Mh($,R()),v=W.on?.bind(W),P=W.off?.bind(W);if(v)W.on=($,d)=>String($).startsWith("mesh:")?k($,d):v($,d);if(P)W.off=($,d)=>String($).startsWith("mesh:")?h.get($)?.delete(d):P($,d);let E=($)=>(x.add($),()=>x.delete($)),b=($,d,X0)=>{if(u.has(X0))return;if(u.add(X0),u.size>GM){let w0=u.values().next().value;u.delete(w0)}for(let w0 of x)try{w0($,d)}catch(e0){V("Error in deliver handler:",e0)}},k=($,d)=>{if(!h.has($))h.set($,new Set);return h.get($).add(d),()=>h.get($)?.delete(d)},f=($,...d)=>{let X0=h.get($);if(X0)for(let w0 of X0)try{w0(...d)}catch{}},e=($)=>{try{return typeof $==="string"?JSON.parse($):$}catch{return null}},N0=()=>`${W8}:${Date.now().toString(36)}:${(n++&65535).toString(36)}`,Q0=()=>{if(l.size>GM)l.delete(l.values().next().value)},$0=($,d,X0=[])=>{if(!$||!d)return;if(C.set($,{cell:d,isBridge:X0.length>0,bridges:[...X0]}),!D.has($))D.set($,new NU($));let w0=D.get($);if(w0.markSeen(),w0.addConnectedCell(d),Y0.set(d,{lastSeen:Date.now(),peerId:$}),X0.length>0)for(let e0 of S(d))w0.addConnectedCell(e0)},D0=($)=>D.get($),x0=($,d)=>{let X0=D.get($);if(X0)X0.addRttSample(d)},q1=($)=>{let d=E0($);if(d.length===0)return null;let X0=0,w0=0;for(let C1 of d){let r0=D.get(C1);if(r0&&!r0.isStale){if(X0+=r0.healthScore,r0.isResponsive)w0++}}let e0=d.filter((C1)=>{let r0=D.get(C1);return r0&&!r0.isStale});return{cellId:$,memberCount:e0.length,avgHealth:e0.length>0?X0/e0.length:0,responsiveRatio:e0.length>0?w0/e0.length:0}},U1=()=>{let $=q1(A.cellId);f("mesh:health",{...A,health:$})},J0=()=>[...new Set([...W._census(),W8])].sort(),B0=()=>{if(!N)return;let $=J0().length,d=Th($,U,J);if(d!==q)V("cellSize changed:",q,"->",d),q=d},h0=($,d)=>d.filter((X0)=>Gz(X0,R())===$),Y1=($,d)=>{if(Q===0)return[];let X0=DU($),w0=DU(d);if(X0==null||w0==null)return[];let e0=J0(),C1=h0(X0,e0),r0=h0(w0,e0),K0=Math.min(X0,w0),F0=Math.max(X0,w0),g0=(n1)=>nM(`${n1}@${K0}~${F0}`),k0=[...new Set([...C1,...r0])].sort((n1,Q7)=>g0(Q7)-g0(n1));if(!k0.length)return[];let Q1=new Set(C1),X1=[],k1=(n1)=>n1&&!X1.includes(n1)&&X1.push(n1);k1(k0.find((n1)=>Q1.has(n1))),k1(k0.find((n1)=>!Q1.has(n1)));for(let n1 of k0){if(X1.length>=Math.max(Q,2))break;k1(n1)}return X1},w8=($,d)=>{if(Q===0)return[];let X0=S(d),w0=[];for(let e0 of X0)if(Y1(d,e0).includes($))w0.push(e0);return w0},x1=()=>{B0();let $=J0(),d=Gz(W8,R()),X0=R(),w0=`cell-${d}`,e0=w8(W8,w0),C1=e0.length>0;return V("computeState",{self:W8,myCell:w0,isBridge:C1,bridgeEdges:e0,cellSize:q,rosterSize:$.length,totalCells:X0,dynamicTTL:_()}),{cellId:w0,isBridge:C1,bridges:e0,cellSize:q,dynamicTTL:_(),totalCells:X0}},E0=($)=>{let d=[],X0=new Set(Object.keys(W.getPeers?.()||{}));for(let[w0,e0]of C)if(e0.cell===$){let C1=D.get(w0);if(X0.has(w0)&&(!C1||!C1.isStale))d.push(w0)}return d.sort(),d},n0=()=>{if(!H)return;j8=HW(),k5=Date.now();let $={t:"state",id:N0(),ttl:_(),data:{id:W8,cell:A.cellId,bridges:A.bridges,health:D.get(W8)?.healthScore||0.5,timestamp:Date.now()},origin:W8,originCell:A.cellId},d=JSON.stringify($);H.send(d),O1(I,d)},O1=($,d)=>{let X0=e(d);if(!X0?.id||!X0?.t)return;let w0=l.has(X0.id);if(!w0)l.add(X0.id),Q0();let{t:e0,id:C1,ttl:r0,data:K0,origin:F0,originCell:g0}=X0,k0=A.cellId;if(e0==="state"&&K0)$0(K0.id,K0.cell,K0.bridges),f("mesh:peer-state",K0);if(e0==="ping"&&K0?.pingId&&F0!==W8){let X1={t:"pong",id:N0(),ttl:_(),data:{pingId:K0.pingId,receivedAt:Date.now()},origin:W8,originCell:k0};H?.send(JSON.stringify(X1))}if(e0==="pong"&&K0?.pingId){let X1=m.get(K0.pingId);if(X1){clearTimeout(X1.timeout);let k1=Date.now()-X1.start;x0(X1.peerId,k1),X1.resolve(k1),m.delete(K0.pingId)}}if(e0==="msg"&&F0!==W8){if(g0===k0||Q>0)b(K0,F0,C1)}if(w0)return;if(!A.isBridge)return;if((r0??0)<=0)return;let Q1=(X1,k1,n1=null)=>{if(!X1)return;let Q7={t:e0,id:C1,ttl:n1??(r0??_())-1,data:K0,origin:F0||W8,originCell:g0||k0},AW=JSON.stringify(Q7);if(k1?.length){let JZ=new Set(Object.keys(W.getPeers?.()||{})),J9=k1.filter((_J)=>JZ.has(_J));if(J9.length>0)X1.send(AW,J9)}else X1.send(AW)};if($===I){for(let X1 of S(k0))Q1($1(X1),null);return}if(!S(k0).map(VU).includes($))return;Q1(H,null);for(let X1 of S(k0))if(VU(X1)!==$)Q1($1(X1),null)},$1=($)=>{let d=VU($);if(p.has($))return p.get($);let X0=W.channel(d);if(p.set($,X0),!W0.has(d))W0.add(d),X0.on("message",(w0)=>O1(d,w0));return X0},U8=()=>{if(!A.cellId)return;if(I=VU(A.cellId),H=W.channel(I),!W0.has(I))W0.add(I),H.on("message",($)=>O1(I,$));if(A.isBridge)for(let $ of S(A.cellId))$1($);if(c.length)for(let $ of c.splice(0)){let d={t:"msg",id:N0(),ttl:_(),data:$,origin:W8,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),O1(I,X0)}n0()},H8=($)=>{if(!A.cellId)return!0;if(!J0().includes($))return!0;let d=`cell-${Gz($,R())}`;if(d===A.cellId)return!0;if(A.bridges.includes(d))return!0;return S(A.cellId).includes(d)&&Y1(d,A.cellId).includes($)},A8=()=>{let $=W.getPeers?.()||{};for(let d of Object.keys($))if(!H8(d))$[d].close?.()};X.admit=H8;let K1=()=>{let $=x1(),d=!A.cellId||A.cellId!==$.cellId||A.isBridge!==$.isBridge||JSON.stringify(A.bridges)!==JSON.stringify($.bridges);if(A=$,$0(W8,$.cellId,$.bridges),d)U8();else n0();A8(),f("mesh:state",$),U1()},j8="",k5=0,HW=()=>{return`${A.cellId}:${A.isBridge}:${A.bridges.join(",")}`},QZ=()=>{if(w)return;w=setInterval(()=>{let $=R();if($!==y){y=$,K1();return}let d=HW();if(d!==j8||Date.now()-k5>1e4)n0(),j8=d;for(let[X0,w0]of D)if(X0!==W8&&w0.isStale)C.delete(X0),D.delete(X0),V("Removed stale peer:",X0)},Dh)},i7=()=>{if(w)clearInterval(w),w=null},i=($)=>{return new Promise((d,X0)=>{let w0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,e0=Date.now(),C1=setTimeout(()=>{m.delete(w0);let K0=D.get($);if(K0)K0.markUnresponsive();X0(Error("Ping timeout"))},Kh);m.set(w0,{start:e0,resolve:d,reject:X0,timeout:C1,peerId:$});let r0={t:"ping",id:N0(),ttl:_(),data:{pingId:w0,target:$},origin:W8,originCell:A.cellId};H?.send(JSON.stringify(r0))})};if(W.on?.("peer:join",($)=>{if(!D.has($))D.set($,new NU($));else D.get($).markReconnect();K1()}),W.on?.("peer:leave",($)=>{C.delete($),K1()}),!D.has(W8))D.set(W8,new NU(W8));return D.get(W8).addConnectedCell(A.cellId||"cell-0"),K1(),QZ(),{send:($)=>{if(!A.cellId||!H)return c.push($);let d={t:"msg",id:N0(),ttl:_(),data:$,origin:W8,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),O1(I,X0)},on:($,d)=>$==="message"?E(d):void 0,ping:i,getState:()=>({...A,cellSize:q,health:q1(A.cellId),dynamicTTL:_(),totalCells:R(),knownCells:Y0.size}),getMetrics:D0,getCellHealth:q1,getPeerInfo:()=>new Map(C),getStableRoster:()=>J0(),getKnownCells:()=>new Map(Y0),getCellSize:()=>q,destroy:()=>{i7(),m.forEach(($)=>clearTimeout($.timeout)),m.clear(),u.clear(),Y0.clear()}}}function Lh(W,G,X){let Y={},Z=oM({...W,admit:(U)=>Y.admit?.(U)??!0},G,X),V=W.overlay||{},Q=Rh(Z,V,Y),J=new Map;return{on:(U,N)=>Z.on(U,N),off:(U,N)=>Z.off?.(U,N),channel:(U)=>{if(J.has(U))return J.get(U);let N=Z.channel(U),q={send:(A,H)=>{Q.send({_ch:U,_d:A,_t:H})},on:(A,H)=>{if(A==="message")Q.on("message",(I,w)=>{if(I?._ch===U)H(I._d,w)}),N.on(A,H);else N.on(A,H)},off:(A,H)=>N.off?.(A,H),_original:N};return J.set(U,q),q},get id(){return Z.id},get peers(){return Z.peers},getPeers:()=>Z.getPeers?.()||{},mesh:Q,_room:Z,getState:()=>Q.getState(),getMetrics:(U)=>Q.getMetrics(U),getCellHealth:(U)=>Q.getCellHealth(U),getPeerInfo:()=>Q.getPeerInfo(),ping:(U)=>Q.ping(U),leave:()=>{Q.destroy(),J.clear(),Z.leave()},destroy:()=>{Q.destroy(),J.clear()}}}var Pz=(W,G,X)=>W?.cells||W?.overlay?Lh(W,G,X):oM(W,G,X);import{randomBytes as A2}from"crypto";function Bh(){var W,G=!1,X=this;X._DeArray=function(Y,Z,V){return[Y.slice(Z,Z+V)]},X._EnArray=function(Y,Z,V,Q){for(var J=0;J<V;Y[Z+J]=Q[J]?Q[J]:0,J++);},X._DeChar=function(Y,Z){return String.fromCharCode(Y[Z])},X._EnChar=function(Y,Z,V){Y[Z]=V.charCodeAt(0)},X._DeInt=function(Y,Z){var V=G?W.len-1:0,Q=G?-1:1,J=V+Q*W.len,U,N,q;for(U=0,N=V,q=1;N!=J;U+=Y[Z+N]*q,N+=Q,q*=256);if(W.bSigned&&U&Math.pow(2,W.len*8-1))U-=Math.pow(2,W.len*8);return U},X._EnInt=function(Y,Z,V){var Q=G?W.len-1:0,J=G?-1:1,U=Q+J*W.len,N;V=V<W.min?W.min:V>W.max?W.max:V;for(N=Q;N!=U;Y[Z+N]=V&255,N+=J,V>>=8);},X._DeString=function(Y,Z,V){for(var Q=Array(V),J=0;J<V;Q[J]=String.fromCharCode(Y[Z+J]),J++);return Q.join("")},X._EnString=function(Y,Z,V,Q){for(var J,U=0;U<V;Y[Z+U]=(J=Q.charCodeAt(U))?J:0,U++);},X._De754=function(Y,Z){var V,Q,J,U,N,q,A,H,I,w;A=W.mLen,H=W.len*8-W.mLen-1,w=(1<<H)-1,I=w>>1,U=G?0:W.len-1,N=G?1:-1,V=Y[Z+U],U+=N,q=-7;for(Q=V&(1<<-q)-1,V>>=-q,q+=H;q>0;Q=Q*256+Y[Z+U],U+=N,q-=8);for(J=Q&(1<<-q)-1,Q>>=-q,q+=A;q>0;J=J*256+Y[Z+U],U+=N,q-=8);switch(Q){case 0:Q=1-I;break;case w:return J?NaN:(V?-1:1)*(1/0);default:J=J+Math.pow(2,A),Q=Q-I;break}return(V?-1:1)*J*Math.pow(2,Q-A)},X._En754=function(Y,Z,V){var Q,J,U,N,q,A,H,I,w,C;if(H=W.mLen,I=W.len*8-W.mLen-1,C=(1<<I)-1,w=C>>1,Q=V<0?1:0,V=Math.abs(V),isNaN(V)||V==1/0)U=isNaN(V)?1:0,J=C;else{if(J=Math.floor(Math.log(V)/Math.LN2),V*(A=Math.pow(2,-J))<1)J--,A*=2;if(J+w>=1)V+=W.rt/A;else V+=W.rt*Math.pow(2,1-w);if(V*A>=2)J++,A/=2;if(J+w>=C)U=0,J=C;else if(J+w>=1)U=(V*A-1)*Math.pow(2,H),J=J+w;else U=V*Math.pow(2,w-1)*Math.pow(2,H),J=0}for(N=G?W.len-1:0,q=G?-1:1;H>=8;Y[Z+N]=U&255,N+=q,U/=256,H-=8);for(J=J<<H|U,I+=H;I>0;Y[Z+N]=J&255,N+=q,J/=256,I-=8);Y[Z+N-q]|=Q*128},X._DeInt64=function(Y,Z){var V=G?0:7,Q=G?1:-1,J=V+Q*8,U=[0,0,!W.bSigned],N,q,A;for(N=V,A=1,q=0;N!=J;U[A]=(U[A]<<8>>>0)+Y[Z+N],N+=Q,q++,A=q<4?1:0);return U},X._EnInt64=function(Y,Z,V){var Q=G?0:7,J=G?1:-1,U=Q+J*8,N,q,A,H;for(N=Q,A=1,q=0,H=24;N!=U;Y[Z+N]=V[A]>>H&255,N+=J,q++,A=q<4?1:0,H=24-8*(q%4));},X._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",X._lenLut={A:1,x:1,c:1,b:1,B:1,h:2,H:2,s:1,f:4,d:8,i:4,I:4,l:4,L:4,q:8,Q:8},X._elLut={A:{en:X._EnArray,de:X._DeArray},s:{en:X._EnString,de:X._DeString},c:{en:X._EnChar,de:X._DeChar},b:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:X._En754,de:X._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:X._En754,de:X._De754,len:8,mLen:52,rt:0},q:{en:X._EnInt64,de:X._DeInt64,bSigned:!0},Q:{en:X._EnInt64,de:X._DeInt64,bSigned:!1}},X._UnpackSeries=function(Y,Z,V,Q){for(var J=W.de,U=[],N=0;N<Y;U.push(J(V,Q+N*Z)),N++);return U},X._PackSeries=function(Y,Z,V,Q,J,U){for(var N=W.en,q=0;q<Y;N(V,Q+q*Z,J[U+q]),q++);},X.Unpack=function(Y,Z,V){G=Y.charAt(0)!="<",V=V?V:0;var Q=new RegExp(this._sPattern,"g"),J,U,N,q=[];while(J=Q.exec(Y)){if(U=J[1]==null||J[1]==""?1:parseInt(J[1]),N=this._lenLut[J[2]],V+U*N>Z.length)return;switch(J[2]){case"A":case"s":q.push(this._elLut[J[2]].de(Z,V,U));break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":W=this._elLut[J[2]],q.push(this._UnpackSeries(U,N,Z,V));break}V+=U*N}return Array.prototype.concat.apply([],q)},X.PackTo=function(Y,Z,V,Q){G=Y.charAt(0)!="<";var J=new RegExp(this._sPattern,"g"),U,N,q,A,H=0;while(U=J.exec(Y)){if(N=U[1]==null||U[1]==""?1:parseInt(U[1]),q=this._lenLut[U[2]],V+N*q>Z.length)return!1;switch(U[2]){case"A":case"s":if(H+1>Q.length)return!1;this._elLut[U[2]].en(Z,V,N,Q[H]),H+=1;break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":if(W=this._elLut[U[2]],H+N>Q.length)return!1;this._PackSeries(N,q,Z,V,Q,H),H+=N;break;case"x":for(A=0;A<N;A++)Z[V+A]=0;break}V+=N*q}return Z},X.Pack=function(Y,Z){return this.PackTo(Y,Array(this.CalcLength(Y)),0,Z)},X.CalcLength=function(Y){var Z=new RegExp(this._sPattern,"g"),V=0,Q;while(Q=Z.exec(Y))V+=(Q[1]==null||Q[1]==""?1:parseInt(Q[1]))*this._lenLut[Q[2]];return V}}var a1=new Bh;var P2=v1(YT(),1),NH=v1(gz(),1);import{createSocket as Bd}from"dgram";import{createSocket as Fd}from"dgram";import*as R2 from"net";import{connect as Sd}from"net";import{createSign as kd,randomBytes as _d,webcrypto as yd}from"crypto";var HN0=v1(xT(),1);var D7={};NA(D7,{verifySchema:()=>hm,fromBER:()=>J4,compareSchema:()=>Y4,VisibleString:()=>SW,ViewWriter:()=>dZ,VideotexString:()=>TX,ValueBlock:()=>t8,Utf8String:()=>v5,UniversalString:()=>KX,UTCTime:()=>xW,TimeOfDay:()=>aU,TeletexString:()=>MX,TIME:()=>eU,Set:()=>b9,Sequence:()=>x9,Repeated:()=>zX,RelativeObjectIdentifier:()=>iU,RawData:()=>TP,PrintableString:()=>DX,Primitive:()=>O6,OctetString:()=>K7,ObjectIdentifier:()=>jX,NumericString:()=>CX,Null:()=>O7,Integer:()=>K6,IA5String:()=>PX,HexBlock:()=>j7,GraphicString:()=>RX,GeneralizedTime:()=>EX,GeneralString:()=>LX,Enumerated:()=>wX,EndOfContent:()=>oU,Duration:()=>tU,DateTime:()=>sU,DEFAULT_MAX_NODES:()=>lT,DEFAULT_MAX_DEPTH:()=>pT,DEFAULT_MAX_CONTENT_LENGTH:()=>dT,DATE:()=>rU,Constructed:()=>f8,Choice:()=>nZ,CharacterString:()=>BX,Boolean:()=>IX,BmpString:()=>OX,BitString:()=>C7,BaseStringBlock:()=>lU,BaseBlock:()=>x8,Any:()=>V4});/*!
147
+ `),Vq.prototype[W]=G.toFunction({assertSize:Pj})});YE.exports=Vq;function Pj(W,G){if(W>G)throw new vp(W,G)}});var I8=Z1((lN0,AE)=>{var Rj=wQ(),gp=gB(),up=mB(),hp=cB(),bp=lB(),mp=nB(),VE=rB(),fp=sB(),cp=WE(),{encode:UE}=OQ(),{decode:NE}=zY(),{encodingLength:pp}=KQ(),lp=ZE(),qE=HY(),HE={array:gp,bool:hp,buffer:up,reserved:bp,string:mp,when:fp,select:cp};for(let W of Object.keys(VE))HE[W]=VE[W];var Qq=Symbol("schema");function QE(W){let G=new Rj({readableObjectMode:!1,writableObjectMode:!0,transform:dp});return G[Qq]=W,G}function JE(W){let G=null,X=Buffer.isBuffer(W);if(!X)G=W;let Y=new Rj({transform:op,readableObjectMode:!0,writableObjectMode:!1});if(Y[Qq]=G,X)Y.append(W);return Y}function dp(W,G,X){try{UE(W,this[Qq],this);let Y=this.slice();this.consume(Y.length),X(null,Y)}catch(Y){X(Y)}}function op(W,G,X){this.append(W);try{while(this.length>0){let Y=new lp(this),Z=NE(Y,this[Qq]);Y.commit(),this.push(Z)}X()}catch(Y){if(Y instanceof qE)X();else X(Y)}}AE.exports={createEncodeStream:QE,createDecodeStream:JE,encode:UE,decode:NE,encodingLength:pp,createEncode:QE,createDecode:JE,types:HE,BinaryStream:Rj,NotEnoughDataError:qE}});var H$=Z1((N$)=>{Object.defineProperty(N$,"__esModule",{value:!0});N$.LEB128=N$.SignedLEB128=N$.UnsignedLEB128=void 0;var DY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(DY||(DY={}));var U$=(W)=>Number.isSafeInteger(W);class MY{static decode(W,G=0){let X=this.$scanForNullBytes(W,G),Y=0,Z=0;for(let V=0;V<=X-G;V++){let Q=W[G+V]&DY.LOWER_7;Y|=Q<<Z,Z+=7}return Y}static encode(W){if(this.check(W),W<0)throw Error(`An unsigned number must NOT be negative, ${W} is!`);let G=[],X=W;do{let Y=X&DY.LOWER_7;if(X>>=7,X)Y=Y|DY.UPPER_1;G.push(Y)}while(X);return Uint8Array.from(G)}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,G=0){let X=G,Y=0;do{if(X>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(X,X+1)[0],X++}while(Y&DY.UPPER_1);return X-1}static getLength(W,G=0){return this.$scanForNullBytes(W,G)-G}}N$.UnsignedLEB128=MY;class Dq{static $ceil7mul(W){let G=W;while(G%7)G++;return G}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static encode(W){if(this.check(W),W>=0)throw Error(`A signed number must be negative, ${W} isn't!`);let G=Math.ceil(Math.log2(-W));return MY.encode((1<<this.$ceil7mul(G))+W)}static decode(W,G=0){let X=MY.decode(W,G);return-((1<<Math.ceil(Math.log2(X)))-X)}}N$.SignedLEB128=Dq;class Mq{}N$.LEB128=Mq;Mq.encode=(W)=>(W>=0?MY:Dq).encode(W);Mq.decode=(W,G=0,X=!1)=>(X?Dq:MY).decode(W,G)});var z$=Z1((dj,A$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function G(P){return parseInt(P)===P}function X(P){if(!G(P.length))return!1;for(var E=0;E<P.length;E++)if(!G(P[E])||P[E]<0||P[E]>255)return!1;return!0}function Y(P,E){if(P.buffer&&P.name==="Uint8Array"){if(E)if(P.slice)P=P.slice();else P=Array.prototype.slice.call(P);return P}if(Array.isArray(P)){if(!X(P))throw Error("Array contains invalid value: "+P);return new Uint8Array(P)}if(G(P.length)&&X(P))return new Uint8Array(P);throw Error("unsupported array-like object")}function Z(P){return new Uint8Array(P)}function V(P,E,b,k,f){if(k!=null||f!=null)if(P.slice)P=P.slice(k,f);else P=Array.prototype.slice.call(P,k,f);E.set(P,b)}var Q=function(){function P(b){var k=[],f=0;b=encodeURI(b);while(f<b.length){var e=b.charCodeAt(f++);if(e===37)k.push(parseInt(b.substr(f,2),16)),f+=2;else k.push(e)}return Y(k)}function E(b){var k=[],f=0;while(f<b.length){var e=b[f];if(e<128)k.push(String.fromCharCode(e)),f++;else if(e>191&&e<224)k.push(String.fromCharCode((e&31)<<6|b[f+1]&63)),f+=2;else k.push(String.fromCharCode((e&15)<<12|(b[f+1]&63)<<6|b[f+2]&63)),f+=3}return k.join("")}return{toBytes:P,fromBytes:E}}(),J=function(){function P(k){var f=[];for(var e=0;e<k.length;e+=2)f.push(parseInt(k.substr(e,2),16));return f}var E="0123456789abcdef";function b(k){var f=[];for(var e=0;e<k.length;e++){var N0=k[e];f.push(E[(N0&240)>>4]+E[N0&15])}return f.join("")}return{toBytes:P,fromBytes:b}}(),U={16:10,24:12,32:14},N=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],q=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],A=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],H=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],I=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],w=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],C=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],D=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],x=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],h=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],p=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],u=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],n=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],c=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],l=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function W0(P){var E=[];for(var b=0;b<P.length;b+=4)E.push(P[b]<<24|P[b+1]<<16|P[b+2]<<8|P[b+3]);return E}var m=function(P){if(!(this instanceof m))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(P,!0)}),this._prepare()};m.prototype._prepare=function(){var P=U[this.key.length];if(P==null)throw Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var E=0;E<=P;E++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var b=(P+1)*4,k=this.key.length/4,f=W0(this.key),e;for(var E=0;E<k;E++)e=E>>2,this._Ke[e][E%4]=f[E],this._Kd[P-e][E%4]=f[E];var N0=0,Q0=k,$0;while(Q0<b){if($0=f[k-1],f[0]^=q[$0>>16&255]<<24^q[$0>>8&255]<<16^q[$0&255]<<8^q[$0>>24&255]^N[N0]<<24,N0+=1,k!=8)for(var E=1;E<k;E++)f[E]^=f[E-1];else{for(var E=1;E<k/2;E++)f[E]^=f[E-1];$0=f[k/2-1],f[k/2]^=q[$0&255]^q[$0>>8&255]<<8^q[$0>>16&255]<<16^q[$0>>24&255]<<24;for(var E=k/2+1;E<k;E++)f[E]^=f[E-1]}var E=0,D0,x0;while(E<k&&Q0<b)D0=Q0>>2,x0=Q0%4,this._Ke[D0][x0]=f[E],this._Kd[P-D0][x0]=f[E++],Q0++}for(var D0=1;D0<P;D0++)for(var x0=0;x0<4;x0++)$0=this._Kd[D0][x0],this._Kd[D0][x0]=u[$0>>24&255]^n[$0>>16&255]^c[$0>>8&255]^l[$0&255]},m.prototype.encrypt=function(P){if(P.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var E=this._Ke.length-1,b=[0,0,0,0],k=W0(P);for(var f=0;f<4;f++)k[f]^=this._Ke[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=H[k[f]>>24&255]^I[k[(f+1)%4]>>16&255]^w[k[(f+2)%4]>>8&255]^C[k[(f+3)%4]&255]^this._Ke[e][f];k=b.slice()}var N0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Ke[E][f],N0[4*f]=(q[k[f]>>24&255]^Q0>>24)&255,N0[4*f+1]=(q[k[(f+1)%4]>>16&255]^Q0>>16)&255,N0[4*f+2]=(q[k[(f+2)%4]>>8&255]^Q0>>8)&255,N0[4*f+3]=(q[k[(f+3)%4]&255]^Q0)&255;return N0},m.prototype.decrypt=function(P){if(P.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var E=this._Kd.length-1,b=[0,0,0,0],k=W0(P);for(var f=0;f<4;f++)k[f]^=this._Kd[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=D[k[f]>>24&255]^x[k[(f+3)%4]>>16&255]^h[k[(f+2)%4]>>8&255]^p[k[(f+1)%4]&255]^this._Kd[e][f];k=b.slice()}var N0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Kd[E][f],N0[4*f]=(A[k[f]>>24&255]^Q0>>24)&255,N0[4*f+1]=(A[k[(f+3)%4]>>16&255]^Q0>>16)&255,N0[4*f+2]=(A[k[(f+2)%4]>>8&255]^Q0>>8)&255,N0[4*f+3]=(A[k[(f+1)%4]&255]^Q0)&255;return N0};var Y0=function(P){if(!(this instanceof Y0))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new m(P)};Y0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.encrypt(b),V(b,E,k);return E},Y0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.decrypt(b),V(b,E,k);return E};var U0=function(P,E){if(!(this instanceof U0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y(E,!0),this._aes=new m(P)};U0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16);for(var f=0;f<16;f++)b[f]^=this._lastCipherblock[f];this._lastCipherblock=this._aes.encrypt(b),V(this._lastCipherblock,E,k)}return E},U0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16),b=this._aes.decrypt(b);for(var f=0;f<16;f++)E[k+f]=b[f]^this._lastCipherblock[f];V(P,this._lastCipherblock,0,k,k+16)}return E};var y=function(P,E,b){if(!(this instanceof y))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!b)b=1;this.segmentSize=b,this._shiftRegister=Y(E,!0),this._aes=new m(P)};y.prototype.encrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(E,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E},y.prototype.decrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(P,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E};var o=function(P,E){if(!(this instanceof o))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y(E,!0),this._lastPrecipherIndex=16,this._aes=new m(P)};o.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;E[b]^=this._lastPrecipher[this._lastPrecipherIndex++]}return E},o.prototype.decrypt=o.prototype.encrypt;var B=function(P){if(!(this instanceof B))throw Error("Counter must be instanitated with `new`");if(P!==0&&!P)P=1;if(typeof P==="number")this._counter=Z(16),this.setValue(P);else this.setBytes(P)};B.prototype.setValue=function(P){if(typeof P!=="number"||parseInt(P)!=P)throw Error("invalid counter value (must be an integer)");if(P>Number.MAX_SAFE_INTEGER)throw Error("integer value out of safe range");for(var E=15;E>=0;--E)this._counter[E]=P%256,P=parseInt(P/256)},B.prototype.setBytes=function(P){if(P=Y(P,!0),P.length!=16)throw Error("invalid counter bytes size (must be 16 bytes)");this._counter=P},B.prototype.increment=function(){for(var P=15;P>=0;P--)if(this._counter[P]===255)this._counter[P]=0;else{this._counter[P]++;break}};var R=function(P,E){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!(E instanceof B))E=new B(E);this._counter=E,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new m(P)};R.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();E[b]^=this._remainingCounter[this._remainingCounterIndex++]}return E},R.prototype.decrypt=R.prototype.encrypt;function _(P){P=Y(P,!0);var E=16-P.length%16,b=Z(P.length+E);V(P,b);for(var k=P.length;k<b.length;k++)b[k]=E;return b}function S(P){if(P=Y(P,!0),P.length<16)throw Error("PKCS#7 invalid length");var E=P[P.length-1];if(E>16)throw Error("PKCS#7 padding byte out of range");var b=P.length-E;for(var k=0;k<E;k++)if(P[b+k]!==E)throw Error("PKCS#7 invalid padding byte");var f=Z(b);return V(P,f,0,0,b),f}var v={AES:m,Counter:B,ModeOfOperation:{ecb:Y0,cbc:U0,cfb:y,ofb:o,ctr:R},utils:{hex:J,utf8:Q},padding:{pkcs7:{pad:_,strip:S}},_arrayTest:{coerceArray:Y,createArray:Z,copyArray:V}};if(typeof dj<"u")A$.exports=v;else if(typeof define==="function"&&define.amd)define([],function(){return v});else{if(W.aesjs)v._aesjs=W.aesjs;W.aesjs=v}})(dj)});var rj=Z1((C$)=>{var s0=C$,{Buffer:Lq}=S8("buffer"),xl=S8("os");s0.toBuffer=function(W,G,X){X=~~X;let Y;if(this.isV4Format(W))Y=G||Lq.alloc(X+4),W.split(/\./g).map((Z)=>{Y[X++]=parseInt(Z,10)&255});else if(this.isV6Format(W)){let Z=W.split(":",8),V;for(V=0;V<Z.length;V++){let Q=this.isV4Format(Z[V]),J;if(Q)J=this.toBuffer(Z[V]),Z[V]=J.slice(0,2).toString("hex");if(J&&++V<8)Z.splice(V,0,J.slice(2,4).toString("hex"))}if(Z[0]==="")while(Z.length<8)Z.unshift("0");else if(Z[Z.length-1]==="")while(Z.length<8)Z.push("0");else if(Z.length<8){for(V=0;V<Z.length&&Z[V]!=="";V++);let Q=[V,1];for(V=9-Z.length;V>0;V--)Q.push("0");Z.splice(...Q)}Y=G||Lq.alloc(X+16);for(V=0;V<Z.length;V++){let Q=parseInt(Z[V],16);Y[X++]=Q>>8&255,Y[X++]=Q&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};s0.toString=function(W,G,X){G=~~G,X=X||W.length-G;let Y=[];if(X===4){for(let Z=0;Z<X;Z++)Y.push(W[G+Z]);Y=Y.join(".")}else if(X===16){for(let Z=0;Z<X;Z+=2)Y.push(W.readUInt16BE(G+Z).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var kl=/^(\d{1,3}\.){3,3}\d{1,3}$/,_l=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;s0.isV4Format=function(W){return kl.test(W)};s0.isV6Format=function(W){return _l.test(W)};function FQ(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}s0.fromPrefixLen=function(W,G){if(W>32)G="ipv6";else G=FQ(G);let X=4;if(G==="ipv6")X=16;let Y=Lq.alloc(X);for(let Z=0,V=Y.length;Z<V;++Z){let Q=8;if(W<8)Q=W;W-=Q,Y[Z]=~(255>>Q)&255}return s0.toString(Y)};s0.mask=function(W,G){W=s0.toBuffer(W),G=s0.toBuffer(G);let X=Lq.alloc(Math.max(W.length,G.length)),Y;if(W.length===G.length)for(Y=0;Y<W.length;Y++)X[Y]=W[Y]&G[Y];else if(G.length===4)for(Y=0;Y<G.length;Y++)X[Y]=W[W.length-4+Y]&G[Y];else{for(Y=0;Y<X.length-6;Y++)X[Y]=0;X[10]=255,X[11]=255;for(Y=0;Y<W.length;Y++)X[Y+12]=W[Y]&G[Y+12];Y+=12}for(;Y<X.length;Y++)X[Y]=0;return s0.toString(X)};s0.cidr=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.mask(X,Y)};s0.subnet=function(W,G){let X=s0.toLong(s0.mask(W,G)),Y=s0.toBuffer(G),Z=0;for(let Q=0;Q<Y.length;Q++)if(Y[Q]===255)Z+=8;else{let J=Y[Q]&255;while(J)J=J<<1&255,Z++}let V=2**(32-Z);return{networkAddress:s0.fromLong(X),firstAddress:V<=2?s0.fromLong(X):s0.fromLong(X+1),lastAddress:V<=2?s0.fromLong(X+V-1):s0.fromLong(X+V-2),broadcastAddress:s0.fromLong(X+V-1),subnetMask:G,subnetMaskLength:Z,numHosts:V<=2?V:V-2,length:V,contains(Q){return X===s0.toLong(s0.mask(Q,G))}}};s0.cidrSubnet=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.subnet(X,Y)};s0.not=function(W){let G=s0.toBuffer(W);for(let X=0;X<G.length;X++)G[X]=255^G[X];return s0.toString(G)};s0.or=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let V=0;V<W.length;++V)W[V]|=G[V];return s0.toString(W)}let X=W,Y=G;if(G.length>W.length)X=G,Y=W;let Z=X.length-Y.length;for(let V=Z;V<X.length;++V)X[V]|=Y[V-Z];return s0.toString(X)};s0.isEqual=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==G[Y])return!1;return!0}if(G.length===4){let Y=G;G=W,W=Y}for(let Y=0;Y<10;Y++)if(G[Y]!==0)return!1;let X=G.readUInt16BE(10);if(X!==0&&X!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==G[Y+12])return!1;return!0};s0.isPrivate=function(W){if(s0.isLoopback(W))return!0;if(!s0.isV6Format(W)){let G=s0.normalizeToLong(W);if(G<0)throw Error("invalid ipv4 address");W=s0.fromLong(G)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^f[cd][0-9a-f]{2}:/i.test(W)||/^fe80:/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.isPublic=function(W){return!s0.isPrivate(W)};s0.isLoopback=function(W){if(!/\./.test(W)&&!/:/.test(W))W=s0.fromLong(Number(W));return/^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(W)||/^0177\./.test(W)||/^0x7f\./i.test(W)||/^fe80::1$/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.loopback=function(W){if(W=FQ(W),W!=="ipv4"&&W!=="ipv6")throw Error("family must be ipv4 or ipv6");return W==="ipv4"?"127.0.0.1":"fe80::1"};s0.address=function(W,G){let X=xl.networkInterfaces();if(G=FQ(G),W&&W!=="private"&&W!=="public"){let Z=X[W].filter((V)=>{return FQ(V.family)===G});if(Z.length===0)return;return Z[0].address}let Y=Object.keys(X).map((Z)=>{let V=X[Z].filter((Q)=>{if(Q.family=FQ(Q.family),Q.family!==G||s0.isLoopback(Q.address))return!1;if(!W)return!0;return W==="public"?s0.isPrivate(Q.address):s0.isPublic(Q.address)});return V.length?V[0].address:void 0}).filter(Boolean);return!Y.length?s0.loopback(G):Y[0]};s0.toLong=function(W){let G=0;return W.split(".").forEach((X)=>{G<<=8,G+=parseInt(X)}),G>>>0};s0.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};s0.normalizeToLong=function(W){let G=W.split(".").map((Z)=>{if(Z.startsWith("0x")||Z.startsWith("0X"))return parseInt(Z,16);else if(Z.startsWith("0")&&Z!=="0"&&/^[0-7]+$/.test(Z))return parseInt(Z,8);else if(/^[1-9]\d*$/.test(Z)||Z==="0")return parseInt(Z,10);else return NaN});if(G.some(isNaN))return-1;let X=0;switch(G.length){case 1:X=G[0];break;case 2:if(G[0]>255||G[1]>16777215)return-1;X=G[0]<<24|G[1]&16777215;break;case 3:if(G[0]>255||G[1]>255||G[2]>65535)return-1;X=G[0]<<24|G[1]<<16|G[2]&65535;break;case 4:if(G.some((Z)=>Z>255))return-1;X=G[0]<<24|G[1]<<16|G[2]<<8|G[3];break;default:return-1}return X>>>0}});var M$=Z1((xq0,D$)=>{D$.exports=function W(G,X){if(G===X)return!0;if(G&&X&&typeof G=="object"&&typeof X=="object"){if(G.constructor!==X.constructor)return!1;var Y,Z,V;if(Array.isArray(G)){if(Y=G.length,Y!=X.length)return!1;for(Z=Y;Z--!==0;)if(!W(G[Z],X[Z]))return!1;return!0}if(G.constructor===RegExp)return G.source===X.source&&G.flags===X.flags;if(G.valueOf!==Object.prototype.valueOf)return G.valueOf()===X.valueOf();if(G.toString!==Object.prototype.toString)return G.toString()===X.toString();if(V=Object.keys(G),Y=V.length,Y!==Object.keys(X).length)return!1;for(Z=Y;Z--!==0;)if(!Object.prototype.hasOwnProperty.call(X,V[Z]))return!1;for(Z=Y;Z--!==0;){var Q=V[Z];if(!W(G[Q],X[Q]))return!1}return!0}return G!==G&&X!==X}});var T$=Z1((yl)=>{yl.toString=function(W){switch(W){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+W};yl.toType=function(W){switch(W.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":return 255;case"*":return 255}if(W.toUpperCase().startsWith("UNKNOWN_"))return parseInt(W.slice(8));return 0}});var P$=Z1((ul)=>{ul.toString=function(W){switch(W){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+W};ul.toRcode=function(W){switch(W.toUpperCase()){case"NOERROR":return 0;case"FORMERR":return 1;case"SERVFAIL":return 2;case"NXDOMAIN":return 3;case"NOTIMP":return 4;case"REFUSED":return 5;case"YXDOMAIN":return 6;case"YXRRSET":return 7;case"NXRRSET":return 8;case"NOTAUTH":return 9;case"NOTZONE":return 10;case"RCODE_11":return 11;case"RCODE_12":return 12;case"RCODE_13":return 13;case"RCODE_14":return 14;case"RCODE_15":return 15}return 0}});var R$=Z1((ml)=>{ml.toString=function(W){switch(W){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+W};ml.toOpcode=function(W){switch(W.toUpperCase()){case"QUERY":return 0;case"IQUERY":return 1;case"STATUS":return 2;case"OPCODE_3":return 3;case"NOTIFY":return 4;case"UPDATE":return 5;case"OPCODE_6":return 6;case"OPCODE_7":return 7;case"OPCODE_8":return 8;case"OPCODE_9":return 9;case"OPCODE_10":return 10;case"OPCODE_11":return 11;case"OPCODE_12":return 12;case"OPCODE_13":return 13;case"OPCODE_14":return 14;case"OPCODE_15":return 15}return 0}});var L$=Z1((pl)=>{pl.toString=function(W){switch(W){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+W};pl.toClass=function(W){switch(W.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var B$=Z1((ol)=>{ol.toString=function(W){switch(W){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}if(W<0)return null;return`OPTION_${W}`};ol.toCode=function(W){if(typeof W==="number")return W;if(!W)return-1;switch(W.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let G=W.match(/_(\d+)$/);if(G)return parseInt(G[1],10);return-1}});var F$=Z1(($$,aj)=>{var E$=function(W){Object.defineProperty(W,"__esModule",{value:!0}),W.decode=A,W.encode=q,W.familyOf=N,W.name=void 0,W.sizeOf=U,W.v6=W.v4=void 0;let G=/^(\d{1,3}\.){3,3}\d{1,3}$/,X=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,Z=16,V={name:"v4",size:X,isFormat:(H)=>G.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+X);let C=H.length,D=0;for(let x=0;x<C;){let h=H.charCodeAt(x++);if(h===46)I[w++]=D,D=0;else D=D*10+(h-48)}return I[w]=D,I},decode(H,I){return I=~~I,`${H[I++]}.${H[I++]}.${H[I++]}.${H[I]}`}};W.v4=V;let Q={name:"v6",size:Z,isFormat:(H)=>H.length>0&&Y.test(H),encode(H,I,w){w=~~w;let C=w+Z,D=-1,x=0,h=0,p=!0,u=!1;I=I||new Uint8Array(w+Z);for(let n=0;n<H.length;n++){let c=H.charCodeAt(n);if(c===58){if(p){if(D!==-1){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(w<C)D=w}else{if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}x=0,h=0}p=!0,u=!1}else if(c===46){if(w<C)I[w]=h;w++,h=0,x=0,p=!1,u=!0}else{if(p=!1,c>=97)c-=87;else if(c>=65)c-=55;else c-=48,h=h*10+c;x=(x<<4)+c}}if(p===!1)if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}else if(D===0){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(D!==-1){w+=2;for(let n=Math.min(w-1,C-1);n>=D+2;n--)I[n]=I[n-2];I[D]=0,I[D+1]=0,D=w}if(D!==w&&D!==-1){if(w>C-2)w=C-2;while(C>D)I[--C]=w<C&&w>D?I[--w]:0}else while(w<C)I[w++]=0;return I},decode(H,I){I=~~I;let w="";for(let C=0;C<Z;C+=2){if(C!==0)w+=":";w+=(H[I+C]<<8|H[I+C+1]).toString(16)}return w.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};W.v6=Q;let J="ip";W.name=J;function U(H){if(V.isFormat(H))return V.size;if(Q.isFormat(H))return Q.size;throw Error(`Invalid ip address: ${H}`)}function N(H){return U(H)===V.size?1:2}function q(H,I,w){w=~~w;let C=U(H);if(typeof I==="function")I=I(w+C);if(C===V.size)return V.encode(H,I,w);return Q.encode(H,I,w)}function A(H,I,w){if(I=~~I,w=w||H.length-I,w===V.size)return V.decode(H,I,w);if(w===Q.size)return Q.decode(H,I,w);throw Error(`Invalid buffer size needs to be ${V.size} for v4 or ${Q.size} for v6.`)}return"default"in W?W.default:W}({});if(typeof define==="function"&&define.amd)define([],function(){return E$});else if(typeof aj==="object"&&typeof $$==="object")aj.exports=E$});var S$=Z1((el)=>{var G1=S8("buffer").Buffer,h4=T$(),rl=P$(),al=R$(),Eq=L$(),ej=B$(),jG=F$(),y0=el.name={};y0.encode=function(W,G,X,{mail:Y=!1}={}){if(!G)G=G1.alloc(y0.encodingLength(W));if(!X)X=0;let Z=X,V=W.replace(/^\.|\.$/gm,"");if(V.length){let Q=[];if(Y){let J="";V.split(".").forEach((U)=>{if(U.endsWith("\\"))J+=(J.length?".":"")+U.slice(0,-1);else if(Q.length===0&&J.length)Q.push(J+"."+U);else Q.push(U)})}else Q=V.split(".");for(let J=0;J<Q.length;J++){let U=G.write(Q[J],X+1);G[X]=U,X+=U+1}}return G[X++]=0,y0.encode.bytes=X-Z,G};y0.encode.bytes=0;y0.decode=function(W,G,{mail:X=!1}={}){if(!G)G=0;let Y=[],Z=G,V=0,Q=0,J=!1;while(!0){if(G>=W.length)throw Error("Cannot decode name (buffer overflow)");let U=W[G++];if(Q+=J?0:1,U===0)break;else if((U&192)===0){if(G+U>W.length)throw Error("Cannot decode name (buffer overflow)");if(V+=U+1,V>254)throw Error("Cannot decode name (name too long)");let N=W.toString("utf-8",G,G+U);if(X)N=N.replace(/\./g,"\\.");Y.push(N),G+=U,Q+=J?0:U}else if((U&192)===192){if(G+1>W.length)throw Error("Cannot decode name (buffer overflow)");let N=W.readUInt16BE(G-1)-49152;if(N>=Z)throw Error("Cannot decode name (bad pointer)");G=N,Z=N,Q+=J?0:1,J=!0}else throw Error("Cannot decode name (bad label)")}return y0.decode.bytes=Q,Y.length===0?".":Y.join(".")};y0.decode.bytes=0;y0.encodingLength=function(W){if(W==="."||W==="..")return 1;return G1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var S1={};S1.encode=function(W,G,X){if(!G)G=G1.alloc(S1.encodingLength(W));if(!X)X=0;let Y=G.write(W,X+1);return G[X]=Y,S1.encode.bytes=Y+1,G};S1.encode.bytes=0;S1.decode=function(W,G){if(!G)G=0;let X=W[G],Y=W.toString("utf-8",G+1,G+1+X);return S1.decode.bytes=X+1,Y};S1.decode.bytes=0;S1.encodingLength=function(W){return G1.byteLength(W)+1};var r5={};r5.encode=function(W,G,X){if(!G)G=r5.encodingLength(W);if(!X)X=0;let Y=(W.flags||0)&32767,Z=W.type==="response"?32768:0;return G.writeUInt16BE(W.id||0,X),G.writeUInt16BE(Y|Z,X+2),G.writeUInt16BE(W.questions.length,X+4),G.writeUInt16BE(W.answers.length,X+6),G.writeUInt16BE(W.authorities.length,X+8),G.writeUInt16BE(W.additionals.length,X+10),G};r5.encode.bytes=12;r5.decode=function(W,G){if(!G)G=0;if(W.length<12)throw Error("Header must be 12 bytes");let X=W.readUInt16BE(G+2);return{id:W.readUInt16BE(G),type:X&32768?"response":"query",flags:X&32767,flag_qr:(X>>15&1)===1,opcode:al.toString(X>>11&15),flag_aa:(X>>10&1)===1,flag_tc:(X>>9&1)===1,flag_rd:(X>>8&1)===1,flag_ra:(X>>7&1)===1,flag_z:(X>>6&1)===1,flag_ad:(X>>5&1)===1,flag_cd:(X>>4&1)===1,rcode:rl.toString(X&15),questions:Array(W.readUInt16BE(G+4)),answers:Array(W.readUInt16BE(G+6)),authorities:Array(W.readUInt16BE(G+8)),additionals:Array(W.readUInt16BE(G+10))}};r5.decode.bytes=12;r5.encodingLength=function(){return 12};var F4=el.unknown={};F4.encode=function(W,G,X){if(!G)G=G1.alloc(F4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(W.length,X),W.copy(G,X+2),F4.encode.bytes=W.length+2,G};F4.encode.bytes=0;F4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=W.slice(G+2,G+2+X);return F4.decode.bytes=X+2,Y};F4.decode.bytes=0;F4.encodingLength=function(W){return W.length+2};var S4=el.ns={};S4.encode=function(W,G,X){if(!G)G=G1.alloc(S4.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),S4.encode.bytes=y0.encode.bytes+2,G};S4.encode.bytes=0;S4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=y0.decode(W,G+2);return S4.decode.bytes=X+2,Y};S4.decode.bytes=0;S4.encodingLength=function(W){return y0.encodingLength(W)+2};var x4=el.soa={};x4.encode=function(W,G,X){if(!G)G=G1.alloc(x4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mname,G,X),X+=y0.encode.bytes,y0.encode(W.rname,G,X,{mail:!0}),X+=y0.encode.bytes,G.writeUInt32BE(W.serial||0,X),X+=4,G.writeUInt32BE(W.refresh||0,X),X+=4,G.writeUInt32BE(W.retry||0,X),X+=4,G.writeUInt32BE(W.expire||0,X),X+=4,G.writeUInt32BE(W.minimum||0,X),X+=4,G.writeUInt16BE(X-Y-2,Y),x4.encode.bytes=X-Y,G};x4.encode.bytes=0;x4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mname=y0.decode(W,G),G+=y0.decode.bytes,Y.rname=y0.decode(W,G,{mail:!0}),G+=y0.decode.bytes,Y.serial=W.readUInt32BE(G),G+=4,Y.refresh=W.readUInt32BE(G),G+=4,Y.retry=W.readUInt32BE(G),G+=4,Y.expire=W.readUInt32BE(G),G+=4,Y.minimum=W.readUInt32BE(G),G+=4,x4.decode.bytes=G-X,Y};x4.decode.bytes=0;x4.encodingLength=function(W){return 22+y0.encodingLength(W.mname)+y0.encodingLength(W.rname)};var k4=el.txt={};k4.encode=function(W,G,X){if(!Array.isArray(W))W=[W];for(let Z=0;Z<W.length;Z++){if(typeof W[Z]==="string")W[Z]=G1.from(W[Z]);if(!G1.isBuffer(W[Z]))throw Error("Must be a Buffer")}if(!G)G=G1.alloc(k4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,W.forEach(function(Z){G[X++]=Z.length,Z.copy(G,X,0,Z.length),X+=Z.length}),G.writeUInt16BE(X-Y-2,Y),k4.encode.bytes=X-Y,G};k4.encode.bytes=0;k4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=[];while(Y>0){let V=W[G++];if(--Y,Y<V)throw Error("Buffer overflow");Z.push(W.slice(G,G+V)),G+=V,Y-=V}return k4.decode.bytes=G-X,Z};k4.decode.bytes=0;k4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let G=2;return W.forEach(function(X){if(typeof X==="string")G+=G1.byteLength(X)+1;else G+=X.length+1}),G};var _4=el.null={};_4.encode=function(W,G,X){if(!G)G=G1.alloc(_4.encodingLength(W));if(!X)X=0;if(typeof W==="string")W=G1.from(W);if(!W)W=G1.alloc(0);let Y=X;X+=2;let Z=W.length;return W.copy(G,X,0,Z),X+=Z,G.writeUInt16BE(X-Y-2,Y),_4.encode.bytes=X-Y,G};_4.encode.bytes=0;_4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=W.slice(G,G+Y);return G+=Y,_4.decode.bytes=G-X,Z};_4.decode.bytes=0;_4.encodingLength=function(W){if(!W)return 2;return(G1.isBuffer(W)?W.length:G1.byteLength(W))+2};var y4=el.hinfo={};y4.encode=function(W,G,X){if(!G)G=G1.alloc(y4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,S1.encode(W.cpu,G,X),X+=S1.encode.bytes,S1.encode(W.os,G,X),X+=S1.encode.bytes,G.writeUInt16BE(X-Y-2,Y),y4.encode.bytes=X-Y,G};y4.encode.bytes=0;y4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.cpu=S1.decode(W,G),G+=S1.decode.bytes,Y.os=S1.decode(W,G),G+=S1.decode.bytes,y4.decode.bytes=G-X,Y};y4.decode.bytes=0;y4.encodingLength=function(W){return S1.encodingLength(W.cpu)+S1.encodingLength(W.os)+2};var n5=el.ptr={},sl=el.cname=n5,tl=el.dname=n5;n5.encode=function(W,G,X){if(!G)G=G1.alloc(n5.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),n5.encode.bytes=y0.encode.bytes+2,G};n5.encode.bytes=0;n5.decode=function(W,G){if(!G)G=0;let X=y0.decode(W,G+2);return n5.decode.bytes=y0.decode.bytes+2,X};n5.decode.bytes=0;n5.encodingLength=function(W){return y0.encodingLength(W)+2};var v4=el.srv={};v4.encode=function(W,G,X){if(!G)G=G1.alloc(v4.encodingLength(W));if(!X)X=0;G.writeUInt16BE(W.priority||0,X+2),G.writeUInt16BE(W.weight||0,X+4),G.writeUInt16BE(W.port||0,X+6),y0.encode(W.target,G,X+8);let Y=y0.encode.bytes+6;return G.writeUInt16BE(Y,X),v4.encode.bytes=Y+2,G};v4.encode.bytes=0;v4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y={};return Y.priority=W.readUInt16BE(G+2),Y.weight=W.readUInt16BE(G+4),Y.port=W.readUInt16BE(G+6),Y.target=y0.decode(W,G+8),v4.decode.bytes=X+2,Y};v4.decode.bytes=0;v4.encodingLength=function(W){return 8+y0.encodingLength(W.target)};var Q5=el.caa={};Q5.ISSUER_CRITICAL=128;Q5.encode=function(W,G,X){let Y=Q5.encodingLength(W);if(!G)G=G1.alloc(Q5.encodingLength(W));if(!X)X=0;if(W.issuerCritical)W.flags=Q5.ISSUER_CRITICAL;return G.writeUInt16BE(Y-2,X),X+=2,G.writeUInt8(W.flags||0,X),X+=1,S1.encode(W.tag,G,X),X+=S1.encode.bytes,G.write(W.value,X),X+=G1.byteLength(W.value),Q5.encode.bytes=Y,G};Q5.encode.bytes=0;Q5.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G);G+=2;let Y=G,Z={};return Z.flags=W.readUInt8(G),G+=1,Z.tag=S1.decode(W,G),G+=S1.decode.bytes,Z.value=W.toString("utf-8",G,Y+X),Z.issuerCritical=!!(Z.flags&Q5.ISSUER_CRITICAL),Q5.decode.bytes=X+2,Z};Q5.decode.bytes=0;Q5.encodingLength=function(W){return S1.encodingLength(W.tag)+S1.encodingLength(W.value)+2};var o6=el.mx={};o6.encode=function(W,G,X){if(!G)G=G1.alloc(o6.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,y0.encode(W.exchange,G,X),X+=y0.encode.bytes,G.writeUInt16BE(X-Y-2,Y),o6.encode.bytes=X-Y,G};o6.encode.bytes=0;o6.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.exchange=y0.decode(W,G),G+=y0.decode.bytes,o6.decode.bytes=G-X,Y};o6.encodingLength=function(W){return 4+y0.encodingLength(W.exchange)};var g4=el.a={};g4.encode=function(W,G,X){if(!G)G=G1.alloc(g4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(4,X),X+=2,jG.v4.encode(W,G,X),g4.encode.bytes=6,G};g4.encode.bytes=0;g4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v4.decode(W,G);return g4.decode.bytes=6,X};g4.decode.bytes=0;g4.encodingLength=function(){return 6};var u4=el.aaaa={};u4.encode=function(W,G,X){if(!G)G=G1.alloc(u4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(16,X),X+=2,jG.v6.encode(W,G,X),u4.encode.bytes=18,G};u4.encode.bytes=0;u4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v6.decode(W,G);return u4.decode.bytes=18,X};u4.decode.bytes=0;u4.encodingLength=function(){return 18};var n9=el.option={};n9.encode=function(W,G,X){if(!G)G=G1.alloc(n9.encodingLength(W));if(!X)X=0;let Y=X,Z=ej.toCode(W.code);if(G.writeUInt16BE(Z,X),X+=2,W.data)G.writeUInt16BE(W.data.length,X),X+=2,W.data.copy(G,X),X+=W.data.length;else switch(Z){case 8:let V=W.sourcePrefixLength||0,Q=W.family||jG.familyOf(W.ip),J=jG.encode(W.ip,G1.alloc),U=Math.ceil(V/8);G.writeUInt16BE(U+4,X),X+=2,G.writeUInt16BE(Q,X),X+=2,G.writeUInt8(V,X++),G.writeUInt8(W.scopePrefixLength||0,X++),J.copy(G,X,0,U),X+=U;break;case 11:if(W.timeout)G.writeUInt16BE(2,X),X+=2,G.writeUInt16BE(W.timeout,X),X+=2;else G.writeUInt16BE(0,X),X+=2;break;case 12:let N=W.length||0;G.writeUInt16BE(N,X),X+=2,G.fill(0,X,X+N),X+=N;break;case 14:let q=W.tags.length*2;G.writeUInt16BE(q,X),X+=2;for(let A of W.tags)G.writeUInt16BE(A,X),X+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return n9.encode.bytes=X-Y,G};n9.encode.bytes=0;n9.decode=function(W,G){if(!G)G=0;let X={};X.code=W.readUInt16BE(G),X.type=ej.toString(X.code),G+=2;let Y=W.readUInt16BE(G);switch(G+=2,X.data=W.slice(G,G+Y),X.code){case 8:X.family=W.readUInt16BE(G),G+=2,X.sourcePrefixLength=W.readUInt8(G++),X.scopePrefixLength=W.readUInt8(G++);let Z=G1.alloc(X.family===1?4:16);W.copy(Z,0,G,G+Y-4),X.ip=jG.decode(Z);break;case 11:if(Y>0)X.timeout=W.readUInt16BE(G),G+=2;break;case 14:X.tags=[];for(let V=0;V<Y;V+=2)X.tags.push(W.readUInt16BE(G)),G+=2}return n9.decode.bytes=Y+4,X};n9.decode.bytes=0;n9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(ej.toCode(W.code)){case 8:let X=W.sourcePrefixLength||0;return Math.ceil(X/8)+8;case 11:return typeof W.timeout==="number"?6:4;case 12:return W.length+4;case 14:return 4+W.tags.length*2}throw Error(`Unknown roption code: ${W.code}`)};var U5=el.opt={};U5.encode=function(W,G,X){if(!G)G=G1.alloc(U5.encodingLength(W));if(!X)X=0;let Y=X,Z=BY(W,n9);return G.writeUInt16BE(Z,X),X=SQ(W,n9,G,X+2),U5.encode.bytes=X-Y,G};U5.encode.bytes=0;U5.decode=function(W,G){if(!G)G=0;let X=G,Y=[],Z=W.readUInt16BE(G);G+=2;let V=0;while(Z>0)Y[V++]=n9.decode(W,G),G+=n9.decode.bytes,Z-=n9.decode.bytes;return U5.decode.bytes=G-X,Y};U5.decode.bytes=0;U5.encodingLength=function(W){return 2+BY(W||[],n9)};var y9=el.dnskey={};y9.PROTOCOL_DNSSEC=3;y9.ZONE_KEY=128;y9.SECURE_ENTRYPOINT=32768;y9.encode=function(W,G,X){if(!G)G=G1.alloc(y9.encodingLength(W));if(!X)X=0;let Y=X,Z=W.key;if(!G1.isBuffer(Z))throw Error("Key must be a Buffer");return X+=2,G.writeUInt16BE(W.flags,X),X+=2,G.writeUInt8(y9.PROTOCOL_DNSSEC,X),X+=1,G.writeUInt8(W.algorithm,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y9.encode.bytes=X-Y,G.writeUInt16BE(y9.encode.bytes-2,Y),G};y9.encode.bytes=0;y9.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);if(G+=2,Y.flags=W.readUInt16BE(G),G+=2,W.readUInt8(G)!==y9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return G+=1,Y.algorithm=W.readUInt8(G),G+=1,Y.key=W.slice(G,X+Z+2),G+=Y.key.length,y9.decode.bytes=G-X,Y};y9.decode.bytes=0;y9.encodingLength=function(W){return 6+G1.byteLength(W.key)};var S7=el.rrsig={};S7.encode=function(W,G,X){if(!G)G=G1.alloc(S7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.signature;if(!G1.isBuffer(Z))throw Error("Signature must be a Buffer");return X+=2,G.writeUInt16BE(h4.toType(W.typeCovered),X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.labels,X),X+=1,G.writeUInt32BE(W.originalTTL,X),X+=4,G.writeUInt32BE(W.expiration,X),X+=4,G.writeUInt32BE(W.inception,X),X+=4,G.writeUInt16BE(W.keyTag,X),X+=2,y0.encode(W.signersName,G,X),X+=y0.encode.bytes,Z.copy(G,X,0,Z.length),X+=Z.length,S7.encode.bytes=X-Y,G.writeUInt16BE(S7.encode.bytes-2,Y),G};S7.encode.bytes=0;S7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.typeCovered=h4.toString(W.readUInt16BE(G)),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.labels=W.readUInt8(G),G+=1,Y.originalTTL=W.readUInt32BE(G),G+=4,Y.expiration=W.readUInt32BE(G),G+=4,Y.inception=W.readUInt32BE(G),G+=4,Y.keyTag=W.readUInt16BE(G),G+=2,Y.signersName=y0.decode(W,G),G+=y0.decode.bytes,Y.signature=W.slice(G,X+Z+2),G+=Y.signature.length,S7.decode.bytes=G-X,Y};S7.decode.bytes=0;S7.encodingLength=function(W){return 20+y0.encodingLength(W.signersName)+G1.byteLength(W.signature)};var x7=el.rp={};x7.encode=function(W,G,X){if(!G)G=G1.alloc(x7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mbox||".",G,X,{mail:!0}),X+=y0.encode.bytes,y0.encode(W.txt||".",G,X),X+=y0.encode.bytes,x7.encode.bytes=X-Y,G.writeUInt16BE(x7.encode.bytes-2,Y),G};x7.encode.bytes=0;x7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mbox=y0.decode(W,G,{mail:!0})||".",G+=y0.decode.bytes,Y.txt=y0.decode(W,G)||".",G+=y0.decode.bytes,x7.decode.bytes=G-X,Y};x7.decode.bytes=0;x7.encodingLength=function(W){return 2+y0.encodingLength(W.mbox||".")+y0.encodingLength(W.txt||".")};var n8={};n8.encode=function(W,G,X){if(!G)G=G1.alloc(n8.encodingLength(W));if(!X)X=0;let Y=X;var Z=[];for(var V=0;V<W.length;V++){var Q=h4.toType(W[V]);if(Z[Q>>8]===void 0)Z[Q>>8]=[];Z[Q>>8][Q>>3&31]|=1<<7-(Q&7)}for(V=0;V<Z.length;V++)if(Z[V]!==void 0){var J=G1.from(Z[V]);G.writeUInt8(V,X),X+=1,G.writeUInt8(J.length,X),X+=1,J.copy(G,X),X+=J.length}return n8.encode.bytes=X-Y,G};n8.encode.bytes=0;n8.decode=function(W,G,X){if(!G)G=0;let Y=G;var Z=[];while(G-Y<X){var V=W.readUInt8(G);G+=1;var Q=W.readUInt8(G);G+=1;for(var J=0;J<Q;J++){var U=W.readUInt8(G+J);for(var N=0;N<8;N++)if(U&1<<7-N){var q=h4.toString(V<<8|J<<3|N);Z.push(q)}}G+=Q}return n8.decode.bytes=G-Y,Z};n8.decode.bytes=0;n8.encodingLength=function(W){var G=[];for(var X=0;X<W.length;X++){var Y=h4.toType(W[X]);G[Y>>8]=Math.max(G[Y>>8]||0,Y&255)}var Z=0;for(X=0;X<G.length;X++)if(G[X]!==void 0)Z+=2+Math.ceil((G[X]+1)/8);return Z};var k7=el.nsec={};k7.encode=function(W,G,X){if(!G)G=G1.alloc(k7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.nextDomain,G,X),X+=y0.encode.bytes,n8.encode(W.rrtypes,G,X),X+=n8.encode.bytes,k7.encode.bytes=X-Y,G.writeUInt16BE(k7.encode.bytes-2,Y),G};k7.encode.bytes=0;k7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.nextDomain=y0.decode(W,G),G+=y0.decode.bytes,Y.rrtypes=n8.decode(W,G,Z-(G-X)),G+=n8.decode.bytes,k7.decode.bytes=G-X,Y};k7.decode.bytes=0;k7.encodingLength=function(W){return 2+y0.encodingLength(W.nextDomain)+n8.encodingLength(W.rrtypes)};var _7=el.nsec3={};_7.encode=function(W,G,X){if(!G)G=G1.alloc(_7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.salt;if(!G1.isBuffer(Z))throw Error("salt must be a Buffer");let V=W.nextDomain;if(!G1.isBuffer(V))throw Error("nextDomain must be a Buffer");return X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.flags,X),X+=1,G.writeUInt16BE(W.iterations,X),X+=2,G.writeUInt8(Z.length,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,G.writeUInt8(V.length,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,n8.encode(W.rrtypes,G,X),X+=n8.encode.bytes,_7.encode.bytes=X-Y,G.writeUInt16BE(_7.encode.bytes-2,Y),G};_7.encode.bytes=0;_7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.flags=W.readUInt8(G),G+=1,Y.iterations=W.readUInt16BE(G),G+=2;let V=W.readUInt8(G);G+=1,Y.salt=W.slice(G,G+V),G+=V;let Q=W.readUInt8(G);return G+=1,Y.nextDomain=W.slice(G,G+Q),G+=Q,Y.rrtypes=n8.decode(W,G,Z-(G-X)),G+=n8.decode.bytes,_7.decode.bytes=G-X,Y};_7.decode.bytes=0;_7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+n8.encodingLength(W.rrtypes)};var y7=el.ds={};y7.encode=function(W,G,X){if(!G)G=G1.alloc(y7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.digest;if(!G1.isBuffer(Z))throw Error("Digest must be a Buffer");return X+=2,G.writeUInt16BE(W.keyTag,X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.digestType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y7.encode.bytes=X-Y,G.writeUInt16BE(y7.encode.bytes-2,Y),G};y7.encode.bytes=0;y7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.keyTag=W.readUInt16BE(G),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.digestType=W.readUInt8(G),G+=1,Y.digest=W.slice(G,X+Z+2),G+=Y.digest.length,y7.decode.bytes=G-X,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return 6+G1.byteLength(W.digest)};var J5=el.sshfp={};J5.getFingerprintLengthForHashType=function(G){switch(G){case 1:return 20;case 2:return 32}};J5.encode=function(G,X,Y){if(!X)X=G1.alloc(J5.encodingLength(G));if(!Y)Y=0;let Z=Y;Y+=2,X[Y]=G.algorithm,Y+=1,X[Y]=G.hash,Y+=1;let V=G1.from(G.fingerprint.toUpperCase(),"hex");if(V.length!==J5.getFingerprintLengthForHashType(G.hash))throw Error("Invalid fingerprint length");return V.copy(X,Y),Y+=V.byteLength,J5.encode.bytes=Y-Z,X.writeUInt16BE(J5.encode.bytes-2,Z),X};J5.encode.bytes=0;J5.decode=function(G,X){if(!X)X=0;let Y=X,Z={};X+=2,Z.algorithm=G[X],X+=1,Z.hash=G[X],X+=1;let V=J5.getFingerprintLengthForHashType(Z.hash);return Z.fingerprint=G.slice(X,X+V).toString("hex").toUpperCase(),X+=V,J5.decode.bytes=X-Y,Z};J5.decode.bytes=0;J5.encodingLength=function(W){return 4+G1.from(W.fingerprint,"hex").byteLength};var v7=el.naptr={};v7.encode=function(W,G,X){if(!G)G=G1.alloc(v7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.order||0,X),X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,S1.encode(W.flags,G,X),X+=S1.encode.bytes,S1.encode(W.services,G,X),X+=S1.encode.bytes,S1.encode(W.regexp,G,X),X+=S1.encode.bytes,y0.encode(W.replacement,G,X),X+=y0.encode.bytes,v7.encode.bytes=X-Y,G.writeUInt16BE(v7.encode.bytes-2,Y),G};v7.encode.bytes=0;v7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.order=W.readUInt16BE(G),G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.flags=S1.decode(W,G),G+=S1.decode.bytes,Y.services=S1.decode(W,G),G+=S1.decode.bytes,Y.regexp=S1.decode(W,G),G+=S1.decode.bytes,Y.replacement=y0.decode(W,G),G+=y0.decode.bytes,v7.decode.bytes=G-X,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return S1.encodingLength(W.flags)+S1.encodingLength(W.services)+S1.encodingLength(W.regexp)+y0.encodingLength(W.replacement)+6};var g7=el.tlsa={};g7.encode=function(W,G,X){if(!G)G=G1.alloc(g7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.certificate;if(!G1.isBuffer(Z))throw Error("Certificate must be a Buffer");return X+=2,G.writeUInt8(W.usage,X),X+=1,G.writeUInt8(W.selector,X),X+=1,G.writeUInt8(W.matchingType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,g7.encode.bytes=X-Y,G.writeUInt16BE(g7.encode.bytes-2,Y),G};g7.encode.bytes=0;g7.decode=function(W,G){if(!G)G=0;let X=G,Y={},Z=W.readUInt16BE(G);return G+=2,Y.usage=W.readUInt8(G),G+=1,Y.selector=W.readUInt8(G),G+=1,Y.matchingType=W.readUInt8(G),G+=1,Y.certificate=W.slice(G,X+Z+2),G+=Y.certificate.length,g7.decode.bytes=G-X,Y};g7.decode.bytes=0;g7.encodingLength=function(W){return 5+G1.byteLength(W.certificate)};var WO=el.record=function(W){switch(W.toUpperCase()){case"A":return g4;case"PTR":return n5;case"CNAME":return sl;case"DNAME":return tl;case"TXT":return k4;case"NULL":return _4;case"AAAA":return u4;case"SRV":return v4;case"HINFO":return y4;case"CAA":return Q5;case"NS":return S4;case"SOA":return x4;case"MX":return o6;case"OPT":return U5;case"DNSKEY":return y9;case"RRSIG":return S7;case"RP":return x7;case"NSEC":return k7;case"NSEC3":return _7;case"SSHFP":return J5;case"DS":return y7;case"NAPTR":return v7;case"TLSA":return g7}return F4},Y9=el.answer={};Y9.encode=function(W,G,X){if(!G)G=G1.alloc(Y9.encodingLength(W));if(!X)X=0;let Y=X;if(y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(h4.toType(W.type),X),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");G.writeUInt16BE(W.udpPayloadSize||4096,X+2),G.writeUInt8(W.extendedRcode||0,X+4),G.writeUInt8(W.ednsVersion||0,X+5),G.writeUInt16BE(W.flags||0,X+6),X+=8,U5.encode(W.options||[],G,X),X+=U5.encode.bytes}else{let Z=Eq.toClass(W.class===void 0?"IN":W.class);if(W.flush)Z|=32768;G.writeUInt16BE(Z,X+2),G.writeUInt32BE(W.ttl||0,X+4),X+=8;let V=WO(W.type);V.encode(W.data,G,X),X+=V.encode.bytes}return Y9.encode.bytes=X-Y,G};Y9.encode.bytes=0;Y9.decode=function(W,G){if(!G)G=0;let X={},Y=G;if(X.name=y0.decode(W,G),G+=y0.decode.bytes,X.type=h4.toString(W.readUInt16BE(G)),X.type==="OPT")X.udpPayloadSize=W.readUInt16BE(G+2),X.extendedRcode=W.readUInt8(G+4),X.ednsVersion=W.readUInt8(G+5),X.flags=W.readUInt16BE(G+6),X.flag_do=(X.flags>>15&1)===1,X.options=U5.decode(W,G+8),G+=8+U5.decode.bytes;else{let Z=W.readUInt16BE(G+2);X.ttl=W.readUInt32BE(G+4),X.class=Eq.toString(Z&-32769),X.flush=!!(Z&32768);let V=WO(X.type);X.data=V.decode(W,G+8),G+=8+V.decode.bytes}return Y9.decode.bytes=G-Y,X};Y9.decode.bytes=0;Y9.encodingLength=function(W){let G=W.data!==null&&W.data!==void 0?W.data:W.options;return y0.encodingLength(W.name)+8+WO(W.type).encodingLength(G)};var i5=el.question={};i5.encode=function(W,G,X){if(!G)G=G1.alloc(i5.encodingLength(W));if(!X)X=0;let Y=X;return y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(h4.toType(W.type),X),X+=2,G.writeUInt16BE(Eq.toClass(W.class===void 0?"IN":W.class),X),X+=2,i5.encode.bytes=X-Y,W};i5.encode.bytes=0;i5.decode=function(W,G){if(!G)G=0;let X=G,Y={};if(Y.name=y0.decode(W,G),G+=y0.decode.bytes,Y.type=h4.toString(W.readUInt16BE(G)),G+=2,Y.class=Eq.toString(W.readUInt16BE(G)),G+=2,!!(Y.class&32768))Y.class&=-32769;return i5.decode.bytes=G-X,Y};i5.decode.bytes=0;i5.encodingLength=function(W){return y0.encodingLength(W.name)+4};el.AUTHORITATIVE_ANSWER=1024;el.TRUNCATED_RESPONSE=512;el.RECURSION_DESIRED=256;el.RECURSION_AVAILABLE=128;el.AUTHENTIC_DATA=32;el.CHECKING_DISABLED=16;el.DNSSEC_OK=32768;el.encode=function(W,G,X){let Y=!G;if(Y)G=G1.alloc(el.encodingLength(W));if(!X)X=0;let Z=X;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(r5.encode(W,G,X),X+=r5.encode.bytes,X=SQ(W.questions,i5,G,X),X=SQ(W.answers,Y9,G,X),X=SQ(W.authorities,Y9,G,X),X=SQ(W.additionals,Y9,G,X),el.encode.bytes=X-Z,Y&&el.encode.bytes!==G.length)return G.slice(0,el.encode.bytes);return G};el.encode.bytes=0;el.decode=function(W,G){if(!G)G=0;let X=G,Y=r5.decode(W,G);return G+=r5.decode.bytes,G=Bq(Y.questions,i5,W,G),G=Bq(Y.answers,Y9,W,G),G=Bq(Y.authorities,Y9,W,G),G=Bq(Y.additionals,Y9,W,G),el.decode.bytes=G-X,Y};el.decode.bytes=0;el.encodingLength=function(W){return r5.encodingLength(W)+BY(W.questions||[],i5)+BY(W.answers||[],Y9)+BY(W.authorities||[],Y9)+BY(W.additionals||[],Y9)};el.streamEncode=function(W){let G=el.encode(W),X=G1.alloc(2);X.writeUInt16BE(G.byteLength);let Y=G1.concat([X,G]);return el.streamEncode.bytes=Y.byteLength,Y};el.streamEncode.bytes=0;el.streamDecode=function(W){let G=W.readUInt16BE(0);if(W.byteLength<G+2)return null;let X=el.decode(W.slice(2));return el.streamDecode.bytes=el.decode.bytes,X};el.streamDecode.bytes=0;function BY(W,G){let X=0;for(let Y=0;Y<W.length;Y++)X+=G.encodingLength(W[Y]);return X}function SQ(W,G,X,Y){for(let Z=0;Z<W.length;Z++)G.encode(W[Z],X,Y),Y+=G.encode.bytes;return Y}function Bq(W,G,X,Y){for(let Z=0;Z<W.length;Z++)W[Z]=G.decode(X,Y),Y+=G.decode.bytes;return Y}});var _$=Z1((zH0,k$)=>{var x$=zd;process.nextTick(Ad,42);k$.exports=Ud;function Ud(W){var G=Y;return X;function X(Z){G(Z||qd)}function Y(Z){var V=[Z];G=Q,W(J);function Q(U){V.push(U)}function J(U){var N=arguments;G=Nd(U)?Y:q;while(V.length)q(V.shift());function q(A){x$(Hd,A,N)}}}}function Nd(W){return Object.prototype.toString.call(W)==="[object Error]"}function qd(){}function Hd(W,G){W.apply(null,G)}function Ad(W){if(W===42)x$=process.nextTick}function zd(W,G,X){process.nextTick(function(){W(G,X)})}});var g$=Z1((IH0,v$)=>{var GO=S$(),Id=S8("dgram"),wd=_$(),jd=S8("events"),YO=S8("os"),XO=function(){};v$.exports=function(W){if(!W)W={};var G=new jd.EventEmitter,X=typeof W.port==="number"?W.port:5353,Y=W.type||"udp4",Z=W.ip||W.host||(Y==="udp4"?"224.0.0.251":null),V={address:Z,port:X},Q={},J=!1,U=null;if(Y==="udp6"&&(!Z||!W.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var N=W.socket||Id.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});N.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")G.emit("error",A);else G.emit("warning",A)}),N.on("message",function(A,H){try{A=GO.decode(A)}catch(I){G.emit("warning",I);return}if(G.emit("packet",A,H),A.type==="query")G.emit("query",A,H);if(A.type==="response")G.emit("response",A,H)}),N.on("listening",function(){if(!X)X=V.port=N.address().port;if(W.multicast!==!1)G.update(),U=setInterval(G.update,5000),N.setMulticastTTL(W.ttl||255),N.setMulticastLoopback(W.loopback!==!1)});var q=wd(function(A){if(!X||W.bind===!1)return A(null);N.once("error",A),N.bind(X,W.bind||W.interface,function(){N.removeListener("error",A),A(null)})});return q(function(A){if(A)return G.emit("error",A);G.emit("ready")}),G.send=function(A,H,I){if(typeof H==="function")return G.send(A,null,H);if(!I)I=XO;if(!H)H=V;else if(!H.host&&!H.address)H.address=V.address;q(w);function w(C){if(J)return I();if(C)return I(C);var D=GO.encode(A);N.send(D,0,D.length,H.port,H.address||H.host,I)}},G.response=G.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|GO.AUTHORITATIVE_ANSWER,G.send(A,H,I)},G.query=function(A,H,I,w){if(typeof H==="function")return G.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return G.query(A,null,H,I);if(typeof I==="function")return G.query(A,H,null,I);if(!w)w=XO;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",G.send(A,I,w)},G.destroy=function(A){if(!A)A=XO;if(J)return process.nextTick(A);J=!0,clearInterval(U);for(var H in Q)try{N.dropMembership(Z,H)}catch(I){}Q={},N.close(A)},G.update=function(){var A=W.interface?[].concat(W.interface):Kd(),H=!1;for(var I=0;I<A.length;I++){var w=A[I];if(Q[w])continue;try{N.addMembership(Z,w),Q[w]=!0,H=!0}catch(C){G.emit("warning",C)}}if(H){if(N.setMulticastInterface)try{N.setMulticastInterface(W.interface||Od())}catch(C){G.emit("warning",C)}G.emit("networkInterface")}},G};function Od(){var W=YO.networkInterfaces(),G=Object.keys(W);for(var X=0;X<G.length;X++){var Y=W[G[X]];for(var Z=0;Z<Y.length;Z++){var V=Y[Z];if(y$(V.family)&&!V.internal){if(YO.platform()==="darwin"&&G[X]==="en0")return V.address;return"0.0.0.0"}}}return"127.0.0.1"}function Kd(){var W=YO.networkInterfaces(),G=Object.keys(W),X=[];for(var Y=0;Y<G.length;Y++){var Z=W[G[Y]];for(var V=0;V<Z.length;V++){var Q=Z[V];if(y$(Q.family)){X.push(Q.address);break}}}return X}function y$(W){return W===4||W==="IPv4"}});import{Database as qt}from"bun:sqlite";import{mkdirSync as Ht}from"fs";import{dirname as At}from"path";function JC(W){let G=W.length,X=0,Y=0;while(Y<G){let Z=W.charCodeAt(Y++);if((Z&4294967168)===0){X++;continue}else if((Z&4294965248)===0)X+=2;else{if(Z>=55296&&Z<=56319){if(Y<G){let V=W.charCodeAt(Y);if((V&64512)===56320)++Y,Z=((Z&1023)<<10)+(V&1023)+65536}}if((Z&4294901760)===0)X+=3;else X+=4}}return X}function g_(W,G,X){let Y=W.length,Z=X,V=0;while(V<Y){let Q=W.charCodeAt(V++);if((Q&4294967168)===0){G[Z++]=Q;continue}else if((Q&4294965248)===0)G[Z++]=Q>>6&31|192;else{if(Q>=55296&&Q<=56319){if(V<Y){let J=W.charCodeAt(V);if((J&64512)===56320)++V,Q=((Q&1023)<<10)+(J&1023)+65536}}if((Q&4294901760)===0)G[Z++]=Q>>12&15|224,G[Z++]=Q>>6&63|128;else G[Z++]=Q>>18&7|240,G[Z++]=Q>>12&63|128,G[Z++]=Q>>6&63|128}G[Z++]=Q&63|128}}var u_=new TextEncoder,h_=50;function b_(W,G,X){u_.encodeInto(W,G.subarray(X))}function UC(W,G,X){if(W.length>h_)b_(W,G,X);else g_(W,G,X)}var m_=4096;function qA(W,G,X){let Y=G,Z=Y+X,V=[],Q="";while(Y<Z){let J=W[Y++];if((J&128)===0)V.push(J);else if((J&224)===192){let U=W[Y++]&63;V.push((J&31)<<6|U)}else if((J&240)===224){let U=W[Y++]&63,N=W[Y++]&63;V.push((J&31)<<12|U<<6|N)}else if((J&248)===240){let U=W[Y++]&63,N=W[Y++]&63,q=W[Y++]&63,A=(J&7)<<18|U<<12|N<<6|q;if(A>65535)A-=65536,V.push(A>>>10&1023|55296),A=56320|A&1023;V.push(A)}else V.push(J);if(V.length>=m_)Q+=String.fromCharCode(...V),V.length=0}if(V.length>0)Q+=String.fromCharCode(...V);return Q}var f_=new TextDecoder,c_=200;function p_(W,G,X){let Y=W.subarray(G,G+X);return f_.decode(Y)}function NC(W,G,X){if(X>c_)return p_(W,G,X);else return qA(W,G,X)}class pG{type;data;constructor(W,G){this.type=W,this.data=G}}class $9 extends Error{constructor(W){super(W);let G=Object.create($9.prototype);Object.setPrototypeOf(this,G),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:$9.name})}}var lG=4294967295;function qC(W,G,X){let Y=X/4294967296,Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function yJ(W,G,X){let Y=Math.floor(X/4294967296),Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function vJ(W,G){let X=W.getInt32(G),Y=W.getUint32(G+4);return X*4294967296+Y}function HC(W,G){let X=W.getUint32(G),Y=W.getUint32(G+4);return X*4294967296+Y}var l_=-1,d_=4294967295,o_=17179869183;function n_({sec:W,nsec:G}){if(W>=0&&G>=0&&W<=o_)if(G===0&&W<=d_){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,W),X}else{let X=W/4294967296,Y=W&4294967295,Z=new Uint8Array(8),V=new DataView(Z.buffer);return V.setUint32(0,G<<2|X&3),V.setUint32(4,Y),Z}else{let X=new Uint8Array(12),Y=new DataView(X.buffer);return Y.setUint32(0,G),yJ(Y,4,W),X}}function i_(W){let G=W.getTime(),X=Math.floor(G/1000),Y=(G-X*1000)*1e6,Z=Math.floor(Y/1e9);return{sec:X+Z,nsec:Y-Z*1e9}}function r_(W){if(W instanceof Date){let G=i_(W);return n_(G)}else return null}function a_(W){let G=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let X=G.getUint32(0),Y=0;return{sec:X,nsec:0}}case 8:{let X=G.getUint32(0),Y=G.getUint32(4),Z=(X&3)*4294967296+Y,V=X>>>2;return{sec:Z,nsec:V}}case 12:{let X=vJ(G,4),Y=G.getUint32(0);return{sec:X,nsec:Y}}default:throw new $9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function s_(W){let G=a_(W);return new Date(G.sec*1000+G.nsec/1e6)}var AC={type:l_,encode:r_,decode:s_};class dG{static defaultCodec=new dG;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(AC)}register({type:W,encode:G,decode:X}){if(W>=0)this.encoders[W]=G,this.decoders[W]=X;else{let Y=-1-W;this.builtInEncoders[Y]=G,this.builtInDecoders[Y]=X}}tryToEncode(W,G){for(let X=0;X<this.builtInEncoders.length;X++){let Y=this.builtInEncoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null){let V=-1-X;return new pG(V,Z)}}}for(let X=0;X<this.encoders.length;X++){let Y=this.encoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null)return new pG(X,Z)}}if(W instanceof pG)return W;return null}decode(W,G,X){let Y=G<0?this.builtInDecoders[-1-G]:this.decoders[G];if(Y)return Y(W,G,X);else return new pG(G,W)}}function t_(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&W instanceof SharedArrayBuffer}function UZ(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(t_(W))return new Uint8Array(W);else return Uint8Array.from(W)}var e_=100,Wy=2048;class gJ{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??e_,this.initialBufferSize=W?.initialBufferSize??Wy,this.sortKeys=W?.sortKeys??!1,this.forceFloat32=W?.forceFloat32??!1,this.ignoreUndefined=W?.ignoreUndefined??!1,this.forceIntegerToFloat=W?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new gJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(W){if(this.entered)return this.clone().encodeSharedRef(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(W){if(this.entered)return this.clone().encode(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(W,G){if(G>this.maxDepth)throw Error(`Too deep objects in depth ${G}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,G)}ensureBufferSizeToWrite(W){let G=this.pos+W;if(this.view.byteLength<G)this.resizeBuffer(G*2)}resizeBuffer(W){let G=new ArrayBuffer(W),X=new Uint8Array(G),Y=new DataView(G);X.set(this.bytes),this.view=Y,this.bytes=X}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){let X=JC(W);this.ensureBufferSizeToWrite(5+X),this.writeStringHeader(X),UC(W,this.bytes,this.pos),this.pos+=X}encodeObject(W,G){let X=this.extensionCodec.tryToEncode(W,this.context);if(X!=null)this.encodeExtension(X);else if(Array.isArray(W))this.encodeArray(W,G);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,G);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let G=W.byteLength;if(G<256)this.writeU8(196),this.writeU8(G);else if(G<65536)this.writeU8(197),this.writeU16(G);else if(G<4294967296)this.writeU8(198),this.writeU32(G);else throw Error(`Too large binary: ${G}`);let X=UZ(W);this.writeU8a(X)}encodeArray(W,G){let X=W.length;if(X<16)this.writeU8(144+X);else if(X<65536)this.writeU8(220),this.writeU16(X);else if(X<4294967296)this.writeU8(221),this.writeU32(X);else throw Error(`Too large array: ${X}`);for(let Y of W)this.doEncode(Y,G+1)}countWithoutUndefined(W,G){let X=0;for(let Y of G)if(W[Y]!==void 0)X++;return X}encodeMap(W,G){let X=Object.keys(W);if(this.sortKeys)X.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,X):X.length;if(Y<16)this.writeU8(128+Y);else if(Y<65536)this.writeU8(222),this.writeU16(Y);else if(Y<4294967296)this.writeU8(223),this.writeU32(Y);else throw Error(`Too large map object: ${Y}`);for(let Z of X){let V=W[Z];if(!(this.ignoreUndefined&&V===void 0))this.encodeString(Z),this.doEncode(V,G+1)}}encodeExtension(W){if(typeof W.data==="function"){let X=W.data(this.pos+6),Y=X.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(X);return}let G=W.data.length;if(G===1)this.writeU8(212);else if(G===2)this.writeU8(213);else if(G===4)this.writeU8(214);else if(G===8)this.writeU8(215);else if(G===16)this.writeU8(216);else if(G<256)this.writeU8(199),this.writeU8(G);else if(G<65536)this.writeU8(200),this.writeU16(G);else if(G<4294967296)this.writeU8(201),this.writeU32(G);else throw Error(`Too large extension object: ${G}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let G=W.length;this.ensureBufferSizeToWrite(G),this.bytes.set(W,this.pos),this.pos+=G}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),qC(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),yJ(this.view,this.pos,W),this.pos+=8}writeBigUint64(W){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,W),this.pos+=8}writeBigInt64(W){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,W),this.pos+=8}}function NZ(W,G){return new gJ(G).encodeSharedRef(W)}function uJ(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Gy=16,Xy=16;class HA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Gy,G=Xy){this.maxKeyLength=W,this.maxLengthPerKey=G,this.caches=[];for(let X=0;X<this.maxKeyLength;X++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,G,X){let Y=this.caches[X-1];W:for(let Z of Y){let V=Z.bytes;for(let Q=0;Q<X;Q++)if(V[Q]!==W[G+Q])continue W;return Z.str}return null}store(W,G){let X=this.caches[W.length-1],Y={bytes:W,str:G};if(X.length>=this.maxLengthPerKey)X[Math.random()*X.length|0]=Y;else X.push(Y)}decode(W,G,X){let Y=this.find(W,G,X);if(Y!=null)return this.hit++,Y;this.miss++;let Z=qA(W,G,X),V=Uint8Array.prototype.slice.call(W,G,G+X);return this.store(V,Z),Z}}var AA="array",HZ="map_key",IC="map_value",Yy=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new $9("The type of key must be string or number but "+typeof W)};class wC{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let G=this.getUninitializedStateFromPool();G.type=AA,G.position=0,G.size=W,G.array=Array(W)}pushMapState(W){let G=this.getUninitializedStateFromPool();G.type=HZ,G.readCount=0,G.size=W,G.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===AA){let X=W;X.size=0,X.array=void 0,X.position=0,X.type=void 0}if(W.type===HZ||W.type===IC){let X=W;X.size=0,X.map=void 0,X.readCount=0,X.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var qZ=-1,zA=new DataView(new ArrayBuffer(0)),Zy=new Uint8Array(zA.buffer);try{zA.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var zC=RangeError("Insufficient data"),Vy=new HA;class hJ{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=zA;bytes=Zy;headByte=qZ;stack=new wC;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lG,this.maxBinLength=W?.maxBinLength??lG,this.maxArrayLength=W?.maxArrayLength??lG,this.maxMapLength=W?.maxMapLength??lG,this.maxExtLength=W?.maxExtLength??lG,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:Vy,this.mapKeyConverter=W?.mapKeyConverter??Yy}clone(){return new hJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=qZ,this.stack.reset()}setBuffer(W){let G=UZ(W);this.bytes=G,this.view=new DataView(G.buffer,G.byteOffset,G.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===qZ&&!this.hasRemaining(1))this.setBuffer(W);else{let G=this.bytes.subarray(this.pos),X=UZ(W),Y=new Uint8Array(G.length+X.length);Y.set(G),Y.set(X,G.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:G,pos:X}=this;return RangeError(`Extra ${G.byteLength-X} of ${G.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);let G=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return G}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let G=!1,X;for await(let Q of W){if(G)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Q);try{X=this.doDecodeSync(),G=!0}catch(J){if(!(J instanceof RangeError))throw J}this.totalPos+=this.pos}if(G){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return X}let{headByte:Y,pos:Z,totalPos:V}=this;throw RangeError(`Insufficient data in parsing ${uJ(Y)} at ${V} (${Z} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(W){return this.decodeMultiAsync(W,!0)}decodeStream(W){return this.decodeMultiAsync(W,!1)}async*decodeMultiAsync(W,G){if(this.entered){yield*this.clone().decodeMultiAsync(W,G);return}try{this.entered=!0;let X=G,Y=-1;for await(let Z of W){if(G&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(Z),X)Y=this.readArraySize(),X=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--Y===0)break}catch(V){if(!(V instanceof RangeError))throw V}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){let W=this.readHeadByte(),G;if(W>=224)G=W-256;else if(W<192)if(W<128)G=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else{let Y=W-160;G=this.decodeString(Y,0)}else if(W===192)G=null;else if(W===194)G=!1;else if(W===195)G=!0;else if(W===202)G=this.readF32();else if(W===203)G=this.readF64();else if(W===204)G=this.readU8();else if(W===205)G=this.readU16();else if(W===206)G=this.readU32();else if(W===207)if(this.useBigInt64)G=this.readU64AsBigInt();else G=this.readU64();else if(W===208)G=this.readI8();else if(W===209)G=this.readI16();else if(W===210)G=this.readI32();else if(W===211)if(this.useBigInt64)G=this.readI64AsBigInt();else G=this.readI64();else if(W===217){let Y=this.lookU8();G=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();G=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();G=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===196){let Y=this.lookU8();G=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();G=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();G=this.decodeBinary(Y,4)}else if(W===212)G=this.decodeExtension(1,0);else if(W===213)G=this.decodeExtension(2,0);else if(W===214)G=this.decodeExtension(4,0);else if(W===215)G=this.decodeExtension(8,0);else if(W===216)G=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();G=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();G=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();G=this.decodeExtension(Y,4)}else throw new $9(`Unrecognized type byte: ${uJ(W)}`);this.complete();let X=this.stack;while(X.length>0){let Y=X.top();if(Y.type===AA)if(Y.array[Y.position]=G,Y.position++,Y.position===Y.size)G=Y.array,X.release(Y);else continue W;else if(Y.type===HZ){if(G==="__proto__")throw new $9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(G),Y.type=IC;continue W}else if(Y.map[Y.key]=G,Y.readCount++,Y.readCount===Y.size)G=Y.map,X.release(Y);else{Y.key=null,Y.type=HZ;continue W}}return G}}readHeadByte(){if(this.headByte===qZ)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=qZ}readArraySize(){let W=this.readHeadByte();switch(W){case 220:return this.readU16();case 221:return this.readU32();default:if(W<160)return W-144;else throw new $9(`Unrecognized array type byte: ${uJ(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new $9(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new $9(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,G){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,G);return this.decodeBinary(W,G)}decodeUtf8String(W,G){if(W>this.maxStrLength)throw new $9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+G+W)throw zC;let X=this.pos+G,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,X,W);else Y=NC(this.bytes,X,W);return this.pos+=G+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===HZ;return!1}decodeBinary(W,G){if(W>this.maxBinLength)throw new $9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+G))throw zC;let X=this.pos+G,Y=this.bytes.subarray(X,X+W);return this.pos+=G+W,Y}decodeExtension(W,G){if(W>this.maxExtLength)throw new $9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let X=this.view.getInt8(this.pos+G),Y=this.decodeBinary(W,G+1);return this.extensionCodec.decode(Y,X,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){let W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){let W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){let W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){let W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){let W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){let W=HC(this.view,this.pos);return this.pos+=8,W}readI64(){let W=vJ(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){let W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){let W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){let W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){let W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function Y6(W,G){return new hJ(G).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sG(W){let G=W.length;while(--G>=0)W[G]=0}var Qy=0,WD=1,Jy=2,Uy=3,Ny=258,uA=29,BZ=256,KZ=BZ+1+uA,iG=30,hA=19,GD=2*KZ+1,zW=15,IA=16,qy=7,bA=256,XD=16,YD=17,ZD=18,$A=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),lJ=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Hy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),VD=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ay=512,a7=Array((KZ+2)*2);sG(a7);var wZ=Array(iG*2);sG(wZ);var CZ=Array(Ay);sG(CZ);var DZ=Array(Ny-Uy+1);sG(DZ);var mA=Array(uA);sG(mA);var dJ=Array(iG);sG(dJ);function wA(W,G,X,Y,Z){this.static_tree=W,this.extra_bits=G,this.extra_base=X,this.elems=Y,this.max_length=Z,this.has_stree=W&&W.length}var QD,JD,UD;function jA(W,G){this.dyn_tree=W,this.max_code=0,this.stat_desc=G}var ND=(W)=>{return W<256?CZ[W]:CZ[256+(W>>>7)]},MZ=(W,G)=>{W.pending_buf[W.pending++]=G&255,W.pending_buf[W.pending++]=G>>>8&255},g9=(W,G,X)=>{if(W.bi_valid>IA-X)W.bi_buf|=G<<W.bi_valid&65535,MZ(W,W.bi_buf),W.bi_buf=G>>IA-W.bi_valid,W.bi_valid+=X-IA;else W.bi_buf|=G<<W.bi_valid&65535,W.bi_valid+=X},U7=(W,G,X)=>{g9(W,X[G*2],X[G*2+1])},qD=(W,G)=>{let X=0;do X|=W&1,W>>>=1,X<<=1;while(--G>0);return X>>>1},zy=(W)=>{if(W.bi_valid===16)MZ(W,W.bi_buf),W.bi_buf=0,W.bi_valid=0;else if(W.bi_valid>=8)W.pending_buf[W.pending++]=W.bi_buf&255,W.bi_buf>>=8,W.bi_valid-=8},Iy=(W,G)=>{let{dyn_tree:X,max_code:Y}=G,Z=G.stat_desc.static_tree,V=G.stat_desc.has_stree,Q=G.stat_desc.extra_bits,J=G.stat_desc.extra_base,U=G.stat_desc.max_length,N,q,A,H,I,w,C=0;for(H=0;H<=zW;H++)W.bl_count[H]=0;X[W.heap[W.heap_max]*2+1]=0;for(N=W.heap_max+1;N<GD;N++){if(q=W.heap[N],H=X[X[q*2+1]*2+1]+1,H>U)H=U,C++;if(X[q*2+1]=H,q>Y)continue;if(W.bl_count[H]++,I=0,q>=J)I=Q[q-J];if(w=X[q*2],W.opt_len+=w*(H+I),V)W.static_len+=w*(Z[q*2+1]+I)}if(C===0)return;do{H=U-1;while(W.bl_count[H]===0)H--;W.bl_count[H]--,W.bl_count[H+1]+=2,W.bl_count[U]--,C-=2}while(C>0);for(H=U;H!==0;H--){q=W.bl_count[H];while(q!==0){if(A=W.heap[--N],A>Y)continue;if(X[A*2+1]!==H)W.opt_len+=(H-X[A*2+1])*X[A*2],X[A*2+1]=H;q--}}},HD=(W,G,X)=>{let Y=Array(zW+1),Z=0,V,Q;for(V=1;V<=zW;V++)Z=Z+X[V-1]<<1,Y[V]=Z;for(Q=0;Q<=G;Q++){let J=W[Q*2+1];if(J===0)continue;W[Q*2]=qD(Y[J]++,J)}},wy=()=>{let W,G,X,Y,Z,V=Array(zW+1);X=0;for(Y=0;Y<uA-1;Y++){mA[Y]=X;for(W=0;W<1<<$A[Y];W++)DZ[X++]=Y}DZ[X-1]=Y,Z=0;for(Y=0;Y<16;Y++){dJ[Y]=Z;for(W=0;W<1<<lJ[Y];W++)CZ[Z++]=Y}Z>>=7;for(;Y<iG;Y++){dJ[Y]=Z<<7;for(W=0;W<1<<lJ[Y]-7;W++)CZ[256+Z++]=Y}for(G=0;G<=zW;G++)V[G]=0;W=0;while(W<=143)a7[W*2+1]=8,W++,V[8]++;while(W<=255)a7[W*2+1]=9,W++,V[9]++;while(W<=279)a7[W*2+1]=7,W++,V[7]++;while(W<=287)a7[W*2+1]=8,W++,V[8]++;HD(a7,KZ+1,V);for(W=0;W<iG;W++)wZ[W*2+1]=5,wZ[W*2]=qD(W,5);QD=new wA(a7,$A,BZ+1,KZ,zW),JD=new wA(wZ,lJ,0,iG,zW),UD=new wA([],Hy,0,hA,qy)},AD=(W)=>{let G;for(G=0;G<KZ;G++)W.dyn_ltree[G*2]=0;for(G=0;G<iG;G++)W.dyn_dtree[G*2]=0;for(G=0;G<hA;G++)W.bl_tree[G*2]=0;W.dyn_ltree[bA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},zD=(W)=>{if(W.bi_valid>8)MZ(W,W.bi_buf);else if(W.bi_valid>0)W.pending_buf[W.pending++]=W.bi_buf;W.bi_buf=0,W.bi_valid=0},jC=(W,G,X,Y)=>{let Z=G*2,V=X*2;return W[Z]<W[V]||W[Z]===W[V]&&Y[G]<=Y[X]},OA=(W,G,X)=>{let Y=W.heap[X],Z=X<<1;while(Z<=W.heap_len){if(Z<W.heap_len&&jC(G,W.heap[Z+1],W.heap[Z],W.depth))Z++;if(jC(G,Y,W.heap[Z],W.depth))break;W.heap[X]=W.heap[Z],X=Z,Z<<=1}W.heap[X]=Y},OC=(W,G,X)=>{let Y,Z,V=0,Q,J;if(W.sym_next!==0)do if(Y=W.pending_buf[W.sym_buf+V++]&255,Y+=(W.pending_buf[W.sym_buf+V++]&255)<<8,Z=W.pending_buf[W.sym_buf+V++],Y===0)U7(W,Z,G);else{if(Q=DZ[Z],U7(W,Q+BZ+1,G),J=$A[Q],J!==0)Z-=mA[Q],g9(W,Z,J);if(Y--,Q=ND(Y),U7(W,Q,X),J=lJ[Q],J!==0)Y-=dJ[Q],g9(W,Y,J)}while(V<W.sym_next);U7(W,bA,G)},FA=(W,G)=>{let X=G.dyn_tree,Y=G.stat_desc.static_tree,Z=G.stat_desc.has_stree,V=G.stat_desc.elems,Q,J,U=-1,N;W.heap_len=0,W.heap_max=GD;for(Q=0;Q<V;Q++)if(X[Q*2]!==0)W.heap[++W.heap_len]=U=Q,W.depth[Q]=0;else X[Q*2+1]=0;while(W.heap_len<2)if(N=W.heap[++W.heap_len]=U<2?++U:0,X[N*2]=1,W.depth[N]=0,W.opt_len--,Z)W.static_len-=Y[N*2+1];G.max_code=U;for(Q=W.heap_len>>1;Q>=1;Q--)OA(W,X,Q);N=V;do Q=W.heap[1],W.heap[1]=W.heap[W.heap_len--],OA(W,X,1),J=W.heap[1],W.heap[--W.heap_max]=Q,W.heap[--W.heap_max]=J,X[N*2]=X[Q*2]+X[J*2],W.depth[N]=(W.depth[Q]>=W.depth[J]?W.depth[Q]:W.depth[J])+1,X[Q*2+1]=X[J*2+1]=N,W.heap[1]=N++,OA(W,X,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Iy(W,G),HD(X,U,W.bl_count)},KC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,N=4;if(Q===0)U=138,N=3;G[(X+1)*2+1]=65535;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<N)W.bl_tree[V*2]+=J;else if(V!==0){if(V!==Z)W.bl_tree[V*2]++;W.bl_tree[XD*2]++}else if(J<=10)W.bl_tree[YD*2]++;else W.bl_tree[ZD*2]++;if(J=0,Z=V,Q===0)U=138,N=3;else if(V===Q)U=6,N=3;else U=7,N=4}},CC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,N=4;if(Q===0)U=138,N=3;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<N)do U7(W,V,W.bl_tree);while(--J!==0);else if(V!==0){if(V!==Z)U7(W,V,W.bl_tree),J--;U7(W,XD,W.bl_tree),g9(W,J-3,2)}else if(J<=10)U7(W,YD,W.bl_tree),g9(W,J-3,3);else U7(W,ZD,W.bl_tree),g9(W,J-11,7);if(J=0,Z=V,Q===0)U=138,N=3;else if(V===Q)U=6,N=3;else U=7,N=4}},jy=(W)=>{let G;KC(W,W.dyn_ltree,W.l_desc.max_code),KC(W,W.dyn_dtree,W.d_desc.max_code),FA(W,W.bl_desc);for(G=hA-1;G>=3;G--)if(W.bl_tree[VD[G]*2+1]!==0)break;return W.opt_len+=3*(G+1)+5+5+4,G},Oy=(W,G,X,Y)=>{let Z;g9(W,G-257,5),g9(W,X-1,5),g9(W,Y-4,4);for(Z=0;Z<Y;Z++)g9(W,W.bl_tree[VD[Z]*2+1],3);CC(W,W.dyn_ltree,G-1),CC(W,W.dyn_dtree,X-1)},Ky=(W)=>{let G=4093624447,X;for(X=0;X<=31;X++,G>>>=1)if(G&1&&W.dyn_ltree[X*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(X=32;X<BZ;X++)if(W.dyn_ltree[X*2]!==0)return 1;return 0},DC=!1,Cy=(W)=>{if(!DC)wy(),DC=!0;W.l_desc=new jA(W.dyn_ltree,QD),W.d_desc=new jA(W.dyn_dtree,JD),W.bl_desc=new jA(W.bl_tree,UD),W.bi_buf=0,W.bi_valid=0,AD(W)},ID=(W,G,X,Y)=>{if(g9(W,(Qy<<1)+(Y?1:0),3),zD(W),MZ(W,X),MZ(W,~X),X)W.pending_buf.set(W.window.subarray(G,G+X),W.pending);W.pending+=X},Dy=(W)=>{g9(W,WD<<1,3),U7(W,bA,a7),zy(W)},My=(W,G,X,Y)=>{let Z,V,Q=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=Ky(W);if(FA(W,W.l_desc),FA(W,W.d_desc),Q=jy(W),Z=W.opt_len+3+7>>>3,V=W.static_len+3+7>>>3,V<=Z)Z=V}else Z=V=X+5;if(X+4<=Z&&G!==-1)ID(W,G,X,Y);else if(W.strategy===4||V===Z)g9(W,(WD<<1)+(Y?1:0),3),OC(W,a7,wZ);else g9(W,(Jy<<1)+(Y?1:0),3),Oy(W,W.l_desc.max_code+1,W.d_desc.max_code+1,Q+1),OC(W,W.dyn_ltree,W.dyn_dtree);if(AD(W),Y)zD(W)},Ty=(W,G,X)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=G,W.pending_buf[W.sym_buf+W.sym_next++]=G>>8,W.pending_buf[W.sym_buf+W.sym_next++]=X,G===0)W.dyn_ltree[X*2]++;else W.matches++,G--,W.dyn_ltree[(DZ[X]+BZ+1)*2]++,W.dyn_dtree[ND(G)*2]++;return W.sym_next===W.sym_end},Py=Cy,Ry=ID,Ly=My,By=Ty,Ey=Dy,$y={_tr_init:Py,_tr_stored_block:Ry,_tr_flush_block:Ly,_tr_tally:By,_tr_align:Ey},Fy=(W,G,X,Y)=>{let Z=W&65535|0,V=W>>>16&65535|0,Q=0;while(X!==0){Q=X>2000?2000:X,X-=Q;do Z=Z+G[Y++]|0,V=V+Z|0;while(--Q);Z%=65521,V%=65521}return Z|V<<16|0},TZ=Fy,Sy=()=>{let W,G=[];for(var X=0;X<256;X++){W=X;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;G[X]=W}return G},xy=new Uint32Array(Sy()),ky=(W,G,X,Y)=>{let Z=xy,V=Y+X;W^=-1;for(let Q=Y;Q<V;Q++)W=W>>>8^Z[(W^G[Q])&255];return W^-1},o8=ky,jW={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},CW={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:_y,_tr_stored_block:SA,_tr_flush_block:yy,_tr_tally:Q6,_tr_align:vy}=$y,{Z_NO_FLUSH:J6,Z_PARTIAL_FLUSH:gy,Z_FULL_FLUSH:uy,Z_FINISH:A5,Z_BLOCK:MC,Z_OK:s8,Z_STREAM_END:TC,Z_STREAM_ERROR:N7,Z_DATA_ERROR:hy,Z_BUF_ERROR:KA,Z_DEFAULT_COMPRESSION:by,Z_FILTERED:my,Z_HUFFMAN_ONLY:bJ,Z_RLE:fy,Z_FIXED:cy,Z_DEFAULT_STRATEGY:py,Z_UNKNOWN:ly,Z_DEFLATED:iJ}=CW,dy=9,oy=15,ny=8,iy=29,ry=256,xA=ry+1+iy,ay=30,sy=19,ty=2*xA+1,ey=15,g1=3,V6=258,q7=V6+g1+1,Wv=32,rG=42,fA=57,kA=69,_A=73,yA=91,vA=103,IW=113,zZ=666,F9=1,tG=2,OW=3,eG=4,Gv=3,wW=(W,G)=>{return W.msg=jW[G],G},PC=(W)=>{return W*2-(W>4?9:0)},Z6=(W)=>{let G=W.length;while(--G>=0)W[G]=0},Xv=(W)=>{let G,X,Y,Z=W.w_size;G=W.hash_size,Y=G;do X=W.head[--Y],W.head[Y]=X>=Z?X-Z:0;while(--G);G=Z,Y=G;do X=W.prev[--Y],W.prev[Y]=X>=Z?X-Z:0;while(--G)},Yv=(W,G,X)=>(G<<W.hash_shift^X)&W.hash_mask,U6=Yv,s9=(W)=>{let G=W.state,X=G.pending;if(X>W.avail_out)X=W.avail_out;if(X===0)return;if(W.output.set(G.pending_buf.subarray(G.pending_out,G.pending_out+X),W.next_out),W.next_out+=X,G.pending_out+=X,W.total_out+=X,W.avail_out-=X,G.pending-=X,G.pending===0)G.pending_out=0},t9=(W,G)=>{yy(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,G),W.block_start=W.strstart,s9(W.strm)},i1=(W,G)=>{W.pending_buf[W.pending++]=G},AZ=(W,G)=>{W.pending_buf[W.pending++]=G>>>8&255,W.pending_buf[W.pending++]=G&255},gA=(W,G,X,Y)=>{let Z=W.avail_in;if(Z>Y)Z=Y;if(Z===0)return 0;if(W.avail_in-=Z,G.set(W.input.subarray(W.next_in,W.next_in+Z),X),W.state.wrap===1)W.adler=TZ(W.adler,G,Z,X);else if(W.state.wrap===2)W.adler=o8(W.adler,G,Z,X);return W.next_in+=Z,W.total_in+=Z,Z},wD=(W,G)=>{let{max_chain_length:X,strstart:Y}=W,Z,V,Q=W.prev_length,J=W.nice_match,U=W.strstart>W.w_size-q7?W.strstart-(W.w_size-q7):0,N=W.window,q=W.w_mask,A=W.prev,H=W.strstart+V6,I=N[Y+Q-1],w=N[Y+Q];if(W.prev_length>=W.good_match)X>>=2;if(J>W.lookahead)J=W.lookahead;do{if(Z=G,N[Z+Q]!==w||N[Z+Q-1]!==I||N[Z]!==N[Y]||N[++Z]!==N[Y+1])continue;Y+=2,Z++;do;while(N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&N[++Y]===N[++Z]&&Y<H);if(V=V6-(H-Y),Y=H-V6,V>Q){if(W.match_start=G,Q=V,V>=J)break;I=N[Y+Q-1],w=N[Y+Q]}}while((G=A[G&q])>U&&--X!==0);if(Q<=W.lookahead)return Q;return W.lookahead},aG=(W)=>{let G=W.w_size,X,Y,Z;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=G+(G-q7)){if(W.window.set(W.window.subarray(G,G+G-Y),0),W.match_start-=G,W.strstart-=G,W.block_start-=G,W.insert>W.strstart)W.insert=W.strstart;Xv(W),Y+=G}if(W.strm.avail_in===0)break;if(X=gA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=X,W.lookahead+W.insert>=g1){Z=W.strstart-W.insert,W.ins_h=W.window[Z],W.ins_h=U6(W,W.ins_h,W.window[Z+1]);while(W.insert)if(W.ins_h=U6(W,W.ins_h,W.window[Z+g1-1]),W.prev[Z&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=Z,Z++,W.insert--,W.lookahead+W.insert<g1)break}}while(W.lookahead<q7&&W.strm.avail_in!==0)},jD=(W,G)=>{let X=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,Y,Z,V,Q=0,J=W.strm.avail_in;do{if(Y=65535,V=W.bi_valid+42>>3,W.strm.avail_out<V)break;if(V=W.strm.avail_out-V,Z=W.strstart-W.block_start,Y>Z+W.strm.avail_in)Y=Z+W.strm.avail_in;if(Y>V)Y=V;if(Y<X&&(Y===0&&G!==A5||G===J6||Y!==Z+W.strm.avail_in))break;if(Q=G===A5&&Y===Z+W.strm.avail_in?1:0,SA(W,0,0,Q),W.pending_buf[W.pending-4]=Y,W.pending_buf[W.pending-3]=Y>>8,W.pending_buf[W.pending-2]=~Y,W.pending_buf[W.pending-1]=~Y>>8,s9(W.strm),Z){if(Z>Y)Z=Y;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+Z),W.strm.next_out),W.strm.next_out+=Z,W.strm.avail_out-=Z,W.strm.total_out+=Z,W.block_start+=Z,Y-=Z}if(Y)gA(W.strm,W.strm.output,W.strm.next_out,Y),W.strm.next_out+=Y,W.strm.avail_out-=Y,W.strm.total_out+=Y}while(Q===0);if(J-=W.strm.avail_in,J){if(J>=W.w_size)W.matches=2,W.window.set(W.strm.input.subarray(W.strm.next_in-W.w_size,W.strm.next_in),0),W.strstart=W.w_size,W.insert=W.strstart;else{if(W.window_size-W.strstart<=J){if(W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(W.insert>W.strstart)W.insert=W.strstart}W.window.set(W.strm.input.subarray(W.strm.next_in-J,W.strm.next_in),W.strstart),W.strstart+=J,W.insert+=J>W.w_size-W.insert?W.w_size-W.insert:J}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(Q)return eG;if(G!==J6&&G!==A5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tG;if(V=W.window_size-W.strstart,W.strm.avail_in>V&&W.block_start>=W.w_size){if(W.block_start-=W.w_size,W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(V+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(V>W.strm.avail_in)V=W.strm.avail_in;if(V)gA(W.strm,W.window,W.strstart,V),W.strstart+=V,W.insert+=V>W.w_size-W.insert?W.w_size-W.insert:V;if(W.high_water<W.strstart)W.high_water=W.strstart;if(V=W.bi_valid+42>>3,V=W.pending_buf_size-V>65535?65535:W.pending_buf_size-V,X=V>W.w_size?W.w_size:V,Z=W.strstart-W.block_start,Z>=X||(Z||G===A5)&&G!==J6&&W.strm.avail_in===0&&Z<=V)Y=Z>V?V:Z,Q=G===A5&&W.strm.avail_in===0&&Y===Z?1:0,SA(W,W.block_start,Y,Q),W.block_start+=Y,s9(W.strm);return Q?OW:F9},CA=(W,G)=>{let X,Y;for(;;){if(W.lookahead<q7){if(aG(W),W.lookahead<q7&&G===J6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=g1)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(X!==0&&W.strstart-X<=W.w_size-q7)W.match_length=wD(W,X);if(W.match_length>=g1)if(Y=Q6(W,W.strstart-W.match_start,W.match_length-g1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=g1){W.match_length--;do W.strstart++,W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=U6(W,W.ins_h,W.window[W.strstart+1]);else Y=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=W.strstart<g1-1?W.strstart:g1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},oG=(W,G)=>{let X,Y,Z;for(;;){if(W.lookahead<q7){if(aG(W),W.lookahead<q7&&G===J6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=g1)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=g1-1,X!==0&&W.prev_length<W.max_lazy_match&&W.strstart-X<=W.w_size-q7){if(W.match_length=wD(W,X),W.match_length<=5&&(W.strategy===my||W.match_length===g1&&W.strstart-W.match_start>4096))W.match_length=g1-1}if(W.prev_length>=g1&&W.match_length<=W.prev_length){Z=W.strstart+W.lookahead-g1,Y=Q6(W,W.strstart-1-W.prev_match,W.prev_length-g1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=Z)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=g1-1,W.strstart++,Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}else if(W.match_available){if(Y=Q6(W,0,W.window[W.strstart-1]),Y)t9(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return F9}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)Y=Q6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<g1-1?W.strstart:g1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Zv=(W,G)=>{let X,Y,Z,V,Q=W.window;for(;;){if(W.lookahead<=V6){if(aG(W),W.lookahead<=V6&&G===J6)return F9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=g1&&W.strstart>0){if(Z=W.strstart-1,Y=Q[Z],Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]){V=W.strstart+V6;do;while(Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Z<V);if(W.match_length=V6-(V-Z),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=g1)X=Q6(W,1,W.match_length-g1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else X=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Vv=(W,G)=>{let X;for(;;){if(W.lookahead===0){if(aG(W),W.lookahead===0){if(G===J6)return F9;break}}if(W.match_length=0,X=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG};function J7(W,G,X,Y,Z){this.good_length=W,this.max_lazy=G,this.nice_length=X,this.max_chain=Y,this.func=Z}var IZ=[new J7(0,0,0,0,jD),new J7(4,4,8,4,CA),new J7(4,5,16,8,CA),new J7(4,6,32,32,CA),new J7(4,4,16,16,oG),new J7(8,16,32,32,oG),new J7(8,16,128,128,oG),new J7(8,32,128,256,oG),new J7(32,128,258,1024,oG),new J7(32,258,258,4096,oG)],Qv=(W)=>{W.window_size=2*W.w_size,Z6(W.head),W.max_lazy_match=IZ[W.level].max_lazy,W.good_match=IZ[W.level].good_length,W.nice_match=IZ[W.level].nice_length,W.max_chain_length=IZ[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=g1-1,W.match_available=0,W.ins_h=0};function Jv(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=iJ,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(ty*2),this.dyn_dtree=new Uint16Array((2*ay+1)*2),this.bl_tree=new Uint16Array((2*sy+1)*2),Z6(this.dyn_ltree),Z6(this.dyn_dtree),Z6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ey+1),this.heap=new Uint16Array(2*xA+1),Z6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*xA+1),Z6(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var EZ=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.status!==rG&&G.status!==fA&&G.status!==kA&&G.status!==_A&&G.status!==yA&&G.status!==vA&&G.status!==IW&&G.status!==zZ)return 1;return 0},OD=(W)=>{if(EZ(W))return wW(W,N7);W.total_in=W.total_out=0,W.data_type=ly;let G=W.state;if(G.pending=0,G.pending_out=0,G.wrap<0)G.wrap=-G.wrap;return G.status=G.wrap===2?fA:G.wrap?rG:IW,W.adler=G.wrap===2?0:1,G.last_flush=-2,_y(G),s8},KD=(W)=>{let G=OD(W);if(G===s8)Qv(W.state);return G},Uv=(W,G)=>{if(EZ(W)||W.state.wrap!==2)return N7;return W.state.gzhead=G,s8},CD=(W,G,X,Y,Z,V)=>{if(!W)return N7;let Q=1;if(G===by)G=6;if(Y<0)Q=0,Y=-Y;else if(Y>15)Q=2,Y-=16;if(Z<1||Z>dy||X!==iJ||Y<8||Y>15||G<0||G>9||V<0||V>cy||Y===8&&Q!==1)return wW(W,N7);if(Y===8)Y=9;let J=new Jv;return W.state=J,J.strm=W,J.status=rG,J.wrap=Q,J.gzhead=null,J.w_bits=Y,J.w_size=1<<J.w_bits,J.w_mask=J.w_size-1,J.hash_bits=Z+7,J.hash_size=1<<J.hash_bits,J.hash_mask=J.hash_size-1,J.hash_shift=~~((J.hash_bits+g1-1)/g1),J.window=new Uint8Array(J.w_size*2),J.head=new Uint16Array(J.hash_size),J.prev=new Uint16Array(J.w_size),J.lit_bufsize=1<<Z+6,J.pending_buf_size=J.lit_bufsize*4,J.pending_buf=new Uint8Array(J.pending_buf_size),J.sym_buf=J.lit_bufsize,J.sym_end=(J.lit_bufsize-1)*3,J.level=G,J.strategy=V,J.method=X,KD(W)},Nv=(W,G)=>{return CD(W,G,iJ,oy,ny,py)},qv=(W,G)=>{if(EZ(W)||G>MC||G<0)return W?wW(W,N7):N7;let X=W.state;if(!W.output||W.avail_in!==0&&!W.input||X.status===zZ&&G!==A5)return wW(W,W.avail_out===0?KA:N7);let Y=X.last_flush;if(X.last_flush=G,X.pending!==0){if(s9(W),W.avail_out===0)return X.last_flush=-1,s8}else if(W.avail_in===0&&PC(G)<=PC(Y)&&G!==A5)return wW(W,KA);if(X.status===zZ&&W.avail_in!==0)return wW(W,KA);if(X.status===rG&&X.wrap===0)X.status=IW;if(X.status===rG){let Z=iJ+(X.w_bits-8<<4)<<8,V=-1;if(X.strategy>=bJ||X.level<2)V=0;else if(X.level<6)V=1;else if(X.level===6)V=2;else V=3;if(Z|=V<<6,X.strstart!==0)Z|=Wv;if(Z+=31-Z%31,AZ(X,Z),X.strstart!==0)AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(W.adler=1,X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}if(X.status===fA)if(W.adler=0,i1(X,31),i1(X,139),i1(X,8),!X.gzhead){if(i1(X,0),i1(X,0),i1(X,0),i1(X,0),i1(X,0),i1(X,X.level===9?2:X.strategy>=bJ||X.level<2?4:0),i1(X,Gv),X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}else{if(i1(X,(X.gzhead.text?1:0)+(X.gzhead.hcrc?2:0)+(!X.gzhead.extra?0:4)+(!X.gzhead.name?0:8)+(!X.gzhead.comment?0:16)),i1(X,X.gzhead.time&255),i1(X,X.gzhead.time>>8&255),i1(X,X.gzhead.time>>16&255),i1(X,X.gzhead.time>>24&255),i1(X,X.level===9?2:X.strategy>=bJ||X.level<2?4:0),i1(X,X.gzhead.os&255),X.gzhead.extra&&X.gzhead.extra.length)i1(X,X.gzhead.extra.length&255),i1(X,X.gzhead.extra.length>>8&255);if(X.gzhead.hcrc)W.adler=o8(W.adler,X.pending_buf,X.pending,0);X.gzindex=0,X.status=kA}if(X.status===kA){if(X.gzhead.extra){let Z=X.pending,V=(X.gzhead.extra.length&65535)-X.gzindex;while(X.pending+V>X.pending_buf_size){let J=X.pending_buf_size-X.pending;if(X.pending_buf.set(X.gzhead.extra.subarray(X.gzindex,X.gzindex+J),X.pending),X.pending=X.pending_buf_size,X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(X.gzindex+=J,s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0,V-=J}let Q=new Uint8Array(X.gzhead.extra);if(X.pending_buf.set(Q.subarray(X.gzindex,X.gzindex+V),X.pending),X.pending+=V,X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=_A}if(X.status===_A){if(X.gzhead.name){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0}if(X.gzindex<X.gzhead.name.length)V=X.gzhead.name.charCodeAt(X.gzindex++)&255;else V=0;i1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=yA}if(X.status===yA){if(X.gzhead.comment){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0}if(X.gzindex<X.gzhead.comment.length)V=X.gzhead.comment.charCodeAt(X.gzindex++)&255;else V=0;i1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z)}X.status=vA}if(X.status===vA){if(X.gzhead.hcrc){if(X.pending+2>X.pending_buf_size){if(s9(W),X.pending!==0)return X.last_flush=-1,s8}i1(X,W.adler&255),i1(X,W.adler>>8&255),W.adler=0}if(X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}if(W.avail_in!==0||X.lookahead!==0||G!==J6&&X.status!==zZ){let Z=X.level===0?jD(X,G):X.strategy===bJ?Vv(X,G):X.strategy===fy?Zv(X,G):IZ[X.level].func(X,G);if(Z===OW||Z===eG)X.status=zZ;if(Z===F9||Z===OW){if(W.avail_out===0)X.last_flush=-1;return s8}if(Z===tG){if(G===gy)vy(X);else if(G!==MC){if(SA(X,0,0,!1),G===uy){if(Z6(X.head),X.lookahead===0)X.strstart=0,X.block_start=0,X.insert=0}}if(s9(W),W.avail_out===0)return X.last_flush=-1,s8}}if(G!==A5)return s8;if(X.wrap<=0)return TC;if(X.wrap===2)i1(X,W.adler&255),i1(X,W.adler>>8&255),i1(X,W.adler>>16&255),i1(X,W.adler>>24&255),i1(X,W.total_in&255),i1(X,W.total_in>>8&255),i1(X,W.total_in>>16&255),i1(X,W.total_in>>24&255);else AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(s9(W),X.wrap>0)X.wrap=-X.wrap;return X.pending!==0?s8:TC},Hv=(W)=>{if(EZ(W))return N7;let G=W.state.status;return W.state=null,G===IW?wW(W,hy):s8},Av=(W,G)=>{let X=G.length;if(EZ(W))return N7;let Y=W.state,Z=Y.wrap;if(Z===2||Z===1&&Y.status!==rG||Y.lookahead)return N7;if(Z===1)W.adler=TZ(W.adler,G,X,0);if(Y.wrap=0,X>=Y.w_size){if(Z===0)Z6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let U=new Uint8Array(Y.w_size);U.set(G.subarray(X-Y.w_size,X),0),G=U,X=Y.w_size}let{avail_in:V,next_in:Q,input:J}=W;W.avail_in=X,W.next_in=0,W.input=G,aG(Y);while(Y.lookahead>=g1){let U=Y.strstart,N=Y.lookahead-(g1-1);do Y.ins_h=U6(Y,Y.ins_h,Y.window[U+g1-1]),Y.prev[U&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=U,U++;while(--N);Y.strstart=U,Y.lookahead=g1-1,aG(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=g1-1,Y.match_available=0,W.next_in=Q,W.input=J,W.avail_in=V,Y.wrap=Z,s8},zv=Nv,Iv=CD,wv=KD,jv=OD,Ov=Uv,Kv=qv,Cv=Hv,Dv=Av,Mv="pako deflate (from Nodeca project)",jZ={deflateInit:zv,deflateInit2:Iv,deflateReset:wv,deflateResetKeep:jv,deflateSetHeader:Ov,deflate:Kv,deflateEnd:Cv,deflateSetDictionary:Dv,deflateInfo:Mv},Tv=(W,G)=>{return Object.prototype.hasOwnProperty.call(W,G)},Pv=function(W){let G=Array.prototype.slice.call(arguments,1);while(G.length){let X=G.shift();if(!X)continue;if(typeof X!=="object")throw TypeError(X+"must be non-object");for(let Y in X)if(Tv(X,Y))W[Y]=X[Y]}return W},Rv=(W)=>{let G=0;for(let Y=0,Z=W.length;Y<Z;Y++)G+=W[Y].length;let X=new Uint8Array(G);for(let Y=0,Z=0,V=W.length;Y<V;Y++){let Q=W[Y];X.set(Q,Z),Z+=Q.length}return X},rJ={assign:Pv,flattenChunks:Rv},DD=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){DD=!1}var PZ=new Uint8Array(256);for(let W=0;W<256;W++)PZ[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;PZ[254]=PZ[254]=1;var Lv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let G,X,Y,Z,V,Q=W.length,J=0;for(Z=0;Z<Q;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}J+=X<128?1:X<2048?2:X<65536?3:4}G=new Uint8Array(J);for(V=0,Z=0;V<J;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}if(X<128)G[V++]=X;else if(X<2048)G[V++]=192|X>>>6,G[V++]=128|X&63;else if(X<65536)G[V++]=224|X>>>12,G[V++]=128|X>>>6&63,G[V++]=128|X&63;else G[V++]=240|X>>>18,G[V++]=128|X>>>12&63,G[V++]=128|X>>>6&63,G[V++]=128|X&63}return G},Bv=(W,G)=>{if(G<65534){if(W.subarray&&DD)return String.fromCharCode.apply(null,W.length===G?W:W.subarray(0,G))}let X="";for(let Y=0;Y<G;Y++)X+=String.fromCharCode(W[Y]);return X},Ev=(W,G)=>{let X=G||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,G));let Y,Z,V=Array(X*2);for(Z=0,Y=0;Y<X;){let Q=W[Y++];if(Q<128){V[Z++]=Q;continue}let J=PZ[Q];if(J>4){V[Z++]=65533,Y+=J-1;continue}Q&=J===2?31:J===3?15:7;while(J>1&&Y<X)Q=Q<<6|W[Y++]&63,J--;if(J>1){V[Z++]=65533;continue}if(Q<65536)V[Z++]=Q;else Q-=65536,V[Z++]=55296|Q>>10&1023,V[Z++]=56320|Q&1023}return Bv(V,Z)},$v=(W,G)=>{if(G=G||W.length,G>W.length)G=W.length;let X=G-1;while(X>=0&&(W[X]&192)===128)X--;if(X<0)return G;if(X===0)return G;return X+PZ[W[X]]>G?X:G},RZ={string2buf:Lv,buf2string:Ev,utf8border:$v};function Fv(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var MD=Fv,TD=Object.prototype.toString,{Z_NO_FLUSH:Sv,Z_SYNC_FLUSH:xv,Z_FULL_FLUSH:kv,Z_FINISH:_v,Z_OK:oJ,Z_STREAM_END:yv,Z_DEFAULT_COMPRESSION:vv,Z_DEFAULT_STRATEGY:gv,Z_DEFLATED:uv}=CW;function $Z(W){this.options=rJ.assign({level:vv,method:uv,chunkSize:16384,windowBits:15,memLevel:8,strategy:gv},W||{});let G=this.options;if(G.raw&&G.windowBits>0)G.windowBits=-G.windowBits;else if(G.gzip&&G.windowBits>0&&G.windowBits<16)G.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=jZ.deflateInit2(this.strm,G.level,G.method,G.windowBits,G.memLevel,G.strategy);if(X!==oJ)throw Error(jW[X]);if(G.header)jZ.deflateSetHeader(this.strm,G.header);if(G.dictionary){let Y;if(typeof G.dictionary==="string")Y=RZ.string2buf(G.dictionary);else if(TD.call(G.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(G.dictionary);else Y=G.dictionary;if(X=jZ.deflateSetDictionary(this.strm,Y),X!==oJ)throw Error(jW[X]);this._dict_set=!0}}$Z.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z,V;if(this.ended)return!1;if(G===~~G)V=G;else V=G===!0?_v:Sv;if(typeof W==="string")X.input=RZ.string2buf(W);else if(TD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if((V===xv||V===kv)&&X.avail_out<=6){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(Z=jZ.deflate(X,V),Z===yv){if(X.next_out>0)this.onData(X.output.subarray(0,X.next_out));return Z=jZ.deflateEnd(this.strm),this.onEnd(Z),this.ended=!0,Z===oJ}if(X.avail_out===0){this.onData(X.output);continue}if(V>0&&X.next_out>0){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(X.avail_in===0)break}return!0};$Z.prototype.onData=function(W){this.chunks.push(W)};$Z.prototype.onEnd=function(W){if(W===oJ)this.result=rJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function cA(W,G){let X=new $Z(G);if(X.push(W,!0),X.err)throw X.msg||jW[X.err];return X.result}function hv(W,G){return G=G||{},G.raw=!0,cA(W,G)}function bv(W,G){return G=G||{},G.gzip=!0,cA(W,G)}var mv=$Z,fv=cA,cv=hv,pv=bv,lv=CW,dv={Deflate:mv,deflate:fv,deflateRaw:cv,gzip:pv,constants:lv},mJ=16209,ov=16191,nv=function(G,X){let Y,Z,V,Q,J,U,N,q,A,H,I,w,C,D,x,h,p,u,n,c,l,W0,m,Y0,U0=G.state;Y=G.next_in,m=G.input,Z=Y+(G.avail_in-5),V=G.next_out,Y0=G.output,Q=V-(X-G.avail_out),J=V+(G.avail_out-257),U=U0.dmax,N=U0.wsize,q=U0.whave,A=U0.wnext,H=U0.window,I=U0.hold,w=U0.bits,C=U0.lencode,D=U0.distcode,x=(1<<U0.lenbits)-1,h=(1<<U0.distbits)-1;W:do{if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;p=C[I&x];G:for(;;){if(u=p>>>24,I>>>=u,w-=u,u=p>>>16&255,u===0)Y0[V++]=p&65535;else if(u&16){if(n=p&65535,u&=15,u){if(w<u)I+=m[Y++]<<w,w+=8;n+=I&(1<<u)-1,I>>>=u,w-=u}if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;p=D[I&h];X:for(;;){if(u=p>>>24,I>>>=u,w-=u,u=p>>>16&255,u&16){if(c=p&65535,u&=15,w<u){if(I+=m[Y++]<<w,w+=8,w<u)I+=m[Y++]<<w,w+=8}if(c+=I&(1<<u)-1,c>U){G.msg="invalid distance too far back",U0.mode=mJ;break W}if(I>>>=u,w-=u,u=V-Q,c>u){if(u=c-u,u>q){if(U0.sane){G.msg="invalid distance too far back",U0.mode=mJ;break W}}if(l=0,W0=H,A===0){if(l+=N-u,u<n){n-=u;do Y0[V++]=H[l++];while(--u);l=V-c,W0=Y0}}else if(A<u){if(l+=N+A-u,u-=A,u<n){n-=u;do Y0[V++]=H[l++];while(--u);if(l=0,A<n){u=A,n-=u;do Y0[V++]=H[l++];while(--u);l=V-c,W0=Y0}}}else if(l+=A-u,u<n){n-=u;do Y0[V++]=H[l++];while(--u);l=V-c,W0=Y0}while(n>2)Y0[V++]=W0[l++],Y0[V++]=W0[l++],Y0[V++]=W0[l++],n-=3;if(n){if(Y0[V++]=W0[l++],n>1)Y0[V++]=W0[l++]}}else{l=V-c;do Y0[V++]=Y0[l++],Y0[V++]=Y0[l++],Y0[V++]=Y0[l++],n-=3;while(n>2);if(n){if(Y0[V++]=Y0[l++],n>1)Y0[V++]=Y0[l++]}}}else if((u&64)===0){p=D[(p&65535)+(I&(1<<u)-1)];continue X}else{G.msg="invalid distance code",U0.mode=mJ;break W}break}}else if((u&64)===0){p=C[(p&65535)+(I&(1<<u)-1)];continue G}else if(u&32){U0.mode=ov;break W}else{G.msg="invalid literal/length code",U0.mode=mJ;break W}break}}while(Y<Z&&V<J);n=w>>3,Y-=n,w-=n<<3,I&=(1<<w)-1,G.next_in=Y,G.next_out=V,G.avail_in=Y<Z?5+(Z-Y):5-(Y-Z),G.avail_out=V<J?257+(J-V):257-(V-J),U0.hold=I,U0.bits=w;return},nG=15,RC=852,LC=592,BC=0,DA=1,EC=2,iv=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),rv=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),av=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),sv=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),tv=(W,G,X,Y,Z,V,Q,J)=>{let U=J.bits,N=0,q=0,A=0,H=0,I=0,w=0,C=0,D=0,x=0,h=0,p,u,n,c,l,W0=null,m,Y0=new Uint16Array(nG+1),U0=new Uint16Array(nG+1),y=null,o,B,R;for(N=0;N<=nG;N++)Y0[N]=0;for(q=0;q<Y;q++)Y0[G[X+q]]++;I=U;for(H=nG;H>=1;H--)if(Y0[H]!==0)break;if(I>H)I=H;if(H===0)return Z[V++]=20971520,Z[V++]=20971520,J.bits=1,0;for(A=1;A<H;A++)if(Y0[A]!==0)break;if(I<A)I=A;D=1;for(N=1;N<=nG;N++)if(D<<=1,D-=Y0[N],D<0)return-1;if(D>0&&(W===BC||H!==1))return-1;U0[1]=0;for(N=1;N<nG;N++)U0[N+1]=U0[N]+Y0[N];for(q=0;q<Y;q++)if(G[X+q]!==0)Q[U0[G[X+q]]++]=q;if(W===BC)W0=y=Q,m=20;else if(W===DA)W0=iv,y=rv,m=257;else W0=av,y=sv,m=0;if(h=0,q=0,N=A,l=V,w=I,C=0,n=-1,x=1<<I,c=x-1,W===DA&&x>RC||W===EC&&x>LC)return 1;for(;;){if(o=N-C,Q[q]+1<m)B=0,R=Q[q];else if(Q[q]>=m)B=y[Q[q]-m],R=W0[Q[q]-m];else B=96,R=0;p=1<<N-C,u=1<<w,A=u;do u-=p,Z[l+(h>>C)+u]=o<<24|B<<16|R|0;while(u!==0);p=1<<N-1;while(h&p)p>>=1;if(p!==0)h&=p-1,h+=p;else h=0;if(q++,--Y0[N]===0){if(N===H)break;N=G[X+Q[q]]}if(N>I&&(h&c)!==n){if(C===0)C=I;l+=A,w=N-C,D=1<<w;while(w+C<H){if(D-=Y0[w+C],D<=0)break;w++,D<<=1}if(x+=1<<w,W===DA&&x>RC||W===EC&&x>LC)return 1;n=h&c,Z[n]=I<<24|w<<16|l-V|0}}if(h!==0)Z[l+h]=N-C<<24|4194304|0;return J.bits=I,0},OZ=tv,ev=0,PD=1,RD=2,{Z_FINISH:$C,Z_BLOCK:Wg,Z_TREES:fJ,Z_OK:KW,Z_STREAM_END:Gg,Z_NEED_DICT:Xg,Z_STREAM_ERROR:z5,Z_DATA_ERROR:LD,Z_MEM_ERROR:BD,Z_BUF_ERROR:Yg,Z_DEFLATED:FC}=CW,aJ=16180,SC=16181,xC=16182,kC=16183,_C=16184,yC=16185,vC=16186,gC=16187,uC=16188,hC=16189,nJ=16190,r7=16191,MA=16192,bC=16193,TA=16194,mC=16195,fC=16196,cC=16197,pC=16198,cJ=16199,pJ=16200,lC=16201,dC=16202,oC=16203,nC=16204,iC=16205,PA=16206,rC=16207,aC=16208,z8=16209,ED=16210,$D=16211,Zg=852,Vg=592,Qg=15,Jg=Qg,sC=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function Ug(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var DW=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.mode<aJ||G.mode>$D)return 1;return 0},FD=(W)=>{if(DW(W))return z5;let G=W.state;if(W.total_in=W.total_out=G.total=0,W.msg="",G.wrap)W.adler=G.wrap&1;return G.mode=aJ,G.last=0,G.havedict=0,G.flags=-1,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new Int32Array(Zg),G.distcode=G.distdyn=new Int32Array(Vg),G.sane=1,G.back=-1,KW},SD=(W)=>{if(DW(W))return z5;let G=W.state;return G.wsize=0,G.whave=0,G.wnext=0,FD(W)},xD=(W,G)=>{let X;if(DW(W))return z5;let Y=W.state;if(G<0)X=0,G=-G;else if(X=(G>>4)+5,G<48)G&=15;if(G&&(G<8||G>15))return z5;if(Y.window!==null&&Y.wbits!==G)Y.window=null;return Y.wrap=X,Y.wbits=G,SD(W)},kD=(W,G)=>{if(!W)return z5;let X=new Ug;W.state=X,X.strm=W,X.window=null,X.mode=aJ;let Y=xD(W,G);if(Y!==KW)W.state=null;return Y},Ng=(W)=>{return kD(W,Jg)},tC=!0,RA,LA,qg=(W)=>{if(tC){RA=new Int32Array(512),LA=new Int32Array(32);let G=0;while(G<144)W.lens[G++]=8;while(G<256)W.lens[G++]=9;while(G<280)W.lens[G++]=7;while(G<288)W.lens[G++]=8;OZ(PD,W.lens,0,288,RA,0,W.work,{bits:9}),G=0;while(G<32)W.lens[G++]=5;OZ(RD,W.lens,0,32,LA,0,W.work,{bits:5}),tC=!1}W.lencode=RA,W.lenbits=9,W.distcode=LA,W.distbits=5},_D=(W,G,X,Y)=>{let Z,V=W.state;if(V.window===null)V.wsize=1<<V.wbits,V.wnext=0,V.whave=0,V.window=new Uint8Array(V.wsize);if(Y>=V.wsize)V.window.set(G.subarray(X-V.wsize,X),0),V.wnext=0,V.whave=V.wsize;else{if(Z=V.wsize-V.wnext,Z>Y)Z=Y;if(V.window.set(G.subarray(X-Y,X-Y+Z),V.wnext),Y-=Z,Y)V.window.set(G.subarray(X-Y,X),0),V.wnext=Y,V.whave=V.wsize;else{if(V.wnext+=Z,V.wnext===V.wsize)V.wnext=0;if(V.whave<V.wsize)V.whave+=Z}}return 0},Hg=(W,G)=>{let X,Y,Z,V,Q,J,U,N,q,A,H,I,w,C,D=0,x,h,p,u,n,c,l,W0,m=new Uint8Array(4),Y0,U0,y=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(DW(W)||!W.output||!W.input&&W.avail_in!==0)return z5;if(X=W.state,X.mode===r7)X.mode=MA;Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,N=X.hold,q=X.bits,A=J,H=U,W0=KW;W:for(;;)switch(X.mode){case aJ:if(X.wrap===0){X.mode=MA;break}while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.wrap&2&&N===35615){if(X.wbits===0)X.wbits=15;X.check=0,m[0]=N&255,m[1]=N>>>8&255,X.check=o8(X.check,m,2,0),N=0,q=0,X.mode=SC;break}if(X.head)X.head.done=!1;if(!(X.wrap&1)||(((N&255)<<8)+(N>>8))%31){W.msg="incorrect header check",X.mode=z8;break}if((N&15)!==FC){W.msg="unknown compression method",X.mode=z8;break}if(N>>>=4,q-=4,l=(N&15)+8,X.wbits===0)X.wbits=l;if(l>15||l>X.wbits){W.msg="invalid window size",X.mode=z8;break}X.dmax=1<<X.wbits,X.flags=0,W.adler=X.check=1,X.mode=N&512?hC:r7,N=0,q=0;break;case SC:while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.flags=N,(X.flags&255)!==FC){W.msg="unknown compression method",X.mode=z8;break}if(X.flags&57344){W.msg="unknown header flags set",X.mode=z8;break}if(X.head)X.head.text=N>>8&1;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=o8(X.check,m,2,0);N=0,q=0,X.mode=xC;case xC:while(q<32){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.head)X.head.time=N;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,m[2]=N>>>16&255,m[3]=N>>>24&255,X.check=o8(X.check,m,4,0);N=0,q=0,X.mode=kC;case kC:while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.head)X.head.xflags=N&255,X.head.os=N>>8;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=o8(X.check,m,2,0);N=0,q=0,X.mode=_C;case _C:if(X.flags&1024){while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.length=N,X.head)X.head.extra_len=N;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=o8(X.check,m,2,0);N=0,q=0}else if(X.head)X.head.extra=null;X.mode=yC;case yC:if(X.flags&1024){if(I=X.length,I>J)I=J;if(I){if(X.head){if(l=X.head.extra_len-X.length,!X.head.extra)X.head.extra=new Uint8Array(X.head.extra_len);X.head.extra.set(Y.subarray(V,V+I),l)}if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);J-=I,V+=I,X.length-=I}if(X.length)break W}X.length=0,X.mode=vC;case vC:if(X.flags&2048){if(J===0)break W;I=0;do if(l=Y[V+I++],X.head&&l&&X.length<65536)X.head.name+=String.fromCharCode(l);while(l&&I<J);if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);if(J-=I,V+=I,l)break W}else if(X.head)X.head.name=null;X.length=0,X.mode=gC;case gC:if(X.flags&4096){if(J===0)break W;I=0;do if(l=Y[V+I++],X.head&&l&&X.length<65536)X.head.comment+=String.fromCharCode(l);while(l&&I<J);if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);if(J-=I,V+=I,l)break W}else if(X.head)X.head.comment=null;X.mode=uC;case uC:if(X.flags&512){while(q<16){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.wrap&4&&N!==(X.check&65535)){W.msg="header crc mismatch",X.mode=z8;break}N=0,q=0}if(X.head)X.head.hcrc=X.flags>>9&1,X.head.done=!0;W.adler=X.check=0,X.mode=r7;break;case hC:while(q<32){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}W.adler=X.check=sC(N),N=0,q=0,X.mode=nJ;case nJ:if(X.havedict===0)return W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=N,X.bits=q,Xg;W.adler=X.check=1,X.mode=r7;case r7:if(G===Wg||G===fJ)break W;case MA:if(X.last){N>>>=q&7,q-=q&7,X.mode=PA;break}while(q<3){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}switch(X.last=N&1,N>>>=1,q-=1,N&3){case 0:X.mode=bC;break;case 1:if(qg(X),X.mode=cJ,G===fJ){N>>>=2,q-=2;break W}break;case 2:X.mode=fC;break;case 3:W.msg="invalid block type",X.mode=z8}N>>>=2,q-=2;break;case bC:N>>>=q&7,q-=q&7;while(q<32){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if((N&65535)!==(N>>>16^65535)){W.msg="invalid stored block lengths",X.mode=z8;break}if(X.length=N&65535,N=0,q=0,X.mode=TA,G===fJ)break W;case TA:X.mode=mC;case mC:if(I=X.length,I){if(I>J)I=J;if(I>U)I=U;if(I===0)break W;Z.set(Y.subarray(V,V+I),Q),J-=I,V+=I,U-=I,Q+=I,X.length-=I;break}X.mode=r7;break;case fC:while(q<14){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.nlen=(N&31)+257,N>>>=5,q-=5,X.ndist=(N&31)+1,N>>>=5,q-=5,X.ncode=(N&15)+4,N>>>=4,q-=4,X.nlen>286||X.ndist>30){W.msg="too many length or distance symbols",X.mode=z8;break}X.have=0,X.mode=cC;case cC:while(X.have<X.ncode){while(q<3){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}X.lens[y[X.have++]]=N&7,N>>>=3,q-=3}while(X.have<19)X.lens[y[X.have++]]=0;if(X.lencode=X.lendyn,X.lenbits=7,Y0={bits:X.lenbits},W0=OZ(ev,X.lens,0,19,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,W0){W.msg="invalid code lengths set",X.mode=z8;break}X.have=0,X.mode=pC;case pC:while(X.have<X.nlen+X.ndist){for(;;){if(D=X.lencode[N&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(p<16)N>>>=x,q-=x,X.lens[X.have++]=p;else{if(p===16){U0=x+2;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(N>>>=x,q-=x,X.have===0){W.msg="invalid bit length repeat",X.mode=z8;break}l=X.lens[X.have-1],I=3+(N&3),N>>>=2,q-=2}else if(p===17){U0=x+3;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}N>>>=x,q-=x,l=0,I=3+(N&7),N>>>=3,q-=3}else{U0=x+7;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}N>>>=x,q-=x,l=0,I=11+(N&127),N>>>=7,q-=7}if(X.have+I>X.nlen+X.ndist){W.msg="invalid bit length repeat",X.mode=z8;break}while(I--)X.lens[X.have++]=l}}if(X.mode===z8)break;if(X.lens[256]===0){W.msg="invalid code -- missing end-of-block",X.mode=z8;break}if(X.lenbits=9,Y0={bits:X.lenbits},W0=OZ(PD,X.lens,0,X.nlen,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,W0){W.msg="invalid literal/lengths set",X.mode=z8;break}if(X.distbits=6,X.distcode=X.distdyn,Y0={bits:X.distbits},W0=OZ(RD,X.lens,X.nlen,X.ndist,X.distcode,0,X.work,Y0),X.distbits=Y0.bits,W0){W.msg="invalid distances set",X.mode=z8;break}if(X.mode=cJ,G===fJ)break W;case cJ:X.mode=pJ;case pJ:if(J>=6&&U>=258){if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=N,X.bits=q,nv(W,H),Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,N=X.hold,q=X.bits,X.mode===r7)X.back=-1;break}X.back=0;for(;;){if(D=X.lencode[N&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(h&&(h&240)===0){u=x,n=h,c=p;for(;;){if(D=X.lencode[c+((N&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,p=D&65535,u+x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}N>>>=u,q-=u,X.back+=u}if(N>>>=x,q-=x,X.back+=x,X.length=p,h===0){X.mode=iC;break}if(h&32){X.back=-1,X.mode=r7;break}if(h&64){W.msg="invalid literal/length code",X.mode=z8;break}X.extra=h&15,X.mode=lC;case lC:if(X.extra){U0=X.extra;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}X.length+=N&(1<<X.extra)-1,N>>>=X.extra,q-=X.extra,X.back+=X.extra}X.was=X.length,X.mode=dC;case dC:for(;;){if(D=X.distcode[N&(1<<X.distbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if((h&240)===0){u=x,n=h,c=p;for(;;){if(D=X.distcode[c+((N&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,p=D&65535,u+x<=q)break;if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}N>>>=u,q-=u,X.back+=u}if(N>>>=x,q-=x,X.back+=x,h&64){W.msg="invalid distance code",X.mode=z8;break}X.offset=p,X.extra=h&15,X.mode=oC;case oC:if(X.extra){U0=X.extra;while(q<U0){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}X.offset+=N&(1<<X.extra)-1,N>>>=X.extra,q-=X.extra,X.back+=X.extra}if(X.offset>X.dmax){W.msg="invalid distance too far back",X.mode=z8;break}X.mode=nC;case nC:if(U===0)break W;if(I=H-U,X.offset>I){if(I=X.offset-I,I>X.whave){if(X.sane){W.msg="invalid distance too far back",X.mode=z8;break}}if(I>X.wnext)I-=X.wnext,w=X.wsize-I;else w=X.wnext-I;if(I>X.length)I=X.length;C=X.window}else C=Z,w=Q-X.offset,I=X.length;if(I>U)I=U;U-=I,X.length-=I;do Z[Q++]=C[w++];while(--I);if(X.length===0)X.mode=pJ;break;case iC:if(U===0)break W;Z[Q++]=X.length,U--,X.mode=pJ;break;case PA:if(X.wrap){while(q<32){if(J===0)break W;J--,N|=Y[V++]<<q,q+=8}if(H-=U,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?o8(X.check,Z,H,Q-H):TZ(X.check,Z,H,Q-H);if(H=U,X.wrap&4&&(X.flags?N:sC(N))!==X.check){W.msg="incorrect data check",X.mode=z8;break}N=0,q=0}X.mode=rC;case rC:if(X.wrap&&X.flags){while(q<32){if(J===0)break W;J--,N+=Y[V++]<<q,q+=8}if(X.wrap&4&&N!==(X.total&4294967295)){W.msg="incorrect length check",X.mode=z8;break}N=0,q=0}X.mode=aC;case aC:W0=Gg;break W;case z8:W0=LD;break W;case ED:return BD;case $D:default:return z5}if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=N,X.bits=q,X.wsize||H!==W.avail_out&&X.mode<z8&&(X.mode<PA||G!==$C)){if(_D(W,W.output,W.next_out,H-W.avail_out));}if(A-=W.avail_in,H-=W.avail_out,W.total_in+=A,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?o8(X.check,Z,H,W.next_out-H):TZ(X.check,Z,H,W.next_out-H);if(W.data_type=X.bits+(X.last?64:0)+(X.mode===r7?128:0)+(X.mode===cJ||X.mode===TA?256:0),(A===0&&H===0||G===$C)&&W0===KW)W0=Yg;return W0},Ag=(W)=>{if(DW(W))return z5;let G=W.state;if(G.window)G.window=null;return W.state=null,KW},zg=(W,G)=>{if(DW(W))return z5;let X=W.state;if((X.wrap&2)===0)return z5;return X.head=G,G.done=!1,KW},Ig=(W,G)=>{let X=G.length,Y,Z,V;if(DW(W))return z5;if(Y=W.state,Y.wrap!==0&&Y.mode!==nJ)return z5;if(Y.mode===nJ){if(Z=1,Z=TZ(Z,G,X,0),Z!==Y.check)return LD}if(V=_D(W,G,X,X),V)return Y.mode=ED,BD;return Y.havedict=1,KW},wg=SD,jg=xD,Og=FD,Kg=Ng,Cg=kD,Dg=Hg,Mg=Ag,Tg=zg,Pg=Ig,Rg="pako inflate (from Nodeca project)",s7={inflateReset:wg,inflateReset2:jg,inflateResetKeep:Og,inflateInit:Kg,inflateInit2:Cg,inflate:Dg,inflateEnd:Mg,inflateGetHeader:Tg,inflateSetDictionary:Pg,inflateInfo:Rg};function Lg(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Bg=Lg,yD=Object.prototype.toString,{Z_NO_FLUSH:Eg,Z_FINISH:$g,Z_OK:LZ,Z_STREAM_END:BA,Z_NEED_DICT:EA,Z_STREAM_ERROR:Fg,Z_DATA_ERROR:eC,Z_MEM_ERROR:Sg}=CW;function FZ(W){this.options=rJ.assign({chunkSize:65536,windowBits:15,to:""},W||{});let G=this.options;if(G.raw&&G.windowBits>=0&&G.windowBits<16){if(G.windowBits=-G.windowBits,G.windowBits===0)G.windowBits=-15}if(G.windowBits>=0&&G.windowBits<16&&!(W&&W.windowBits))G.windowBits+=32;if(G.windowBits>15&&G.windowBits<48){if((G.windowBits&15)===0)G.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=s7.inflateInit2(this.strm,G.windowBits);if(X!==LZ)throw Error(jW[X]);if(this.header=new Bg,s7.inflateGetHeader(this.strm,this.header),G.dictionary){if(typeof G.dictionary==="string")G.dictionary=RZ.string2buf(G.dictionary);else if(yD.call(G.dictionary)==="[object ArrayBuffer]")G.dictionary=new Uint8Array(G.dictionary);if(G.raw){if(X=s7.inflateSetDictionary(this.strm,G.dictionary),X!==LZ)throw Error(jW[X])}}}FZ.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z=this.options.dictionary,V,Q,J;if(this.ended)return!1;if(G===~~G)Q=G;else Q=G===!0?$g:Eg;if(yD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if(V=s7.inflate(X,Q),V===EA&&Z){if(V=s7.inflateSetDictionary(X,Z),V===LZ)V=s7.inflate(X,Q);else if(V===eC)V=EA}while(X.avail_in>0&&V===BA&&X.state.wrap>0&&W[X.next_in]!==0)s7.inflateReset(X),V=s7.inflate(X,Q);switch(V){case Fg:case eC:case EA:case Sg:return this.onEnd(V),this.ended=!0,!1}if(J=X.avail_out,X.next_out){if(X.avail_out===0||V===BA)if(this.options.to==="string"){let U=RZ.utf8border(X.output,X.next_out),N=X.next_out-U,q=RZ.buf2string(X.output,U);if(X.next_out=N,X.avail_out=Y-N,N)X.output.set(X.output.subarray(U,U+N),0);this.onData(q)}else this.onData(X.output.length===X.next_out?X.output:X.output.subarray(0,X.next_out))}if(V===LZ&&J===0)continue;if(V===BA)return V=s7.inflateEnd(this.strm),this.onEnd(V),this.ended=!0,!0;if(X.avail_in===0)break}return!0};FZ.prototype.onData=function(W){this.chunks.push(W)};FZ.prototype.onEnd=function(W){if(W===LZ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=rJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function pA(W,G){let X=new FZ(G);if(X.push(W),X.err)throw X.msg||jW[X.err];return X.result}function xg(W,G){return G=G||{},G.raw=!0,pA(W,G)}var kg=FZ,_g=pA,yg=xg,vg=pA,gg=CW,ug={Inflate:kg,inflate:_g,inflateRaw:yg,ungzip:vg,constants:gg},{Deflate:hg,deflate:bg,deflateRaw:mg,gzip:fg}=dv,{Inflate:cg,inflate:pg,inflateRaw:lg,ungzip:dg}=ug,og=hg,ng=bg,ig=mg,rg=fg,ag=cg,sg=pg,tg=lg,eg=dg,Wu=CW,N6={Deflate:og,deflate:ng,deflateRaw:ig,gzip:rg,Inflate:ag,inflate:sg,inflateRaw:tg,ungzip:eg,constants:Wu};function vD(){let W=Date.now(),G=0;return{now(){return W=Math.max(W,Date.now()),G++,{physical:W,logical:G}},update(X){if(!X||typeof X.physical!=="number"||typeof X.logical!=="number")return;W=Math.max(W,X.physical),G=Math.max(G,X.logical)+1},compare(X,Y){if(!X&&!Y)return 0;if(!X)return-1;if(!Y)return 1;if(X.physical!==Y.physical)return X.physical>Y.physical?1:-1;if(X.logical!==Y.logical)return X.logical>Y.logical?1:-1;return 0}}}function gD(W,G,X){let Y=G.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(G?.value?.priority===!0&&typeof G.id==="string"&&G.id.startsWith("user:")&&"role"in G.value){let{priority:Z,...V}=G.value;return{resolved:!0,value:V,timestamp:Y}}if(G?.value?.priority!==void 0){let{priority:Z,...V}=G.value;G={...G,value:V}}if(!W?.timestamp)return{resolved:!0,value:G.value,timestamp:Y};if(X.compare(Y,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:G.value,timestamp:Y}}var SZ={$eq:(W,G)=>W===G,$ne:(W,G)=>W!==G,$gt:(W,G)=>W>G,$gte:(W,G)=>W>=G,$lt:(W,G)=>W<G,$lte:(W,G)=>W<=G,$in:(W,G)=>Array.isArray(G)&&(Array.isArray(W)?W.some((X)=>G.includes(X)):G.includes(W)),$between:(W,[G,X])=>W>=G&&W<=X,$exists:(W,G)=>G?W!==void 0:W===void 0,$startsWith:(W,G)=>typeof W==="string"&&W.startsWith(G),$endsWith:(W,G)=>typeof W==="string"&&W.endsWith(G),$contains:(W,G)=>typeof W==="string"&&W.includes(G),$text:{global:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Object.values(W).some((Z)=>typeof Z==="object"?null.fieldSearch(Z,Y):X(Z).includes(Y))},field:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Array.isArray(W)?W.some((Z)=>X(Z).includes(Y)):X(W).includes(Y)}},$like:(W,G)=>typeof W==="string"&&typeof G==="string"&&new RegExp(`^${G.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,G)=>typeof W==="string"&&new RegExp(G.$regex||G,"i").test(W),$and:(W,G,X)=>G.every((Y)=>X.createFilter(Y,X.allNodes)(W)),$or:(W,G,X)=>G.some((Y)=>X.createFilter(Y,X.allNodes)(W)),$not:(W,G,X)=>!X.createFilter(G,X.allNodes)(W),$edge:(W,G,X)=>{if(!W.edges?.length||typeof G!=="object"||G===null)return!1;let Y=X.createFilter(G,X.allNodes),Z=[...W.edges],V=new Set(Z).add(W.id),Q=[];while(Z.length){let J=Z.shift(),U=X.allNodes[J];if(!U)continue;if(Y(U))Q.push(U);U.edges?.forEach((N)=>!V.has(N)&&V.add(N)&&Z.push(N))}if(Q.length)W._edgeResult=Q;return Q.length>0}},sJ=(W,G)=>G.split(".").reduce((X,Y)=>X&&typeof X==="object"&&(Y in X)?X[Y]:void 0,W),tJ=(W,G)=>{if(Object.keys(W).length===0)return()=>!0;return(X)=>Object.entries(W).every(([Y,Z])=>{if(Y.startsWith("$"))return SZ[Y](X,Z,{createFilter:tJ,allNodes:G});let V=sJ(X.value,Y);if(V===void 0)V=sJ(X,Y);if(typeof Z!=="object"||Z===null)return SZ.$eq(V,Z);return Object.entries(Z).every(([Q,J])=>{if(Q==="$text")return SZ.$text.field(V,J);if(Q==="$between"&&J.every((U)=>U instanceof Date))return SZ.$between(new Date(V),J);return SZ[Q]?.(V,J,{createFilter:tJ,allNodes:G})??!1})})},lA=(W,G)=>{let{$edge:X,...Y}=G.query||{},Z=tJ(Y,W),V=Object.values(W).filter(Z),J=[...X?(()=>{let U=tJ({$edge:X},W);V.forEach((q)=>U(q));let N=new Map;return V.forEach((q)=>{if(q._edgeResult)q._edgeResult.forEach((A)=>N.set(A.id,A)),delete q._edgeResult}),Array.from(N.values())})():V];if(G.field){let U=G.order==="asc"?1:-1;J.sort((N,q)=>{let A=sJ(N.value,G.field),H=sJ(q.value,G.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*U;return((A??0)-(H??0))*U})}if(G.$after){let U=J.findIndex((N)=>N.id===G.$after);J=U>=0?J.slice(U+1):[]}if(G.$before){let U=J.findIndex((N)=>N.id===G.$before);J=U>=0?J.slice(0,U):[]}if(G.$limit)J=J.slice(0,G.$limit);return J};var dA=(()=>{let W=()=>{};return new Proxy(console,{get:(G,X)=>globalThis.__gdbDebug?G[X].bind(G):W})})(),WX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function MU(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Xz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function BW(W,...G){if(!MU(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function XM(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Xz(W.outputLen),Xz(W.blockLen)}function qU(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function Gu(W,G){BW(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function HU(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function oA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function H7(W,G){return W<<32-G|W>>>G}var YM=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Xu=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function YX(W){if(BW(W),YM)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Xu[W[X]];return G}var t7={_0:48,_9:57,A:65,F:70,a:97,f:102};function uD(W){if(W>=t7._0&&W<=t7._9)return W-t7._0;if(W>=t7.A&&W<=t7.F)return W-(t7.A-10);if(W>=t7.a&&W<=t7.f)return W-(t7.a-10);return}function AU(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(YM)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=uD(W.charCodeAt(V)),J=uD(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function ZM(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function Hz(W){if(typeof W==="string")W=ZM(W);return BW(W),W}function A7(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];BW(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class Az{}function Yu(W){let G=(Y)=>W().update(Hz(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function TU(W=32){if(WX&&typeof WX.getRandomValues==="function")return WX.getRandomValues(new Uint8Array(W));if(WX&&typeof WX.randomBytes==="function")return Uint8Array.from(WX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Zu(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,N=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+N,J,Y)}function Vu(W,G,X){return W&G^~W&X}function Qu(W,G,X){return W&G^W&X^G&X}class VM extends Az{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=oA(this.buffer)}update(W){qU(this),W=Hz(W),BW(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=oA(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){qU(this),Gu(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,HU(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let q=V;q<Y;q++)G[q]=0;Zu(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=oA(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,N=this.get();if(U>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<U;q++)Q.setUint32(4*q,N[q],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var q6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ju=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),H6=new Uint32Array(64);class QM extends VM{constructor(W=32){super(64,W,8,!1);this.A=q6[0]|0,this.B=q6[1]|0,this.C=q6[2]|0,this.D=q6[3]|0,this.E=q6[4]|0,this.F=q6[5]|0,this.G=q6[6]|0,this.H=q6[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let q=0;q<16;q++,G+=4)H6[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=H6[q-15],H=H6[q-2],I=H7(A,7)^H7(A,18)^A>>>3,w=H7(H,17)^H7(H,19)^H>>>10;H6[q]=w+H6[q-7]+I+H6[q-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:N}=this;for(let q=0;q<64;q++){let A=H7(Q,6)^H7(Q,11)^H7(Q,25),H=N+A+Vu(Q,J,U)+Ju[q]+H6[q]|0,I=(H7(X,2)^H7(X,13)^H7(X,22))+Qu(X,Y,Z)|0;N=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+I|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,N=N+this.H|0,this.set(X,Y,Z,V,Q,J,U,N)}roundClean(){HU(H6)}destroy(){this.set(0,0,0,0,0,0,0,0),HU(this.buffer)}}var Yz=Yu(()=>new QM);class zz extends Az{constructor(W,G){super();this.finished=!1,this.destroyed=!1,XM(W);let X=Hz(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),HU(Z)}update(W){return qU(this),this.iHash.update(W),this}digestInto(W){qU(this),BW(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var JM=(W,G,X)=>new zz(W,G).update(X).digest();JM.create=(W,G)=>new zz(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Iz=BigInt(0),Zz=BigInt(1);function zU(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function MW(W,G,X=""){let Y=MU(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function eJ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function UM(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Iz:BigInt("0x"+W)}function UX(W){return UM(YX(W))}function NM(W){return BW(W),UM(YX(Uint8Array.from(W).reverse()))}function PU(W,G){return AU(W.toString(16).padStart(G*2,"0"))}function qM(W,G){return PU(W,G).reverse()}function h8(W,G,X){let Y;if(typeof G==="string")try{Y=AU(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(MU(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var nA=(W)=>typeof W==="bigint"&&Iz<=W;function Vz(W,G,X){return nA(W)&&nA(G)&&nA(X)&&G<=W&&W<X}function Uu(W,G,X,Y){if(!Vz(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HM(W){let G;for(G=0;W>Iz;W>>=Zz,G+=1);return G}var hZ=(W)=>(Zz<<BigInt(W))-Zz;function Nu(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),Z=(H)=>Uint8Array.of(H),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},N=(...H)=>X(Q,V,...H),q=(H=Y(0))=>{if(Q=N(Z(0),H),V=N(),H.length===0)return;Q=N(Z(1),H),V=N()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let H=0,I=[];while(H<G){V=N();let w=V.slice();I.push(w),H+=V.length}return A7(...I)};return(H,I)=>{U(),q(H);let w=void 0;while(!(w=I(A())))q();return U(),w}}function wz(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function hD(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var S9=BigInt(0),H9=BigInt(1),TW=BigInt(2),AM=BigInt(3),zM=BigInt(4),IM=BigInt(5),qu=BigInt(7),wM=BigInt(8),Hu=BigInt(9),jM=BigInt(16);function w5(W,G){let X=W%G;return X>=S9?X:G+X}function I5(W,G,X){let Y=W;while(G-- >S9)Y*=Y,Y%=X;return Y}function bD(W,G){if(W===S9)throw Error("invert: expected non-zero number");if(G<=S9)throw Error("invert: expected positive modulus, got "+G);let X=w5(W,G),Y=G,Z=S9,V=H9,Q=H9,J=S9;while(X!==S9){let U=Y/X,N=Y%X,q=Z-Q*U,A=V-J*U;Y=X,X=N,Z=Q,V=J,Q=q,J=A}if(Y!==H9)throw Error("invert: does not exist");return w5(Z,G)}function jz(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function OM(W,G){let X=(W.ORDER+H9)/zM,Y=W.pow(G,X);return jz(W,Y,G),Y}function Au(W,G){let X=(W.ORDER-IM)/wM,Y=W.mul(G,TW),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,TW),Z),J=W.mul(V,W.sub(Q,W.ONE));return jz(W,J,G),J}function zu(W){let G=bZ(W),X=KM(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+qu)/jM;return(J,U)=>{let N=J.pow(U,Q),q=J.mul(N,Y),A=J.mul(N,Z),H=J.mul(N,V),I=J.eql(J.sqr(q),U),w=J.eql(J.sqr(A),U);N=J.cmov(N,q,I),q=J.cmov(H,A,w);let C=J.eql(J.sqr(q),U),D=J.cmov(N,q,C);return jz(J,D,U),D}}function KM(W){if(W<AM)throw Error("sqrt is not defined for small field");let G=W-H9,X=0;while(G%TW===S9)G/=TW,X++;let Y=TW,Z=bZ(W);while(mD(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return OM;let V=Z.pow(Y,G),Q=(G+H9)/TW;return function(J,U){if(J.is0(U))return U;if(mD(J,U)!==1)throw Error("Cannot find square root");let N=X,q=J.mul(J.ONE,V),A=J.pow(U,G),H=J.pow(U,Q);while(!J.eql(A,J.ONE)){if(J.is0(A))return J.ZERO;let I=1,w=J.sqr(A);while(!J.eql(w,J.ONE))if(I++,w=J.sqr(w),I===N)throw Error("Cannot find square root");let C=H9<<BigInt(N-I-1),D=J.pow(q,C);N=I,q=J.sqr(D),A=J.mul(A,q),H=J.mul(H,D)}return H}}function Iu(W){if(W%zM===AM)return OM;if(W%wM===IM)return Au;if(W%jM===Hu)return zu(W);return KM(W)}var wu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ju(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=wu.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return wz(W,X),W}function Ou(W,G,X){if(X<S9)throw Error("invalid exponent, negatives unsupported");if(X===S9)return W.ONE;if(X===H9)return G;let Y=W.ONE,Z=G;while(X>S9){if(X&H9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=H9}return Y}function CM(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function mD(W,G){let X=(W.ORDER-H9)/TW,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function DM(W,G){if(G!==void 0)Xz(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function bZ(W,G,X=!1,Y={}){if(W<=S9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:N}=DM(W,Z);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:N,MASK:hZ(U),ZERO:S9,ONE:H9,allowedLengths:J,create:(H)=>w5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return S9<=H&&H<W},is0:(H)=>H===S9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&H9)===H9,neg:(H)=>w5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>w5(H*H,W),add:(H,I)=>w5(H+I,W),sub:(H,I)=>w5(H-I,W),mul:(H,I)=>w5(H*I,W),pow:(H,I)=>Ou(A,H,I),div:(H,I)=>w5(H*bD(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>bD(H,W),sqrt:V||((H)=>{if(!q)q=Iu(W);return q(A,H)}),toBytes:(H)=>X?qM(H,N):PU(H,N),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>N)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(N);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=X?NM(H):UX(H);if(Q)w=w5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>CM(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function MM(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function TM(W){let G=MM(W);return G+Math.ceil(G/2)}function PM(W,G,X=!1){let Y=W.length,Z=MM(G),V=TM(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?NM(W):UX(W),J=w5(Q,G-H9)+H9;return X?qM(J,Z):PU(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt(0),PW=BigInt(1);function IU(W,G){let X=G.negate();return W?X:G}function iA(W,G){let X=CM(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function RM(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function rA(W,G){RM(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=hZ(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function fD(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=PW;let N=G*Y,q=N+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Ku(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Cu(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var aA=new WeakMap,LM=new WeakMap;function sA(W){return LM.get(W)||1}function cD(W){if(W!==QX)throw Error("invalid wNAF")}class BM{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>QX){if(G&PW)X=X.add(Y);Y=Y.double(),G>>=PW}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=rA(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=rA(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:N,isNeg:q,isNegF:A,offsetF:H}=fD(X,Q,V);if(X=J,N)Z=Z.add(IU(A,G[H]));else Y=Y.add(IU(q,G[U]))}return cD(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=rA(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===QX)break;let{nextN:Q,offset:J,isZero:U,isNeg:N}=fD(X,V,Z);if(X=Q,U)continue;else{let q=G[J];Y=Y.add(N?q.negate():q)}}return cD(X),Y}getPrecomputes(W,G,X){let Y=aA.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);aA.set(G,Y)}}return Y}cached(W,G,X){let Y=sA(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=sA(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){RM(G,this.bits),LM.set(W,G),aA.delete(W)}hasCache(W){return sA(W)!==1}}function Du(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>QX||Y>QX){if(X&PW)V=V.add(Z);if(Y&PW)Q=Q.add(Z);Z=Z.double(),X>>=PW,Y>>=PW}return{p1:V,p2:Q}}function Mu(W,G,X,Y){Ku(X,W),Cu(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HM(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let N=hZ(U),q=Array(Number(N)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){q.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&N);q[x]=q[x].add(X[C])}let w=Q;for(let C=q.length-1,D=Q;C>0;C--)D=D.add(q[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function pD(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return ju(G),G}else return bZ(W,{isLE:X})}function Tu(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let J of["p","n","h"]){let U=G[J];if(!(typeof U==="bigint"&&U>QX))throw Error(`CURVE.${J} must be positive bigint`)}let Z=pD(G.p,X.Fp,Y),V=pD(G.n,X.Fn,Y),Q=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let J of Q)if(!Z.isValid(G[J]))throw Error(`CURVE.${J} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var lD=(W,G)=>(W+(W>=0?G:-G)/$M)/G;function Pu(W,G,X){let[[Y,Z],[V,Q]]=G,J=lD(Q*W,X),U=lD(-Z*W,X),N=W-J*Y-U*V,q=-J*Z-U*Q,A=N<G4,H=q<G4;if(A)N=-N;if(H)q=-q;let I=hZ(Math.ceil(HM(X)/2))+ZX;if(N<G4||N>=I||q<G4||q>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}function Qz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function tA(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(zU(X.lowS,"lowS"),zU(X.prehash,"prehash"),X.format!==void 0)Qz(X.format);return X}class EM extends Error{constructor(W=""){super(W)}}var W4={Err:EM,_tlv:{encode:(W,G)=>{let{Err:X}=W4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=eJ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?eJ(Z.length/2|128):"";return eJ(W)+V+Z+G},decode(W,G){let{Err:X}=W4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let N=G.subarray(Y,Y+U);if(N.length!==U)throw new X("tlv.decode: length bytes not complete");if(N[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let q of N)Q=Q<<8|q;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=W4;if(W<G4)throw new G("integer: negative integers are not allowed");let X=eJ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=W4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return UX(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=W4,Z=h8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:N,l:q}=Y.decode(2,U);if(q.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(N)}},hexFromSig(W){let{_tlv:G,_int:X}=W4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},G4=BigInt(0),ZX=BigInt(1),$M=BigInt(2),WU=BigInt(3),Ru=BigInt(4);function RW(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=h8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Lu(W,G={}){let X=Tu("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;wz(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let N=SM(Y,Z);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(zU(B,"isCompressed"),B){q();let v=!Y.isOdd(_);return A7(FM(v),S)}else return A7(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){MW(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=N,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(k){let f=k instanceof Error?": "+k.message:"";throw Error("bad point: is not on curve, sqrt error"+f)}q();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,WU),Ru),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function p(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Pu(y,U.basises,Z.ORDER)}let c=hD((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),l=hD((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=IU(R,o),B=IU(_,B),o.add(B)}class m{constructor(y,o,B){this.X=p("x",y),this.Y=p("y",o,!0),this.Z=p("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(MW(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(h8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(WU);return this}assertValidity(){l(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,WU),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,WU),e=Y.mul(o,_),N0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,N0),$0=Y.sub($0,D0),D0=Y.add(o,R);let x0=Y.add(_,v);return D0=Y.mul(D0,x0),x0=Y.add(e,Q0),D0=Y.sub(D0,x0),x0=Y.add(B,R),P=Y.add(S,v),x0=Y.mul(x0,P),P=Y.add(N0,Q0),x0=Y.sub(x0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(N0,b),b=Y.add(N0,b),E=Y.mul(P,b),N0=Y.add(e,e),N0=Y.add(N0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),N0=Y.add(N0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(N0,D0),E=Y.add(E,e),e=Y.mul(x0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,N0),b=Y.mul(x0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>iA(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=W0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return iA(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===G4||B.is0())return m.ZERO;if(y===ZX)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=Du(m,B,_,v);return W0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===ZX)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===ZX)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return zU(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return YX(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return iA(m,y)}static msm(y,o){return Mu(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(RW(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new BM(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function FM(W){return Uint8Array.of(W?2:3)}function SM(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Bu(W,G={}){let{Fn:X}=W,Y=G.randomBytes||TU,Z=Object.assign(SM(W.Fp,X),{seed:TM(X.ORDER)});function V(H){try{return!!RW(X,H)}catch(I){return!1}}function Q(H,I){let{publicKey:w,publicKeyUncompressed:C}=Z;try{let D=H.length;if(I===!0&&D!==w)return!1;if(I===!1&&D!==C)return!1;return!!W.fromBytes(H)}catch(D){return!1}}function J(H=Y(Z.seed)){return PM(MW(H,Z.seed,"seed"),X.ORDER)}function U(H,I=!0){return W.BASE.multiply(RW(X,H)).toBytes(I)}function N(H){let I=J(H);return{secretKey:I,publicKey:U(I)}}function q(H){if(typeof H==="bigint")return!1;if(H instanceof W)return!0;let{secretKey:I,publicKey:w,publicKeyUncompressed:C}=Z;if(X.allowedLengths||I===w)return;let D=h8("key",H).length;return D===w||D===C}function A(H,I,w=!0){if(q(H)===!0)throw Error("first arg must be private key");if(q(I)===!1)throw Error("second arg must be public key");let C=RW(X,H);return W.fromHex(I).multiply(C).toBytes(w)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:N,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(H)=>RW(X,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:Z})}function Eu(W,G,X={}){XM(G),wz(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||TU,Z=X.hmac||((B,...R)=>JM(G,B,A7(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=Bu(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>ZX;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){Qz(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return MW(B,S,`${R} signature`)}class p{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=W4.toSig(MW(B));return new p(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new p(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(AU(B),R)}addRecoveryBit(B){return new p(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*$M<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let P=v===2||v===3?_+J:_;if(!V.isValid(P))throw Error("recovery id 2 or 3 invalid");let E=V.toBytes(P),b=W.fromBytes(A7(FM((v&1)===0),E)),k=Q.inv(P),f=n(h8("msgHash",B)),e=Q.create(-f*k),N0=Q.create(S*k),Q0=W.BASE.multiplyUnsafe(e).add(b.multiplyUnsafe(N0));if(Q0.is0())throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return D(this.s)}toBytes(B=C){if(Qz(B),B==="der")return AU(W4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return A7(Uint8Array.of(this.recovery),R,_)}return A7(R,_)}toHex(B){return YX(this.toBytes(B))}assertValidity(){}static fromCompact(B){return p.fromBytes(h8("sig",B),"compact")}static fromDER(B){return p.fromBytes(h8("sig",B),"der")}normalizeS(){return this.hasHighS()?new p(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return YX(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return YX(this.toBytes("compact"))}}let u=X.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let R=UX(B),_=B.length*8-U;return _>0?R>>BigInt(_):R},n=X.bits2int_modN||function(B){return Q.create(u(B))},c=hZ(U);function l(B){return Uu("num < 2^"+U,B,G4,c),Q.toBytes(B)}function W0(B,R){return MW(B,void 0,"message"),R?MW(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=tA(_,w);B=W0(B,v);let E=n(B),b=RW(Q,R),k=[l(b),l(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(h8("extraEntropy",Q0))}let f=A7(...k),e=E;function N0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),x0=W.BASE.multiply($0).toAffine(),q1=Q.create(x0.x);if(q1===G4)return;let U1=Q.create(D0*Q.create(e+q1*b));if(U1===G4)return;let J0=(x0.x===q1?0:2)|Number(x0.y&ZX),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new p(q1,B0,J0)}return{seed:f,k2sig:N0}}function Y0(B,R,_={}){B=h8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return Nu(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||MU(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new p(B.r,B.s);else if(_){try{R=p.fromBytes(h8("sig",B),"der")}catch(v){if(!(v instanceof W4.Err))throw v}if(!R)try{R=p.fromBytes(h8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=tA(S,w);if(_=h8("publicKey",_),R=W0(h8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):p.fromBytes(h8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,N0=n(R),Q0=Q.inv(e),$0=Q.create(N0*Q0),D0=Q.create(f*Q0),x0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(x0.is0())return!1;return Q.create(x0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=tA(_,w);return R=W0(R,S),p.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:p,hash:G})}function $u(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=bZ(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function Fu(W){let{CURVE:G,curveOpts:X}=$u(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function Su(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,DM(X.Fn.ORDER,X.Fn.BITS))})}function xu(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=Fu(W),V=Lu(G,X),Q=Eu(V,Y,Z);return Su(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ku(W,G){let X=(Y)=>xu({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var JX={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_u={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yu=BigInt(0),dD=BigInt(1),Jz=BigInt(2);function vu(W){let G=JX.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=I5(q,X,G)*q%G,H=I5(A,X,G)*q%G,I=I5(H,Jz,G)*N%G,w=I5(I,Z,G)*I%G,C=I5(w,V,G)*w%G,D=I5(C,J,G)*C%G,x=I5(D,U,G)*D%G,h=I5(x,J,G)*C%G,p=I5(h,X,G)*q%G,u=I5(p,Q,G)*w%G,n=I5(u,Y,G)*N%G,c=I5(n,Jz,G);if(!wU.eql(wU.sqr(c),W))throw Error("Cannot find square root");return c}var wU=bZ(JX.p,{sqrt:vu}),xM=ku({...JX,Fp:wU,lowS:!0,endo:_u},Yz),oD={};function jU(W,...G){let X=oD[W];if(X===void 0){let Y=Yz(ZM(W));X=A7(Y,Y),oD[W]=X}return Yz(A7(X,...G))}var Oz=(W)=>W.toBytes(!0).slice(1),NX=(()=>xM.Point)(),Kz=(W)=>W%Jz===yu;function Uz(W){let{Fn:G,BASE:X}=NX,Y=RW(G,W),Z=X.multiply(Y);return{scalar:Kz(Z.y)?Y:G.neg(Y),bytes:Oz(Z)}}function kM(W){let G=wU;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!Kz(Z))Z=G.neg(Z);let V=NX.fromAffine({x:W,y:Z});return V.assertValidity(),V}var uZ=UX;function _M(...W){return NX.Fn.create(uZ(jU("BIP0340/challenge",...W)))}function nD(W){return Uz(W).bytes}function gu(W,G,X=TU(32)){let{Fn:Y}=NX,Z=h8("message",W),{bytes:V,scalar:Q}=Uz(G),J=h8("auxRand",X,32),U=Y.toBytes(Q^uZ(jU("BIP0340/aux",J))),N=jU("BIP0340/nonce",U,V,Z),{bytes:q,scalar:A}=Uz(N),H=_M(q,V,Z),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!yM(I,Z,V))throw Error("sign: Invalid signature produced");return I}function yM(W,G,X){let{Fn:Y,BASE:Z}=NX,V=h8("signature",W,64),Q=h8("message",G),J=h8("publicKey",X,32);try{let U=kM(uZ(J)),N=uZ(V.subarray(0,32));if(!Vz(N,dD,JX.p))return!1;let q=uZ(V.subarray(32,64));if(!Vz(q,dD,JX.n))return!1;let A=_M(Y.toBytes(N),Oz(U),Q),H=Z.multiplyUnsafe(q).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Kz(w)||I!==N)return!1;return!0}catch(U){return!1}}var Cz=(()=>{let W=(X=TU(48))=>{return PM(X,JX.n)};xM.utils.randomSecretKey;function G(X){let Y=W(X);return{secretKey:Y,publicKey:nD(Y)}}return{keygen:G,getPublicKey:nD,sign:gu,verify:yM,Point:NX,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:jU,lift_x:kM,pointToBytes:Oz,numberToBytesBE:PU,bytesToNumberBE:UX,mod:w5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),uu=new TextEncoder,hu=new TextDecoder,LW=(W)=>uu.encode(W),_Z=(W)=>hu.decode(W),Nz=(W)=>Array.from(W,(G)=>G.toString(16).padStart(2,"0")).join(""),X4=JSON.stringify,OU=JSON.parse,vM=(W,G=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((X,Y)=>X+Y.charCodeAt(0),0)%G,Dz="AES-GCM",bu={},gM="$",uM=",",mu=(W)=>{let G=new Uint8Array(W),X=32768,Y="";for(let Z=0;Z<G.length;Z+=32768)Y+=String.fromCharCode(...G.subarray(Z,Z+32768));return btoa(Y)},fu=(W)=>Uint8Array.from(atob(W),(G)=>G.charCodeAt(0)).buffer,GU=(W)=>bu[W]??=crypto.subtle.digest("SHA-1",LW(W)).then((G)=>{let X=new Uint8Array(G),Y="";for(let Z of X)Y+=Z.toString(36);return Y}),cu=async(W,G,X)=>{let Y=await crypto.subtle.digest("SHA-256",LW(`${W}:${G}:${X}`));return crypto.subtle.importKey("raw",Y,{name:Dz},!1,["encrypt","decrypt"])},pu=async(W,G)=>{let X=crypto.getRandomValues(new Uint8Array(12)),Y=await W,Z=await crypto.subtle.encrypt({name:Dz,iv:X},Y,LW(G));return`${X.join(uM)}${gM}${mu(Z)}`},lu=async(W,G)=>{let[X,Y]=G.split(gM);if(!X||!Y)throw Error("Invalid encrypted payload format");let Z=Uint8Array.from(X.split(uM),Number),V=await W,Q=await crypto.subtle.decrypt({name:Dz,iv:Z},V,fu(Y));return _Z(Q)},_5="GenosRTC",Mz=(W,G)=>Array.from({length:W},G),KU=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(G)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[G%62]).join(""),W8=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=KU(20):KU(20),XX=Promise.all.bind(Promise),du=typeof window<"u",{entries:ou,fromEntries:hM,keys:Le}=Object,nu=()=>{},e7=(W)=>Error(`GenosRTC: ${W}`),XU=(...W)=>W.join("@"),iu=(W,G)=>{let X=[...W],Y=X.length,Z=()=>{let V=Math.sin(G++)*1e4;return V-Math.floor(V)};while(Y){let V=Math.floor(Z()*Y--);[X[Y],X[V]]=[X[V],X[Y]]}return X},ru=5000,iD="icegatheringstatechange",rD="offer",au="answer",su=[...Mz(3,(W,G)=>`stun:stun${G||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),aD=(W,{rtcConfig:G,rtcPolyfill:X,turnConfig:Y})=>{let Z=new(X||RTCPeerConnection)({iceServers:[...su,...Y||[]],...G}),V={},Q=!1,J=!1,U,N=(H)=>Object.assign(H,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage:(I)=>V.data?.(I.data),onopen:()=>V.connect?.(),onclose:()=>V.close?.(),onerror:(I)=>!I?.error?.message?.includes("User-Initiated Abort")&&V.error?.(I)}),q=()=>Promise.race([new Promise((H)=>{let I=()=>{if(Z.iceGatheringState==="complete")Z.removeEventListener(iD,I),H()};Z.addEventListener(iD,I),I()}),new Promise((H)=>setTimeout(H,ru))]).then(()=>({type:Z.localDescription.type,sdp:Z.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));if(W?N(U=Z.createDataChannel("data")):Z.ondatachannel=({channel:H})=>N(U=H),Z.onnegotiationneeded=async()=>{try{Q=!0,await Z.setLocalDescription(),V.signal?.(await q())}catch(H){V.error?.(H)}finally{Q=!1}},Z.onconnectionstatechange=()=>{if(["disconnected","failed","closed"].includes(Z.connectionState))V.close?.()},Z.ontrack=(H)=>{V.track?.(H.track,H.streams[0]),V.stream?.(H.streams[0])},Z.onremovestream=(H)=>V.stream?.(H.stream),W&&!Z.canTrickleIceCandidates)Z.onnegotiationneeded();let A=()=>Z.getSenders();return{created:Date.now(),connection:Z,get channel(){return U},get isDead(){return Z.connectionState==="closed"},async signal(H){if(U?.readyState==="open"&&!H.sdp?.includes("a=rtpmap"))return;try{if(H.type===rD){if(Q||Z.signalingState!=="stable"&&!J){if(W)return;await XX([Z.setLocalDescription({type:"rollback"}),Z.setRemoteDescription(H)])}else await Z.setRemoteDescription(H);await Z.setLocalDescription();let I=await q();return V.signal?.(I),I}if(H.type===au){J=!0;try{await Z.setRemoteDescription(H)}finally{J=!1}}}catch(I){V.error?.(I)}},sendData:(H)=>{if(U?.readyState==="open")U.send(H)},destroy:()=>{U?.close(),Z.close(),Q=J=!1},setHandlers:(H)=>Object.assign(V,H),offerPromise:W?new Promise((H)=>V.signal=(I)=>I.type===rD&&H(I)):Promise.resolve(),addStream:(H)=>H.getTracks().forEach((I)=>Z.addTrack(I,H)),removeStream:(H)=>A().filter((I)=>H.getTracks().includes(I.track)).forEach((I)=>Z.removeTrack(I)),addTrack:(H,I)=>Z.addTrack(H,I),removeTrack:(H)=>{let I=A().find((w)=>w.track===H);if(I)Z.removeTrack(I)},replaceTrack:(H,I)=>A().find((w)=>w.track===H)?.replaceTrack(I)}},tu=Object.getPrototypeOf(Uint8Array),QU=12,bM=0,JU=bM+QU,UU=JU+1,yZ=UU+1,vZ=yZ+1,xZ=16384-vZ,YU=255,eA="bufferedamountlow",GX=(W)=>`@_${W}`,Wz=100,eu=3,Wh=200,Gh=(W,G,X,Y)=>{let Z=new Map,V=new Map,Q=new Map,J={},U={},N={},q={},A=new Map,H=(S,v)=>{if(!A.has(S))A.set(S,new Set);A.get(S).add(v)},I=(S,v)=>A.get(S)?.delete(v),w=(S,...v)=>A.get(S)?.forEach((P)=>P(...v)),C=(S,v)=>{let P=S?Array.isArray(S)?S:[S]:Z.keys();return Array.from(P,(E)=>{let b=Z.get(E);if(!b)return console.warn(`${_5}: no peer with id ${E}`),null;return v(E,b)}).filter(Boolean)},D=(S)=>{if(!Z.has(S))return;Z.delete(S),delete J[S],delete U[S],delete N[S],delete q[S],w("peer:leave",S),G(S)},x=(S)=>new Promise((v,P)=>{let E=setTimeout(()=>{S.removeEventListener(eA,b),P(Error(`${_5}: bufferLow timeout`))},5000);function b(){clearTimeout(E),S.removeEventListener(eA,b),v()}S.addEventListener(eA,b)}),h=(S)=>{if(Q.has(S))return Q.get(S);if(!S)throw e7("action type is required");let v=LW(S);if(v.byteLength>QU)throw e7(`\u274C "${S}" exceeds ${QU} bytes. Use a shorter name.`);let P=new Uint8Array(QU).map((Q0,$0)=>v[$0]||0),E=0,b=new Map([["message",new Set],["progress",new Set]]),k=(Q0,$0)=>b.get(Q0)?.add($0),f=(Q0,$0)=>b.get(Q0)?.delete($0),e=async(Q0,$0,D0,x0)=>{if(D0&&typeof D0!=="object")throw e7("meta must be object");if(Q0===void 0)throw e7("data cannot be undefined");let q1=Q0 instanceof Blob,U1=q1||Q0 instanceof ArrayBuffer||Q0 instanceof tu,J0=typeof Q0!=="string";if(D0&&!U1)throw e7("meta only allowed with binary");let B0=U1?new Uint8Array(q1?await Q0.arrayBuffer():Q0):LW(J0?X4(Q0):Q0),h0=D0?LW(X4(D0)):null,Y1=Math.ceil(B0.byteLength/xZ)+(D0?1:0)||1;if(Y1>Wz)throw e7(`Message too large, exceeds max chunks ${Wz}`);let w8=Mz(Y1,(x1,E0)=>{let n0=E0===Y1-1,O1=D0&&E0===0,$1=O1?h0:B0.subarray(D0?(E0-1)*xZ:E0*xZ,D0?E0*xZ:(E0+1)*xZ),U8=new Uint8Array(vZ+$1.byteLength);return U8.set(P),U8.set([E],JU),U8.set([n0|O1<<1|U1<<2|J0<<3],UU),U8.set([Math.round((E0+1)/Y1*YU)],yZ),U8.set($1,vZ),U8});return E=E+1&YU,XX(C($0,async(x1,E0)=>{let{channel:n0}=E0;for(let O1=0;O1<Y1;O1++){let $1=0;while(n0.bufferedAmount>n0.bufferedAmountLowThreshold){if($1++>eu)throw e7(`${_5}: send buffer full, max retries reached for peer ${x1}`);try{await x(n0)}catch(U8){console.warn(U8.message),await new Promise((H8)=>setTimeout(H8,Wh))}}if(!Z.has(x1))break;E0.sendData(w8[O1]),x0?.(w8[O1][yZ]/YU,x1,D0)}}))};V.set(S,{listeners:b,send:e});let N0={send:e,on:k,off:f};return Q.set(S,N0),N0},p=(S,v)=>{try{let P=new Uint8Array(v),E=_Z(P.subarray(bM,JU)).replace(/\x00/g,"");if(!V.has(E))return console.warn(`${_5}: unregistered type (${E})`);let[b]=P.subarray(JU,UU),[k]=P.subarray(UU,yZ),[f]=P.subarray(yZ,vZ),e=P.subarray(vZ),N0=Boolean(k&1),Q0=Boolean(k&2),$0=Boolean(k&4),D0=Boolean(k&8),x0=V.get(E),q1=(J[S]||={})[E]||={};if(q1[b]?.chunks?.length>Wz){console.warn(`${_5}: peer ${S} sent too many chunks for nonce ${b}, ignoring.`);return}let U1=q1[b]||={chunks:[]};if(Q0)try{U1.meta=OU(_Z(e))}catch{console.warn(`${_5}: failed to parse meta from peer ${S} for type ${E}`);return}else U1.chunks.push(e);if(x0.listeners.get("progress").forEach((h0)=>{try{h0(f/YU,S,U1.meta)}catch(Y1){console.error(Y1)}}),!N0)return;let J0=new Uint8Array(U1.chunks.reduce((h0,Y1)=>h0+Y1.byteLength,0));U1.chunks.reduce((h0,Y1)=>(J0.set(Y1,h0),h0+Y1.byteLength),0),delete q1[b];let B0;if($0)B0=J0;else if(D0)try{B0=OU(_Z(J0))}catch{console.warn(`${_5}: failed to parse JSON message data from peer ${S} for type ${E}`);return}else B0=_Z(J0);x0.listeners.get("message").forEach((h0)=>{try{h0(B0,S,U1.meta)}catch(Y1){console.error(Y1)}})}catch(P){console.error(`${_5}: error handling data from peer ${S}:`,P)}},u=async()=>{try{await R(""),await new Promise((S)=>setTimeout(S,99))}catch(S){console.warn(`${_5}: error sending leave`,S)}for(let[S,v]of Z){try{v.destroy()}catch{}Z.delete(S)}X()},{send:n,on:c}=h(GX("ping")),{send:l,on:W0}=h(GX("pong")),{send:m,on:Y0}=h(GX("signal")),{send:U0,on:y}=h(GX("stream")),{send:o,on:B}=h(GX("track")),{send:R,on:_}=h(GX("leave"));if(W((S,v)=>{let P=Z.get(v);if(P===S)return;if(P){let E=()=>{};P.setHandlers({data:E,stream:E,track:E,signal:E,close:E,error:E})}Z.set(v,S),S.setHandlers({data:(E)=>p(v,E),stream:(E)=>{w("stream:add",E,v,N[v]),delete N[v]},track:(E,b)=>{w("track:add",E,b,v,q[v]),delete q[v]},signal:(E)=>m(E,v),close:()=>D(v),error:(E)=>{console.error(`${_5}: peer error for ${v}`,E),D(v)}}),w("peer:join",v,Y?.(v))}),c("message",(S,v)=>l("",v)),W0("message",(S,v)=>{U[v]?.(),delete U[v]}),Y0("message",(S,v)=>Z.get(v)?.signal(S)),y("message",(S,v)=>N[v]=S),B("message",(S,v)=>q[v]=S),_("message",(S,v)=>D(v)),du)addEventListener("beforeunload",u);return{on:H,off:I,channel:h,leave:u,ping:async(S)=>{if(!S)throw e7("ping() requires target peer ID");let v=Date.now();return n("",S),await new Promise((P)=>U[S]=P),Date.now()-v},getPeers:()=>hM(Array.from(Z,([S,v])=>[S,v.connection])),addStream:(S,v,P)=>C(v,async(E,b)=>{if(P)await U0(P,E);b.addStream(S)}),removeStream:(S,v)=>C(v,(P,E)=>E.removeStream(S)),addTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.addTrack(S,v)}),removeTrack:(S,v)=>C(v,(P,E)=>E.removeTrack(S)),replaceTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.replaceTrack(S,v)})}},Xh=5,Yh=10,Zh=2500,ZU=57333,Vh=({init:W,subscribe:G,announce:X})=>{let Y={},Z=!1,V,Q;return(J,U,N)=>{let{appId:q}=J;if(Y[q]?.[U])return Y[q][U];if(!J||!U||!q&&!J.firebaseApp)throw e7(!J?"config required":!U?"roomId required":"appId missing");let A=nu;if(!Z){let _=W(J);Q=Mz(Xh,()=>{try{return aD(!0,J)}catch{return null}}).filter(Boolean),V=Array.isArray(_)?_:[_];let S=setInterval(()=>{Q=Q.filter((v)=>{let P=Date.now()-v.created<ZU;if(!P)v.destroy();return P})},ZU);Y.offerCleanupTimer||=S,Z=!0}let H={},I={},w=new Map,C=new Map,D={},x=XU(_5,q,U),h=GU(x),p=GU(XU(x,W8)),u=cu(J.password||"",q,U),n=(_)=>async(S)=>({type:S.type,sdp:await _(u,S.sdp)}),c=n(lu),l=n(pu),W0=(_)=>{return setTimeout(()=>{if(!_.isDead&&!Object.values(I).includes(_))_.destroy()},ZU),_},m=(_)=>{try{return W0(aD(_,J))}catch{return null}},Y0=(_,S)=>{if(I[S]===_)return;I[S]?.destroy(),I[S]=_,A(_,S),H[S]?.forEach((v)=>v!==_&&v.destroy()),delete H[S]},U0=(_,S)=>{if(I[S]===_)delete I[S]},y=(_)=>async(S,v,P)=>{let[E,b]=await XX([h,p]);if(S!==E&&S!==b)return;let{peerId:k,offer:f,answer:e,type:N0}=typeof v==="string"?OU(v):v;if(k&&k!==W8)C.set(k,Date.now());if(N0&&k)D[k]=N0;if(k===W8||I[k])return;if(J.admit&&!J.admit(k))return;if(f){if(H[k]?.[_]&&W8>k)return;let Q0=m(!1);if(!Q0)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{let $0=await c(f);if(Q0.isDead)return;let[D0,x0]=await XX([GU(XU(x,k)),Q0.signal($0).then(l)]);P(D0,X4({peerId:W8,answer:x0,...J.type&&{type:J.type}}))}catch{N?.({error:"decryption failed (offer)",appId:q,peerId:k,roomId:U})}}else if(e){let Q0=H[k]?.[_];if(!Q0||Q0.isDead)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{Q0.signal(await c(e))}catch{N?.({error:"decryption failed (answer)",appId:q,peerId:k,roomId:U})}}else{let Q0=H[k]||=[];if(Q0.forEach((U1,J0)=>{if(U1&&(U1.isDead||Date.now()-(U1.dialedAt??U1.created)>ZU)){if(U1.isDead)w.set(k,Date.now()+30000);U1.destroy(),delete Q0[J0]}}),Q0[_]||Q0.filter(Boolean).length>=2||w.get(k)>Date.now())return;if(Object.values(H).reduce((U1,J0)=>U1+J0.filter((B0)=>B0&&!B0.isDead).length,0)>=Yh)return;let $0=Q.pop(),D0=$0?W0($0):m(!0);if(!D0){w.set(k,Date.now()+30000);return}D0.dialedAt=Date.now();let[x0,{offer:q1}]=await XX([GU(XU(x,k)),D0.offerPromise.then(l).then((U1)=>({offer:U1}))]);Q0[_]=D0,D0.setHandlers({connect:()=>Y0(D0,k),close:()=>U0(D0,k)}),P(x0,X4({peerId:W8,offer:q1,peer:D0,...J.type&&{type:J.type}}))}},o=[],B=[];V.forEach(async(_,S)=>{let v=await _;if(!v)return;let[P,E]=await XX([h,p]);B[S]=G(v,P,E,y(S));let b=async()=>{let k=await X(v,P,E);o[S]=setTimeout(b,typeof k==="number"?k:Zh)};b()}),Y[q]||={};let R=Gh((_)=>A=_,(_)=>delete I[_],()=>R.onCleanup?.(),(_)=>D[_]);return R.onCleanup=()=>{if(delete Y[q][U],o.forEach(clearTimeout),B.forEach((_)=>_?.()),Object.keys(Y).length===0)clearInterval(Y.offerCleanupTimer),delete Y.offerCleanupTimer},R._census=()=>{for(let S of Object.keys(I))C.set(S,Date.now());let _=Date.now()-120000;for(let[S,v]of C)if(v<_)C.delete(S);return[...C.keys()]},Y[q][U]=R}},sD=3333,Qh=30000,kZ={},mM={},Jh=(W,G)=>{let X={},Y=null;X.reopenHandlers=new Set;let Z=()=>{if(Y)clearTimeout(Y),Y=null;if(X.socket)X.socket.onclose=null,X.socket.close();let V=new WebSocket(W);V.onclose=()=>{kZ[W]??=sD,Y=setTimeout(Z,kZ[W]),kZ[W]=Math.min(kZ[W]*2,Qh)},V.onmessage=(Q)=>G(Q.data),X.socket=V,X.url=V.url,X.ready=new Promise((Q)=>{V.onopen=()=>{kZ[W]=sD,Q(X),X.reopenHandlers.forEach((J)=>J())}}),X.send=(Q)=>{if(V.readyState===1)V.send(Q)}};return X.forceReconnect=Z,Z(),mM[W]=X,X};if(typeof window<"u"){let W=(G)=>{dA.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(mM).forEach((X)=>{if(X.socket&&X.socket.readyState!==WebSocket.OPEN&&(G||X.socket.readyState!==WebSocket.CONNECTING))X.forceReconnect()})};window.addEventListener("online",()=>{dA.info("\u2705 Reconnected to the network."),W(!0)}),window.addEventListener("offline",async()=>{dA.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var Uh=(W)=>()=>hM(ou(W).map(([G,X])=>[G,X.socket])),Nh=(W,G,X,Y)=>(W.relayUrls??(Y?iu(G,vM(W.appId)):G)).slice(0,W.relayUrls?.length??W.relayRedundancy??X),qh=["wss://relay.primal.net","wss://relay.snort.social","wss://nostr.oxtr.dev","wss://nostr.vulpem.com","wss://relay.nostr.net","wss://nostr.sathoarder.com","wss://nostr.data.haus","wss://relay.mostr.pub","wss://nostr.bitcoiner.social"],VX={},Hh=10,fM="x",cM="EVENT",Ah=/pow:\s*(\d+)\s*bits needed\.?/i,qz=new Set,pM=Cz.utils.randomSecretKey(),zh=Nz(Cz.getPublicKey(pM)),Tz={},gZ={},Ih={},lM=()=>Math.floor(Date.now()/1000),dM=(W)=>Ih[W]??=vM(W,1e4)+20000,CU=(W)=>W.replace(/\/$/,""),wh=(W,G)=>{let[X,Y,Z,V]=OU(G);if(X===cM)return gZ[Y]?.(Tz[Y],Z.content);if(X==="NOTICE"||X==="OK"&&!Z){if(+((X==="NOTICE"?Y:V).match(Ah)?.[1]??0)>0){let Q=CU(W);qz.add(Q),VX[Q]?.close?.(),delete VX[Q]}}},jh=(W)=>{let G=CU(W);if(VX[G])return VX[G];let X=Jh(G,(Y)=>wh(G,Y));return VX[G]=X},tD=async(W,G)=>{let X={kind:dM(W),content:G,pubkey:zh,created_at:lM(),tags:[[fM,W]]},Y=LW(X4([0,X.pubkey,X.created_at,X.kind,X.tags,X.content])),Z=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),V=Cz.sign(Z,pM);return X4([cM,{...X,id:Nz(Z),sig:Nz(V)}])},eD=(W,G)=>{return Tz[W]=G,X4(["REQ",W,{kinds:[dM(G)],since:lM(),["#"+fM]:[G]}])},WM=(W)=>{return delete Tz[W],X4(["CLOSE",W])},oM=Vh({init:(W)=>{let G=(W?.relayUrls?.length?W.relayUrls:null)??qh;return Nh(W,G,Hh,!1).map(jh).map((X)=>X.ready.then(()=>X).catch(()=>null))},subscribe:(W,G,X,Y)=>{let Z=KU(64),V=KU(64);gZ[Z]=gZ[V]=(J,U)=>Y(J,U,async(N,q)=>{if(qz.has(CU(W.url)))return;W.send(await tD(N,q))});let Q=()=>{W.send(eD(Z,G)),W.send(eD(V,X))};return Q(),W.reopenHandlers.add(Q),()=>{W.reopenHandlers.delete(Q),W.send(WM(Z)),W.send(WM(V)),delete gZ[Z],delete gZ[V]}},announce:async(W,G)=>{if(qz.has(CU(W.url)))return;W.send(await tD(G,X4({peerId:W8})))}}),Be=Uh(VX),Oh={cellSize:"auto",bridgesPerEdge:2,maxCellSize:50,targetCells:100,debug:!1},GM=5000,Kh=3000,Ch=30000,Dh=2000,DU=(W)=>{let G=String(W||"").match(/cell-(\d+)/);return G?Number(G[1]):null},Mh=(W,G)=>{let X=DU(W);if(X==null)return[];let Y=[];for(let Z=1;Z<G;Z*=2){if(X-Z>=0)Y.push(`cell-${X-Z}`);if(X+Z<G)Y.push(`cell-${X+Z}`)}return Y},VU=(W)=>`c${(DU(W)||0).toString(36)}`,Th=(W,G,X)=>{if(W<=10)return Math.max(2,W);let Y=10,Z=Math.ceil(W/G);return Math.max(Y,Math.min(X,Z))},Ph=(W,G)=>{return Math.max(1,Math.ceil(W/G))},nM=(W)=>{let G=0;for(let X=0;X<W.length;X++)G=Math.imul(G^W.charCodeAt(X),2654435761);return G>>>0},Gz=(W,G)=>{let X=0,Y=-1;for(let Z=0;Z<G;Z++){let V=nM(`${W}:${Z}`);if(V>Y)Y=V,X=Z}return X};class NU{constructor(W){this.peerId=W,this.joinedAt=Date.now(),this.lastSeen=Date.now(),this.rttSamples=[],this.stability=1,this.reconnects=0,this.isResponsive=!0,this.connectedCells=new Set}get uptime(){return Date.now()-this.joinedAt}get avgRtt(){if(this.rttSamples.length===0)return 1/0;return Math.round(this.rttSamples.reduce((W,G)=>W+G,0)/this.rttSamples.length)}get healthScore(){let W=this.avgRtt===1/0?0.5:Math.max(0,100-this.avgRtt)/100,G=Math.min(1,this.uptime/60000),X=this.stability,Y=this.isResponsive?1:0.3;return W*0.25+G*0.25+X*0.3+Y*0.2}get isStale(){return Date.now()-this.lastSeen>Ch}addRttSample(W){if(this.rttSamples.push(W),this.rttSamples.length>10)this.rttSamples.shift();this.lastSeen=Date.now(),this.isResponsive=!0}markReconnect(){this.reconnects++,this.stability=Math.max(0,1-this.reconnects*0.1)}markUnresponsive(){this.isResponsive=!1}markSeen(){this.lastSeen=Date.now()}addConnectedCell(W){if(W)this.connectedCells.add(W)}}function Rh(W,G={},X={}){let Y={...Oh,...G},Z=!!Y.debug,V=(...$)=>Z&&console.debug("[cells]",...$),Q=Math.max(0,Y.bridgesPerEdge|0),J=Math.max(5,Y.maxCellSize|0),U=Math.max(10,Y.targetCells|0),N=Y.cellSize==="auto",q=N?2:Math.max(1,Y.cellSize|0),A={cellId:null,bridges:[],isBridge:!1},H=null,I=null,w=null,C=new Map,D=new Map,x=new Set,h=new Map,p=new Set,u=new Set,n=0,c=[],l=new Map,W0=new Set,m=new Map,Y0=new Map,U0=1,y=0,o=1,B=0,R=()=>{B0();let $=Ph(J0().length,q);if($!==o)o=$,B=Date.now();let d=Date.now()-B;if($>U0&&d>4000)U0=$;else if($<U0&&d>30000)U0=$;return U0},_=()=>Math.min(150,Math.ceil(Math.log2(R()+1))*2+3),S=($)=>Mh($,R()),v=W.on?.bind(W),P=W.off?.bind(W);if(v)W.on=($,d)=>String($).startsWith("mesh:")?k($,d):v($,d);if(P)W.off=($,d)=>String($).startsWith("mesh:")?h.get($)?.delete(d):P($,d);let E=($)=>(x.add($),()=>x.delete($)),b=($,d,X0)=>{if(u.has(X0))return;if(u.add(X0),u.size>GM){let w0=u.values().next().value;u.delete(w0)}for(let w0 of x)try{w0($,d)}catch(e0){V("Error in deliver handler:",e0)}},k=($,d)=>{if(!h.has($))h.set($,new Set);return h.get($).add(d),()=>h.get($)?.delete(d)},f=($,...d)=>{let X0=h.get($);if(X0)for(let w0 of X0)try{w0(...d)}catch{}},e=($)=>{try{return typeof $==="string"?JSON.parse($):$}catch{return null}},N0=()=>`${W8}:${Date.now().toString(36)}:${(n++&65535).toString(36)}`,Q0=()=>{if(p.size>GM)p.delete(p.values().next().value)},$0=($,d,X0=[])=>{if(!$||!d)return;if(C.set($,{cell:d,isBridge:X0.length>0,bridges:[...X0]}),!D.has($))D.set($,new NU($));let w0=D.get($);if(w0.markSeen(),w0.addConnectedCell(d),Y0.set(d,{lastSeen:Date.now(),peerId:$}),X0.length>0)for(let e0 of S(d))w0.addConnectedCell(e0)},D0=($)=>D.get($),x0=($,d)=>{let X0=D.get($);if(X0)X0.addRttSample(d)},q1=($)=>{let d=E0($);if(d.length===0)return null;let X0=0,w0=0;for(let C1 of d){let r0=D.get(C1);if(r0&&!r0.isStale){if(X0+=r0.healthScore,r0.isResponsive)w0++}}let e0=d.filter((C1)=>{let r0=D.get(C1);return r0&&!r0.isStale});return{cellId:$,memberCount:e0.length,avgHealth:e0.length>0?X0/e0.length:0,responsiveRatio:e0.length>0?w0/e0.length:0}},U1=()=>{let $=q1(A.cellId);f("mesh:health",{...A,health:$})},J0=()=>[...new Set([...W._census(),W8])].sort(),B0=()=>{if(!N)return;let $=J0().length,d=Th($,U,J);if(d!==q)V("cellSize changed:",q,"->",d),q=d},h0=($,d)=>d.filter((X0)=>Gz(X0,R())===$),Y1=($,d)=>{if(Q===0)return[];let X0=DU($),w0=DU(d);if(X0==null||w0==null)return[];let e0=J0(),C1=h0(X0,e0),r0=h0(w0,e0),K0=Math.min(X0,w0),F0=Math.max(X0,w0),g0=(n1)=>nM(`${n1}@${K0}~${F0}`),k0=[...new Set([...C1,...r0])].sort((n1,Q7)=>g0(Q7)-g0(n1));if(!k0.length)return[];let Q1=new Set(C1),X1=[],k1=(n1)=>n1&&!X1.includes(n1)&&X1.push(n1);k1(k0.find((n1)=>Q1.has(n1))),k1(k0.find((n1)=>!Q1.has(n1)));for(let n1 of k0){if(X1.length>=Math.max(Q,2))break;k1(n1)}return X1},w8=($,d)=>{if(Q===0)return[];let X0=S(d),w0=[];for(let e0 of X0)if(Y1(d,e0).includes($))w0.push(e0);return w0},x1=()=>{B0();let $=J0(),d=Gz(W8,R()),X0=R(),w0=`cell-${d}`,e0=w8(W8,w0),C1=e0.length>0;return V("computeState",{self:W8,myCell:w0,isBridge:C1,bridgeEdges:e0,cellSize:q,rosterSize:$.length,totalCells:X0,dynamicTTL:_()}),{cellId:w0,isBridge:C1,bridges:e0,cellSize:q,dynamicTTL:_(),totalCells:X0}},E0=($)=>{let d=[],X0=new Set(Object.keys(W.getPeers?.()||{}));for(let[w0,e0]of C)if(e0.cell===$){let C1=D.get(w0);if(X0.has(w0)&&(!C1||!C1.isStale))d.push(w0)}return d.sort(),d},n0=()=>{if(!H)return;j8=HW(),k5=Date.now();let $={t:"state",id:N0(),ttl:_(),data:{id:W8,cell:A.cellId,bridges:A.bridges,health:D.get(W8)?.healthScore||0.5,timestamp:Date.now()},origin:W8,originCell:A.cellId},d=JSON.stringify($);H.send(d),O1(I,d)},O1=($,d)=>{let X0=e(d);if(!X0?.id||!X0?.t)return;let w0=p.has(X0.id);if(!w0)p.add(X0.id),Q0();let{t:e0,id:C1,ttl:r0,data:K0,origin:F0,originCell:g0}=X0,k0=A.cellId;if(e0==="state"&&K0)$0(K0.id,K0.cell,K0.bridges),f("mesh:peer-state",K0);if(e0==="ping"&&K0?.pingId&&F0!==W8){let X1={t:"pong",id:N0(),ttl:_(),data:{pingId:K0.pingId,receivedAt:Date.now()},origin:W8,originCell:k0};H?.send(JSON.stringify(X1))}if(e0==="pong"&&K0?.pingId){let X1=m.get(K0.pingId);if(X1){clearTimeout(X1.timeout);let k1=Date.now()-X1.start;x0(X1.peerId,k1),X1.resolve(k1),m.delete(K0.pingId)}}if(e0==="msg"&&F0!==W8){if(g0===k0||Q>0)b(K0,F0,C1)}if(w0)return;if(!A.isBridge)return;if((r0??0)<=0)return;let Q1=(X1,k1,n1=null)=>{if(!X1)return;let Q7={t:e0,id:C1,ttl:n1??(r0??_())-1,data:K0,origin:F0||W8,originCell:g0||k0},AW=JSON.stringify(Q7);if(k1?.length){let JZ=new Set(Object.keys(W.getPeers?.()||{})),J9=k1.filter((_J)=>JZ.has(_J));if(J9.length>0)X1.send(AW,J9)}else X1.send(AW)};if($===I){for(let X1 of S(k0))Q1($1(X1),null);return}if(!S(k0).map(VU).includes($))return;Q1(H,null);for(let X1 of S(k0))if(VU(X1)!==$)Q1($1(X1),null)},$1=($)=>{let d=VU($);if(l.has($))return l.get($);let X0=W.channel(d);if(l.set($,X0),!W0.has(d))W0.add(d),X0.on("message",(w0)=>O1(d,w0));return X0},U8=()=>{if(!A.cellId)return;if(I=VU(A.cellId),H=W.channel(I),!W0.has(I))W0.add(I),H.on("message",($)=>O1(I,$));if(A.isBridge)for(let $ of S(A.cellId))$1($);if(c.length)for(let $ of c.splice(0)){let d={t:"msg",id:N0(),ttl:_(),data:$,origin:W8,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),O1(I,X0)}n0()},H8=($)=>{if(!A.cellId)return!0;if(!J0().includes($))return!0;let d=`cell-${Gz($,R())}`;if(d===A.cellId)return!0;if(A.bridges.includes(d))return!0;return S(A.cellId).includes(d)&&Y1(d,A.cellId).includes($)},A8=()=>{let $=W.getPeers?.()||{};for(let d of Object.keys($))if(!H8(d))$[d].close?.()};X.admit=H8;let K1=()=>{let $=x1(),d=!A.cellId||A.cellId!==$.cellId||A.isBridge!==$.isBridge||JSON.stringify(A.bridges)!==JSON.stringify($.bridges);if(A=$,$0(W8,$.cellId,$.bridges),d)U8();else n0();A8(),f("mesh:state",$),U1()},j8="",k5=0,HW=()=>{return`${A.cellId}:${A.isBridge}:${A.bridges.join(",")}`},QZ=()=>{if(w)return;w=setInterval(()=>{let $=R();if($!==y){y=$,K1();return}let d=HW();if(d!==j8||Date.now()-k5>1e4)n0(),j8=d;for(let[X0,w0]of D)if(X0!==W8&&w0.isStale)C.delete(X0),D.delete(X0),V("Removed stale peer:",X0)},Dh)},i7=()=>{if(w)clearInterval(w),w=null},i=($)=>{return new Promise((d,X0)=>{let w0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,e0=Date.now(),C1=setTimeout(()=>{m.delete(w0);let K0=D.get($);if(K0)K0.markUnresponsive();X0(Error("Ping timeout"))},Kh);m.set(w0,{start:e0,resolve:d,reject:X0,timeout:C1,peerId:$});let r0={t:"ping",id:N0(),ttl:_(),data:{pingId:w0,target:$},origin:W8,originCell:A.cellId};H?.send(JSON.stringify(r0))})};if(W.on?.("peer:join",($)=>{if(!D.has($))D.set($,new NU($));else D.get($).markReconnect();K1()}),W.on?.("peer:leave",($)=>{C.delete($),K1()}),!D.has(W8))D.set(W8,new NU(W8));return D.get(W8).addConnectedCell(A.cellId||"cell-0"),K1(),QZ(),{send:($)=>{if(!A.cellId||!H)return c.push($);let d={t:"msg",id:N0(),ttl:_(),data:$,origin:W8,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),O1(I,X0)},on:($,d)=>$==="message"?E(d):void 0,ping:i,getState:()=>({...A,cellSize:q,health:q1(A.cellId),dynamicTTL:_(),totalCells:R(),knownCells:Y0.size}),getMetrics:D0,getCellHealth:q1,getPeerInfo:()=>new Map(C),getStableRoster:()=>J0(),getKnownCells:()=>new Map(Y0),getCellSize:()=>q,destroy:()=>{i7(),m.forEach(($)=>clearTimeout($.timeout)),m.clear(),u.clear(),Y0.clear()}}}function Lh(W,G,X){let Y={},Z=oM({...W,admit:(U)=>Y.admit?.(U)??!0},G,X),V=W.overlay||{},Q=Rh(Z,V,Y),J=new Map;return{on:(U,N)=>Z.on(U,N),off:(U,N)=>Z.off?.(U,N),channel:(U)=>{if(J.has(U))return J.get(U);let N=Z.channel(U),q={send:(A,H)=>{Q.send({_ch:U,_d:A,_t:H})},on:(A,H)=>{if(A==="message")Q.on("message",(I,w)=>{if(I?._ch===U)H(I._d,w)}),N.on(A,H);else N.on(A,H)},off:(A,H)=>N.off?.(A,H),_original:N};return J.set(U,q),q},get id(){return Z.id},get peers(){return Z.peers},getPeers:()=>Z.getPeers?.()||{},mesh:Q,_room:Z,getState:()=>Q.getState(),getMetrics:(U)=>Q.getMetrics(U),getCellHealth:(U)=>Q.getCellHealth(U),getPeerInfo:()=>Q.getPeerInfo(),ping:(U)=>Q.ping(U),leave:()=>{Q.destroy(),J.clear(),Z.leave()},destroy:()=>{Q.destroy(),J.clear()}}}var Pz=(W,G,X)=>W?.cells||W?.overlay?Lh(W,G,X):oM(W,G,X);import{randomBytes as A2}from"crypto";function Bh(){var W,G=!1,X=this;X._DeArray=function(Y,Z,V){return[Y.slice(Z,Z+V)]},X._EnArray=function(Y,Z,V,Q){for(var J=0;J<V;Y[Z+J]=Q[J]?Q[J]:0,J++);},X._DeChar=function(Y,Z){return String.fromCharCode(Y[Z])},X._EnChar=function(Y,Z,V){Y[Z]=V.charCodeAt(0)},X._DeInt=function(Y,Z){var V=G?W.len-1:0,Q=G?-1:1,J=V+Q*W.len,U,N,q;for(U=0,N=V,q=1;N!=J;U+=Y[Z+N]*q,N+=Q,q*=256);if(W.bSigned&&U&Math.pow(2,W.len*8-1))U-=Math.pow(2,W.len*8);return U},X._EnInt=function(Y,Z,V){var Q=G?W.len-1:0,J=G?-1:1,U=Q+J*W.len,N;V=V<W.min?W.min:V>W.max?W.max:V;for(N=Q;N!=U;Y[Z+N]=V&255,N+=J,V>>=8);},X._DeString=function(Y,Z,V){for(var Q=Array(V),J=0;J<V;Q[J]=String.fromCharCode(Y[Z+J]),J++);return Q.join("")},X._EnString=function(Y,Z,V,Q){for(var J,U=0;U<V;Y[Z+U]=(J=Q.charCodeAt(U))?J:0,U++);},X._De754=function(Y,Z){var V,Q,J,U,N,q,A,H,I,w;A=W.mLen,H=W.len*8-W.mLen-1,w=(1<<H)-1,I=w>>1,U=G?0:W.len-1,N=G?1:-1,V=Y[Z+U],U+=N,q=-7;for(Q=V&(1<<-q)-1,V>>=-q,q+=H;q>0;Q=Q*256+Y[Z+U],U+=N,q-=8);for(J=Q&(1<<-q)-1,Q>>=-q,q+=A;q>0;J=J*256+Y[Z+U],U+=N,q-=8);switch(Q){case 0:Q=1-I;break;case w:return J?NaN:(V?-1:1)*(1/0);default:J=J+Math.pow(2,A),Q=Q-I;break}return(V?-1:1)*J*Math.pow(2,Q-A)},X._En754=function(Y,Z,V){var Q,J,U,N,q,A,H,I,w,C;if(H=W.mLen,I=W.len*8-W.mLen-1,C=(1<<I)-1,w=C>>1,Q=V<0?1:0,V=Math.abs(V),isNaN(V)||V==1/0)U=isNaN(V)?1:0,J=C;else{if(J=Math.floor(Math.log(V)/Math.LN2),V*(A=Math.pow(2,-J))<1)J--,A*=2;if(J+w>=1)V+=W.rt/A;else V+=W.rt*Math.pow(2,1-w);if(V*A>=2)J++,A/=2;if(J+w>=C)U=0,J=C;else if(J+w>=1)U=(V*A-1)*Math.pow(2,H),J=J+w;else U=V*Math.pow(2,w-1)*Math.pow(2,H),J=0}for(N=G?W.len-1:0,q=G?-1:1;H>=8;Y[Z+N]=U&255,N+=q,U/=256,H-=8);for(J=J<<H|U,I+=H;I>0;Y[Z+N]=J&255,N+=q,J/=256,I-=8);Y[Z+N-q]|=Q*128},X._DeInt64=function(Y,Z){var V=G?0:7,Q=G?1:-1,J=V+Q*8,U=[0,0,!W.bSigned],N,q,A;for(N=V,A=1,q=0;N!=J;U[A]=(U[A]<<8>>>0)+Y[Z+N],N+=Q,q++,A=q<4?1:0);return U},X._EnInt64=function(Y,Z,V){var Q=G?0:7,J=G?1:-1,U=Q+J*8,N,q,A,H;for(N=Q,A=1,q=0,H=24;N!=U;Y[Z+N]=V[A]>>H&255,N+=J,q++,A=q<4?1:0,H=24-8*(q%4));},X._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",X._lenLut={A:1,x:1,c:1,b:1,B:1,h:2,H:2,s:1,f:4,d:8,i:4,I:4,l:4,L:4,q:8,Q:8},X._elLut={A:{en:X._EnArray,de:X._DeArray},s:{en:X._EnString,de:X._DeString},c:{en:X._EnChar,de:X._DeChar},b:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:X._En754,de:X._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:X._En754,de:X._De754,len:8,mLen:52,rt:0},q:{en:X._EnInt64,de:X._DeInt64,bSigned:!0},Q:{en:X._EnInt64,de:X._DeInt64,bSigned:!1}},X._UnpackSeries=function(Y,Z,V,Q){for(var J=W.de,U=[],N=0;N<Y;U.push(J(V,Q+N*Z)),N++);return U},X._PackSeries=function(Y,Z,V,Q,J,U){for(var N=W.en,q=0;q<Y;N(V,Q+q*Z,J[U+q]),q++);},X.Unpack=function(Y,Z,V){G=Y.charAt(0)!="<",V=V?V:0;var Q=new RegExp(this._sPattern,"g"),J,U,N,q=[];while(J=Q.exec(Y)){if(U=J[1]==null||J[1]==""?1:parseInt(J[1]),N=this._lenLut[J[2]],V+U*N>Z.length)return;switch(J[2]){case"A":case"s":q.push(this._elLut[J[2]].de(Z,V,U));break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":W=this._elLut[J[2]],q.push(this._UnpackSeries(U,N,Z,V));break}V+=U*N}return Array.prototype.concat.apply([],q)},X.PackTo=function(Y,Z,V,Q){G=Y.charAt(0)!="<";var J=new RegExp(this._sPattern,"g"),U,N,q,A,H=0;while(U=J.exec(Y)){if(N=U[1]==null||U[1]==""?1:parseInt(U[1]),q=this._lenLut[U[2]],V+N*q>Z.length)return!1;switch(U[2]){case"A":case"s":if(H+1>Q.length)return!1;this._elLut[U[2]].en(Z,V,N,Q[H]),H+=1;break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":if(W=this._elLut[U[2]],H+N>Q.length)return!1;this._PackSeries(N,q,Z,V,Q,H),H+=N;break;case"x":for(A=0;A<N;A++)Z[V+A]=0;break}V+=N*q}return Z},X.Pack=function(Y,Z){return this.PackTo(Y,Array(this.CalcLength(Y)),0,Z)},X.CalcLength=function(Y){var Z=new RegExp(this._sPattern,"g"),V=0,Q;while(Q=Z.exec(Y))V+=(Q[1]==null||Q[1]==""?1:parseInt(Q[1]))*this._lenLut[Q[2]];return V}}var a1=new Bh;var P2=v1(YT(),1),NH=v1(gz(),1);import{createSocket as Bd}from"dgram";import{createSocket as Fd}from"dgram";import*as R2 from"net";import{connect as Sd}from"net";import{createSign as kd,randomBytes as _d,webcrypto as yd}from"crypto";var HN0=v1(xT(),1);var D7={};NA(D7,{verifySchema:()=>hm,fromBER:()=>J4,compareSchema:()=>Y4,VisibleString:()=>SW,ViewWriter:()=>dZ,VideotexString:()=>TX,ValueBlock:()=>t8,Utf8String:()=>v5,UniversalString:()=>KX,UTCTime:()=>xW,TimeOfDay:()=>aU,TeletexString:()=>MX,TIME:()=>eU,Set:()=>b9,Sequence:()=>x9,Repeated:()=>zX,RelativeObjectIdentifier:()=>iU,RawData:()=>TP,PrintableString:()=>DX,Primitive:()=>O6,OctetString:()=>K7,ObjectIdentifier:()=>jX,NumericString:()=>CX,Null:()=>O7,Integer:()=>K6,IA5String:()=>PX,HexBlock:()=>j7,GraphicString:()=>RX,GeneralizedTime:()=>EX,GeneralString:()=>LX,Enumerated:()=>wX,EndOfContent:()=>oU,Duration:()=>tU,DateTime:()=>sU,DEFAULT_MAX_NODES:()=>lT,DEFAULT_MAX_DEPTH:()=>pT,DEFAULT_MAX_CONTENT_LENGTH:()=>dT,DATE:()=>rU,Constructed:()=>f8,Choice:()=>nZ,CharacterString:()=>BX,Boolean:()=>IX,BmpString:()=>OX,BitString:()=>C7,BaseStringBlock:()=>lU,BaseBlock:()=>x8,Any:()=>V4});/*!
148
148
  * MIT License
149
149
  *
150
150
  * Copyright (c) 2017-2024 Peculiar Ventures, LLC
@@ -239,18 +239,18 @@ ${W.join(`
239
239
  `)}static pad(W=0){return"".padStart(2*W," ")}static serializeObj(W,G=0){let X=[],Y=this.pad(G++),Z="",V=W[d1.VALUE];if(V)Z=` ${V}`;X.push(`${Y}${W[d1.NAME]}:${Z}`),Y=this.pad(G);for(let Q in W){if(typeof Q==="symbol")continue;let J=W[Q],U=Q?`${Q}: `:"";if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")X.push(`${Y}${U}${J}`);else if(J instanceof Date)X.push(`${Y}${U}${J.toUTCString()}`);else if(Array.isArray(J))for(let N of J)N[d1.NAME]=Q,X.push(...this.serializeObj(N,G));else if(J instanceof d1)J[d1.NAME]=Q,X.push(...this.serializeObj(J,G));else if(S0.isBufferSource(J))if(Q)X.push(`${Y}${U}`),X.push(...this.serializeBufferSource(J,G+1));else X.push(...this.serializeBufferSource(J,G));else if("toTextObject"in J){let N=J.toTextObject();N[d1.NAME]=Q,X.push(...this.serializeObj(N,G))}else throw TypeError("Cannot serialize data in text format. Unsupported type.")}return X}static serializeBufferSource(W,G=0){let X=this.pad(G),Y=S0.toUint8Array(W),Z=[];for(let V=0;V<Y.length;){let Q=[];for(let J=0;J<16&&V<Y.length;J++){if(J===8)Q.push("");let U=Y[V++].toString(16).padStart(2,"0");Q.push(U)}Z.push(`${X}${Q.join(" ")}`)}return Z}static serializeAlgorithm(W){return this.algorithmSerializer.toTextObject(W)}}k6.oidSerializer=D4;k6.algorithmSerializer=x3;var QY;class y6{get rawData(){if(!M1(this,QY,"f"))N8(this,QY,L0.serialize(this.asn),"f");return M1(this,QY,"f")}constructor(...W){if(QY.set(this,void 0),S0.isBufferSource(W[0]))this.asn=L0.parse(W[0],W[1]),N8(this,QY,S0.toArrayBuffer(W[0]),"f"),this.onInit(this.asn);else this.asn=W[0],this.onInit(this.asn)}equal(W){if(W instanceof y6)return _T(W.rawData,this.rawData);return!1}toString(W="text"){switch(W){case"asn":return L0.toString(this.rawData);case"text":return k6.serialize(this.toTextObject());case"hex":return p0.ToHex(this.rawData);case"base64":return p0.ToBase64(this.rawData);case"base64url":return p0.ToBase64Url(this.rawData);default:throw TypeError("Argument 'format' is unsupported value")}}getTextName(){return this.constructor.NAME}toTextObject(){let W=this.toTextObjectEmpty();return W[""]=this.rawData,W}toTextObjectEmpty(W){return new d1(this.getTextName(),{},W)}}QY=new WeakMap;y6.NAME="ASN";class Y5 extends y6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else G=L0.serialize(new j9({extnID:W[0],critical:W[1],extnValue:new W1(S0.toArrayBuffer(W[2]))}));super(G,j9)}onInit(W){this.type=W.extnID,this.critical=W.critical,this.value=W.extnValue.buffer}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.value,W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty(this.critical?"critical":void 0);if(W[d1.NAME]===Y5.NAME)W[d1.NAME]=D4.toString(this.type);return W}}var k3;class x6{static isCryptoKeyPair(W){return W&&W.privateKey&&W.publicKey}static isCryptoKey(W){return W&&W.usages&&W.type&&W.algorithm&&W.extractable!==void 0}constructor(){if(this.items=new Map,this[k3]="CryptoProvider",typeof self<"u"&&typeof crypto<"u")this.set(x6.DEFAULT,crypto);else if(typeof global<"u"&&global.crypto&&global.crypto.subtle)this.set(x6.DEFAULT,global.crypto)}clear(){this.items.clear()}delete(W){return this.items.delete(W)}forEach(W,G){return this.items.forEach(W,G)}has(W){return this.items.has(W)}get size(){return this.items.size}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}[Symbol.iterator](){return this.items[Symbol.iterator]()}get(W=x6.DEFAULT){let G=this.items.get(W.toLowerCase());if(!G)throw Error(`Cannot get Crypto by name '${W}'`);return G}set(W,G){if(typeof W==="string"){if(!G)throw TypeError("Argument 'value' is required");this.items.set(W.toLowerCase(),G)}else this.items.set(x6.DEFAULT,W);return this}}k3=Symbol.toStringTag;x6.DEFAULT="default";var y8=new x6,of=/^[0-2](?:\.[1-9][0-9]*)+$/;function nf(W){return new RegExp(of).test(W)}class Yj{constructor(W={}){this.items={};for(let G in W)this.register(G,W[G])}get(W){return this.items[W]||null}findId(W){if(!nf(W))return this.get(W);return W}register(W,G){this.items[W]=G,this.items[G]=W}}var c9=new Yj;c9.register("CN","2.5.4.3");c9.register("L","2.5.4.7");c9.register("ST","2.5.4.8");c9.register("O","2.5.4.10");c9.register("OU","2.5.4.11");c9.register("C","2.5.4.6");c9.register("DC","0.9.2342.19200300.100.1.25");c9.register("E","1.2.840.113549.1.9.1");c9.register("G","2.5.4.42");c9.register("I","2.5.4.43");c9.register("SN","2.5.4.4");c9.register("T","2.5.4.12");function rf(W,G){return`\\${p0.ToHex(p0.FromUtf8String(G)).toUpperCase()}`}function af(W){return W.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,rf)}class p5{static isASCII(W){for(let G=0;G<W.length;G++)if(W.charCodeAt(G)>255)return!1;return!0}static isPrintableString(W){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(W)}constructor(W,G={}){this.extraNames=new Yj,this.asn=new G8;for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];this.extraNames.register(X,Y)}if(typeof W==="string")this.asn=this.fromString(W);else if(W instanceof G8)this.asn=W;else if(S0.isBufferSource(W))this.asn=L0.parse(W,G8);else this.asn=this.fromJSON(W)}getField(W){let G=this.extraNames.findId(W)||c9.findId(W),X=[];for(let Y of this.asn)for(let Z of Y)if(Z.type===G)X.push(Z.value.toString());return X}getName(W){return this.extraNames.get(W)||c9.get(W)}toString(){return this.asn.map((W)=>W.map((G)=>{let X=this.getName(G.type)||G.type,Y=G.value.anyValue?`#${p0.ToHex(G.value.anyValue)}`:af(G.value.toString());return`${X}=${Y}`}).join("+")).join(", ")}toJSON(){var W;let G=[];for(let X of this.asn){let Y={};for(let Z of X){let V=this.getName(Z.type)||Z.type;(W=Y[V])!==null&&W!==void 0||(Y[V]=[]),Y[V].push(Z.value.anyValue?`#${p0.ToHex(Z.value.anyValue)}`:Z.value.toString())}G.push(Y)}return G}fromString(W){let G=new G8,X=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g,Y=null,Z=",";while(Y=X.exec(`${W},`)){let[,V,Q]=Y,J=Q[Q.length-1];if(J===","||J==="+")Q=Q.slice(0,Q.length-1),Y[3]=J;let U=Y[3];V=this.getTypeOid(V);let N=this.createAttribute(V,Q);if(Z==="+")G[G.length-1].push(N);else G.push(new D6([N]));Z=U}return G}fromJSON(W){let G=new G8;for(let X of W){let Y=new D6;for(let Z in X){let V=this.getTypeOid(Z),Q=X[Z];for(let J of Q){let U=this.createAttribute(V,J);Y.push(U)}}G.push(Y)}return G}getTypeOid(W){if(!/[\d.]+/.test(W))W=this.getName(W)||"";if(!W)throw Error(`Cannot get OID for name type '${W}'`);return W}createAttribute(W,G){let X=new kX({type:W});if(typeof G==="object")for(let Y in G)switch(Y){case"ia5String":X.value.ia5String=G[Y];break;case"utf8String":X.value.utf8String=G[Y];break;case"universalString":X.value.universalString=G[Y];break;case"bmpString":X.value.bmpString=G[Y];break;case"printableString":X.value.printableString=G[Y];break}else if(G[0]==="#")X.value.anyValue=p0.FromHex(G.slice(1));else{let Y=this.processStringValue(G);if(W===this.getName("E")||W===this.getName("DC"))X.value.ia5String=Y;else if(p5.isPrintableString(Y))X.value.printableString=Y;else X.value.utf8String=Y}return X}processStringValue(W){let G=/"(.*?[^\\])?"/.exec(W);if(G)W=G[1];return W.replace(/\\0a/ig,`
240
240
  `).replace(/\\0d/ig,"\r").replace(/\\0g/ig,"\t").replace(/\\(.)/g,"$1")}toArrayBuffer(){return L0.serialize(this.asn)}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||y8.get();else X=W[0]||y8.get();return await X.subtle.digest(Y,this.toArrayBuffer())}}var _3="Cannot initialize GeneralName from ASN.1 data.",K3=`${_3} Unsupported string format in use.`,sf=`${_3} Value doesn't match to GUID regular expression.`,C3=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,D3="1.3.6.1.4.1.311.25.1",M3="1.3.6.1.4.1.311.20.2.3",dw="dns",ow="dn",nw="email",iw="ip",rw="url",aw="guid",sw="upn",nN="id";class K4 extends y6{constructor(...W){let G;if(W.length===2)switch(W[0]){case ow:{let X=new p5(W[1]).toArrayBuffer(),Y=L0.parse(X,G8);G=new V1({directoryName:Y});break}case dw:G=new V1({dNSName:W[1]});break;case nw:G=new V1({rfc822Name:W[1]});break;case aw:{let X=new RegExp(C3,"i").exec(W[1]);if(!X)throw Error("Cannot parse GUID value. Value doesn't match to regular expression");let Y=X.slice(1).map((Z,V)=>{if(V<3)return p0.ToHex(new Uint8Array(p0.FromHex(Z)).reverse());return Z}).join("");G=new V1({otherName:new _W({typeId:D3,value:L0.serialize(new W1(p0.FromHex(Y)))})});break}case iw:G=new V1({iPAddress:W[1]});break;case nN:G=new V1({registeredID:W[1]});break;case sw:{G=new V1({otherName:new _W({typeId:M3,value:L0.serialize(JI.toASN(W[1]))})});break}case rw:G=new V1({uniformResourceIdentifier:W[1]});break;default:throw Error("Cannot create GeneralName. Unsupported type of the name")}else if(S0.isBufferSource(W[0]))G=L0.parse(W[0],V1);else G=W[0];super(G)}onInit(W){if(W.dNSName!=null)this.type=dw,this.value=W.dNSName;else if(W.rfc822Name!=null)this.type=nw,this.value=W.rfc822Name;else if(W.iPAddress!=null)this.type=iw,this.value=W.iPAddress;else if(W.uniformResourceIdentifier!=null)this.type=rw,this.value=W.uniformResourceIdentifier;else if(W.registeredID!=null)this.type=nN,this.value=W.registeredID;else if(W.directoryName!=null)this.type=ow,this.value=new p5(W.directoryName).toString();else if(W.otherName!=null)if(W.otherName.typeId===D3){this.type=aw;let G=L0.parse(W.otherName.value,W1),X=new RegExp(C3,"i").exec(p0.ToHex(G));if(!X)throw Error(sf);this.value=X.slice(1).map((Y,Z)=>{if(Z<3)return p0.ToHex(new Uint8Array(p0.FromHex(Y)).reverse());return Y}).join("-")}else if(W.otherName.typeId===M3)this.type=sw,this.value=L0.parse(W.otherName.value,_8).toString();else throw Error(K3);else throw Error(K3)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let W;switch(this.type){case ow:case dw:case aw:case iw:case nN:case sw:case rw:W=this.type.toUpperCase();break;case nw:W="Email";break;default:throw Error("Unsupported GeneralName type")}let G=this.value;if(this.type===nN)G=D4.toString(G);return new d1(W,void 0,G)}}class _6 extends y6{constructor(W){let G;if(W instanceof q8)G=W;else if(Array.isArray(W)){let X=[];for(let Y of W)if(Y instanceof V1)X.push(Y);else{let Z=L0.parse(new K4(Y.type,Y.value).rawData,V1);X.push(Z)}G=new q8(X)}else if(S0.isBufferSource(W))G=L0.parse(W,q8);else throw Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(G)}onInit(W){let G=[];for(let X of W){let Y=null;try{Y=new K4(X)}catch{continue}G.push(Y)}this.items=G}toJSON(){return this.items.map((W)=>W.toJSON())}toTextObject(){let W=super.toTextObjectEmpty();for(let G of this.items){let X=G.toTextObject(),Y=W[X[d1.NAME]];if(!Array.isArray(Y))Y=[],W[X[d1.NAME]]=Y;Y.push(X)}return W}}_6.NAME="GeneralNames";var QQ="-{5}",UQ="\\n",tf=`[^${UQ}]+`,ef=`${QQ}BEGIN (${tf}(?=${QQ}))${QQ}`,Wc=`${QQ}END \\1${QQ}`,NY="\\n",Gc=`[^:${UQ}]+`,Xc=`(?:[^${UQ}]+${NY}(?: +[^${UQ}]+${NY})*)`,Yc="[a-zA-Z0-9=+/]+",Zc=`(?:${Yc}${NY})+`,T3=`${ef}${NY}(?:((?:${Gc}: ${Xc})+))?${NY}?(${Zc})${Wc}`;class K9{static isPem(W){return typeof W==="string"&&new RegExp(T3,"g").test(W.replace(/\r/g,""))}static decodeWithHeaders(W){W=W.replace(/\r/g,"");let G=new RegExp(T3,"g"),X=[],Y=null;while(Y=G.exec(W)){let Z=Y[3].replace(new RegExp(`[${UQ}]+`,"g"),""),V={type:Y[1],headers:[],rawData:p0.FromBase64(Z)},Q=Y[2];if(Q){let J=Q.split(new RegExp(NY,"g")),U=null;for(let N of J){let[q,A]=N.split(/:(.*)/);if(A===void 0){if(!U)throw Error("Cannot parse PEM string. Incorrect header value");U.value+=q.trim()}else{if(U)V.headers.push(U);U={key:q,value:A.trim()}}}if(U)V.headers.push(U)}X.push(V)}return X}static decode(W){return this.decodeWithHeaders(W).map((X)=>X.rawData)}static decodeFirst(W){let G=this.decode(W);if(!G.length)throw RangeError("PEM string doesn't contain any objects");return G[0]}static encode(W,G){if(Array.isArray(W)){let X=[];if(G)W.forEach((Y)=>{if(!S0.isBufferSource(Y))throw TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");X.push(this.encodeStruct({type:G,rawData:S0.toArrayBuffer(Y)}))});else W.forEach((Y)=>{if(!("type"in Y))throw TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");X.push(this.encodeStruct(Y))});return X.join(`
241
241
  `)}else{if(!G)throw Error("Required argument 'tag' is missed");return this.encodeStruct({type:G,rawData:S0.toArrayBuffer(W)})}}static encodeStruct(W){var G;let X=W.type.toLocaleUpperCase(),Y=[];if(Y.push(`-----BEGIN ${X}-----`),(G=W.headers)===null||G===void 0?void 0:G.length){for(let U of W.headers)Y.push(`${U.key}: ${U.value}`);Y.push("")}let Z=p0.ToBase64(W.rawData),V,Q=0,J=Array();while(Q<Z.length){if(Z.length-Q<64)V=Z.substring(Q);else V=Z.substring(Q,Q+64),Q+=64;if(V.length!==0){if(J.push(V),V.length<64)break}else break}return Y.push(...J),Y.push(`-----END ${X}-----`),Y.join(`
242
- `)}}K9.CertificateTag="CERTIFICATE";K9.CrlTag="CRL";K9.CertificateRequestTag="CERTIFICATE REQUEST";K9.PublicKeyTag="PUBLIC KEY";K9.PrivateKeyTag="PRIVATE KEY";class C4 extends y6{static isAsnEncoded(W){return S0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(K9.isPem(W))return K9.decode(W)[0];else if(p0.isHex(W))return p0.FromHex(W);else if(p0.isBase64(W))return p0.FromBase64(W);else if(p0.isBase64Url(W))return p0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let G=S0.toUint8Array(W);if(G.length>0&&G[0]===48)return S0.toArrayBuffer(W);let X=p0.ToBinary(W);if(K9.isPem(X))return K9.decode(X)[0];else if(p0.isHex(X))return p0.FromHex(X);else if(p0.isBase64(X))return p0.FromBase64(X);else if(p0.isBase64Url(X))return p0.FromBase64Url(X);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(C4.isAsnEncoded(W[0]))super(C4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return K9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class l5 extends C4{static async create(W,G=y8.get()){if(W instanceof l5)return W;else if(x6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let X=await G.subtle.exportKey("spki",W);return new l5(X)}else if(W.publicKey)return W.publicKey;else if(S0.isBufferSource(W))return new l5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(C4.isAsnEncoded(W))super(W,w9);else super(W);this.tag=K9.PublicKeyTag}async export(...W){let G,X=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,X=W[1]||X,G=W[2]||y8.get();else G=W[0]||y8.get();let Z=this.rawData,V=L0.parse(this.rawData,w9);if(V.algorithm.algorithm===E6)Z=Vc(V,Z);return G.subtle.importKey("spki",Z,Y,!0,X)}onInit(W){let G=V8.resolve(QG),X=this.algorithm=G.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case B7:{let Y=L0.parse(W.subjectPublicKey,SV),Z=S0.toUint8Array(Y.modulus);X.publicExponent=S0.toUint8Array(Y.publicExponent),X.modulusLength=(!Z[0]?Z.slice(1):Z).byteLength<<3;break}}}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||y8.get();else X=W[0]||y8.get();return await X.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let G,X="SHA-1";if(W.length===1)if(typeof W[0]==="string")X=W[0],G=y8.get();else G=W[0];else if(W.length===2)X=W[0],G=W[1];else G=y8.get();let Y=L0.parse(this.rawData,w9);return await G.subtle.digest(X,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,w9);switch(W.Algorithm=k6.serializeAlgorithm(G.algorithm),G.algorithm.algorithm){case iW:W["EC Point"]=G.subjectPublicKey;break;case B7:default:W["Raw Data"]=G.subjectPublicKey}return W}}function Vc(W,G){return W.algorithm=new T0({algorithm:B7,parameters:null}),G=L0.serialize(W),G}class NQ extends Y5{static async create(W,G=!1,X=y8.get()){if("name"in W&&"serialNumber"in W)return new NQ(W,G);let Z=await(await l5.create(W,X)).getKeyIdentifier(X);return new NQ(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let G=new q4({keyIdentifier:new _X(p0.FromHex(W[0]))});super(NN,W[1],L0.serialize(G))}else{let G=W[0],X=G.name instanceof _6?L0.parse(G.name.rawData,q8):G.name,Y=new q4({authorityCertIssuer:X,authorityCertSerialNumber:p0.FromHex(G.serialNumber)});super(NN,W[1],L0.serialize(Y))}}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,q4);if(G.keyIdentifier)this.keyId=p0.ToHex(G.keyIdentifier);if(G.authorityCertIssuer||G.authorityCertSerialNumber)this.certId={name:G.authorityCertIssuer||[],serialNumber:G.authorityCertSerialNumber?p0.ToHex(G.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,q4);if(G.authorityCertIssuer)W["Authority Issuer"]=new _6(G.authorityCertIssuer).toTextObject();if(G.authorityCertSerialNumber)W["Authority Serial Number"]=G.authorityCertSerialNumber;if(G.keyIdentifier)W[""]=G.keyIdentifier;return W}}NQ.NAME="Authority Key Identifier";class Zj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,yX);this.ca=G.cA,this.pathLength=G.pathLenConstraint}else{let G=new yX({cA:W[0],pathLenConstraint:W[1]});super(qN,W[2],L0.serialize(G));this.ca=W[0],this.pathLength=W[1]}}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ca)W.CA=this.ca;if(this.pathLength!==void 0)W["Path Length"]=this.pathLength;return W}}Zj.NAME="Basic Constraints";var P3;(function(W){W.serverAuth="1.3.6.1.5.5.7.3.1",W.clientAuth="1.3.6.1.5.5.7.3.2",W.codeSigning="1.3.6.1.5.5.7.3.3",W.emailProtection="1.3.6.1.5.5.7.3.4",W.timeStamping="1.3.6.1.5.5.7.3.8",W.ocspSigning="1.3.6.1.5.5.7.3.9"})(P3||(P3={}));class Vj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,WV);this.usages=G.map((X)=>X)}else{let G=new WV(W[0]);super(KN,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((G)=>D4.toString(G)).join(", "),W}}Vj.NAME="Extended Key Usages";var R3;(function(W){W[W.digitalSignature=1]="digitalSignature",W[W.nonRepudiation=2]="nonRepudiation",W[W.keyEncipherment=4]="keyEncipherment",W[W.dataEncipherment=8]="dataEncipherment",W[W.keyAgreement=16]="keyAgreement",W[W.keyCertSign=32]="keyCertSign",W[W.cRLSign=64]="cRLSign",W[W.encipherOnly=128]="encipherOnly",W[W.decipherOnly=256]="decipherOnly"})(R3||(R3={}));class Qj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,XV);this.usages=G.toNumber()}else{let G=new XV(W[0]);super(CN,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,XV);return W[""]=G.toJSON().join(", "),W}}Qj.NAME="Key Usages";class tN extends Y5{static async create(W,G=!1,X=y8.get()){let Z=await(await l5.create(W,X)).getKeyIdentifier(X);return new tN(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,e9);this.keyId=p0.ToHex(G)}else{let G=typeof W[0]==="string"?p0.FromHex(W[0]):W[0],X=new e9(G);super(bI,W[1],L0.serialize(X));this.keyId=p0.ToHex(G)}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,e9);return W[""]=G,W}}tN.NAME="Subject Key Identifier";class Jj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(uI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,TN);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Jj.NAME="Subject Alternative Name";class l9{static register(W,G){this.items.set(W,G)}static create(W){let G=new Y5(W),X=this.items.get(G.type);if(X)return new X(W);return G}}l9.items=new Map;class Uj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0])){super(W[0]);let X=L0.parse(this.value,aZ);this.policies=X.map((Y)=>Y.policyIdentifier)}else{let X=W[0],Y=(G=W[1])!==null&&G!==void 0?G:!1,Z=new aZ(X.map((V)=>new vX({policyIdentifier:V})));super(AN,Y,L0.serialize(Z));this.policies=X}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((G)=>new d1("",{},D4.toString(G))),W}}Uj.NAME="Certificate Policies";l9.register(AN,Uj);class Nj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else if(Array.isArray(W[0])&&typeof W[0][0]==="string"){let Y=W[0].map((V)=>{return new z4({distributionPoint:new A4({fullName:[new V1({uniformResourceIdentifier:V})]})})}),Z=new P6(Y);super(jN,W[1],L0.serialize(Z))}else{let X=new P6(W[0]);super(jN,W[1],L0.serialize(X))}(G=this.distributionPoints)!==null&&G!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,P6);this.distributionPoints=G}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((G)=>{var X;let Y={};if(G.distributionPoint)Y[""]=(X=G.distributionPoint.fullName)===null||X===void 0?void 0:X.map((Z)=>new K4(Z).toString()).join(", ");if(G.reasons)Y.Reasons=G.reasons.toString();if(G.cRLIssuer)Y["CRL Issuer"]=G.cRLIssuer.map((Z)=>Z.toString()).join(", ");return Y}),W}}Nj.NAME="CRL Distribution Points";class qj extends Y5{constructor(...W){var G,X,Y,Z;if(S0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof vW){let V=new vW(W[0]);super(UN,W[1],L0.serialize(V))}else{let V=W[0],Q=new vW;rN(Q,V,KI,"ocsp"),rN(Q,V,CI,"caIssuers"),rN(Q,V,DI,"timeStamping"),rN(Q,V,MI,"caRepository");super(UN,W[1],L0.serialize(Q))}(G=this.ocsp)!==null&&G!==void 0||(this.ocsp=[]),(X=this.caIssuers)!==null&&X!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(Z=this.caRepository)!==null&&Z!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],L0.parse(W.extnValue,vW).forEach((X)=>{switch(X.accessMethod){case KI:this.ocsp.push(new K4(X.accessLocation));break;case CI:this.caIssuers.push(new K4(X.accessLocation));break;case DI:this.timeStamping.push(new K4(X.accessLocation));break;case MI:this.caRepository.push(new K4(X.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)iN(W,"OCSP",this.ocsp);if(this.caIssuers.length)iN(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)iN(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)iN(W,"CA Repository",this.caRepository);return W}}qj.NAME="Authority Info Access";function iN(W,G,X){if(X.length===1)W[G]=X[0].toTextObject();else{let Y=new d1("");X.forEach((Z,V)=>{let Q=Z.toTextObject(),J=`${Q[d1.NAME]} ${V+1}`,U=Y[J];if(!Array.isArray(U))U=[],Y[J]=U;U.push(Q)}),W[G]=Y}}function rN(W,G,X,Y){let Z=G[Y];if(Z)(Array.isArray(Z)?Z:[Z]).forEach((Q)=>{if(typeof Q==="string")Q=new K4("url",Q);W.push(new T6({accessMethod:X,accessLocation:L0.parse(Q.rawData,V1)}))})}class Hj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(xI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,q8);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Hj.NAME="Issuer Alternative Name";class qY extends y6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else{let X=W[0],Y=Array.isArray(W[1])?W[1].map((Z)=>S0.toArrayBuffer(Z)):[];G=L0.serialize(new I9({type:X,values:Y}))}super(G,I9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((G)=>new d1("",{"":G})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[d1.NAME]===qY.NAME)W[d1.NAME]=D4.toString(this.type);return W}}qY.NAME="Attribute";class Aj extends qY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=new uV({printableString:W[0]});super(pw,[L0.serialize(X)])}(G=this.password)!==null&&G!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],uV);this.password=G.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[d1.VALUE]=this.password,W}}Aj.NAME="Challenge Password";class eN extends qY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=W[0],Y=new W5;for(let Z of X)Y.push(L0.parse(Z.rawData,j9));super(bV,[L0.serialize(Y)])}(G=this.items)!==null&&G!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],W5);this.items=G.map((X)=>l9.create(L0.serialize(X)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.items.map((X)=>X.toTextObject());for(let X of G)W[X[d1.NAME]]=X;return W}}eN.NAME="Extensions";class HQ{static register(W,G){this.items.set(W,G)}static create(W){let G=new qY(W),X=this.items.get(G.type);if(X)return new X(W);return G}}HQ.items=new Map;var AQ="crypto.signatureFormatter";class y3{toAsnSignature(W,G){return S0.toArrayBuffer(G)}toWebSignature(W,G){return S0.toArrayBuffer(G)}}var sN,Wj=sN=class{static createPssParams(G,X){let Y=sN.getHashAlgorithm(G);if(!Y)return null;return new j4({hashAlgorithm:Y,maskGenAlgorithm:new T0({algorithm:$6,parameters:L0.serialize(Y)}),saltLength:X})}static getHashAlgorithm(G){let X=V8.resolve(QG);if(typeof G==="string")return X.toAsnAlgorithm({name:G});if(typeof G==="object"&&G&&"name"in G)return X.toAsnAlgorithm(G);return null}toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in G){let X;if(typeof G.hash==="string")X=G.hash;else if(G.hash&&typeof G.hash==="object"&&"name"in G.hash&&typeof G.hash.name==="string")X=G.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(X.toLowerCase()){case"sha-1":return new T0({algorithm:sX,parameters:null});case"sha-256":return new T0({algorithm:gN,parameters:null});case"sha-384":return new T0({algorithm:tX,parameters:null});case"sha-512":return new T0({algorithm:eX,parameters:null})}}else return new T0({algorithm:B7,parameters:null});break;case"rsa-pss":if("hash"in G){if(!(("saltLength"in G)&&typeof G.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let X=sN.createPssParams(G.hash,G.saltLength);if(!X)throw Error("Cannot create PSS parameters");return new T0({algorithm:E6,parameters:L0.serialize(X)})}else return new T0({algorithm:E6,parameters:null})}return null}toWebAlgorithm(G){switch(G.algorithm){case B7:return{name:"RSASSA-PKCS1-v1_5"};case sX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case gN:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case tX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case eX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case E6:if(G.parameters){let X=L0.parse(G.parameters,j4);return{name:"RSA-PSS",hash:V8.resolve(QG).toWebAlgorithm(X.hashAlgorithm),saltLength:X.saltLength}}else return{name:"RSA-PSS"}}return null}};Wj=sN=j([S6()],Wj);V8.registerSingleton(qQ,Wj);var Gj=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"sha-1":return new T0({algorithm:rW});case"sha-256":return new T0({algorithm:aW});case"sha-384":return new T0({algorithm:sW});case"sha-512":return new T0({algorithm:tW})}return null}toWebAlgorithm(G){switch(G.algorithm){case rW:return{name:"SHA-1"};case aW:return{name:"SHA-256"};case sW:return{name:"SHA-384"};case tW:return{name:"SHA-512"}}return null}};Gj=j([S6()],Gj);V8.registerSingleton(qQ,Gj);class D5{addPadding(W,G){let X=S0.toUint8Array(G),Y=new Uint8Array(W);return Y.set(X,W-X.length),Y.buffer}removePadding(W,G=!1){let X=S0.toUint8Array(W);for(let Y=0;Y<X.length;Y++){if(!X[Y])continue;X=X.slice(Y);break}if(G&&X[0]>127){let Y=new Uint8Array(X.length+1);return Y.set(X,1),Y.buffer}return X.buffer}toAsnSignature(W,G){if(W.name==="ECDSA"){let X=W.namedCurve,Y=D5.namedCurveSize.get(X)||D5.defaultNamedCurveSize,Z=new aX,V=S0.toUint8Array(G);return Z.r=this.removePadding(V.slice(0,Y),!0),Z.s=this.removePadding(V.slice(Y,Y+Y),!0),L0.serialize(Z)}return null}toWebSignature(W,G){if(W.name==="ECDSA"){let X=L0.parse(G,aX),Y=W.namedCurve,Z=D5.namedCurveSize.get(Y)||D5.defaultNamedCurveSize,V=this.addPadding(Z,this.removePadding(X.r)),Q=this.addPadding(Z,this.removePadding(X.s));return kT(V,Q)}return null}}D5.namedCurveSize=new Map;D5.defaultNamedCurveSize=32;var tw="1.3.101.110",L3="1.3.101.111",ew="1.3.101.112",B3="1.3.101.113",Xj=class{toAsnAlgorithm(G){let X=null;switch(G.name.toLowerCase()){case"ed25519":X=ew;break;case"x25519":X=tw;break;case"eddsa":switch(G.namedCurve.toLowerCase()){case"ed25519":X=ew;break;case"ed448":X=B3;break}break;case"ecdh-es":switch(G.namedCurve.toLowerCase()){case"x25519":X=tw;break;case"x448":X=L3;break}}if(X)return new T0({algorithm:X});return null}toWebAlgorithm(G){switch(G.algorithm){case ew:return{name:"Ed25519"};case B3:return{name:"EdDSA",namedCurve:"Ed448"};case tw:return{name:"X25519"};case L3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Xj=j([S6()],Xj);V8.registerSingleton(qQ,Xj);var cV,pV,lV,dV,oV,nV,iV,JY;class v3 extends C4{get subjectName(){if(!M1(this,pV,"f"))N8(this,pV,new p5(this.asn.certificationRequestInfo.subject),"f");return M1(this,pV,"f")}get subject(){if(!M1(this,lV,"f"))N8(this,lV,this.subjectName.toString(),"f");return M1(this,lV,"f")}get signatureAlgorithm(){if(!M1(this,dV,"f")){let W=V8.resolve(QG);N8(this,dV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return M1(this,dV,"f")}get signature(){if(!M1(this,oV,"f"))N8(this,oV,this.asn.signature,"f");return M1(this,oV,"f")}get publicKey(){if(!M1(this,nV,"f"))N8(this,nV,new l5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return M1(this,nV,"f")}get attributes(){if(!M1(this,iV,"f"))N8(this,iV,this.asn.certificationRequestInfo.attributes.map((W)=>HQ.create(L0.serialize(W))),"f");return M1(this,iV,"f")}get extensions(){if(!M1(this,JY,"f")){N8(this,JY,[],"f");let W=this.getAttribute(bV);if(W instanceof eN)N8(this,JY,W.items,"f")}return M1(this,JY,"f")}get tbs(){if(!M1(this,cV,"f"))N8(this,cV,this.asn.certificationRequestInfoRaw||L0.serialize(this.asn.certificationRequestInfo),"f");return M1(this,cV,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,VG]:[W];super(G[0],G[1]);cV.set(this,void 0),pV.set(this,void 0),lV.set(this,void 0),dV.set(this,void 0),oV.set(this,void 0),nV.set(this,void 0),iV.set(this,void 0),JY.set(this,void 0),this.tag=K9.CertificateRequestTag}onInit(W){}getAttribute(W){for(let G of this.attributes)if(G.type===W)return G;return null}getAttributes(W){return this.attributes.filter((G)=>G.type===W)}getExtension(W){for(let G of this.extensions)if(G.type===W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>G.type===W)}async verify(W=y8.get()){let G={...this.publicKey.algorithm,...this.signatureAlgorithm},X=await this.publicKey.export(G,["verify"],W),Y=V8.resolveAll(AQ).reverse(),Z=null;for(let Q of Y)if(Z=Q.toWebSignature(G,this.signature),Z)break;if(!Z)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,X,Z,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,VG),X=G.certificationRequestInfo,Y=new d1("",{Version:`${M7[X.version]} (${X.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let Z=new d1("");for(let V of this.attributes){let Q=V.toTextObject();Z[Q[d1.NAME]]=Q}Y.Attributes=Z}return W.Data=Y,W.Signature=new d1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signature}),W}}cV=new WeakMap,pV=new WeakMap,lV=new WeakMap,dV=new WeakMap,oV=new WeakMap,nV=new WeakMap,iV=new WeakMap,JY=new WeakMap;v3.NAME="PKCS#10 Certificate Request";var rV,aV,sV,tV,eV,WQ,GQ,XQ,YQ,ZQ,UY,VQ;class zj extends C4{get publicKey(){if(!M1(this,VQ,"f"))N8(this,VQ,new l5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return M1(this,VQ,"f")}get serialNumber(){if(!M1(this,aV,"f")){let W=this.asn.tbsCertificate,G=new Uint8Array(W.serialNumber);if(G.length>1&&G[0]===0&&G[1]>127)G=G.slice(1);N8(this,aV,p0.ToHex(G),"f")}return M1(this,aV,"f")}get subjectName(){if(!M1(this,sV,"f"))N8(this,sV,new p5(this.asn.tbsCertificate.subject),"f");return M1(this,sV,"f")}get subject(){if(!M1(this,tV,"f"))N8(this,tV,this.subjectName.toString(),"f");return M1(this,tV,"f")}get issuerName(){if(!M1(this,eV,"f"))N8(this,eV,new p5(this.asn.tbsCertificate.issuer),"f");return M1(this,eV,"f")}get issuer(){if(!M1(this,WQ,"f"))N8(this,WQ,this.issuerName.toString(),"f");return M1(this,WQ,"f")}get notBefore(){if(!M1(this,GQ,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");N8(this,GQ,W,"f")}return M1(this,GQ,"f")}get notAfter(){if(!M1(this,XQ,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");N8(this,XQ,W,"f")}return M1(this,XQ,"f")}get signatureAlgorithm(){if(!M1(this,YQ,"f")){let W=V8.resolve(QG);N8(this,YQ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return M1(this,YQ,"f")}get signature(){if(!M1(this,ZQ,"f"))N8(this,ZQ,this.asn.signatureValue,"f");return M1(this,ZQ,"f")}get extensions(){if(!M1(this,UY,"f")){if(N8(this,UY,[],"f"),this.asn.tbsCertificate.extensions)N8(this,UY,this.asn.tbsCertificate.extensions.map((W)=>l9.create(L0.serialize(W))),"f")}return M1(this,UY,"f")}get tbs(){if(!M1(this,rV,"f"))N8(this,rV,this.asn.tbsCertificateRaw||L0.serialize(this.asn.tbsCertificate),"f");return M1(this,rV,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,h5]:[W];super(G[0],G[1]);rV.set(this,void 0),aV.set(this,void 0),sV.set(this,void 0),tV.set(this,void 0),eV.set(this,void 0),WQ.set(this,void 0),GQ.set(this,void 0),XQ.set(this,void 0),YQ.set(this,void 0),ZQ.set(this,void 0),UY.set(this,void 0),VQ.set(this,void 0),this.tag=K9.CertificateTag}onInit(W){}getExtension(W){for(let G of this.extensions)if(typeof W==="string"){if(G.type===W)return G}else if(G instanceof W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>{if(typeof W==="string")return G.type===W;else return G instanceof W})}async verify(W={},G=y8.get()){let X,Y,Z=W.publicKey;try{if(!Z)X={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(X,["verify"],G);else if("publicKey"in Z)X={...Z.publicKey.algorithm,...this.signatureAlgorithm},Y=await Z.publicKey.export(X,["verify"],G);else if(Z instanceof l5)X={...Z.algorithm,...this.signatureAlgorithm},Y=await Z.export(X,["verify"],G);else if(S0.isBufferSource(Z)){let U=new l5(Z);X={...U.algorithm,...this.signatureAlgorithm},Y=await U.export(X,["verify"],G)}else X={...Z.algorithm,...this.signatureAlgorithm},Y=Z}catch{return!1}let V=V8.resolveAll(AQ).reverse(),Q=null;for(let U of V)if(Q=U.toWebSignature(X,this.signature),Q)break;if(!Q)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let J=await G.subtle.verify(this.signatureAlgorithm,Y,Q,this.tbs);if(W.signatureOnly)return J;else{let N=(W.date||new Date).getTime();return J&&this.notBefore.getTime()<N&&N<this.notAfter.getTime()}}async getThumbprint(...W){let G,X="SHA-1";if(W[0])if(!W[0].subtle)X=W[0]||X,G=W[1];else G=W[0];return G!==null&&G!==void 0||(G=y8.get()),await G.subtle.digest(X,this.rawData)}async isSelfSigned(W=y8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,h5),X=G.tbsCertificate,Y=new d1("",{Version:`${M7[X.version]} (${X.version})`,"Serial Number":X.serialNumber,"Signature Algorithm":k6.serializeAlgorithm(X.signature),Issuer:this.issuer,Validity:new d1("",{"Not Before":X.validity.notBefore.getTime(),"Not After":X.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(X.issuerUniqueID)Y["Issuer Unique ID"]=X.issuerUniqueID;if(X.subjectUniqueID)Y["Subject Unique ID"]=X.subjectUniqueID;if(this.extensions.length){let Z=new d1("");for(let V of this.extensions){let Q=V.toTextObject();Z[Q[d1.NAME]]=Q}Y.Extensions=Z}return W.Data=Y,W.Signature=new d1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signatureValue}),W}}rV=new WeakMap,aV=new WeakMap,sV=new WeakMap,tV=new WeakMap,eV=new WeakMap,WQ=new WeakMap,GQ=new WeakMap,XQ=new WeakMap,YQ=new WeakMap,ZQ=new WeakMap,UY=new WeakMap,VQ=new WeakMap;zj.NAME="Certificate";function Qc(W,G=y8.get()){let X=S0.toUint8Array(p0.FromHex(W||"")),Y=X&&X.length&&X.some((V)=>V>0)?new Uint8Array(X):void 0;if(!Y)Y=G.getRandomValues(new Uint8Array(16));let Z=0;while(Z<Y.length-1&&Y[Z]===0)Z++;if(Y=Y.slice(Z),Y[0]>127){let V=new Uint8Array(Y.length+1);V[0]=0,V.set(Y,1),Y=V}return Y.buffer}class Ij{static async createSelfSigned(W,G=y8.get()){if(!W.keys.privateKey)throw Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!W.keys.publicKey)throw Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:W.serialNumber,subject:W.name,issuer:W.name,notBefore:W.notBefore,notAfter:W.notAfter,publicKey:W.keys.publicKey,signingKey:W.keys.privateKey,signingAlgorithm:W.signingAlgorithm,extensions:W.extensions},G)}static async create(W,G=y8.get()){var X;let Y;if(W.publicKey instanceof l5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(S0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await G.subtle.exportKey("spki",W.publicKey);let Z=Qc(W.serialNumber,G),V=W.notBefore||new Date,Q=W.notAfter||new Date(V.getTime()+31536000000),J=new h5({tbsCertificate:new O9({version:M7.v3,serialNumber:Z,validity:new R6({notBefore:V,notAfter:Q}),extensions:new W5(((X=W.extensions)===null||X===void 0?void 0:X.map((C)=>L0.parse(C.rawData,j9)))||[]),subjectPublicKeyInfo:L0.parse(Y,w9)})});if(W.subject){let C=W.subject instanceof p5?W.subject:new p5(W.subject);J.tbsCertificate.subject=L0.parse(C.toArrayBuffer(),G8)}if(W.issuer){let C=W.issuer instanceof p5?W.issuer:new p5(W.issuer);J.tbsCertificate.issuer=L0.parse(C.toArrayBuffer(),G8)}let U={hash:"SHA-256"},N="signingKey"in W?{...U,...W.signingAlgorithm,...W.signingKey.algorithm}:{...U,...W.signingAlgorithm},q=V8.resolve(QG);J.tbsCertificate.signature=J.signatureAlgorithm=q.toAsnAlgorithm(N);let A=L0.serialize(J.tbsCertificate),H="signingKey"in W?await G.subtle.sign(N,W.signingKey,A):W.signature,I=V8.resolveAll(AQ).reverse(),w=null;for(let C of I)if(w=C.toAsnSignature(N,H),w)break;if(!w)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return J.signatureValue=w,new zj(L0.serialize(J))}}var Jc,Uc,Nc,qc,Hc,E3;(function(W){W[W.unspecified=0]="unspecified",W[W.keyCompromise=1]="keyCompromise",W[W.cACompromise=2]="cACompromise",W[W.affiliationChanged=3]="affiliationChanged",W[W.superseded=4]="superseded",W[W.cessationOfOperation=5]="cessationOfOperation",W[W.certificateHold=6]="certificateHold",W[W.removeFromCRL=8]="removeFromCRL",W[W.privilegeWithdrawn=9]="privilegeWithdrawn",W[W.aACompromise=10]="aACompromise"})(E3||(E3={}));Jc=new WeakMap,Uc=new WeakMap,Nc=new WeakMap,qc=new WeakMap,Hc=new WeakMap;var Ac,zc,Ic,wc,jc,Oc,Kc;Ac=new WeakMap,zc=new WeakMap,Ic=new WeakMap,wc=new WeakMap,jc=new WeakMap,Oc=new WeakMap,Kc=new WeakMap;l9.register(qN,Zj);l9.register(KN,Vj);l9.register(CN,Qj);l9.register(bI,tN);l9.register(NN,NQ);l9.register(uI,Jj);l9.register(jN,Nj);l9.register(UN,qj);l9.register(xI,Hj);HQ.register(pw,Aj);HQ.register(bV,eN);V8.registerSingleton(AQ,y3);V8.registerSingleton(AQ,D5);D5.namedCurveSize.set("P-256",32);D5.namedCurveSize.set("K-256",32);D5.namedCurveSize.set("P-384",48);D5.namedCurveSize.set("P-521",66);var vY=v1(I8(),1),$2=v1(I8(),1),F2=v1(xU(),1);import{createHash as ud,createHmac as hd}from"crypto";import*as M4 from"crypto";var UG=M4&&typeof M4==="object"&&"webcrypto"in M4?M4.webcrypto:M4&&typeof M4==="object"&&("randomBytes"in M4)?M4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function NG(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function CQ(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function d5(W,...G){if(!NG(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function Jq(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");CQ(W.outputLen),CQ(W.blockLen)}function IY(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function IE(W,G){d5(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function P4(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function Uq(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function o5(W,G){return W<<32-G|W>>>G}var wE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),np=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function R4(W){if(d5(W),wE)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=np[W[X]];return G}var T4={_0:48,_9:57,A:65,F:70,a:97,f:102};function zE(W){if(W>=T4._0&&W<=T4._9)return W-T4._0;if(W>=T4.A&&W<=T4.F)return W-(T4.A-10);if(W>=T4.a&&W<=T4.f)return W-(T4.a-10);return}function qG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(wE)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=zE(W.charCodeAt(V)),J=zE(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function Nq(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function DQ(W){if(typeof W==="string")W=Nq(W);return d5(W),W}function o9(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];d5(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class MQ{}function qq(W){let G=(Y)=>W().update(DQ(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function HG(W=32){if(UG&&typeof UG.getRandomValues==="function")return UG.getRandomValues(new Uint8Array(W));if(UG&&typeof UG.randomBytes==="function")return Uint8Array.from(UG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ej=BigInt(0),Bj=BigInt(1);function TQ(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function m6(W,G,X=""){let Y=NG(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function PQ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function jE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Ej:BigInt("0x"+W)}function L4(W){return jE(R4(W))}function $j(W){return d5(W),jE(R4(Uint8Array.from(W).reverse()))}function wY(W,G){return qG(W.toString(16).padStart(G*2,"0"))}function Fj(W,G){return wY(W,G).reverse()}function B8(W,G,X){let Y;if(typeof G==="string")try{Y=qG(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(NG(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var Lj=(W)=>typeof W==="bigint"&&Ej<=W;function RQ(W,G,X){return Lj(W)&&Lj(G)&&Lj(X)&&G<=W&&W<X}function OE(W,G,X,Y){if(!RQ(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function Hq(W){let G;for(G=0;W>Ej;W>>=Bj,G+=1);return G}var f6=(W)=>(Bj<<BigInt(W))-Bj;function KE(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),Z=(I)=>Uint8Array.of(I),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},N=(...I)=>X(Q,V,...I),q=(I=Y(0))=>{if(Q=N(Z(0),I),V=N(),I.length===0)return;Q=N(Z(1),I),V=N()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let I=0,w=[];while(I<G){V=N();let C=V.slice();w.push(C),I+=V.length}return o9(...w)};return(I,w)=>{U(),q(I);let C=void 0;while(!(C=w(A())))q();return U(),C}}function LQ(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function Sj(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),C9=BigInt(1),AG=BigInt(2),ME=BigInt(3),TE=BigInt(4),PE=BigInt(5),ip=BigInt(7),RE=BigInt(8),rp=BigInt(9),LE=BigInt(16);function Z5(W,G){let X=W%G;return X>=_9?X:G+X}function V5(W,G,X){let Y=W;while(G-- >_9)Y*=Y,Y%=X;return Y}function CE(W,G){if(W===_9)throw Error("invert: expected non-zero number");if(G<=_9)throw Error("invert: expected positive modulus, got "+G);let X=Z5(W,G),Y=G,Z=_9,V=C9,Q=C9,J=_9;while(X!==_9){let N=Y/X,q=Y%X,A=Z-Q*N,H=V-J*N;Y=X,X=q,Z=Q,V=J,Q=A,J=H}if(Y!==C9)throw Error("invert: does not exist");return Z5(Z,G)}function xj(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function BE(W,G){let X=(W.ORDER+C9)/TE,Y=W.pow(G,X);return xj(W,Y,G),Y}function ap(W,G){let X=(W.ORDER-PE)/RE,Y=W.mul(G,AG),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,AG),Z),J=W.mul(V,W.sub(Q,W.ONE));return xj(W,J,G),J}function sp(W){let G=T5(W),X=EE(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+ip)/LE;return(J,U)=>{let N=J.pow(U,Q),q=J.mul(N,Y),A=J.mul(N,Z),H=J.mul(N,V),I=J.eql(J.sqr(q),U),w=J.eql(J.sqr(A),U);N=J.cmov(N,q,I),q=J.cmov(H,A,w);let C=J.eql(J.sqr(q),U),D=J.cmov(N,q,C);return xj(J,D,U),D}}function EE(W){if(W<ME)throw Error("sqrt is not defined for small field");let G=W-C9,X=0;while(G%AG===_9)G/=AG,X++;let Y=AG,Z=T5(W);while(DE(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return BE;let V=Z.pow(Y,G),Q=(G+C9)/AG;return function(U,N){if(U.is0(N))return N;if(DE(U,N)!==1)throw Error("Cannot find square root");let q=X,A=U.mul(U.ONE,V),H=U.pow(N,G),I=U.pow(N,Q);while(!U.eql(H,U.ONE)){if(U.is0(H))return U.ZERO;let w=1,C=U.sqr(H);while(!U.eql(C,U.ONE))if(w++,C=U.sqr(C),w===q)throw Error("Cannot find square root");let D=C9<<BigInt(q-w-1),x=U.pow(A,D);q=w,A=U.sqr(x),H=U.mul(H,A),I=U.mul(I,x)}return I}}function tp(W){if(W%TE===ME)return BE;if(W%RE===PE)return ap;if(W%LE===rp)return sp(W);return EE(W)}var ep=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kj(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=ep.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return LQ(W,X),W}function Wl(W,G,X){if(X<_9)throw Error("invalid exponent, negatives unsupported");if(X===_9)return W.ONE;if(X===C9)return G;let Y=W.ONE,Z=G;while(X>_9){if(X&C9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=C9}return Y}function Aq(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function DE(W,G){let X=(W.ORDER-C9)/AG,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function zq(W,G){if(G!==void 0)CQ(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function T5(W,G,X=!1,Y={}){if(W<=_9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:N}=zq(W,Z);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:N,MASK:f6(U),ZERO:_9,ONE:C9,allowedLengths:J,create:(H)=>Z5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return _9<=H&&H<W},is0:(H)=>H===_9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&C9)===C9,neg:(H)=>Z5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>Z5(H*H,W),add:(H,I)=>Z5(H+I,W),sub:(H,I)=>Z5(H-I,W),mul:(H,I)=>Z5(H*I,W),pow:(H,I)=>Wl(A,H,I),div:(H,I)=>Z5(H*CE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>CE(H,W),sqrt:V||((H)=>{if(!q)q=tp(W);return q(A,H)}),toBytes:(H)=>X?Fj(H,N):wY(H,N),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>N)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(N);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=X?$j(H):L4(H);if(Q)w=Z5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>Aq(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function $E(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function _j(W){let G=$E(W);return G+Math.ceil(G/2)}function Iq(W,G,X=!1){let Y=W.length,Z=$E(G),V=_j(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?$j(W):L4(W),J=Z5(Q,G-C9)+C9;return X?Fj(J,Z):wY(J,Z)}function Gl(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,N=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+N,J,Y)}function FE(W,G,X){return W&G^~W&X}function SE(W,G,X){return W&G^W&X^G&X}class wq extends MQ{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=Uq(this.buffer)}update(W){IY(this),W=DQ(W),d5(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=Uq(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){IY(this),IE(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,P4(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let q=V;q<Y;q++)G[q]=0;Gl(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=Uq(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,N=this.get();if(U>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<U;q++)Q.setUint32(4*q,N[q],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var B4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var G9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),X9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jq=BigInt(4294967295),xE=BigInt(32);function Xl(W,G=!1){if(G)return{h:Number(W&jq),l:Number(W>>xE&jq)};return{h:Number(W>>xE&jq)|0,l:Number(W&jq)|0}}function kE(W,G=!1){let X=W.length,Y=new Uint32Array(X),Z=new Uint32Array(X);for(let V=0;V<X;V++){let{h:Q,l:J}=Xl(W[V],G);[Y[V],Z[V]]=[Q,J]}return[Y,Z]}var yj=(W,G,X)=>W>>>X,vj=(W,G,X)=>W<<32-X|G>>>X,zG=(W,G,X)=>W>>>X|G<<32-X,IG=(W,G,X)=>W<<32-X|G>>>X,BQ=(W,G,X)=>W<<64-X|G>>>X-32,EQ=(W,G,X)=>W>>>X-32|G<<64-X;function F7(W,G,X,Y){let Z=(G>>>0)+(Y>>>0);return{h:W+X+(Z/4294967296|0)|0,l:Z|0}}var _E=(W,G,X)=>(W>>>0)+(G>>>0)+(X>>>0),yE=(W,G,X,Y)=>G+X+Y+(W/4294967296|0)|0,vE=(W,G,X,Y)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0),gE=(W,G,X,Y,Z)=>G+X+Y+Z+(W/4294967296|0)|0,uE=(W,G,X,Y,Z)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0)+(Z>>>0),hE=(W,G,X,Y,Z,V)=>G+X+Y+Z+V+(W/4294967296|0)|0;var Zl=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),c6=new Uint32Array(64);class bE extends wq{constructor(W=32){super(64,W,8,!1);this.A=B4[0]|0,this.B=B4[1]|0,this.C=B4[2]|0,this.D=B4[3]|0,this.E=B4[4]|0,this.F=B4[5]|0,this.G=B4[6]|0,this.H=B4[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let q=0;q<16;q++,G+=4)c6[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=c6[q-15],H=c6[q-2],I=o5(A,7)^o5(A,18)^A>>>3,w=o5(H,17)^o5(H,19)^H>>>10;c6[q]=w+c6[q-7]+I+c6[q-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:N}=this;for(let q=0;q<64;q++){let A=o5(Q,6)^o5(Q,11)^o5(Q,25),H=N+A+FE(Q,J,U)+Zl[q]+c6[q]|0,w=(o5(X,2)^o5(X,13)^o5(X,22))+SE(X,Y,Z)|0;N=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,N=N+this.H|0,this.set(X,Y,Z,V,Q,J,U,N)}roundClean(){P4(c6)}destroy(){this.set(0,0,0,0,0,0,0,0),P4(this.buffer)}}var mE=(()=>kE(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((W)=>BigInt(W))))(),Vl=(()=>mE[0])(),Ql=(()=>mE[1])(),p6=new Uint32Array(80),l6=new Uint32Array(80);class gj extends wq{constructor(W=64){super(128,W,16,!1);this.Ah=X9[0]|0,this.Al=X9[1]|0,this.Bh=X9[2]|0,this.Bl=X9[3]|0,this.Ch=X9[4]|0,this.Cl=X9[5]|0,this.Dh=X9[6]|0,this.Dl=X9[7]|0,this.Eh=X9[8]|0,this.El=X9[9]|0,this.Fh=X9[10]|0,this.Fl=X9[11]|0,this.Gh=X9[12]|0,this.Gl=X9[13]|0,this.Hh=X9[14]|0,this.Hl=X9[15]|0}get(){let{Ah:W,Al:G,Bh:X,Bl:Y,Ch:Z,Cl:V,Dh:Q,Dl:J,Eh:U,El:N,Fh:q,Fl:A,Gh:H,Gl:I,Hh:w,Hl:C}=this;return[W,G,X,Y,Z,V,Q,J,U,N,q,A,H,I,w,C]}set(W,G,X,Y,Z,V,Q,J,U,N,q,A,H,I,w,C){this.Ah=W|0,this.Al=G|0,this.Bh=X|0,this.Bl=Y|0,this.Ch=Z|0,this.Cl=V|0,this.Dh=Q|0,this.Dl=J|0,this.Eh=U|0,this.El=N|0,this.Fh=q|0,this.Fl=A|0,this.Gh=H|0,this.Gl=I|0,this.Hh=w|0,this.Hl=C|0}process(W,G){for(let h=0;h<16;h++,G+=4)p6[h]=W.getUint32(G),l6[h]=W.getUint32(G+=4);for(let h=16;h<80;h++){let l=p6[h-15]|0,u=l6[h-15]|0,n=zG(l,u,1)^zG(l,u,8)^yj(l,u,7),c=IG(l,u,1)^IG(l,u,8)^vj(l,u,7),p=p6[h-2]|0,W0=l6[h-2]|0,m=zG(p,W0,19)^BQ(p,W0,61)^yj(p,W0,6),Y0=IG(p,W0,19)^EQ(p,W0,61)^vj(p,W0,6),U0=vE(c,Y0,l6[h-7],l6[h-16]),y=gE(U0,n,m,p6[h-7],p6[h-16]);p6[h]=y|0,l6[h]=U0|0}let{Ah:X,Al:Y,Bh:Z,Bl:V,Ch:Q,Cl:J,Dh:U,Dl:N,Eh:q,El:A,Fh:H,Fl:I,Gh:w,Gl:C,Hh:D,Hl:x}=this;for(let h=0;h<80;h++){let l=zG(q,A,14)^zG(q,A,18)^BQ(q,A,41),u=IG(q,A,14)^IG(q,A,18)^EQ(q,A,41),n=q&H^~q&w,c=A&I^~A&C,p=uE(x,u,c,Ql[h],l6[h]),W0=hE(p,D,l,n,Vl[h],p6[h]),m=p|0,Y0=zG(X,Y,28)^BQ(X,Y,34)^BQ(X,Y,39),U0=IG(X,Y,28)^EQ(X,Y,34)^EQ(X,Y,39),y=X&Z^X&Q^Z&Q,o=Y&V^Y&J^V&J;D=w|0,x=C|0,w=H|0,C=I|0,H=q|0,I=A|0,{h:q,l:A}=F7(U|0,N|0,W0|0,m|0),U=Q|0,N=J|0,Q=Z|0,J=V|0,Z=X|0,V=Y|0;let B=_E(m,U0,o);X=yE(B,W0,Y0,y),Y=B|0}({h:X,l:Y}=F7(this.Ah|0,this.Al|0,X|0,Y|0)),{h:Z,l:V}=F7(this.Bh|0,this.Bl|0,Z|0,V|0),{h:Q,l:J}=F7(this.Ch|0,this.Cl|0,Q|0,J|0),{h:U,l:N}=F7(this.Dh|0,this.Dl|0,U|0,N|0),{h:q,l:A}=F7(this.Eh|0,this.El|0,q|0,A|0),{h:H,l:I}=F7(this.Fh|0,this.Fl|0,H|0,I|0),{h:w,l:C}=F7(this.Gh|0,this.Gl|0,w|0,C|0),{h:D,l:x}=F7(this.Hh|0,this.Hl|0,D|0,x|0),this.set(X,Y,Z,V,Q,J,U,N,q,A,H,I,w,C,D,x)}roundClean(){P4(p6,l6)}destroy(){P4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class fE extends gj{constructor(){super(48);this.Ah=G9[0]|0,this.Al=G9[1]|0,this.Bh=G9[2]|0,this.Bl=G9[3]|0,this.Ch=G9[4]|0,this.Cl=G9[5]|0,this.Dh=G9[6]|0,this.Dl=G9[7]|0,this.Eh=G9[8]|0,this.El=G9[9]|0,this.Fh=G9[10]|0,this.Fl=G9[11]|0,this.Gh=G9[12]|0,this.Gl=G9[13]|0,this.Hh=G9[14]|0,this.Hl=G9[15]|0}}var jY=qq(()=>new bE);var cE=qq(()=>new gj),pE=qq(()=>new fE);class uj extends MQ{constructor(W,G){super();this.finished=!1,this.destroyed=!1,Jq(W);let X=DQ(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),P4(Z)}update(W){return IY(this),this.iHash.update(W),this}digestInto(W){IY(this),d5(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var hj=(W,G,X)=>new uj(W,G).update(X).digest();hj.create=(W,G)=>new uj(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var OY=BigInt(0),wG=BigInt(1);function $Q(W,G){let X=G.negate();return W?X:G}function Oq(W,G){let X=Aq(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function nE(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function bj(W,G){nE(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=f6(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function lE(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=wG;let N=G*Y,q=N+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Jl(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Ul(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var mj=new WeakMap,iE=new WeakMap;function fj(W){return iE.get(W)||1}function dE(W){if(W!==OY)throw Error("invalid wNAF")}class cj{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>OY){if(G&wG)X=X.add(Y);Y=Y.double(),G>>=wG}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=bj(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=bj(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:N,isNeg:q,isNegF:A,offsetF:H}=lE(X,Q,V);if(X=J,N)Z=Z.add($Q(A,G[H]));else Y=Y.add($Q(q,G[U]))}return dE(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=bj(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===OY)break;let{nextN:Q,offset:J,isZero:U,isNeg:N}=lE(X,V,Z);if(X=Q,U)continue;else{let q=G[J];Y=Y.add(N?q.negate():q)}}return dE(X),Y}getPrecomputes(W,G,X){let Y=mj.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);mj.set(G,Y)}}return Y}cached(W,G,X){let Y=fj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=fj(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){nE(G,this.bits),iE.set(W,G),mj.delete(W)}hasCache(W){return fj(W)!==1}}function rE(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>OY||Y>OY){if(X&wG)V=V.add(Z);if(Y&wG)Q=Q.add(Z);Z=Z.double(),X>>=wG,Y>>=wG}return{p1:V,p2:Q}}function aE(W,G,X,Y){Jl(X,W),Ul(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=Hq(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let N=f6(U),q=Array(Number(N)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){q.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&N);q[x]=q[x].add(X[C])}let w=Q;for(let C=q.length-1,D=Q;C>0;C--)D=D.add(q[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function oE(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return kj(G),G}else return T5(W,{isLE:X})}function sE(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let N=G[U];if(!(typeof N==="bigint"&&N>OY))throw Error(`CURVE.${U} must be positive bigint`)}let Z=oE(G.p,X.Fp,Y),V=oE(G.n,X.Fn,Y),J=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of J)if(!Z.isValid(G[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var tE=(W,G)=>(W+(W>=0?G:-G)/W$)/G;function Nl(W,G,X){let[[Y,Z],[V,Q]]=G,J=tE(Q*W,X),U=tE(-Z*W,X),N=W-J*Y-U*V,q=-J*Z-U*Q,A=N<$4,H=q<$4;if(A)N=-N;if(H)q=-q;let I=f6(Math.ceil(Hq(X)/2))+KY;if(N<$4||N>=I||q<$4||q>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}function lj(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function pj(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(TQ(X.lowS,"lowS"),TQ(X.prehash,"prehash"),X.format!==void 0)lj(X.format);return X}class eE extends Error{constructor(W=""){super(W)}}var E4={Err:eE,_tlv:{encode:(W,G)=>{let{Err:X}=E4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=PQ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?PQ(Z.length/2|128):"";return PQ(W)+V+Z+G},decode(W,G){let{Err:X}=E4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let N=G.subarray(Y,Y+U);if(N.length!==U)throw new X("tlv.decode: length bytes not complete");if(N[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let q of N)Q=Q<<8|q;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=E4;if(W<$4)throw new G("integer: negative integers are not allowed");let X=PQ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=E4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return L4(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=E4,Z=B8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:N,l:q}=Y.decode(2,U);if(q.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(N)}},hexFromSig(W){let{_tlv:G,_int:X}=E4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},$4=BigInt(0),KY=BigInt(1),W$=BigInt(2),Kq=BigInt(3),ql=BigInt(4);function d6(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=B8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Hl(W,G={}){let X=sE("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;LQ(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let N=X$(Y,Z);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(TQ(B,"isCompressed"),B){q();let v=!Y.isOdd(_);return o9(G$(v),S)}else return o9(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){m6(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=N,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(f){let e=f instanceof Error?": "+f.message:"";throw Error("bad point: is not on curve, sqrt error"+e)}q();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,Kq),ql),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function l(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Nl(y,U.basises,Z.ORDER)}let c=Sj((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),p=Sj((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=$Q(R,o),B=$Q(_,B),o.add(B)}class m{constructor(y,o,B){this.X=l("x",y),this.Y=l("y",o,!0),this.Z=l("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(m6(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(B8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(Kq);return this}assertValidity(){p(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,Kq),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,Kq),e=Y.mul(o,_),N0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,N0),$0=Y.sub($0,D0),D0=Y.add(o,R);let x0=Y.add(_,v);return D0=Y.mul(D0,x0),x0=Y.add(e,Q0),D0=Y.sub(D0,x0),x0=Y.add(B,R),P=Y.add(S,v),x0=Y.mul(x0,P),P=Y.add(N0,Q0),x0=Y.sub(x0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(N0,b),b=Y.add(N0,b),E=Y.mul(P,b),N0=Y.add(e,e),N0=Y.add(N0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),N0=Y.add(N0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(N0,D0),E=Y.add(E,e),e=Y.mul(x0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,N0),b=Y.mul(x0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>Oq(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=W0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return Oq(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===$4||B.is0())return m.ZERO;if(y===KY)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=rE(m,B,_,v);return W0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===KY)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===KY)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return TQ(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return R4(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return Oq(m,y)}static msm(y,o){return aE(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(d6(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new cj(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function G$(W){return Uint8Array.of(W?2:3)}function X$(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Al(W,G={}){let{Fn:X}=W,Y=G.randomBytes||HG,Z=Object.assign(X$(W.Fp,X),{seed:_j(X.ORDER)});function V(I){try{return!!d6(X,I)}catch(w){return!1}}function Q(I,w){let{publicKey:C,publicKeyUncompressed:D}=Z;try{let x=I.length;if(w===!0&&x!==C)return!1;if(w===!1&&x!==D)return!1;return!!W.fromBytes(I)}catch(x){return!1}}function J(I=Y(Z.seed)){return Iq(m6(I,Z.seed,"seed"),X.ORDER)}function U(I,w=!0){return W.BASE.multiply(d6(X,I)).toBytes(w)}function N(I){let w=J(I);return{secretKey:w,publicKey:U(w)}}function q(I){if(typeof I==="bigint")return!1;if(I instanceof W)return!0;let{secretKey:w,publicKey:C,publicKeyUncompressed:D}=Z;if(X.allowedLengths||w===C)return;let x=B8("key",I).length;return x===C||x===D}function A(I,w,C=!0){if(q(I)===!0)throw Error("first arg must be private key");if(q(w)===!1)throw Error("second arg must be public key");let D=d6(X,I);return W.fromHex(w).multiply(D).toBytes(C)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:N,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(I)=>d6(X,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:Z})}function zl(W,G,X={}){Jq(G),LQ(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||HG,Z=X.hmac||((B,...R)=>hj(G,B,o9(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=Al(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>KY;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){lj(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return m6(B,S,`${R} signature`)}class l{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=E4.toSig(m6(B));return new l(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new l(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(qG(B),R)}addRecoveryBit(B){return new l(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*W$<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let E=v===2||v===3?_+J:_;if(!V.isValid(E))throw Error("recovery id 2 or 3 invalid");let b=V.toBytes(E),k=W.fromBytes(o9(G$((v&1)===0),b)),f=Q.inv(E),e=n(B8("msgHash",B)),N0=Q.create(-e*f),Q0=Q.create(S*f),$0=W.BASE.multiplyUnsafe(N0).add(k.multiplyUnsafe(Q0));if($0.is0())throw Error("point at infinify");return $0.assertValidity(),$0}hasHighS(){return D(this.s)}toBytes(B=C){if(lj(B),B==="der")return qG(E4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return o9(Uint8Array.of(this.recovery),R,_)}return o9(R,_)}toHex(B){return R4(this.toBytes(B))}assertValidity(){}static fromCompact(B){return l.fromBytes(B8("sig",B),"compact")}static fromDER(B){return l.fromBytes(B8("sig",B),"der")}normalizeS(){return this.hasHighS()?new l(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return R4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return R4(this.toBytes("compact"))}}let u=X.bits2int||function(R){if(R.length>8192)throw Error("input is too large");let _=L4(R),S=R.length*8-U;return S>0?_>>BigInt(S):_},n=X.bits2int_modN||function(R){return Q.create(u(R))},c=f6(U);function p(B){return OE("num < 2^"+U,B,$4,c),Q.toBytes(B)}function W0(B,R){return m6(B,void 0,"message"),R?m6(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=pj(_,w);B=W0(B,v);let E=n(B),b=d6(Q,R),k=[p(b),p(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(B8("extraEntropy",Q0))}let f=o9(...k),e=E;function N0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),x0=W.BASE.multiply($0).toAffine(),q1=Q.create(x0.x);if(q1===$4)return;let U1=Q.create(D0*Q.create(e+q1*b));if(U1===$4)return;let J0=(x0.x===q1?0:2)|Number(x0.y&KY),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new l(q1,B0,J0)}return{seed:f,k2sig:N0}}function Y0(B,R,_={}){B=B8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return KE(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||NG(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new l(B.r,B.s);else if(_){try{R=l.fromBytes(B8("sig",B),"der")}catch(v){if(!(v instanceof E4.Err))throw v}if(!R)try{R=l.fromBytes(B8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=pj(S,w);if(_=B8("publicKey",_),R=W0(B8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):l.fromBytes(B8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,N0=n(R),Q0=Q.inv(e),$0=Q.create(N0*Q0),D0=Q.create(f*Q0),x0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(x0.is0())return!1;return Q.create(x0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=pj(_,w);return R=W0(R,S),l.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:l,hash:G})}function Il(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=T5(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function wl(W){let{CURVE:G,curveOpts:X}=Il(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function jl(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,zq(X.Fn.ORDER,X.Fn.BITS))})}function Y$(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=wl(W),V=Hl(G,X),Q=zl(V,Y,Z);return jl(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function CY(W,G){let X=(Y)=>Y$({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Z$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},V$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Q$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},Ol=T5(Z$.p),Kl=T5(V$.p),Cl=T5(Q$.p);var J$=CY({...Z$,Fp:Ol,lowS:!1},jY);var Pq0=CY({...V$,Fp:Kl,lowS:!1},pE);var Rq0=CY({...Q$,Fp:Cl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},cE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Cq=J$;var Z9=v1(I8(),1),W7=v1(I8(),1),g2=v1(I8(),1),MG=v1(I8(),1),f4=v1(I8(),1),c2=v1(xU(),1),PG=v1(I8(),1),i6=v1(I8(),1),RG=v1(I8(),1),fY=v1(I8(),1),r6=v1(I8(),1),LG=v1(I8(),1),G7=v1(I8(),1),X7=v1(I8(),1),zH=v1(I8(),1),e5=v1(I8(),1),a2=v1(I8(),1),Co=v1(H$(),1);import{randomBytes as Wo}from"crypto";import{setTimeout as Go}from"timers/promises";import{createCipheriv as Ao,createDecipheriv as zo}from"crypto";var vq=v1(z$(),1),BG=v1(I8(),1),CG=v1(I8(),1),f7=v1(I8(),1),b7=v1(I8(),1),EG=v1(I8(),1);import{createHmac as VO}from"crypto";import{createCipheriv as WF,createDecipheriv as GF,createHmac as XF,timingSafeEqual as ro}from"crypto";import{createCipheriv as QF,createDecipheriv as JF}from"crypto";import{setTimeout as Vn}from"timers/promises";import{randomBytes as qn}from"crypto";import{createHmac as jS}from"crypto";import{randomBytes as OS}from"crypto";var Pq="undefined",RY=Pq!==typeof Buffer&&Buffer,PY=Pq!==typeof Uint8Array&&Uint8Array,Tq=Pq!==typeof ArrayBuffer&&ArrayBuffer,I$=[0,0,0,0,0,0,0,0],Tl=Array.isArray||Sl,TY=4294967296,Pl=16777216,LY,Rq=j$("Uint64BE",!0,!0),nj=j$("Int64BE",!0,!1);function j$(W,G,X){var Y=G?0:4,Z=G?4:0,V=G?0:3,Q=G?1:2,J=G?2:1,U=G?3:0,N=G?Bl:$l,q=G?El:Fl,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=h,A.toString=l,A.toJSON=h,A.toArray=Rl,RY)A.toBuffer=Ll;if(PY)A.toArrayBuffer=O$;return w[H]=C,w;function w(c,p,W0,m){if(!(this instanceof w))return new w(c,p,W0,m);return D(this,c,p,W0,m)}function C(c){return!!(c&&c[I])}function D(c,p,W0,m,Y0){if(PY&&Tq){if(p instanceof Tq)p=new PY(p);if(m instanceof Tq)m=new PY(m)}if(!p&&!W0&&!m&&!LY){c.buffer=K$(I$,0);return}if(!w$(p,W0)){var U0=LY||Array;Y0=W0,m=p,W0=0,p=LY===RY?RY.alloc(8):new U0(8)}if(c.buffer=p,c.offset=W0|=0,Pq===typeof m)return;if(typeof m==="string")x(p,W0,m,Y0||10);else if(w$(m,Y0))oj(p,W0,m,Y0);else if(typeof Y0==="number")u(p,W0+Y,m),u(p,W0+Z,Y0);else if(m>0)N(p,W0,m);else if(m<0)q(p,W0,m);else oj(p,W0,I$,0)}function x(c,p,W0,m){var Y0=0,U0=W0.length,y=0,o=0;if(W0[0]==="-")Y0++;var B=Y0;while(Y0<U0){var R=parseInt(W0[Y0++],m);if(!(R>=0))break;o=o*m+R,y=y*m+Math.floor(o/TY),o%=TY}if(B)if(y=~y,o)o=TY-o;else y++;u(c,p+Y,y),u(c,p+Z,o)}function h(){var c=this.buffer,p=this.offset,W0=n(c,p+Y),m=n(c,p+Z);if(!X)W0|=0;return W0?W0*TY+m:m}function l(c){var p=this.buffer,W0=this.offset,m=n(p,W0+Y),Y0=n(p,W0+Z),U0="",y=!X&&m&2147483648;if(y)m=~m,Y0=TY-Y0;c=c||10;while(!0){var o=m%c*TY+Y0;if(m=Math.floor(m/c),Y0=Math.floor(o/c),U0=(o%c).toString(c)+U0,!m&&!Y0)break}if(y)U0="-"+U0;return U0}function u(c,p,W0){c[p+U]=W0&255,W0=W0>>8,c[p+J]=W0&255,W0=W0>>8,c[p+Q]=W0&255,W0=W0>>8,c[p+V]=W0&255}function n(c,p){return c[p+V]*Pl+(c[p+Q]<<16)+(c[p+J]<<8)+c[p+U]}}function Rl(W){var G=this.buffer,X=this.offset;if(LY=null,W!==!1&&Tl(G))return G.length===8?G:G.slice(X,X+8);return K$(G,X)}function Ll(W){var G=this.buffer,X=this.offset;if(LY=RY,W!==!1&&RY.isBuffer(G))return G.length===8?G:G.slice(X,X+8);return RY.from(O$.call(this,W))}function O$(W){var G=this.buffer,X=this.offset,Y=G.buffer;if(LY=PY,W!==!1&&!G.offset&&Y instanceof Tq)return Y.byteLength===8?Y:Y.slice(X,X+8);var Z=new PY(8);return oj(Z,0,G,X),Z.buffer}function w$(W,G){var X=W&&W.length;return G|=0,X&&G+8<=X&&typeof W[G]!=="string"}function oj(W,G,X,Y){G|=0,Y|=0;for(var Z=0;Z<8;Z++)W[G++]=X[Y++]&255}function K$(W,G){return Array.prototype.slice.call(W,G,G+8)}function Bl(W,G,X){var Y=G+8;while(Y>G)W[--Y]=X&255,X/=256}function El(W,G,X){var Y=G+8;X++;while(Y>G)W[--Y]=-X&255^255,X/=256}function $l(W,G,X){var Y=G+8;while(G<Y)W[G++]=X&255,X/=256}function Fl(W,G,X){var Y=G+8;X++;while(G<Y)W[G++]=-X&255^255,X/=256}function Sl(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var sQ=v1(rj(),1);import{createHash as $n}from"crypto";import{setTimeout as Fn}from"timers/promises";import{createHash as un}from"crypto";import{isIPv4 as EF}from"net";import{randomBytes as hn}from"crypto";import{isIPv4 as $F}from"net";var bq=v1(M$(),1),LS=v1(g$(),1),ES=v1(rj(),1);import*as yO from"timers/promises";import{randomUUID as mn}from"crypto";import*as BS from"os";import{EventEmitter as tn}from"events";import{randomUUID as Ni}from"crypto";import{setTimeout as IO}from"timers/promises";import{createHash as qi}from"crypto";import{performance as Fq}from"perf_hooks";import{randomUUID as Hi}from"crypto";import{randomUUID as bS}from"crypto";import{setTimeout as _i}from"timers/promises";import{randomBytes as ui}from"crypto";import{isIPv4 as hi}from"net";var tQ=v1(gz(),1);import{randomUUID as bi}from"crypto";import{setTimeout as mi}from"timers/promises";import{randomUUID as di}from"crypto";import{randomUUID as ai}from"crypto";import{createHmac as iF,randomBytes as si}from"crypto";import{randomBytes as Q2}from"crypto";import{randomUUID as J2}from"crypto";import{setTimeout as U2}from"timers/promises";import{randomUUID as Lr}from"crypto";function z2(){return a1.Unpack("!H",A2(2))[0]}function DO(){return a1.Unpack("!L",A2(4))[0]}var nq=class{constructor(W){this.bitLength=W}value=0;set(W,G,X){return X&=(1<<W)-1,this.value|=X<<this.bitLength-W-G,this}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}},I2=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,G=1){let X=BigInt(W),Y=BigInt(G);return X&=(1n<<Y)-1n,this._value|=X<<BigInt(this.bitLength)-Y-this.offset,this.offset+=Y,this}get value(){return Number(this._value)}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}};function g8(W,G,X=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let Z=Y.slice(G,G+X).join("");return Number.parseInt(Z,2)}function E8(W,G){return _q(W)(G)}function _q(W,G){let X=W.reduce((Z,V)=>Z+V,0),Y=G?Buffer.alloc(X):void 0;return(Z)=>{let V=Y||Buffer.alloc(X),Q=0;return Z.forEach((J,U)=>{let N=W[U];if(N===8)V.writeBigUInt64BE(J,Q);else V.writeUIntBE(J,Q,N);Q+=N}),V}}function r9(W,G){let X=0;return G.map((Y)=>{let Z;if(Y===8)Z=W.readBigUInt64BE(X);else Z=W.readUIntBE(X,Y);return X+=Y,Z})}var pQ=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,G){if(W==0)return this;G&=4294967295>>>32-W;let X;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=G<<this.bitsPending-W,X=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=G,X=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=G>>W-this.bitsPending,X=this.bitsPending,this.bitsPending=0;else X=Math.min(8,W),this.bitsPending=8-X,this.uint8Array[this.position++]=G>>W-X<<this.bitsPending;if(W-=X,W>0)this.writeBits(W,G);return this}readBits(W){return this._readBits(W)}_readBits(W,G){if(typeof G>"u")G=0;if(W==0)return G;let X,Y;if(this.bitsPending>0){let Z=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,X=Z>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,X=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,G=G<<Y|X,W>0?this._readBits(W,G):G}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},Cd=3988292384,Dd=2197175160;function w2(W){return typeof W!=="string"}function j2(W){let G=Array(256),X=0;for(let Y=0;Y<256;++Y)X=Y,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,G[Y]=X;return new Int32Array(G)}function O2(W){let G=new Int32Array(4096),X=0,Y=0,Z=0;for(Z=0;Z<256;++Z)G[Z]=W[Z];for(Z=0;Z<256;++Z){Y=W[Z];for(X=256+Z;X<4096;X+=256)Y=G[X]=Y>>>8^W[Y&255]}let V=[];for(Z=1;Z<16;++Z)V[Z-1]=G.subarray(Z*256,Z*256+256);return V}function K2(W,G,X){let Y=G^-1,Z=0,V=W.length,Q=0,J=0;while(Z<V)if(Q=W.charCodeAt(Z++),Q<128)Y=Y>>>8^X[(Y^Q)&255];else if(Q<2048)Y=Y>>>8^X[(Y^(192|Q>>6&31))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];else if(Q>=55296&&Q<57344)Q=(Q&1023)+64,J=W.charCodeAt(Z++)&1023,Y=Y>>>8^X[(Y^(240|Q>>8&7))&255],Y=Y>>>8^X[(Y^(128|Q>>2&63))&255],Y=Y>>>8^X[(Y^(128|J>>6&15|(Q&3)<<4))&255],Y=Y>>>8^X[(Y^(128|J&63))&255];else Y=Y>>>8^X[(Y^(224|Q>>12&15))&255],Y=Y>>>8^X[(Y^(128|Q>>6&63))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];return~Y>>>0}function C2(W,G,X,Y){let[Z,V,Q,J,U,N,q,A,H,I,w,C,D,x,h]=Y,l=G^-1,u=0,n=W.length-15;while(u<n)l=h[W[u++]^l&255]^x[W[u++]^l>>>8&255]^D[W[u++]^l>>>16&255]^C[W[u++]^l>>>24]^w[W[u++]]^I[W[u++]]^H[W[u++]]^A[W[u++]]^q[W[u++]]^N[W[u++]]^U[W[u++]]^J[W[u++]]^Q[W[u++]]^V[W[u++]]^Z[W[u++]]^X[W[u++]];for(n+=15;u<n;)l=l>>>8^X[(l^W[u++])&255];return~l>>>0}var MO=j2(Cd),Md=O2(MO),TO=j2(Dd),Td=O2(TO);function Pd(W,G=0){if(w2(W))return C2(W,G,MO,Md);return K2(W,G,MO)}function D2(W,G=0){if(w2(W))return C2(W,G,TO,Td);return K2(W,G,TO)}function Rd(W,G){return W+G&255}function M9(W,G){return W+G&65535}function yY(W,G){return Number(BigInt(W)+BigInt(G)&0xffffffffn)}function Ld(W){return W&16777215}function M2(W,G){return W<G&&G-W>32768||W>G&&W-G<32768}function m4(W,G){return W<G&&G-W>2147483648||W>G&&W-G<2147483648}function mQ(W,G){return W===G||m4(W,G)}var lQ=(W)=>Number.parseInt(W,10);var T2=(W,G)=>G?G[W]:void 0;async function Ed(W,G,X="udp4",Y){let Z;for(let V=W;V<=G;V++){let Q=Bd(X);if(setImmediate(()=>Q.bind({port:V,address:T2(X,Y)})),await new Promise((U)=>{Q.once("error",(N)=>U(N)),Q.once("listening",()=>U())})){await new Promise((U)=>Q.close(()=>U()));continue}if(Z=Q.address()?.port,await new Promise((U)=>Q.close(()=>U())),W<=Z&&Z<=G)break}if(!Z)throw Error("port not found");return Z}function iq(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var T1=P2.default.debug,f0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let G of this.event.stack)G.execute(...W);(async()=>{for(let G of this.event.promiseStack)await G.execute(...W)})().catch((G)=>{this.onerror(G)})};complete=()=>{if(this.ended)return;for(let W of this.event.stack)if(W.complete)W.complete();if(this.allUnsubscribe(),this.ended=!0,this.onended)this.onended(),this.onended=void 0};error=(W)=>{if(this.ended)return;for(let G of this.event.stack)if(G.error)G.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,G,X)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};pipe(W){this.subscribe((...G)=>{W.execute(...G)})}queuingSubscribe=(W,G,X)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};once=(W,G,X)=>{let Y=this.subscribe((...Z)=>{Y.unSubscribe(),W(...Z)},G,X)};watch=(W,G)=>new Promise((X,Y)=>{let Z=G&&setTimeout(()=>{Y("Event watch timeout")},G),{unSubscribe:V}=this.subscribe((...Q)=>{if(W(...Q)){if(Z)clearTimeout(Z);V(),X(Q)}})});asPromise=(W)=>new Promise((G,X)=>{let Y=W&&setTimeout(()=>{X("Event asPromise timeout")},W);this.once((...Z)=>{if(Y)clearTimeout(Y);G(Z)},()=>{if(Y)clearTimeout(Y);G([])},(Z)=>{if(Y)clearTimeout(Y);X(Z)})});get returnTrigger(){let{execute:W,error:G,complete:X}=this;return{execute:W,error:G,complete:X}}get returnListener(){let{subscribe:W,once:G,asPromise:X}=this;return{subscribe:W,once:G,asPromise:X}}get length(){return this.event.stack.length}},$d=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},u$=T1("werift-ice:packages/ice/src/transport.ts"),PO=class W{constructor(G,X={}){this.socketType=G,this.options=X,this.socket=Fd(G),this.socket.on("message",(Y,Z)=>{if(iq(Z.family)===6)[Z.address]=Z.address.split("%");this.rinfo=Z;try{this.onData(Y,[Z.address,Z.port])}catch(V){u$("onData error",V)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(G,X={}){let Y=new W(G,X);return await Y.init(),Y}async init(){let G=T2(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:G});else if(this.options.portRange){let X=await Ed(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:X,address:G})}else this.socket.bind({address:G});await new Promise((X)=>this.socket.once("listening",X))}send=async(G,X)=>{if(X&&!R2.isIP(X[0]))return new Promise((Y,Z)=>{this.socket.send(G,X[1],X[0],(V)=>{if(V)u$("send error",X,G),Z(V);else Y()})});else X=X??[this.rinfo?.address,this.rinfo?.port],this.socket.send(G,X[1],X[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((G)=>{this.closed=!0,this.socket.once("close",G);try{this.socket.close()}catch(X){G()}})},xd=class W{constructor(G){this.addr=G,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((G,X)=>{try{this.client=Sd({port:this.addr[1],host:this.addr[0]},G)}catch(Y){X(Y)}}),this.client.on("data",(G)=>{let X=[this.client.remoteAddress,this.client.remotePort];this.onData(G,X)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(G)=>{console.log("error",G)})}async init(){await this.connecting}static async init(G){let X=new W(G);return await X.init(),X}get address(){return{}}send=async(G,X)=>{await this.connecting,this.client.write(G,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},p4={rsa_1:1,ecdsa_3:3},rq={sha256_4:4},RO={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},vd=Object.values(RO),a6={x25519_29:29,secp256r1_23:23},L2=Object.values(a6),B2={named_curve_3:3},h$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},gd=[1,64],E2=[{hash:rq.sha256_4,signature:p4.rsa_1},{hash:rq.sha256_4,signature:p4.ecdsa_3}],bd=()=>{let W=Cq.utils.randomPrivateKey(),G=Cq.getPublicKey(W,!1),X=Buffer.from(W),Y=Buffer.from(G);return{privateKey:X,publicKey:Y}},md=({publicKey:W,privateKey:G})=>{let X=Cq.getSharedSecret(G,W);return Buffer.from(X).subarray(1)};function S2(W,G,X){switch(X){case a6.secp256r1_23:return md({publicKey:W,privateKey:G});case a6.x25519_29:return Buffer.from(F2.default.scalarMult(G,W));default:throw Error()}}function b$(W,G,X){let Y=hd(W,G);return Y.update(X),Y.digest()}function WJ(W,G,X,Y="sha256"){let Z=X,V=[],Q=G;do{Q=b$(Y,W,Q);let J=b$(Y,W,Buffer.concat([Q,G]));V.push(J),X-=J.length}while(X>0);return Buffer.concat(V,Z)}function x2(W,G,X){let Y=Buffer.concat([Buffer.from("master secret"),G,X]);return WJ(W,Y,48)}function k2(W,G){let X=_2("sha256",G),Y="extended master secret";return WJ(W,Buffer.concat([Buffer.from("extended master secret"),X]),48)}function fd(W,G,X,Y,Z,V){let Q=V?Y:Z,J=V?Z:Y,U=Buffer.concat([Buffer.from(W),Q,J]);return WJ(X,U,G)}function _2(W,G){return ud(W).update(G).digest()}function y2(W,G,X,Y=12){let Z=_2("sha256",G);return WJ(W,Buffer.concat([Buffer.from(X),Z]),Y)}function cd(W,G){return y2(W,G,"client finished")}function pd(W,G){return y2(W,G,"server finished")}function ld(W,G,X,Y,Z,V,Q="sha256"){let J=Y*2+Z*2,U=W,N=Buffer.concat([X,G]),q=WJ(U,Buffer.concat([Buffer.from("key expansion"),N]),J,Q),A=$2.createDecode(q),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(Z),C=A.readBuffer(Z),D=Buffer.alloc(V,0),x=Buffer.alloc(V,0);return w.copy(D,0),C.copy(x,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:D,serverNonce:x}}var c4={CLIENT:1,SERVER:2},dd=class{id=0;name;hashAlgorithm;verifyDataLength=12;blockAlgorithm;kx;init(...W){throw Error("not implemented")}encrypt(...W){throw Error("not implemented")}decrypt(...W){throw Error("not implemented")}toString(){return this.name}},LO=yd;y8.set(LO);var aq=class{constructor(W,G,X,Y){if(this.sessionType=W,this.certPem=G,this.keyPem=X,G&&X&&Y)this.parseX509(G,X,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,G)=>{let X=(()=>{switch(W.signature){case p4.rsa_1:return"RSASSA-PKCS1-v1_5";case p4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case rq.sha256_4:return"SHA-256"}})(),Z=(()=>{switch(G){case a6.secp256r1_23:return"P-256";case a6.x25519_29:if(X==="ECDSA")return"P-256";return"X25519";default:{if(X==="ECDSA")return"P-256";if(X==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),V=(()=>{switch(X){case"ECDSA":return{name:X,hash:Y,namedCurve:Z};case"RSASSA-PKCS1-v1_5":return{name:X,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),Q=await LO.subtle.generateKey(V,!0,["sign","verify"]),U=(await Ij.createSelfSigned({serialNumber:_d(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+315360000000),signingAlgorithm:V,keys:Q})).toString("pem"),N=K9.encode(await LO.subtle.exportKey("pkcs8",Q.privateKey),"private key");return{certPem:U,keyPem:N,signatureHash:W}};encryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber})}verifyData(W){if(this.sessionType===c4.CLIENT)return cd(this.masterSecret,W);else return pd(this.masterSecret,W)}signatureData(W,G){let X=kd(G).update(W),Y=this.localPrivateKey.toPEM().toString();return X.sign(Y)}generateKeySignature(W){let G=this.sessionType===c4.CLIENT?this.localRandom:this.remoteRandom,X=this.sessionType===c4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(G.serialize(),X.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,G,X){let Y=NH.Certificate.fromPEM(Buffer.from(W)),Z=NH.PrivateKey.fromPEM(Buffer.from(G));this.localCert=Y.raw,this.localPrivateKey=Z,this.signatureHashAlgorithm=X}valueKeySignature(W,G,X,Y){let Z=Buffer.from(vY.encode({type:B2.named_curve_3,curve:Y,len:X.length},{type:vY.types.uint8,curve:vY.types.uint16be,len:vY.types.uint8}).slice());return Buffer.concat([W,G,Z,X])}},sq=class{srtpProfile;static findMatchingSRTPProfile(W,G){for(let X of G)if(W.includes(X))return X}},eO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((G)=>G!=null&&G.length>0).join(",0x"),v2=(W)=>Object.entries({...W}).reduce((G,[X,Y])=>{if(typeof Y==="number"||typeof Y==="string")G[X]=Y;if(Buffer.isBuffer(Y))G[X]=eO(Y);return G},{}),P5=class W{constructor(G,X,Y,Z,V,Q){this.msg_type=G,this.length=X,this.message_seq=Y,this.fragment_offset=Z,this.fragment_length=V,this.fragment=Q}static spec={msg_type:W7.types.uint8,length:W7.types.uint24be,message_seq:W7.types.uint16be,fragment_offset:W7.types.uint24be,fragment_length:W7.types.uint24be,fragment:W7.types.buffer((G)=>G.current.fragment_length)};get summary(){return v2(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(W7.decode(G,W.spec)))}serialize(){let G=W7.encode(this,W.spec).slice();return Buffer.from(G)}chunk(G){let X=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,X,0,this.fragment)];let Z=[];if(!G)G=1240;while(X<Y){let V=Math.min(G,Y-X),Q=Buffer.from(this.fragment.slice(X,X+V));if(Q.length<=0)throw Error("Zero or less bytes processed while fragmenting handshake message.");Z.push(new W(this.msg_type,Y,this.message_seq,X,Q.length,Q)),X+=Q.length}return Z}static assemble(G){if(!G?.length)throw Error("cannot reassemble handshake from empty array");G=G.sort((Y,Z)=>Y.fragment_offset-Z.fragment_offset);let X=Buffer.alloc(G[0].length);for(let Y of G)Y.fragment.copy(X,Y.fragment_offset);return new W(G[0].msg_type,G[0].length,G[0].message_seq,0,X.length,X)}static findAllFragments(G,X){let Y=G.find((Z)=>Z.msg_type===X);if(!Y)return[];if(!G?.length)return[];return G.filter((Z)=>{return Z.msg_type===Y.msg_type&&Z.message_seq===Y.message_seq&&Z.length===Y.length})}},{uint16be:tq,uint24be:od,buffer:u2,array:nd,uint8:nQ,string:id}=g2.types,rd={type:tq,data:u2(tq)},BO=nd(rd,tq,"bytes"),ad=u2(od),sd=nQ,td=id(tq),ed={hash:nQ,signature:nQ},WK={major:nQ,minor:nQ},TG=class W{constructor(G=Math.floor(Date.now()/1000),X=Wo(28)){this.gmt_unix_time=G,this.random_bytes=X}static spec={gmt_unix_time:MG.types.uint32be,random_bytes:MG.types.buffer(28)};static deSerialize(G){return new W(...Object.values(MG.decode(G,W.spec)))}static from(G){return new W(...Object.values(G))}serialize(){let G=MG.encode(this,W.spec).slice();return Buffer.from(G)}},h2=class W{constructor(G,X,Y,Z,V,Q,J){this.clientVersion=G,this.random=X,this.sessionId=Y,this.cookie=Z,this.cipherSuites=V,this.compressionMethods=Q,this.extensions=J}msgType=1;messageSeq=0;static spec={clientVersion:{major:Z9.types.uint8,minor:Z9.types.uint8},random:TG.spec,sessionId:Z9.types.buffer(Z9.types.uint8),cookie:Z9.types.buffer(Z9.types.uint8),cipherSuites:Z9.types.array(Z9.types.uint16be,Z9.types.uint16be,"bytes"),compressionMethods:Z9.types.array(Z9.types.uint8,Z9.types.uint8,"bytes"),extensions:BO};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(Z9.decode(G,W.spec)))}serialize(){let G=Z9.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Xo=class W{constructor(G,X,Y,Z,V){this.epoch=G,this.sequenceNumber=X,this.contentType=Y,this.protocolVersion=Z,this.contentLen=V}static spec={epoch:f4.types.uint16be,sequenceNumber:f4.types.uint48be,contentType:f4.types.uint8,protocolVersion:WK,contentLen:f4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(f4.decode(G,W.spec)))}serialize(){let G=f4.encode(this,W.spec).slice();return Buffer.from(G)}},b2=class W{constructor(G,X){this.recordLayerHeader=G,this.fragment=X}get summary(){return{header:this.recordLayerHeader,fragment:eO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){if(G.length<13)throw Error("Invalid DTLS record: buffer is too short");let X=G.readUInt8(0),Y=G.readUInt8(1),Z=G.readUInt8(2),V=G.readUInt16BE(3),Q=G.slice(5,11).readUIntBE(0,6),J=G.readUInt16BE(11);if(G.length<13+J)throw Error("Invalid DTLS record: fragment length exceeds buffer");let U=G.slice(13,13+J);return new W({contentType:X,protocolVersion:{major:Y,minor:Z},epoch:V,sequenceNumber:Q,contentLen:J},U)}serialize(){let G=this.fragment.length,X=13+G,Y=Buffer.alloc(X);return Y.writeUInt8(this.recordLayerHeader.contentType,0),Y.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),Y.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),Y.writeUInt16BE(this.recordLayerHeader.epoch,3),Y.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),Y.writeUInt16BE(G,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Xo(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},m2=(W)=>(G)=>{return W.lastFlight=G,G.flatMap((X)=>{return X.messageSeq=W.sequenceNumber++,X.toFragment().chunk()})},GJ=(W)=>(G,X)=>{return G.map((Y)=>{return new b2({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:X,contentLen:Y.fragment.length},Y.fragment)})},EO=((W)=>{return W[W.CloseNotify=0]="CloseNotify",W[W.UnexpectedMessage=10]="UnexpectedMessage",W[W.BadRecordMac=20]="BadRecordMac",W[W.DecryptionFailed=21]="DecryptionFailed",W[W.RecordOverflow=22]="RecordOverflow",W[W.DecompressionFailure=30]="DecompressionFailure",W[W.HandshakeFailure=40]="HandshakeFailure",W[W.NoCertificate=41]="NoCertificate",W[W.BadCertificate=42]="BadCertificate",W[W.UnsupportedCertificate=43]="UnsupportedCertificate",W[W.CertificateRevoked=44]="CertificateRevoked",W[W.CertificateExpired=45]="CertificateExpired",W[W.CertificateUnknown=46]="CertificateUnknown",W[W.IllegalParameter=47]="IllegalParameter",W[W.UnknownCa=48]="UnknownCa",W[W.AccessDenied=49]="AccessDenied",W[W.DecodeError=50]="DecodeError",W[W.DecryptError=51]="DecryptError",W[W.ExportRestriction=60]="ExportRestriction",W[W.ProtocolVersion=70]="ProtocolVersion",W[W.InsufficientSecurity=71]="InsufficientSecurity",W[W.InternalError=80]="InternalError",W[W.UserCanceled=90]="UserCanceled",W[W.NoRenegotiation=100]="NoRenegotiation",W[W.UnsupportedExtension=110]="UnsupportedExtension",W})(EO||{}),Yo=T1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZO=T1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),XJ=class W{constructor(G,X,Y,Z){this.transport=G,this.dtls=X,this.flight=Y,this.nextFlight=Z}state="PREPARING";static RetransmitCount=10;createPacket(G){let X=m2(this.dtls)(G);return this.dtls.bufferHandshakeCache(X,!0,this.flight),GJ(this.dtls)(X.map((Z)=>({type:22,fragment:Z.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(G){let X=0;for(;X<=W.RetransmitCount;X++){if(this.setState("SENDING"),this.send(G).catch((Y)=>{ZO("fail to send",ZO)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Go(1000*((X+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else Yo(this.dtls.sessionId,"retransmit",X,this.dtls.flight)}if(X>W.RetransmitCount)throw ZO(this.dtls.sessionId,"retransmit failed",X),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(G)=>Promise.all(G.map((X)=>this.transport.send(X)));setState(G){this.state=G}},Zo=class extends XJ{constructor(W,G,X){super(W,G,1,3);this.cipher=X}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let G=new h2({major:254,minor:253},new TG,Buffer.from([]),Buffer.from([]),vd,[0],W);this.dtls.version=G.clientVersion,this.cipher.localRandom=TG.from(G.random);let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},Vo=T1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),Qo=class extends XJ{constructor(W,G){super(W,G,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[G]=this.dtls.lastFlight;Vo("dtls version",G.clientVersion),G.cookie=W.cookie,this.dtls.cookie=W.cookie;let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},qH={NULL:0,ECDHE:1},YJ={NULL:0,RSA:1,ECDSA:2,PSK:3},ZJ={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},VJ=class{id=0;name;signType;keyType;toString(){return this.name}};function Jo(){let W=new VJ;return W.id=ZJ.RSA,W.name="RSA",W.keyType=YJ.RSA,W}function Uo(){let W=new VJ;return W.id=ZJ.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=qH.ECDHE,W.keyType=YJ.RSA,W}function No(){let W=new VJ;return W.id=ZJ.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=qH.ECDHE,W.keyType=YJ.ECDSA,W}function qo(){let W=new VJ;return W.id=ZJ.PSK,W.name="PSK",W.signType=qH.NULL,W.keyType=YJ.PSK,W}function Ho(){let W=new VJ;return W.id=ZJ.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=qH.ECDHE,W.keyType=YJ.PSK,W}var Io=T1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),wo=class extends dd{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return v2(this)}init(W,G,X){let Y=ld(W,X,G,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=Y.clientWriteKey,this.serverWriteKey=Y.serverWriteKey,this.clientNonce=Y.clientNonce,this.serverNonce=Y.serverNonce}encrypt(W,G,X){let Y=W===c4.CLIENT,Z=Y?this.clientNonce:this.serverNonce,V=Y?this.clientWriteKey:this.serverWriteKey;if(!Z||!V)throw Error();Z.writeUInt16BE(X.epoch,this.nonceImplicitLength),Z.writeUIntBE(X.sequenceNumber,this.nonceImplicitLength+2,6);let Q=Z.slice(this.nonceImplicitLength),J=this.encodeAdditionalBuffer(X,G.length),U=Ao(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});U.setAAD(J,{plaintextLength:G.length});let N=U.update(G),q=U.final(),A=U.getAuthTag();return Buffer.concat([Q,N,q,A])}encodeAdditionalBuffer(W,G){let X=Buffer.alloc(13);return X.writeUInt16BE(W.epoch,0),X.writeUintBE(W.sequenceNumber,2,6),X.writeUInt8(W.type,8),X.writeUInt16BE(W.version,9),X.writeUInt16BE(G,11),X}decrypt(W,G,X){let Y=W===c4.CLIENT,Z=Y?this.serverNonce:this.clientNonce,V=Y?this.serverWriteKey:this.clientWriteKey;if(!Z||!V)throw Error();G.subarray(0,this.nonceExplicitLength).copy(Z,this.nonceImplicitLength);let J=G.subarray(this.nonceExplicitLength,G.length-this.authTagLength),U=G.subarray(G.length-this.authTagLength),N=this.encodeAdditionalBuffer(X,J.length),q=zo(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});q.setAuthTag(U),q.setAAD(N,{plaintextLength:J.length});let A=q.update(J);try{let H=q.final();return H.length>0?Buffer.concat([A,H]):A}catch(H){throw Io("decrypt failed",H,W,eO(G),X,this.summary),H}}},v8={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:49195,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:49196,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:49199,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:49200,TLS_RSA_WITH_AES_128_GCM_SHA256:156,TLS_RSA_WITH_AES_256_GCM_SHA384:157,TLS_PSK_WITH_AES_128_GCM_SHA256:168,TLS_PSK_WITH_AES_256_GCM_SHA384:169,TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:53249,TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:53250,TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256:52396,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:52393,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:52392,TLS_PSK_WITH_CHACHA20_POLY1305_SHA256:52395},kQ={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},_Q={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},m$=Jo(),f$=Uo(),c$=No(),p$=qo(),l$=Ho();function f2(W){switch(W){case v8.TLS_RSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",m$,kQ);case v8.TLS_RSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",m$,_Q,"sha384");case v8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",f$,kQ);case v8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",f$,_Q,"sha384");case v8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",c$,kQ);case v8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",c$,_Q,"sha384");case v8.TLS_PSK_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",p$,kQ,"sha256");case v8.TLS_PSK_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",p$,_Q,"sha384");case v8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",l$,kQ,"sha256");case v8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",l$,_Q,"sha384");default:break}return null}function u7(W,G,X,Y,Z,V="sha256"){let Q=new wo;return Q.id=W,Q.name=G,Q.blockAlgorithm=X,Q.kx=Y,Q.hashAlgorithm=V,Q.keyLength=Z.K_LEN,Q.nonceLength=Z.N_MAX,Q.nonceImplicitLength=4,Q.nonceExplicitLength=8,Q.ivLength=Q.nonceImplicitLength,Q.authTagLength=16,Q}function p2(W){switch(W){case a6.secp256r1_23:{let{privateKey:G,publicKey:X}=bd();return{curve:W,privateKey:G,publicKey:X}}case a6.x25519_29:{let G=c2.default.box.keyPair();return{curve:W,privateKey:Buffer.from(G.secretKey.buffer),publicKey:Buffer.from(G.publicKey.buffer)}}default:throw Error()}}var HH=class{static type=23},AH=class W{static type=65281;static spec={type:PG.types.uint16be,data:PG.types.uint8};type=W.type;data=0;constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(PG.decode(G,W.spec))}serialize(){let G=PG.encode(this,W.spec).slice();return Buffer.from(G)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},gY=class W{static type=14;static spec={type:i6.types.uint16be,data:i6.types.buffer(i6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(G={}){Object.assign(this,G)}static create(G,X){return new W({profiles:G,mki:X})}static deSerialize(G){let X=new W(i6.decode(G,W.spec)),Y=X.data.readUInt16BE(),Z=Array(Y/2);for(let V=0;V<Z.length;V++)Z[V]=X.data.readUInt16BE(V*2+2);return X.profiles=Z,X.mki=X.data.slice(Y+2),X}serialize(){let G=Buffer.alloc(2);G.writeUInt16BE(this.profiles.length*2);let X=Buffer.concat([G,...this.profiles.map((Z)=>{let V=Buffer.alloc(2);return V.writeUInt16BE(Z),V}),this.mki]);this.data=X;let Y=i6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(G){let X=Buffer.alloc(4);return X.writeUInt16BE(W.type),X.writeUInt16BE(G.length,2),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},eq=class W{constructor(G){this.certificateList=G}msgType=11;messageSeq;static spec={certificateList:RG.types.array(ad,RG.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(...Object.values(RG.decode(G,W.spec)))}serialize(){let G=RG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},l2=class W{constructor(G=1){this.type=G}static spec={type:fY.types.uint8};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(fY.decode(G,W.spec)))}serialize(){let G=fY.encode(this,W.spec).slice();return Buffer.from(G)}},d2=class W{constructor(G,X){this.algorithm=G,this.signature=X}msgType=15;messageSeq;static spec={algorithm:r6.types.uint16be,signature:r6.types.buffer(r6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){let X=r6.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=r6.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},o2=class W{constructor(G){this.publicKey=G}msgType=16;messageSeq;static spec={publicKey:LG.types.buffer(LG.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(G){let X=LG.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=LG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},$O=class W{constructor(G){this.verifyData=G}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(G)}serialize(){return this.verifyData}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},n2=class W{constructor(G,X,Y){this.certificateTypes=G,this.signatures=X,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:G7.types.array(sd,G7.types.uint8,"bytes"),signatures:G7.types.array(ed,G7.types.uint16be,"bytes"),authorities:G7.types.array(td,G7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(G7.decode(G,W.spec)))}serialize(){let G=G7.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},i2=class W{constructor(G,X,Y,Z,V,Q){this.serverVersion=G,this.random=X,this.sessionId=Y,this.cipherSuite=Z,this.compressionMethod=V,this.extensions=Q}msgType=2;messageSeq;static spec={serverVersion:WK,random:TG.spec,sessionId:X7.types.buffer(X7.types.uint8),cipherSuite:X7.types.uint16be,compressionMethod:X7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=X7.decode(G,W.spec),Y=new W(...Object.values(X));if(Y.serialize().length<G.length)return new W(...Object.values(X7.decode(G,{...W.spec,extensions:BO})));return Y}serialize(){let G=this.extensions===void 0?X7.encode(this,W.spec).slice():X7.encode(this,{...W.spec,extensions:BO}).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},r2=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(zH.decode(G,W.spec)))}serialize(){let G=zH.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}};function jo(W,G){return Buffer.from(a2.encode(W,G).slice())}var s2=class W{constructor(G,X,Y,Z,V,Q,J,U){this.ellipticCurveType=G,this.namedCurve=X,this.publicKeyLength=Y,this.publicKey=Z,this.hashAlgorithm=V,this.signatureAlgorithm=Q,this.signatureLength=J,this.signature=U}msgType=12;messageSeq;static spec={ellipticCurveType:e5.types.uint8,namedCurve:e5.types.uint16be,publicKeyLength:e5.types.uint8,publicKey:e5.types.buffer((G)=>G.current.publicKeyLength),hashAlgorithm:e5.types.uint8,signatureAlgorithm:e5.types.uint8,signatureLength:e5.types.uint16be,signature:e5.types.buffer((G)=>G.current.signatureLength)};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=e5.decode(G,W.spec);return new W(...Object.values(X))}serialize(){return jo(this,W.spec)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},IH=1,QJ=7;var Oo=(W)=>{switch(W){case IH:case QJ:return 16}},Ko=(W)=>{switch(W){case IH:return 14;case QJ:return 12}},BH0=T1("werift-rtp : packages/rtp/src/codec/av1.ts");var Do={0:"Reserved",1:"OBU_SEQUENCE_HEADER",2:"OBU_TEMPORAL_DELIMITER",3:"OBU_FRAME_HEADER",4:"OBU_TILE_GROUP",5:"OBU_METADATA",6:"OBU_FRAME",7:"OBU_REDUNDANT_FRAME_HEADER",8:"OBU_TILE_LIST",15:"OBU_PADDING"},EH0=Object.entries(Do).reduce((W,[G,X])=>{return W[X]=Number(G),W},{});var $H0=Buffer.from([0,0,0,1]);function d$(W,G){let X=Buffer.alloc(G);return W.copy(X),X}function WH(W){return Number.parseInt(W.toString(),10)}function Mo(W){let G=W[0];return G>127&&G<192}var FO=4,e6=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(G={}){Object.assign(this,G)}static serialize(G,X,Y,Z){let Q=new W({type:G,count:X,version:2,length:Z}).serialize();return Buffer.concat([Q,Y])}serialize(){let G=new nq(8);if(G.set(2,0,this.version),this.padding)G.set(1,2,1);return G.set(5,3,this.count),E8([1,1,2],[G.value,this.type,this.length])}static deSerialize(G){let[X,Y,Z]=r9(G,[1,1,2]),V=g8(X,0,2),Q=g8(X,2,1)>0,J=g8(X,3,5);return new W({version:V,padding:Q,count:J,type:Y,length:Z})}},o$=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(G={}){Object.assign(this,G)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(G){let[X,Y]=r9(G,[4,4]),Z=[];for(let V=8;V<G.length;V+=8)Z.push({ssrc:G.readUInt32BE(V),sequenceNumber:G[V+4]});return new W({senderSsrc:X,mediaSsrc:Y,fir:Z})}serialize(){let G=E8([4,4],[this.senderSsrc,this.mediaSsrc]),X=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:Z},V)=>{X.writeUInt32BE(Y,V*8),X[V*8+4]=Z}),Buffer.concat([G,X])}},GH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y]=r9(G,[4,4]);return new W({senderSsrc:X,mediaSsrc:Y})}serialize(){return E8([4,4],[this.senderSsrc,this.mediaSsrc])}},XH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y,Z,V,Q]=r9(G,[4,4,4,1,1]),J=g8(Q,0,6),U=(g8(Q,6,2)<<16)+(G[14]<<8)+G[15],N=J>46?18446744073709551615n:BigInt(U)<<BigInt(J),q=[];for(let A=16;A<G.length;A+=4){let H=G.slice(A).readUIntBE(0,4);q.push(H)}return new W({senderSsrc:X,mediaSsrc:Y,uniqueID:E8([4],[Z]).toString(),ssrcNum:V,brExp:J,brMantissa:U,ssrcFeedbacks:q,bitrate:N})}serialize(){let G=Buffer.concat([E8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),E8([1],[this.ssrcNum])]),X=new nq(24);X.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((V)=>E8([4],[V]))),Z=Buffer.concat([G,E8([3],[X.value]),Y]);return this.length=Z.length/4,Z}},To=T1("werift-rtp: /rtcp/psfb/index"),iQ=class W{static type=206;type=W.type;feedback;constructor(G={}){Object.assign(this,G)}serialize(){let G=this.feedback.serialize();return e6.serialize(this.type,this.feedback.count,G,this.feedback.length)}static deSerialize(G,X){let Y;switch(X.count){case o$.count:Y=o$.deSerialize(G);break;case GH.count:Y=GH.deSerialize(G);break;case XH.count:Y=XH.deSerialize(G);break;default:To("unknown psfb packet",X.count);break}return new W({feedback:Y})}},rQ=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(G={}){Object.assign(this,G)}serialize(){let G=E8([4],[this.ssrc]);return G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let[Y]=r9(G,[4]),Z=4,V=[];for(let Q=0;Q<X;Q++)V.push(GK.deSerialize(G.slice(Z,Z+24))),Z+=24;return new W({ssrc:Y,reports:V})}},GK=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(G={}){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,fractionLost:this.fractionLost,packetsLost:this.packetsLost,highestSequence:this.highestSequence,jitter:this.jitter,lsr:this.lsr,dlsr:this.dlsr}}serialize(){return E8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(G){let[X,Y,Z,V,Q,J,U]=r9(G,[4,1,3,4,4,4,4]);return new W({ssrc:X,fractionLost:Y,packetsLost:Z,highestSequence:V,jitter:Q,lsr:J,dlsr:U})}},t2=205,YH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:t2,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z]=r9(G,[4,4]),V=[];for(let Q=8;Q<G.length;Q+=4){let[J,U]=r9(G.subarray(Q),[2,2]);V.push(J);for(let N=0;N<16;N++)if(U>>N&1)V.push(J+N+1)}return new W({header:X,senderSsrc:Y,mediaSourceSsrc:Z,lost:V})}serialize(){let G=E8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),X=[];if(this.lost.length>0){let Z=this.lost[0],V=0;this.lost.slice(1).forEach((Q)=>{let J=Q-Z-1;if(J>=0&&J<16)V|=1<<J;else X.push(E8([2,2],[Z,V])),Z=Q,V=0}),X.push(E8([2,2],[Z,V]))}let Y=Buffer.concat([G,Buffer.concat(X)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},Po=T1("werift/rtp/rtcp/rtpfb/twcc"),ZH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:205,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z,V,Q,J,U]=r9(G,[4,4,2,2,3,1]),N=[],q=[],A=16;for(let I=0;I<Q;){let w=g8(G.slice(A,A+1)[0],0,1),C;switch(w){case 0:{let D=dQ.deSerialize(G.slice(A,A+2));C=D;let x=Math.min(Q-I,D.runLength);if(D.packetStatus===1||D.packetStatus===2)for(let h=0;h<x;h++)q.push(new yq({type:D.packetStatus}));I+=x}break;case 1:{let D=Ro.deSerialize(G.slice(A,A+2));if(C=D,D.symbolSize===0)D.symbolList.forEach((x)=>{if(x===1)q.push(new yq({type:1}))});if(D.symbolSize===1)D.symbolList.forEach((x)=>{if(x===1||x===2)q.push(new yq({type:x}))});I+=D.symbolList.length}break}if(!C)throw Error();A+=2,N.push(C)}let H=A;return q.forEach((I)=>{if(I.type===1)I.deSerialize(G.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(G.slice(H,H+2)),H+=2}),new W({senderSsrc:Y,mediaSourceSsrc:Z,baseSequenceNumber:V,packetStatusCount:Q,referenceTime:J,fbPktCount:U,recvDeltas:q,packetChunks:N,header:X})}serialize(){let G=E8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),X=Buffer.concat(this.packetChunks.map((V)=>V.serialize())),Y=Buffer.concat(this.recvDeltas.map((V)=>{try{return V.serialize()}catch(Q){Po(Q?.message);return}}).filter((V)=>V)),Z=Buffer.concat([G,X,Y]);if(this.header.padding&&Z.length%4!==0){let V=4-Z.length%4,Q=Buffer.alloc(V);return Q[Q.length-1]=Q.length,this.header.length=Math.floor((Z.length+Q.length)/4),Buffer.concat([this.header.serialize(),Z,Q])}return this.header.length=Math.floor(Z.length/4),Buffer.concat([this.header.serialize(),Z])}get packetResults(){let G=this.baseSequenceNumber-1,X=this.packetChunks.filter((Q)=>Q instanceof dQ).flatMap((Q)=>Q.results(G)),Y=0,V=BigInt(this.referenceTime)*64n;for(let Q of X){let J=this.recvDeltas[Y];if(!Q.received||!J)continue;V+=BigInt(J.delta)/1000n,Q.delta=J.delta,Q.receivedAtMs=Number(V),Y++}return X}},dQ=class W{type;packetStatus;runLength;constructor(G={}){Object.assign(this,G),this.type=0}static deSerialize(G){let X=g8(G[0],1,2),Y=(g8(G[0],3,5)<<8)+G[1];return new W({type:0,packetStatus:X,runLength:Y})}serialize(){return new I2(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(G){let X=this.packetStatus===1||this.packetStatus===2,Y=[];for(let Z=0;Z<=this.runLength;++Z)Y.push(new Lo({sequenceNumber:++G,received:X}));return Y}},Ro=class W{type;symbolSize;symbolList=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let Y=g8(G[0],1,1),Z=[];function V(Q,J){for(let U=0;U<Q;U++)J(U)}switch(Y){case 0:V(6,(Q)=>Z.push(g8(G[0],2+Q,1))),V(8,(Q)=>Z.push(g8(G[1],Q,1)));break;case 1:V(3,(Q)=>Z.push(g8(G[0],2+Q*2,2))),V(4,(Q)=>Z.push(g8(G[1],Q*2,2)));break;default:Y=(g8(G[0],2,6)<<8)+G[1]}return new W({type:1,symbolSize:Y,symbolList:Z})}serialize(){let G=Buffer.alloc(2),X=new I2(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((Z)=>{X.set(Z,Y)}),G.writeUInt16BE(X.value),G}},yq=class W{type;delta;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X,Y;if(G.length===1)X=1,Y=250*G[0];else if(G.length===2)X=2,Y=250*G.readInt16BE();if(X===void 0||Y===void 0)throw Error();return new W({type:X,delta:Y})}deSerialize(G){let X=W.deSerialize(G);this.delta=X.delta}parsed=!1;parseDelta(){if(this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255){if(this.delta>32767)this.delta=32767;if(this.delta<-32768)this.delta=-32768;if(!this.type)this.type=2}else if(!this.type)this.type=1;this.parsed=!0}serialize(){if(!this.parsed)this.parseDelta();if(this.type===1){let G=Buffer.alloc(1);return G.writeUInt8(this.delta),G}else if(this.type===2){let G=Buffer.alloc(2);return G.writeInt16BE(this.delta),G}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var Lo=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},Bo=T1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),uY=class W{static type=t2;type=W.type;feedback;header;constructor(G={}){Object.assign(this,G)}serialize(){return this.feedback.serialize()}static deSerialize(G,X){let Y;switch(X.count){case YH.count:Y=YH.deSerialize(G,X);break;case ZH.count:Y=ZH.deSerialize(G,X);break;default:Bo("unknown rtpfb packet",X.count);break}return new W({feedback:Y,header:X})}},VH=class W{static type=202;type=W.type;chunks=[];constructor(G){Object.assign(this,G)}get length(){let G=0;return this.chunks.forEach((X)=>G+=X.length),G}serialize(){let G=Buffer.concat(this.chunks.map((X)=>X.serialize()));while(G.length%4)G=Buffer.concat([G,Buffer.from([0])]);return e6.serialize(this.type,this.chunks.length,G,G.length/4)}static deSerialize(G,X){let Y=[];for(let Z=0;Z<G.length;){let V=e2.deSerialize(G.slice(Z));Y.push(V),Z+=V.length}return new W({chunks:Y})}},e2=class W{source;items=[];constructor(G={}){Object.assign(this,G)}get length(){let G=4;return this.items.forEach((X)=>G+=X.length),G+=1,G+=n$(G),G}serialize(){let G=Buffer.concat([E8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([G,Buffer.alloc(n$(G.length))])}static deSerialize(G){let X=G.readUInt32BE(),Y=[];for(let Z=4;Z<G.length;){if(G[Z]===0)break;let Q=WS.deSerialize(G.slice(Z));Y.push(Q),Z+=Q.length}return new W({source:X,items:Y})}},WS=class W{type;text;constructor(G){Object.assign(this,G)}get length(){return 2+Buffer.from(this.text).length}serialize(){let G=Buffer.from(this.text);return Buffer.concat([E8([1,1],[this.type,G.length]),G])}static deSerialize(G){let X=G[0],Y=G[1],Z=G.slice(2,2+Y).toString();return new W({type:X,text:Z})}};function n$(W){if(W%4==0)return 0;return 4-W%4}var hY=class W{ssrc=0;senderInfo;reports=[];static type=200;type=W.type;constructor(G){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((G)=>G.toJSON())}}serialize(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.ssrc),G=Buffer.concat([G,this.senderInfo.serialize()]),G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let Y=G.readUInt32BE(),Z=GS.deSerialize(G.subarray(4,24)),V=24,Q=[];for(let U=0;U<X;U++)Q.push(GK.deSerialize(G.subarray(V,V+24))),V+=24;return new W({ssrc:Y,senderInfo:Z,reports:Q})}},GS=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(G={}){Object.assign(this,G)}toJSON(){return{ntpTimestamp:Eo(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return E8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(G){let[X,Y,Z,V]=r9(G,[8,4,4,4]);return new W({ntpTimestamp:X,rtpTimestamp:Y,packetCount:Z,octetCount:V})}},Eo=(W)=>{let[G,X]=r9(E8([8],[W]),[4,4]);return Number(`${G}.${X}`)},$o=T1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),Fo=class{static deSerialize(W){let G=0,X=[];while(G<W.length){let Y=e6.deSerialize(W.subarray(G,G+FO));G+=FO;let Z=W.subarray(G);if(G+=Y.length*4,Y.padding)Z=Z.subarray(0,Z.length-Z.subarray(-1)[0]);try{switch(Y.type){case hY.type:X.push(hY.deSerialize(Z,Y.count));break;case rQ.type:X.push(rQ.deSerialize(Z,Y.count));break;case VH.type:X.push(VH.deSerialize(Z,Y));break;case uY.type:X.push(uY.deSerialize(Z,Y));break;case iQ.type:X.push(iQ.deSerialize(Z,Y));break;default:break}}catch(V){$o("deSerialize RTCP",V)}}return X}};function So(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var D9={sdesMid:"urn:ietf:params:rtp-hdrext:sdes:mid",sdesRTPStreamID:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",repairedRtpStreamId:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",transportWideCC:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",absSendTime:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",dependencyDescriptor:"https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension",audioLevelIndication:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",videoOrientation:"urn:3gpp:video-orientation"};function xo(W,G){return W.map((X)=>{let Y=G[X.id];if(!Y)return{uri:"unknown",value:X.payload};switch(Y){case D9.sdesMid:case D9.sdesRTPStreamID:case D9.repairedRtpStreamId:return{uri:Y,value:uo(X.payload)};case D9.transportWideCC:return{uri:Y,value:ho(X.payload)};case D9.absSendTime:return{uri:Y,value:bo(X.payload)};case D9.audioLevelIndication:return{uri:Y,value:mo(X.payload)};case D9.videoOrientation:return{uri:Y,value:fo(X.payload)};default:return{uri:Y,value:X.payload}}}).reduce((X,Y)=>{if(Y)X[Y.uri]=Y.value;return X},{})}function ko(W){return Buffer.from(W)}function _o(W){return Buffer.from(W)}function yo(W){return Buffer.from(W)}function vo(W){return E8([2],[W])}function go(W){let G=Buffer.alloc(3),X=W>>14n&0x00ffffffn;return G.writeUIntBE(Number(X),0,3),G}function uo(W){return W.toString()}function ho(W){return W.readUInt16BE()}function bo(W){return r9(W,[3])[0]}function mo(W){let G=new pQ(W);return{v:G.readBits(1)===1,level:G.readBits(7)}}function fo(W){let G=new pQ(W);return G.readBits(4),{c:G.readBits(1),f:G.readBits(1),r1:G.readBits(1),r0:G.readBits(1)}}var co=T1("packages/rtp/src/rtp/red/packet.ts"),XS=class W{header;blocks=[];static deSerialize(G){let X=G instanceof ArrayBuffer?Buffer.from(G):G,Y=new W,Z=0;return[Y.header,Z]=i$.deSerialize(X),Y.header.fields.forEach(({blockLength:V,timestampOffset:Q,blockPT:J})=>{if(V&&Q){let U=X.subarray(Z,Z+V);Y.blocks.push({block:U,blockPT:J,timestampOffset:Q}),Z+=V}else{let U=X.subarray(Z);Y.blocks.push({block:U,blockPT:J})}}),Y}serialize(){this.header=new i$;for(let{timestampOffset:X,blockPT:Y,block:Z}of this.blocks)if(X)this.header.fields.push({fBit:1,blockPT:Y,blockLength:Z.length,timestampOffset:X});else this.header.fields.push({fBit:0,blockPT:Y});let G=this.header.serialize();for(let{block:X}of this.blocks)G=Buffer.concat([G,X]);return G}},i$=class W{fields=[];static deSerialize(G){let X=0,Y=new W;for(;;){let Z={};Y.fields.push(Z);let V=new pQ(G.subarray(X));if(Z.fBit=V.readBits(1),Z.blockPT=V.readBits(7),X++,Z.fBit===0)break;Z.timestampOffset=V.readBits(14),Z.blockLength=V.readBits(10),X+=3}return[Y,X]}serialize(){let G=Buffer.alloc(0);for(let X of this.fields)try{if(X.timestampOffset&&X.blockLength){let Y=new pQ(Buffer.alloc(4)).writeBits(1,X.fBit).writeBits(7,X.blockPT).writeBits(14,X.timestampOffset).writeBits(10,X.blockLength);G=Buffer.concat([G,Y.uint8Array])}else{let Y=new pQ(Buffer.alloc(1)).writeBits(1,0).writeBits(7,X.blockPT);G=Buffer.concat([G,Y.uint8Array])}}catch(Y){co(Y?.message)}return G}},po=class{constructor(W=1){this.distance=W}cache=[];cacheSize=10;push(W){if(this.cache.push(W),this.cache.length>this.cacheSize)this.cache.shift()}build(){let W=new XS,G=this.cache.slice(-(this.distance+1)),X=G.pop();if(!X)return W;return G.forEach((Y)=>{let Z=yY(X.timestamp,-Y.timestamp);if(Z>lo)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:Z})}),W.blocks.push({block:X.block,blockPT:X.blockPT}),W}},lo=16383,oo=class{size=150;sequenceNumbers=[];push(W,G){let X=[];return W.blocks.forEach(({blockPT:Z,timestampOffset:V,block:Q},J)=>{let U=M9(G.header.sequenceNumber,-(W.blocks.length-(J+1)));if(V)X.push(new t6(new s6({timestamp:yY(G.header.timestamp,-V),payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q));else X.push(new t6(new s6({timestamp:G.header.timestamp,payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q))}),X.filter((Z)=>{if(this.sequenceNumbers.includes(Z.header.sequenceNumber))return!1;else{if(this.sequenceNumbers.length>this.size)this.sequenceNumbers.shift();return this.sequenceNumbers.push(Z.header.sequenceNumber),!0}})}},OG={OneByte:48862,TwoByte:4096},r$=2,a$=4,s$=8,t$=12,e$=4,s6=class W{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=OG.OneByte;extensionLength;extensions=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X=new W,Y=0,Z=G[Y++];X.version=g8(Z,0,2),X.padding=g8(Z,2)>0,X.extension=g8(Z,3)>0,X.csrcLength=g8(Z,4,4),X.csrc=[...Array(X.csrcLength)].map(()=>{let Q=G.readUInt32BE(Y);return Y+=4,Q}),Y+=t$-1;let V=G[1];X.marker=g8(V,0)>0,X.payloadType=g8(V,1,7),X.sequenceNumber=G.readUInt16BE(r$),X.timestamp=G.readUInt32BE(a$),X.ssrc=G.readUInt32BE(s$);for(let Q=0;Q<X.csrc.length;Q++){let J=t$+Q*e$;X.csrc[Q]=G.subarray(J).readUInt32BE()}if(X.extension){X.extensionProfile=G.subarray(Y).readUInt16BE(),Y+=2;let Q=G.subarray(Y).readUInt16BE()*4;switch(X.extensionLength=Q,Y+=2,X.extensionProfile){case OG.OneByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y]>>4,N=(G[Y]&(G[Y]^240))+1;if(Y++,U===15)break;let q={id:U,payload:G.subarray(Y,Y+N)};X.extensions=[...X.extensions,q],Y+=N}}break;case OG.TwoByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y];Y++;let N=G[Y];Y++;let q={id:U,payload:G.subarray(Y,Y+N)};X.extensions=[...X.extensions,q],Y+=N}}break;default:{let J={id:0,payload:G.subarray(Y,Y+Q)};X.extensions=[...X.extensions,J],Y+=X.extensions[0].payload.length}break}}if(X.payloadOffset=Y,X.padding)X.paddingSize=G[G.length-1];return X}get serializeSize(){let{csrc:G,extensionProfile:X,extensions:Y}=this,Z=12+G.length*e$;if(Y.length>0||this.extension===!0){let V=4;switch(X){case OG.OneByte:for(let Q of Y)V+=1+Q.payload.length;break;case OG.TwoByte:for(let Q of Y)V+=2+Q.payload.length;break;default:V+=Y[0].payload.length}Z+=Math.floor((V+3)/4)*4}return Z}serialize(G){let X=Buffer.alloc(G),Y=0,Z=new nq(8);if(Z.set(2,0,this.version),this.padding)Z.set(1,2,1);if(this.extensions.length>0)this.extension=!0;if(this.extension)Z.set(1,3,1);Z.set(4,4,this.csrc.length),X.writeUInt8(Z.value,Y++);let V=new nq(8);if(this.marker)V.set(1,0,1);V.set(7,1,this.payloadType),X.writeUInt8(V.value,Y++),X.writeUInt16BE(this.sequenceNumber,r$),Y+=2,X.writeUInt32BE(this.timestamp,a$),Y+=4,X.writeUInt32BE(this.ssrc,s$),Y+=4;for(let Q of this.csrc)X.writeUInt32BE(Q,Y),Y+=4;if(this.extension){let Q=Y;X.writeUInt16BE(this.extensionProfile,Y),Y+=4;let J=Y;switch(this.extensionProfile){case OG.OneByte:for(let q of this.extensions)X.writeUInt8(q.id<<4|q.payload.length-1,Y++),q.payload.copy(X,Y),Y+=q.payload.length;break;case OG.TwoByte:for(let q of this.extensions)X.writeUInt8(q.id,Y++),X.writeUInt8(q.payload.length,Y++),q.payload.copy(X,Y),Y+=q.payload.length;break;default:{let q=this.extensions[0].payload.length;if(q%4!=0)throw Error();this.extensions[0].payload.copy(X,Y),Y+=q}}let U=Y-J,N=Math.trunc((U+3)/4)*4;X.writeUInt16BE(Math.trunc(N/4),Q+2);for(let q=0;q<N-U;q++)X.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,X}},t6=class W{constructor(G,X){this.header=G,this.payload=X}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new s6({...this.header}),this.payload)}serialize(){let G=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:X}=this.header;if(this.payload.copy(G,X),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),G=Buffer.concat([G,Y])}return G}static deSerialize(G){let X=s6.deSerialize(G);return new W(X,G.subarray(X.payloadOffset,G.length-X.paddingSize))}clear(){this.payload=null}};function no(W,G,X){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:a1.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:X}),W.payload.subarray(2))}function io(W,G,X,Y){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:X,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(a1.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var YS=class{constructor(W,G,X,Y){this.srtpSessionKey=W,this.srtpSessionSalt=G,this.srtcpSessionKey=X,this.srtcpSessionSalt=Y}encryptRtp(W,G,X){return Buffer.from([])}decryptRtp(W,G,X){return[]}encryptRTCP(W,G){return Buffer.from([])}decryptRTCP(W){return[]}},bY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},YF=12,ao=8;function XK(W,G,X="Failed to authenticate SRTP packet"){let Y=W.length-G;aQ(W.length>=YF+G,X);let Z=VS(()=>s6.deSerialize(W.subarray(0,Y)),X);return Z.paddingSize=0,aQ(Z.payloadOffset>=YF&&Z.payloadOffset<=Y,X),Z}function ZS(W,G,X,Y="Failed to authenticate SRTCP packet"){return aQ(W.length>=ao+G+X,Y),VS(()=>e6.deSerialize(W.subarray(0,FO)),Y)}function aQ(W,G){if(!W)throw new bY(G)}function VS(W,G){try{return W()}catch{throw new bY(G)}}function QS(W,G,X="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;aQ(G.length>W.payloadOffset,X);let Y=G[G.length-1];return aQ(Y>0&&Y<=G.length-W.payloadOffset,X),W.paddingSize=Y,W}var so=class extends YS{constructor(W,G,X,Y,Z,V){super(W,G,X,Y);this.srtpSessionAuthTag=Z,this.srtcpSessionAuthTag=V}authTagLength=10;encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.generateCounter(W.sequenceNumber,X,W.ssrc,this.srtpSessionSalt),Q=WF("aes-128-ctr",this.srtpSessionKey,Z).update(G),J=this.generateSrtpAuthTag(X,Y,Q);return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.authTagLength)){let Y=W.length-this.authTagLength,Z=W.subarray(0,Y),V=W.subarray(Y),Q=this.generateSrtpAuthTag(G,Z.subarray(0,X.payloadOffset),Z.subarray(X.payloadOffset));VF(V,Q,"Failed to authenticate SRTP packet");let J=this.generateCounter(X.sequenceNumber,G,X.ssrc,this.srtpSessionSalt),U=GF("aes-128-ctr",this.srtpSessionKey,J),N=Z.subarray(X.payloadOffset),q=U.update(N),A=Buffer.concat([Z.subarray(0,X.payloadOffset),q]);return[A,QS(X,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=Buffer.from(W),Y=X.readUInt32BE(4),Z=this.generateCounter(G&65535,G>>16,Y,this.srtcpSessionSalt);WF("aes-128-ctr",this.srtcpSessionKey,Z).update(X.slice(8)).copy(X,8),X=Buffer.concat([X,Buffer.alloc(4)]),X.writeUInt32BE(G,X.length-4),X[X.length-4]|=128;let J=this.generateSrtcpAuthTag(X);return X=Buffer.concat([X,J]),X}decryptRTCP(W){let G=ZS(W,this.authTagLength,ZF),X=W.length-(this.authTagLength+ZF),Y=W.subarray(0,W.length-this.authTagLength),Z=W.subarray(W.length-this.authTagLength),V=this.generateSrtcpAuthTag(Y);VF(Z,V,"Failed to authenticate SRTCP packet");let Q=Buffer.from(W).slice(0,X);if(W[X]>>>7===0)return[Q,G];let U=W.readUInt32BE(X);U&=2147483647;let N=W.readUInt32BE(4),q=this.generateCounter(U&65535,U>>16,N,this.srtcpSessionSalt);return GF("aes-128-ctr",this.srtcpSessionKey,q).update(Q.subarray(8)).copy(Q,8),[Q,G]}generateSrtcpAuthTag(W){return XF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,G,X,Y){let Z=Buffer.alloc(16);Z.writeUInt32BE(X,4),Z.writeUInt32BE(G,8),Z.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let V=0;V<Y.length;V++)Z[V]^=Y[V];return Z}generateSrtpAuthTag(W,...G){let X=XF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let Z of G)X.update(Z);return X.update(Y).digest().subarray(0,10)}},ZF=4;function VF(W,G,X){if(W.length!==G.length||!ro(W,G))throw new bY(X)}var to=class extends YS{aeadAuthTagLen=16;rtpIvWriter=_q([2,4,4,2],!0);rtcpIvWriter=_q([2,4,2,4],!0);aadWriter=_q([4],!0);constructor(W,G,X,Y){super(W,G,X,Y)}encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.rtpInitializationVector(W,X),V=QF("aes-128-gcm",this.srtpSessionKey,Z);V.setAAD(Y);let Q=V.update(G);V.final();let J=V.getAuthTag();return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.aeadAuthTagLen)){let Y=W.subarray(0,X.payloadOffset),Z=W.length-this.aeadAuthTagLen,V=W.subarray(Z),Q=Buffer.from([]);Q=d$(Q,W.length-this.aeadAuthTagLen),Y.copy(Q);let J=this.rtpInitializationVector(X,G),U=W.slice(X.payloadOffset,Z),N=JF("aes-128-gcm",this.srtpSessionKey,J);N.setAAD(Y),N.setAuthTag(V);let q=N.update(U);return NF(N,"SRTP"),q.copy(Q,X.payloadOffset),[Q,QS(X,Q,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,Z=Buffer.from([]);Z=d$(Z,Y+QO),W.slice(0,8).copy(Z);let V=this.rtcpInitializationVector(X,G),Q=this.rtcpAdditionalAuthenticatedData(W,G),J=QF("aes-128-gcm",this.srtcpSessionKey,V);J.setAAD(Q);let U=J.update(W.slice(8));return J.final(),U.copy(Z,8),J.getAuthTag().copy(Z,8+U.length),Q.slice(8,12).copy(Z,Y),Z}decryptRTCP(W){let G=ZS(W,this.aeadAuthTagLen,QO),X=W.length-QO,Y=X-this.aeadAuthTagLen,Z=W.readUInt32BE(4),V=W.readUInt32BE(X),Q=V>>>31===1,J=V&~(UF<<24),U=this.rtcpInitializationVector(Z,J),N=Q?Buffer.concat([W.subarray(0,8),W.subarray(X)]):Buffer.concat([W.subarray(0,Y),W.subarray(X)]),q=Q?W.slice(8,Y):Buffer.alloc(0),A=Q?Buffer.alloc(Y):Buffer.from(W.subarray(0,Y));if(Q)W.slice(0,8).copy(A);let H=JF("aes-128-gcm",this.srtcpSessionKey,U);H.setAAD(N),H.setAuthTag(W.subarray(Y,X));let I=H.update(q);if(NF(H,"SRTCP"),Q)I.copy(A,8);return[A,G]}rtpInitializationVector(W,G){let X=this.rtpIvWriter([0,W.ssrc,G,W.sequenceNumber]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtpSessionSalt[Y];return X}rtcpInitializationVector(W,G){let X=this.rtcpIvWriter([0,W,0,G]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtcpSessionSalt[Y];return X}rtcpAdditionalAuthenticatedData(W,G){let X=Buffer.concat([W.subarray(0,8),this.aadWriter([G])]);return X[8]|=UF,X}},QO=4,UF=128;function NF(W,G){try{W.final()}catch{throw new bY(`Failed to authenticate ${G} packet`)}}var JS=class{constructor(W,G,X){this.masterKey=W,this.masterSalt=G,this.profile=X;{let Y=14-G.length;if(Y>0)this.masterSalt=Buffer.concat([G,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=VO("sha1",this.srtcpSessionAuthTag),X){case IH:this.cipher=new so(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case QJ:this.cipher=new to(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vq.default.AES(this.masterKey);return Buffer.from(Y.encrypt(G))}generateSessionSalt(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vq.default.AES(this.masterKey);return G=Buffer.from(Y.encrypt(G)),G.subarray(0,14)}generateSessionAuthTag(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Q=X.length-1,J=G.length-1;Q>=0;Q--,J--)G[J]=G[J]^X[Q];let Y=Buffer.concat([G,Buffer.from([0,0])]),Z=Buffer.concat([G,Buffer.from([0,1])]),V=new vq.default.AES(this.masterKey);return Y=Buffer.from(V.encrypt(Y)),Z=Buffer.from(V.encrypt(Z)),Buffer.concat([Y,Z.subarray(0,4)])}getSrtpSsrcState(W){let G=this.srtpSSRCStates[W];if(G)return G;return G={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=G,G}getSrtcpSsrcState(W){let G=this.srtcpSSRCStates[W];if(G)return G;return G={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=G,G}updateRolloverCount(W,G){if(!G.rolloverHasProcessed)G.rolloverHasProcessed=!0;else if(W===0){if(G.lastSequenceNumber>yQ)G.rolloverCounter++}else if(G.lastSequenceNumber<yQ&&W>qF-yQ){if(G.rolloverCounter>0)G.rolloverCounter--}else if(W<yQ&&G.lastSequenceNumber>qF-yQ)G.rolloverCounter++;G.lastSequenceNumber=W}generateSrtpAuthTag(W,G){this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag);let X=Buffer.alloc(4);return X.writeUInt32BE(G),this.srtpSessionAuth.update(W).update(X).digest().slice(0,10)}index(W){let G=this.srtcpSSRCStates[W];if(!G)return 0;return G.srtcpIndex}setIndex(W,G){let X=this.getSrtcpSsrcState(W);X.srtcpIndex=G%2147483647}},yQ=100,qF=65535,eo=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRTCP(W){let G=W.readUInt32BE(4),X=this.getSrtcpSsrcState(G);if(X.srtcpIndex++,X.srtcpIndex>>Wn)X.srtcpIndex=0;return this.cipher.encryptRTCP(W,X.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},Wn=2147483647,US=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,G,X,Y,Z){this.localContext=new this.ContextCls(W,G,Z),this.remoteContext=new this.ContextCls(X,Y,Z)}},Gn=class extends US{constructor(W){super(eo);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRTCP(W);return G};encrypt(W){return this.localContext.encryptRTCP(W)}},Xn=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRtp(W,G){let X=this.getSrtpSsrcState(G.ssrc);return this.updateRolloverCount(G.sequenceNumber,X),this.cipher.encryptRtp(G,W,X.rolloverCounter)}decryptRtp(W){let G=XK(W,this.rtpAuthTagLength),X=this.srtpSSRCStates[G.ssrc],Y=X?{...X}:{ssrc:G.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(G.sequenceNumber,Y);let Z=this.cipher.decryptRtp(W,Y.rolloverCounter,G);if(X)Object.assign(X,Y);else this.srtpSSRCStates[G.ssrc]=Y;return Z}get rtpAuthTagLength(){return this.profile===QJ?16:10}},Yn=class extends US{constructor(W){super(Xn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRtp(W);return G};encrypt(W,G){return this.localContext.encryptRtp(W,G)}},_H0=class{constructor(W){this.props=W}sequenceNumber=z2();timestamp=DO();create(W){this.sequenceNumber=M9(this.sequenceNumber,1);let G=this.props.between*this.props.clockRate/1000;this.timestamp=yY(this.timestamp,G);let X=new s6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new t6(X,W)}},v9=T1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Zn=class extends XJ{constructor(W,G,X,Y){super(W,G,5,7);this.cipher=X,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let G=(()=>{switch(W.msg_type){case 2:return i2.deSerialize(W.fragment);case 11:return eq.deSerialize(W.fragment);case 12:return s2.deSerialize(W.fragment);case 13:return n2.deSerialize(W.fragment);case 14:return r2.deSerialize(W.fragment)}})();if(G)cY[G.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(G)}async exec(){if(this.dtls.flight===5){v9(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let W=this.dtls.requestedCertificateTypes.length>0;v9(this.dtls.sessionId,"send flight5",W);let G=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((X)=>X);this.dtls.lastMessage=G,await this.transmit(G)}sendCertificate(){let W=new eq([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new o2(this.cipher.localKeyPair.publicKey),G=this.createPacket([W]),X=Buffer.concat(G.map((J)=>J.serialize())),Y=this.cipher.localKeyPair,Z=this.cipher.remoteKeyPair;if(!Z.publicKey)throw Error("not exist");let V=S2(Z.publicKey,Y.privateKey,Y.curve);v9(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let Q=Buffer.concat(this.dtls.sortedHandshakeCache.map((J)=>J.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?k2(V,Q):x2(V,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=f2(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),v9(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),X}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Q)=>Q.serialize())),G=this.cipher.signatureData(W,"sha256"),X=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case p4.ecdsa_3:return h$.ecdsa_secp256r1_sha256;case p4.rsa_1:return h$.rsa_pkcs1_sha256}})();if(!X)throw Error();v9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,X);let Y=new d2(X,G),Z=this.createPacket([Y]);return Buffer.concat(Z.map((Q)=>Q.serialize()))}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=GJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);this.dtls.recordSequenceNumber=0;let Z=this.cipher.encryptPacket(Y).serialize();return v9(this.dtls.sessionId,"finished",this.cipher.cipher.summary),Z}},cY={};cY[2]=({cipher:W,srtp:G,dtls:X})=>(Y)=>{if(v9(X.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TG.from(Y.random),W.cipherSuite=Y.cipherSuite,v9(X.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((Z)=>{switch(Z.type){case gY.type:{let V=gY.fromData(Z.data),Q=sq.findMatchingSRTPProfile(V.profiles,X.options.srtpProfiles||[]);if(v9(X.sessionId,"selected srtp profile",Q),Q==null)return;G.srtpProfile=Q}break;case HH.type:X.remoteExtendedMasterSecret=!0;break;case AH.type:v9(X.sessionId,"RenegotiationIndication");break}})};cY[11]=({cipher:W,dtls:G})=>(X)=>{v9(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};cY[12]=({cipher:W,dtls:G})=>(X)=>{if(!W.localRandom||!W.remoteRandom)throw Error();v9(G.sessionId,"ServerKeyExchange",X),v9(G.sessionId,"selected curve",X.namedCurve),W.remoteKeyPair={curve:X.namedCurve,publicKey:X.publicKey},W.localKeyPair=p2(X.namedCurve)};cY[13]=({dtls:W})=>(G)=>{v9(W.sessionId,"certificate_request",G),W.requestedCertificateTypes=G.certificateTypes,W.requestedSignatureAlgorithms=G.signatures};cY[14]=({dtls:W})=>(G)=>{v9(W.sessionId,"server_hello_done",G)};var NS=class W{constructor(G,X){this.serverVersion=G,this.cookie=X}msgType=3;messageSeq;static spec={serverVersion:WK,cookie:BG.types.buffer(BG.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){return new W(...Object.values(BG.decode(G,W.spec)))}serialize(){let G=BG.encode(this,W.spec).slice();return Buffer.from(G)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Qn=T1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),HF=class{constructor(W,G){this.options=W,this.sessionType=G}version={major:254,minor:253};lastFlight=[];lastMessage=[];recordSequenceNumber=0;sequenceNumber=0;epoch=0;flight=0;handshakeCache={};cookie;requestedCertificateTypes=[];requestedSignatureAlgorithms=[];remoteExtendedMasterSecret=!1;get sessionId(){return this.cookie?this.cookie.toString("hex").slice(0,10):""}get sortedHandshakeCache(){return Object.entries(this.handshakeCache).sort(([W],[G])=>Number(W)-Number(G)).flatMap(([,{data:W}])=>W.sort((G,X)=>G.message_seq-X.message_seq))}checkHandshakesExist=(W)=>!W.find((G)=>this.sortedHandshakeCache.find((X)=>X.msg_type===G)==null);bufferHandshakeCache(W,G,X){if(!this.handshakeCache[X])this.handshakeCache[X]={data:[],isLocal:G,flight:X};let Y=W.filter((Z)=>{let V=this.handshakeCache[X].data.find((Q)=>Q.msg_type===Z.msg_type);if(V)return Qn(this.sessionId,"exist",V.summary,G,X),!1;return!0});this.handshakeCache[X].data=[...this.handshakeCache[X].data,...Y]}},Jn=class{constructor(W){this.socket=W}send=(W)=>{return this.socket.send(W)}},SO=class W{static type=10;static spec={type:f7.types.uint16be,data:f7.types.array(f7.types.uint16be,f7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static fromData(G){return new W({type:W.type,data:f7.decode(G,W.spec.data)})}static deSerialize(G){return new W(f7.decode(G,W.spec))}serialize(){return Buffer.from(f7.encode(this,W.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},xO=class W{static type=13;static spec={type:b7.types.uint16be,data:b7.types.array({hash:b7.types.uint8,signature:b7.types.uint8},b7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(b7.decode(G,W.spec))}serialize(){let G=b7.encode(this,W.spec).slice();return Buffer.from(G)}static fromData(G){let X=Buffer.alloc(2);return X.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},AF=class W{constructor(G,X){this.level=G,this.description=X}static spec={level:EG.types.uint8,description:EG.types.uint8};static deSerialize(G){return new W(...Object.values(EG.decode(G,W.spec)))}serialize(){let G=EG.encode(this,W.spec).slice();return Buffer.from(G)}},zF=T1("werift-dtls : packages/dtls/record/receive.ts : log"),JO=T1("werift-dtls : packages/dtls/record/receive.ts : err"),Un=(W)=>{let G=0,X=[];while(W.length>G){let Y=W.readUInt16BE(G+11);if(W.length<G+(12+Y))break;let Z=b2.deSerialize(W.subarray(G));X.push(Z),G+=13+Y}return X},Nn=(W,G)=>(X)=>{switch(X.recordLayerHeader.contentType){case 20:return zF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let Z=X.fragment;try{if(X.recordLayerHeader.epoch>0)zF(W.sessionId,"decrypt handshake"),Z=G.decryptPacket(X)}catch(V){throw JO(W.sessionId,"decrypt failed",V),V}try{let V=0,Q=[];while(Z.length>V){let J=P5.deSerialize(Z.subarray(V));Q.push({type:22,data:J}),V+=J.fragment_length+12}return Q}catch(V){throw JO(W.sessionId,"decSerialize failed",V,Z),V}}case 23:return[{type:23,data:G.decryptPacket(X)}];case 21:{let Z=AF.deSerialize(X.fragment);if(EO[Z.description]==null){let V=G.decryptPacket(X);Z=AF.deSerialize(V)}if(JO(W.sessionId,"ContentType.alert",Z,EO[Z.description],"flight",W.flight,"lastFlight",W.lastFlight),Z.level>1)throw Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},IF=T1("werift-dtls : packages/dtls/src/socket.ts : log"),wF=T1("werift-dtls : packages/dtls/src/socket.ts : err"),qS=class{constructor(W,G){this.options=W,this.sessionType=G,this.dtls=new HF(this.options,this.sessionType),this.cipher=new aq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Jn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new f0;onData=new f0;onError=new f0;onClose=new f0;transport;cipher;dtls;srtp=new sq;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){IF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new aq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new HF(this.options,this.sessionType),this.srtp=new sq,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let G=Un(W);for(let X of G)try{let Y=Nn(this.dtls,this.cipher)(X);for(let Z of Y)switch(Z.type){case 22:{let V=Z.data,Q=this.handleFragmentHandshake([V]),J=Object.values(Q.reduce((U,N)=>{if(!U[N.msg_type])U[N.msg_type]=[];return U[N.msg_type].push(N),U},{})).map((U)=>P5.assemble(U)).sort((U,N)=>U.msg_type-N.msg_type);this.onHandleHandshakes(J).catch((U)=>{wF(this.dtls.sessionId,"onHandleHandshakes error",U),this.onError.execute(U)})}break;case 23:this.onData.execute(Z.data);break;case 21:this.onClose.execute();break}}catch(Y){wF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(IF(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let W=gY.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(W.extension)}{let W=SO.createEmpty();W.data=L2,this.extensions.push(W.extension)}{let W=xO.createEmpty();W.data=E2,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:HH.type,data:Buffer.alloc(0)});{let W=AH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(G,X)=>{for(let Y=0;Y<10;Y++)if(W()){G();break}else await Vn(100*Y);X("waitForReady timeout")});handleFragmentHandshake(W){let G=W.filter((X)=>{if(X.fragment_length!==X.length)return this.bufferFragmentedHandshakes.push(X),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[X]=this.bufferFragmentedHandshakes.slice(-1);if(X.fragment_offset+X.fragment_length===X.length)G=[...this.bufferFragmentedHandshakes,...G],this.bufferFragmentedHandshakes=[]}return G}send=async(W)=>{let G=GJ(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(G).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,G){let X=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+G*2),{clientKey:Y,serverKey:Z,clientSalt:V,serverSalt:Q}=CG.decode(X,{clientKey:CG.types.buffer(W),serverKey:CG.types.buffer(W),clientSalt:CG.types.buffer(G),serverSalt:CG.types.buffer(G)});if(this.sessionType===c4.CLIENT)return{localKey:Y,localSalt:V,remoteKey:Z,remoteSalt:Q};else return{localKey:Z,localSalt:Q,remoteKey:Y,remoteSalt:V}}exportKeyingMaterial(W,G){return fd(W,G,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===c4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},UO=T1("werift-dtls : packages/dtls/src/client.ts : log"),jF=class extends qS{constructor(W){super(W,c4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,UO(this.dtls.sessionId,"start client")}async connect(){await new Zo(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{UO(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 3:{let X=NS.deSerialize(G.fragment);await new Qo(this.transport,this.dtls).exec(X)}break;case 2:{if(this.connected)return;this.flight5=new Zn(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(G)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);let X=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),UO(this.dtls.sessionId,"dtls connected");break}}},h7=T1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),Hn=(W,G,X,Y)=>(Z)=>{h7("dtls version",Z.clientVersion),G.flight=2,G.recordSequenceNumber=0,G.sequenceNumber=0,Z.extensions.forEach((A)=>{switch(A.type){case SO.type:{let H=SO.fromData(A.data).data;h7(G.sessionId,"curves",H);let I=H.filter((w)=>L2.includes(w))[0];X.namedCurve=I,h7(G.sessionId,"curve selected",X.namedCurve)}break;case xO.type:{if(!X.signatureHashAlgorithm)throw Error("need to set certificate");let H=xO.fromData(A.data).data;h7(G.sessionId,"hash,signature",H);let I=H.find((C)=>C.signature===X.signatureHashAlgorithm?.signature)?.signature,w=H.find((C)=>C.hash===X.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case gY.type:{if(!G.options?.srtpProfiles)return;if(G.options.srtpProfiles.length===0)return;let H=gY.fromData(A.data);h7(G.sessionId,"srtp profiles",H.profiles);let I=sq.findMatchingSRTPProfile(H.profiles,G.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,h7(G.sessionId,"srtp profile selected",Y.srtpProfile)}break;case HH.type:G.remoteExtendedMasterSecret=!0;break;case AH.type:h7(G.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));h7("dtls supported version",I)}break}}),X.localRandom=new TG,X.remoteRandom=TG.from(Z.random);let V=Z.cipherSuites;h7(G.sessionId,"cipher suites",V);let Q=(()=>{switch(X.signatureHashAlgorithm?.signature){case p4.ecdsa_3:return RO.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case p4.rsa_1:return RO.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(Q===void 0||!V.includes(Q))throw Error("dtls cipher suite negotiation failed");X.cipherSuite=Q,h7(G.sessionId,"selected cipherSuite",X.cipherSuite),X.localKeyPair=p2(X.namedCurve),G.cookie||=qn(20);let J=new NS({major:254,minor:253},G.cookie),U=m2(G)([J]),q=GJ(G)(U.map((A)=>({type:22,fragment:A.serialize()})),++G.recordSequenceNumber).map((A)=>A.serialize());for(let A of q)W.send(A)},OF=T1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),An=class extends XJ{constructor(W,G,X,Y){super(W,G,4,6);this.cipher=X,this.srtp=Y}async exec(W,G=!1){if(this.dtls.flight===4){OF(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([W],!1,4);let X=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),G&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=X,await this.transmit(X)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(gY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:HH.type,data:Buffer.alloc(0)});let G=AH.createEmpty();W.push(G.extension);let X=new i2(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([X]);return Buffer.concat(Y.map((Z)=>Z.serialize()))}sendCertificate(){let W=new eq([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let G=new s2(B2.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,W.length,W),X=this.createPacket([G]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new n2(gd,E2,[]);OF(this.dtls.sessionId,"sendCertificateRequest",W);let G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerHelloDone(){let W=new r2,G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}},mY=T1("werift-dtls : packages/dtls/flight/server/flight6.ts"),zn=class extends XJ{constructor(W,G,X){super(W,G,6);this.cipher=X}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let G=(()=>{switch(W.msg_type){case 11:return eq.deSerialize(W.fragment);case 15:return d2.deSerialize(W.fragment);case 16:return o2.deSerialize(W.fragment);case 20:return $O.deSerialize(W.fragment)}})();if(G){let X=JJ[G.msgType];if(!X)return;X({dtls:this.dtls,cipher:this.cipher})(G)}}async exec(){if(this.dtls.flight===6){mY(this.dtls.sessionId,"flight6 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=6;let W=[this.sendChangeCipherSpec(),this.sendFinished()];this.dtls.lastMessage=W,await this.transmit(W)}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=GJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},JJ={};JJ[16]=({cipher:W,dtls:G})=>(X)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:X.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=S2(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);mY(G.sessionId,"extendedMasterSecret",G.options.extendedMasterSecret,G.remoteExtendedMasterSecret);let Z=Buffer.concat(G.sortedHandshakeCache.map((V)=>V.serialize()));W.masterSecret=G.options.extendedMasterSecret&&G.remoteExtendedMasterSecret?k2(Y,Z):x2(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=f2(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),mY(G.sessionId,"setup cipher",W.cipher.summary)};JJ[11]=({cipher:W,dtls:G})=>(X)=>{mY(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};JJ[15]=({cipher:W,dtls:G})=>(X)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");mY(G.sessionId,"certificate_verify",X.algorithm)};JJ[20]=({dtls:W})=>(G)=>{mY(W.sessionId,"finished",G)};var $Y=T1("werift-dtls : packages/dtls/src/server.ts : log"),In=class extends qS{constructor(W){super(W,c4.SERVER);this.onHandleHandshakes=this.handleHandshakes,$Y(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{$Y(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 1:{if(this.connected)this.renegotiation();let X=h2.deSerialize(G.fragment);if(X.cookie.length===0)$Y(this.dtls.sessionId,"send flight2"),Hn(this.transport,this.dtls,this.cipher,this.srtp)(X);else if(this.dtls.cookie&&X.cookie.equals(this.dtls.cookie))$Y(this.dtls.sessionId,"send flight4"),await new An(this.transport,this.dtls,this.cipher,this.srtp).exec(G,this.options.certificateRequest);else $Y("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:X.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new zn(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(G)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(G);let X=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),$Y(this.dtls.sessionId,"dtls connected")}break}}},YK=554869826,wn=8,jn=1398035790,n6=20,HS=24,AS=1,zS=2,On=6,Kn=50;var IS=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(IS||{}),wS=((W)=>{return W[W.BINDING=1]="BINDING",W[W.SHARED_SECRET=2]="SHARED_SECRET",W[W.ALLOCATE=3]="ALLOCATE",W[W.REFRESH=4]="REFRESH",W[W.SEND=6]="SEND",W[W.DATA=7]="DATA",W[W.CREATE_PERMISSION=8]="CREATE_PERMISSION",W[W.CHANNEL_BIND=9]="CHANNEL_BIND",W})(wS||{});function vQ(W){return OS(W).toString("hex").substring(0,W)}function KS(){return OS(12)}var KF=class{queue=[];wait=new f0;put(W){if(this.queue.push(W),this.queue.length===1)this.wait.execute(W)}get(){let W=this.queue.shift();if(!W)return new Promise((G)=>{this.wait.subscribe((X)=>{this.queue.shift(),G(X)})});return W}},kO=(W)=>{let G,X,Y=new Promise((V,Q)=>{G=V,X=Q});Y.then(()=>{Z.execute(void 0),Z.complete()}).catch((V)=>{Z.execute(V??Error()),Z.complete()});let Z=new f0;return W(G,X,Z).catch(()=>{}),{awaitable:Y,resolve:G,reject:X}};function xY(W){let[G]=W,X=sQ.default.isV4Format(G)?AS:zS,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(X,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,sQ.default.toBuffer(G)])}function Cn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let G=W.readUInt8(2),X=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[G*100+X,Y]}function kY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let G=W.readUInt8(1),X=W.readUInt16BE(2),Y=W.slice(4);switch(G){case AS:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[sQ.default.toString(Y),X];case zS:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[sQ.default.toString(Y),X];default:throw Error("STUN address has unknown protocol")}}var ZK=Buffer.alloc(6);ZK.writeUInt16BE(YK>>16,0);ZK.writeUInt32BE(YK,2);function CS(W,G){let X=[...ZK,...G],Y=W.slice(0,2);for(let Z=2;Z<W.length;Z++){let V=W[Z]^X[Z-2],Q=Buffer.alloc(1);Q.writeUIntBE(V,0,1),Y=Buffer.concat([Y,Q])}return Y}function gq(W,G){return kY(CS(W,G))}function Dn(W){let G=Buffer.alloc(4);G.writeUInt16BE(0,0),G.writeUInt8(Math.floor(W[0]/100),2),G.writeUInt8(W[0]%100,3);let X=Buffer.from(W[1],"utf8");return Buffer.concat([G,X])}function uq(W,G){return CS(xY(W),G)}var gQ=(W)=>{let G=Buffer.alloc(4);return G.writeUInt32BE(W,0),G},uQ=(W)=>W.readUInt32BE(0),Mn=(W)=>{let G=Buffer.alloc(4);return G.writeUInt16BE(W,0),G},Tn=(W)=>W.readUInt16BE(0),CF=(W)=>{return new nj(W.toString()).toBuffer()},DF=(W)=>{let G=new nj(W);return BigInt(G.toString())},NO=(W)=>Buffer.from(W,"utf8"),qO=(W)=>W.toString("utf8"),HO=(W)=>W,AO=(W)=>W,Pn=(W)=>Buffer.from([]),Rn=(W)=>null,DS=[[1,"MAPPED-ADDRESS",xY,kY],[3,"CHANGE-REQUEST",gQ,uQ],[4,"SOURCE-ADDRESS",xY,kY],[5,"CHANGED-ADDRESS",xY,kY],[6,"USERNAME",NO,qO],[8,"MESSAGE-INTEGRITY",HO,AO],[9,"ERROR-CODE",Dn,Cn],[12,"CHANNEL-NUMBER",Mn,Tn],[13,"LIFETIME",gQ,uQ],[18,"XOR-PEER-ADDRESS",uq,gq],[19,"DATA",HO,AO],[20,"REALM",NO,qO],[21,"NONCE",HO,AO],[22,"XOR-RELAYED-ADDRESS",uq,gq],[25,"REQUESTED-TRANSPORT",gQ,uQ],[32,"XOR-MAPPED-ADDRESS",uq,gq],[36,"PRIORITY",gQ,uQ],[37,"USE-CANDIDATE",Pn,Rn],[32802,"SOFTWARE",NO,qO],[32808,"FINGERPRINT",gQ,uQ],[32809,"ICE-CONTROLLED",CF,DF],[32810,"ICE-CONTROLLING",CF,DF],[32811,"RESPONSE-ORIGIN",xY,kY],[32812,"OTHER-ADDRESS",xY,kY]],MS=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,G){let X=this.attributes.find((Y)=>Y[0]===W);if(X)X[1]=G;else this.attributes.push([W,G]);return this}getAttributeValue(W){let G=this.attributes.find((X)=>X[0]===W);if(!G)return;return G[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},MF=DS.reduce((W,G)=>{return W[G[0]]=G,W},{}),Ln=DS.reduce((W,G)=>{return W[G[1]]=G,W},{});function VK(W,G){if(W.length<n6)return;let X=W.readUint16BE(2);if(W.length!==n6+X)return;let Y=W.readUint16BE(0),Z=Buffer.from(W.slice(n6-12,n6)),V=new MS;for(let J=n6;J<=W.length-4;){let U=W.readUInt16BE(J),N=W.readUInt16BE(J+2),q=W.slice(J+4,J+4+N),A=4*Math.floor((N+3)/4)-N;if(Object.keys(MF).includes(U.toString())){let[,I,,w]=MF[U];if(w.name===gq.name)V.setAttribute(I,w(q,Z));else V.setAttribute(I,w(q));if(I==="FINGERPRINT"){let C=TS(W.slice(0,J));if(V.getAttributeValue("FINGERPRINT")!==C)return}else if(I==="MESSAGE-INTEGRITY"){if(G){let C=Bn(W.slice(0,J),G),D=V.getAttributeValue("MESSAGE-INTEGRITY");if(!C.equals(D))return}}}J+=4+N+A}let Q=V.getAttributes();return V.clear(),new m7(Y&16111,Y&272,Z,Q)}var m7=class extends MS{constructor(W,G,X=KS(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=G,this.transactionId=X}toJSON(){return this.json}get json(){return{messageMethod:wS[this.messageMethod],messageClass:IS[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let X of this.attributesKeys){let Y=this.getAttributeValue(X),[Z,,V]=Ln[X],Q=V.name===uq.name?V(Y,this.transactionId):V(Y),J=Q.length,U=4*Math.floor((J+3)/4)-J,N=Buffer.alloc(4);N.writeUInt16BE(Z,0),N.writeUInt16BE(J,2),W=Buffer.concat([W,N,Q,Buffer.alloc(U,0)])}let G=Buffer.alloc(8);return G.writeUInt16BE(this.messageMethod|this.messageClass,0),G.writeUInt16BE(W.length,2),G.writeUInt32BE(YK,4),Buffer.concat([G,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let G=QK(this.bytes,this.bytes.length-n6+HS);return Buffer.from(jS("sha1",W).update(G).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",TS(this.bytes))}},QK=(W,G)=>{let X=Buffer.alloc(W.length);return W.copy(X,0,0,2),X.writeUInt16BE(G,2),W.copy(X,4,4),X};function TS(W){let G=QK(W,W.length-n6+wn);return(Pd(G)^jn)>>>0}function Bn(W,G){let X=QK(W,W.length-n6+HS);return Buffer.from(jS("sha1",G).update(X).digest("hex"),"hex")}function TF(W){let G=W%4;if(G===0)return 0;else return 4-G}var PS=class extends Error{response;addr},RS=class extends PS{constructor(W,G){super();this.response=W,this.addr=G}get str(){let W="STUN transaction failed",G=this.response.getAttributeValue("ERROR-CODE");if(G){let[X,Y]=G;W+=` (${X} - ${Y})`}return W}},En=class extends PS{get str(){return"STUN transaction timed out"}},zO=T1("werift-ice:packages/ice/src/stun/transaction.ts"),JK=class{constructor(W,G,X,Y){this.request=W,this.addr=G,this.protocol=X,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:On)}timeoutDelay=Kn;ended=!1;tries=0;triesMax;onResponse=new f0;responseReceived=(W,G)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,G),this.onResponse.complete();else this.onResponse.error(new RS(W,G))};run=async()=>{try{return this.retry().catch((G)=>{zO("retry failed",G)}),await this.onResponse.asPromise()}catch(W){throw W}finally{this.cancel()}};retry=async()=>{while(this.tries<this.triesMax&&!this.ended){if(this.protocol.sendStun(this.request,this.addr).catch((W)=>{zO("send stun failed",W)}),await new Promise((W)=>setTimeout(W,this.timeoutDelay)),this.ended)break;this.timeoutDelay*=2,this.tries++}if(this.tries>=this.triesMax)zO(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new En)};cancel(){this.ended=!0}},PF=T1("werift-ice : packages/ice/src/stun/protocol.ts"),RF=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new f0;onDataReceived=new f0;constructor(){}connectionMade=async(G,X,Y)=>{if(G)this.transport=await PO.init("udp4",{portRange:X,interfaceAddresses:Y});else this.transport=await PO.init("udp6",{portRange:X,interfaceAddresses:Y});this.transport.onData=(Z,V)=>{this.datagramReceived(Z,V)}};datagramReceived(G,X){try{let Y=VK(G);if(!Y){if(this.localCandidate)this.onDataReceived.execute(G);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,X);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){PF("datagramReceived error",Y)}}getExtraInfo(){let{address:G,port:X}=this.transport.address;return[G,X]}async sendStun(G,X){if(this.transport.closed)return;let Y=G.bytes;await this.transport.send(Y,X).catch(()=>{PF("sendStun failed",X,G)})}async sendData(G,X){if(this.transport.closed)return;await this.transport.send(G,X)}async request(G,X,Y,Z){if(this.transactionsKeys.includes(G.transactionIdHex))throw Error("already request ed");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let V=new JK(G,X,this,Z);this.transactions[G.transactionIdHex]=V;try{return await V.run()}catch(Q){throw Q}finally{delete this.transactions[G.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((G)=>{G.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},i9=T1("werift-ice:packages/ice/src/turn/protocol.ts"),Sn=500,xn=600,kn=285212672,_n=class W{constructor(G){this.turn=G,G.onData.subscribe((X,Y)=>{this.handleStunMessage(X,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new $d;onRequestReceived=new f0;onDataReceived=new f0;handleStunMessage=(G,X)=>{try{let Y=VK(G);if(!Y){this.onDataReceived.execute(G);return}if(Y.messageClass===256||Y.messageClass===272){let Z=this.turn.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){i9("datagramReceived error",Y)}};async request(G,X,Y){if(this.turn.transactions[G.transactionIdHex])throw Error("exist");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let Z=new JK(G,X,this);this.turn.transactions[G.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.turn.transactions[G.transactionIdHex]}}async connectionMade(){}async sendData(G,X){await this.turn.sendData(G,X)}async sendStun(G,X){await this.turn.sendData(G.bytes,X)}async close(){return this.disposer.dispose(),this.turn.close()}},yn=class W{constructor(G,X,Y,Z,V,Q={}){this.server=G,this.username=X,this.password=Y,this.lifetime=Z,this.transport=V,this.options=Q,this.channelRefreshTime=this.options.channelRefreshTime??Sn}static type="turn";type=W.type;onData=new f0;onRequestReceived=new f0;onDataReceived=new f0;integrityKey;nonce;realm;relayedAddress;mappedAddress;localCandidate;transactions={};refreshHandle;channelNumber=16384;channelByAddr={};addrByChannel={};channelRefreshTime;channelBinding;channelRefreshAt=0;tcpBuffer=Buffer.alloc(0);permissionByAddr={};creatingPermission=Promise.resolve();async connectionMade(){this.transport.onData=(Z,V)=>{this.dataReceived(Z,V)};let G=new m7(3,0);G.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",kn);let[X]=await this.requestWithRetry(G,this.server).catch((Z)=>{throw i9("connect error",Z),Z});this.relayedAddress=X.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=X.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=X.getAttributeValue("LIFETIME");i9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(G){let[X,Y]=a1.Unpack("!HH",G.slice(0,4)),Z=this.addrByChannel[X];if(Z){let V=G.subarray(4,4+Y);this.onData.execute(V,Z)}}handleSTUNMessage(G,X){try{let Y=VK(G);if(!Y)throw Error("not stun message");if(Y.messageClass===256||Y.messageClass===272){let Z=this.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onData.execute(G,X);if(Y.getAttributeValue("DATA")){let Z=Y.getAttributeValue("DATA");this.onData.execute(Z,X)}}catch(Y){i9("parse error",G.toString())}}dataReceived(G,X){let Y=(Z,V)=>{if(Z.length>=4&&BF(Z))this.handleChannelData(Z);else this.handleSTUNMessage(Z,V)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,G]);while(this.tcpBuffer.length>=4){let[,Z]=r9(this.tcpBuffer.subarray(0,4),[2,2]);Z+=TF(Z);let V=BF(this.tcpBuffer)?4+Z:20+Z;if(this.tcpBuffer.length<V)break;Y(this.tcpBuffer.subarray(0,V),X),this.tcpBuffer=this.tcpBuffer.subarray(V)}}else Y(G,X)}async send(G,X){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=TF(G.length);await this.transport.send(Y>0?Buffer.concat([G,Buffer.alloc(Y)]):G,X)}else await this.transport.send(G,X)}async createPermission(G){let X=new m7(8,0);X.setAttribute("XOR-PEER-ADDRESS",G).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(X,this.server).catch((Y)=>{throw Y})}refresh=(G)=>{this.refreshHandle=kO(async(X,Y,Z)=>{let V=!0;Z.once(()=>{V=!1});while(V){let Q=0.8333333333333334*G*1000;i9("refresh delay",Q,{exp:G}),await Fn(Q);let J=new m7(4,0);J.setAttribute("LIFETIME",G);try{let[U]=await this.requestWithRetry(J,this.server);G=U.getAttributeValue("LIFETIME"),i9("refresh",{exp:G})}catch(U){i9("refresh error",U)}}})};async request(G,X){if(this.transactions[G.transactionIdHex])throw Error("exist");if(this.integrityKey)G.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new JK(G,X,this);this.transactions[G.transactionIdHex]=Y;try{return await Y.run()}catch(Z){throw Z}finally{delete this.transactions[G.transactionIdHex]}}async requestWithRetry(G,X){let Y,Z;try{[Y,Z]=await this.request(G,X)}catch(V){if(V instanceof RS==!1)throw i9("requestWithRetry error",V),V;this.server=V.addr;let[Q]=V.response.getAttributeValue("ERROR-CODE"),J=V.response.getAttributeValue("NONCE"),U=V.response.getAttributeValue("REALM");if((Q===401&&U||Q===438&&this.realm)&&J){if(i9("retry with nonce",Q),this.nonce=J,Q===401)this.realm=U;this.integrityKey=gn(this.username,this.realm,this.password),G.transactionId=KS(),[Y,Z]=await this.request(G,this.server)}else throw V}return[Y,Z]}async sendData(G,X){let Y=await this.getChannel(X).catch((V)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(X);let V=new m7(6,16).setAttribute("DATA",G).setAttribute("XOR-PEER-ADDRESS",X);await this.sendStun(V,this.server);return}let Z=a1.Pack("!HH",[Y.number,G.length]);await this.send(Buffer.concat([Buffer.from(Z),G]),this.server)}async getPermission(G){if(await this.creatingPermission,!this.permissionByAddr[G.join(":")])this.creatingPermission=this.createPermission(G),this.permissionByAddr[G.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw i9("createPermission error",Y),Y})}async getChannel(G){if(this.channelBinding)await this.channelBinding;let X=this.channelByAddr[G.join(":")];if(!X)this.channelByAddr[G.join(":")]={number:this.channelNumber++,address:G},X=this.channelByAddr[G.join(":")],this.addrByChannel[X.number]=G,this.channelBinding=this.channelBind(X.number,G),await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelRefreshAt=lQ(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,i9("channelBind",X);else if(this.channelRefreshAt<lQ(Date.now()/1000))this.channelBinding=this.channelBind(X.number,G),this.channelRefreshAt=lQ(Date.now()/1000)+this.channelRefreshTime,await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelBinding=void 0,i9("channelBind refresh",X);return X}async channelBind(G,X){let Y=new m7(9,0);Y.setAttribute("CHANNEL-NUMBER",G).setAttribute("XOR-PEER-ADDRESS",X);let[Z]=await this.requestWithRetry(Y,this.server);if(Z.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(G,X){await this.send(G.bytes,X)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function vn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){Y??=xn,Q??="udp";let J=Q==="udp"?await PO.init("udp4",{portRange:Z,interfaceAddresses:V}):await xd.init(W),U=new yn(W,G,X,Y,J);return await U.connectionMade(),U}async function LF({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){let J=await vn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q});return new _n(J)}function gn(W,G,X){return $n("md5").update(Buffer.from([W,G,X].join(":"))).digest()}function BF(W){return(W[0]&192)==64}var DG=class W{constructor(G,X,Y,Z,V,Q,J,U,N,q,A,H){this.foundation=G,this.component=X,this.transport=Y,this.priority=Z,this.host=V,this.port=Q,this.type=J,this.relatedAddress=U,this.relatedPort=N,this.tcptype=q,this.generation=A,this.ufrag=H}static fromSdp(G){let X=G.split(" ");if(X.length<8)throw Error("SDP does not have enough properties");let Y={foundation:X[0],component:Number(X[1]),transport:X[2],priority:Number(X[3]),host:X[4],port:Number(X[5]),type:X[7]};for(let A=8,H=X.length-1;A<H;A+=2)if(X[A]==="raddr")Y.related_address=X[A+1];else if(X[A]==="rport")Y.related_port=Number(X[A+1]);else if(X[A]==="tcptype")Y.tcptype=X[A+1];else if(X[A]==="generation")Y.generation=Number(X[A+1]);else if(X[A]==="ufrag")Y.ufrag=X[A+1];let{foundation:Z,component:V,transport:Q,priority:J,host:U,port:N,type:q}=Y;return new W(Z,V,Q,J,U,N,q,Y.related_address,Y.related_port,Y.tcptype,Y.generation,Y.ufrag)}canPairWith(G){let X=EF(this.host),Y=EF(G.host);return this.component===G.component&&this.transport.toLowerCase()===G.transport.toLowerCase()&&X===Y}toSdp(){let G=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)G+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)G+=` rport ${this.relatedPort}`;if(this.tcptype)G+=` tcptype ${this.tcptype}`;if(this.generation!=null)G+=` generation ${this.generation}`;if(this.ufrag!=null)G+=` ufrag ${this.ufrag}`;return G}};function _O(W,G,X){let Y=`${W}|${G}|${X}`;return un("md5").update(Y,"ascii").digest("hex").slice(7)}function hq(W,G=65535){let Y=0;if(W==="host")Y=126;else if(W==="prflx")Y=110;else if(W==="srflx")Y=100;else Y=0;return 16777216*Y+256*G+255}var bn=class{cache=new Map;mdnsInstance=LS.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((G,X)=>{let Y=()=>{this.mdnsInstance.removeListener("response",V),clearTimeout(Z)},Z=setTimeout(()=>{Y(),X(Error("No mDNS response"))},1e4),V=(Q)=>{let J=Q.answers?.[0];if(J?.type!=="A")return;if(J.name!==W)return;Y(),G(J.data)};this.mdnsInstance.on("response",V),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},fn=T1("werift-ice : packages/ice/src/ice.ts : log"),FF=class{constructor(W,G,X){this.protocol=W,this.remoteCandidate=G,this.iceControlling=X}id=mn().toString();handle;nominated=!1;remoteNominated=!1;_state=0;get state(){return this._state}packetsSent=0;packetsReceived=0;bytesSent=0;bytesReceived=0;rtt;totalRoundTripTime=0;roundTripTimeMeasurements=0;toJSON(){return this.json}get json(){return{protocol:this.protocol.type,localCandidate:this.localCandidate.toSdp(),remoteCandidate:this.remoteCandidate.toSdp()}}updateState(W){this._state=W}get localCandidate(){if(!this.protocol.localCandidate)throw Error("localCandidate not exist");return this.protocol.localCandidate}get remoteAddr(){return[this.remoteCandidate.host,this.remoteCandidate.port]}get component(){return this.localCandidate.component}get priority(){return vO(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},SF=1,$q=2,cn=5,xF=6;var pn={useIpv4:!0,useIpv6:!0};function kF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function ln(W,G){return W.sort((X,Y)=>vO(X.localCandidate,X.remoteCandidate,G)-vO(Y.localCandidate,Y.remoteCandidate,G)).reverse()}function vO(W,G,X){let Y=X&&W.priority||G.priority,Z=X&&G.priority||W.priority;return 1*Math.min(Y,Z)+2*Math.max(Y,Z)+(Y>Z?1:0)}async function dn(W,G){let X=new m7(1,0);try{let[Y]=await W.request(X,G),Z=W.localCandidate;if(!Z)throw Error("not exist");return new DG(_O("srflx","udp",Z.host),Z.component,Z.transport,hq("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",Z.host,Z.port)}catch(Y){fn("error serverReflexiveCandidate",Y)}}function _F(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var on=T1("werift-ice : packages/ice/src/utils.ts");function nn(W){return iq(W.family)===4&&W.address?.startsWith("169.254.")||iq(W.family)===6&&W.address?.startsWith("fe80::")}function yF(W,{useLinkLocalAddress:G}={}){let X=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],Z=BS.networkInterfaces();on(Z);let V=Object.keys(Z).map((Q)=>{for(let U of[...X,...Y])if(Q.startsWith(U))return{nic:Q,addresses:[]};let J=Z[Q].filter((U)=>iq(U.family)===W&&!ES.default.isLoopback(U.address)&&(G?!0:!nn(U)));return{nic:Q,addresses:J.map((U)=>U.address)}}).filter((Q)=>!!Q);return V.sort((Q,J)=>Q.nic.localeCompare(J.nic)),Object.values(V).flatMap((Q)=>Q.addresses)}function rn(W,G,X={}){let Y=[];if(W)Y.push(...yF(4,X));if(G)Y.push(...yF(6,X));return Y}var e1=T1("werift-ice : packages/ice/src/ice.ts : log"),an=class{constructor(W,G){this._iceControlling=W,this.options={...pn,...G};let{stunServer:X,turnServer:Y}=this.options;this.stunServer=_F(X)??["stun.l.google.com",19302],this.turnServer=_F(Y),this.restart(),e1("new Connection",this.options)}localUsername=vQ(4);localPassword=vQ(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new Rq(hn(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new KF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new f0;stateChanged=new f0;onIceCandidate=new f0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let G of this.checkList)G.iceControlling=W}async restart(){if(this.generation++,this.localUsername=vQ(4),this.localPassword=vQ(22),this.options.localPasswordPrefix)this.localPassword=this.options.localPasswordPrefix+this.localPassword.slice(this.options.localPasswordPrefix.length);this.userHistory[this.localUsername]=this.localPassword,this.remoteUsername="",this.remotePassword="",this.localCandidates=[],this._remoteCandidates=[],this.remoteCandidatesEnd=!1,this.localCandidatesEnd=!1,this.state="new",this.lookup?.close?.(),this.lookup=void 0,this.nominated=void 0,this.nominating=!1,this.checkList=[],this.checkListDone=!1,this.checkListState=new KF,this.earlyChecks=[],this.earlyChecksDone=!1,this.localCandidatesStart=!1;for(let W of this.protocols)if(W.localCandidate)W.localCandidate.generation=this.generation,W.localCandidate.ufrag=this.localUsername;this.queryConsentHandle?.resolve?.(),this.queryConsentHandle=void 0}resetNominatedPair(){e1("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:G,password:X}){e1("setRemoteParams",{iceLite:W,usernameFragment:G,password:X}),this.remoteIsLite=W,this.remoteUsername=G,this.remotePassword=X}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=rn(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:G}=this.options;if(G){let Y=W.filter((Z)=>Object.values(G).includes(Z));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let X=this.getCandidatePromises(W,5);await Promise.allSettled(X),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((G,X,Y)=>{if(G.messageMethod!==1){this.respondError(G,X,W,[400,"Bad Request"]);return}let Z=G.getAttributeValue("USERNAME"),{remoteUsername:V}=vF(Z),Q=this.userHistory[V]??this.localPassword,{iceControlling:J}=this;if(J&&G.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=G.getAttributeValue("ICE-CONTROLLING")){this.respondError(G,X,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!J&&G.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<G.getAttributeValue("ICE-CONTROLLED"))this.respondError(G,X,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(G,X,W))return;let U=new m7(1,256,G.transactionId);if(U.setAttribute("XOR-MAPPED-ADDRESS",X).addMessageIntegrity(Buffer.from(Q,"utf8")).addFingerprint(),W.sendStun(U,X).catch((N)=>{e1("sendStun error",N)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([G,X,W]);else this.checkIncoming(G,X,W)}),W.onDataReceived.subscribe((G)=>{try{let X=this.nominated;if(X&&X.protocol===W)X.packetsReceived++,X.bytesReceived+=G.length;this.onData.execute(G)}catch(X){e1("dataReceived",X)}})}getCandidatePromises(W,G=5){let X=[];W=W.filter((U)=>{if(this.protocols.find((N)=>N.localIp===U))return!1;return!0});let Y=W.map(async(U)=>{let N=new RF;this.ensureProtocol(N);try{await N.connectionMade($F(U),this.options.portRange,this.options.interfaceAddresses),N.localIp=U,this.protocols.push(N),e1("protocol",N.localIp);let q=[U,N.getExtraInfo()[1]];return N.localCandidate=new DG(_O("host","udp",q[0]),1,"udp",hq("host"),q[0],q[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(N),this.appendLocalCandidate(N.localCandidate),N}catch(q){e1("error protocol STUN",q)}});X.push(...Y.map((U)=>U.then((N)=>N?.localCandidate)));let{stunServer:Z,turnServer:V}=this;if(Z){let U=Y.map(async(N)=>{let q=await N;if(!q)return;return new Promise(async(H,I)=>{let w=setTimeout(I,G*1000);if(q.localCandidate?.host&&$F(q.localCandidate?.host)){let C=await dn(q,Z).catch((D)=>{e1("error",D)});if(C)this.appendLocalCandidate(C);clearTimeout(w),H(C)}else clearTimeout(w),H()}).catch((H)=>{e1("query STUN server",H)})});X.push(...U)}let{turnUsername:Q,turnPassword:J}=this.options;if(V&&Q&&J){let U=(async()=>{let N=await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:this.options.turnTransport==="tcp"?"tcp":"udp"}).catch(async(H)=>{if(this.options.turnTransport!=="tcp")return await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});else throw H});this.ensureProtocol(N),this.protocols.push(N);let q=N.turn.relayedAddress,A=N.turn.mappedAddress;return e1("turn candidateAddress",q),N.localCandidate=new DG(_O("relay","udp",q[0]),1,"udp",hq("relay"),q[0],q[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(N.localCandidate),N.localCandidate})().catch((N)=>{e1("query TURN server",N)});if(this.options.forceTurn)X=[];X.push(U)}return X}async connect(){if(e1("start connect ice"),!this.localCandidatesEnd){if(!this.localCandidatesStart)throw Error("Local candidates gathering was not performed")}if(!this.remoteUsername||!this.remotePassword)throw Error("Remote username or password is missing");for(let G of this.remoteCandidates)this.pairRemoteCandidate(G);this.sortCheckList(),this.unfreezeInitial(),e1("earlyChecks",this.localPassword,this.earlyChecks.length);for(let G of this.earlyChecks)this.checkIncoming(...G);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await yO.setTimeout(20)}let W=$q;while(this.checkList.length>0&&W===$q)W=await this.checkListState.get(),e1("checkListState",W);for(let G of this.checkList)G.handle?.resolve?.();if(W!==SF)throw Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[W]=this.checkList;if(!W)return;if(W.state===0)W.updateState(1);let G=new Set(W.localCandidate.foundation);for(let X of this.checkList)if(X.component===W.component&&!G.has(X.localCandidate.foundation)&&X.state===0)X.updateState(1),G.add(X.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((G)=>{if(this.options.forceTurn&&G.protocol.type===RF.type)return!1;return!0}).find((G)=>G.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((G)=>G.state===0);if(W)return W.handle=this.checkStart(W),!0}if(!this.remoteCandidatesEnd)return!this.checkListDone;return!1}queryConsent=()=>{if(this.queryConsentHandle)this.queryConsentHandle.resolve();this.queryConsentHandle=kO(async(W,G,X)=>{let Y=0,Z=!1,V=new AbortController;X.once(()=>{Z=!0,Y+=xF,V.abort(),this.queryConsentHandle=void 0});let{localUsername:Q,remoteUsername:J,iceControlling:U}=this;try{while(this.state!=="closed"&&!Z){await yO.setTimeout(cn*(0.8+0.4*Math.random())*1000,void 0,{signal:V.signal});let N=this.nominated;if(!N||Z)break;let q=this.buildRequest({nominate:!1,localUsername:Q,remoteUsername:J,iceControlling:U});try{if(await N.protocol.request(q,N.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),Y=0,this.state==="disconnected")this.setState("connected")}catch(A){if(N.id===this.nominated?.id){e1("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=xF){e1("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch(N){}})};async close(){if(this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone)this.checkListState.put(new Promise((W)=>{W($q)}));this.nominated=void 0;for(let W of this.protocols)if(W.close)await W.close();this.protocols=[],this.localCandidates=[],this.lookup?.close?.(),this.lookup=void 0}setState(W){this.state=W,this.stateChanged.execute(W)}async addRemoteCandidate(W){if(!W){this.remoteCandidatesEnd=!0;return}if(W.host.includes(".local"))try{if(!this.lookup)this.lookup=new bn;let G=await this.lookup.lookup(W.host);W.host=G}catch(G){return}try{kF(W)}catch(G){return}e1("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let G=this.nominated;if(G)await G.protocol.sendData(W,G.remoteAddr),G.packetsSent++,G.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((X,Y)=>X.priority-Y.priority),[G]=W;return G}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let G of W){try{kF(G)}catch(X){continue}this._remoteCandidates.push(G)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){ln(this.checkList,this.iceControlling)}findPair(W,G){return this.checkList.find((Y)=>bq.default(Y.protocol,W)&&bq.default(Y.remoteCandidate,G))}switchRole(W){e1("switch role",W),this.iceControlling=W,this.sortCheckList()}checkComplete(W){if(W.handle=void 0,W.state===3){if(W.nominated&&(W.remoteCandidate.generation!=null?W.remoteCandidate.generation===this.generation:!0)&&this.nominated==null){e1("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let G of this.checkList)if(G.component===W.component&&[1,0].includes(G.state))G.updateState(4)}if(this.nominated){if(!this.checkListDone)e1("ICE completed"),this.checkListState.put(new Promise((G)=>G(SF))),this.checkListDone=!0;return}e1("not completed",W.toJSON());for(let G of this.checkList)if(G.localCandidate.foundation===W.localCandidate.foundation&&G.state===0)G.updateState(1)}{let G=[3,4];if(this.checkList.find(({state:X})=>!G.includes(X)))return}if(!this.iceControlling){if(this.checkList.find(({state:X})=>X===3))return}if(!this.checkListDone)e1("ICE failed"),this.checkListState.put(new Promise((G)=>{G($q)}))}checkStart=(W)=>kO(async(G)=>{e1("check start",W.toJSON()),W.updateState(2);let X={},{remotePassword:Y,remoteUsername:Z,generation:V}=this,Q=W.localCandidate.ufrag??this.localUsername,J=this.iceControlling&&!this.remoteIsLite,U=this.buildRequest({nominate:J,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling}),N=performance.now();try{let[q,A]=await W.protocol.request(U,W.remoteAddr,Buffer.from(Y,"utf8"),4),I=(performance.now()-N)/1000;W.rtt=I,W.totalRoundTripTime+=I,W.roundTripTimeMeasurements++,e1("response received",U.toJSON(),q.toJSON(),A,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V,rtt:I}),X.response=q,X.addr=A}catch(q){let A=q;if(e1("failure case",U.toJSON(),A.response?JSON.stringify(A.response.toJSON(),null,2):q,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V},W.remoteAddr),A.response?.getAttributeValue("ERROR-CODE")[0]===487){if(U.attributesKeys.includes("ICE-CONTROLLED"))this.switchRole(!0);else if(U.attributesKeys.includes("ICE-CONTROLLING"))this.switchRole(!1);await this.checkStart(W).awaitable,G();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){e1("retry 401",W.toJSON()),await this.checkStart(W).awaitable,G();return}else{e1("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),G();return}}if(!bq.default(X.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),G();return}if(J||W.remoteNominated)W.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let q=this.buildRequest({nominate:!0,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling});try{await W.protocol.request(q,W.remoteAddr,Buffer.from(this.remotePassword,"utf8"))}catch(A){W.updateState(4),this.checkComplete(W);return}W.nominated=!0}W.updateState(3),this.checkComplete(W),G()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,G,X){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:Z}=vF(Y),V,[Q,J]=G;for(let N of this.remoteCandidates)if(N.host===Q&&N.port===J){V=N;break}if(!V)V=new DG(vQ(10),1,"udp",W.getAttributeValue("PRIORITY"),Q,J,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(V);let U=this.findPair(X,V);if(!U)U=new FF(X,V,this.iceControlling),U.updateState(1),this.addPair(U);if(U.localCandidate.ufrag=Z,e1("Triggered Checks",W.toJSON(),U.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(U.state))U.handle=this.checkStart(U);if(W.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling){if(U.remoteNominated=!0,U.state===3)U.nominated=!0,this.checkComplete(U)}}tryPair(W,G){if(W.localCandidate?.canPairWith(G)&&!this.findPair(W,G)){let X=new FF(W,G,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(X))return;X.updateState(1),this.addPair(X)}}pairLocalProtocol(W){for(let G of this.remoteCandidates)this.tryPair(W,G)}pairRemoteCandidate=(W)=>{for(let G of this.protocols)this.tryPair(G,W)};buildRequest({nominate:W,remoteUsername:G,localUsername:X,iceControlling:Y}){let Z=sn({remoteUsername:G,localUsername:X}),V=new m7(1,0);if(V.setAttribute("USERNAME",Z).setAttribute("PRIORITY",hq("prflx")),Y){if(V.setAttribute("ICE-CONTROLLING",this.tieBreaker),W)V.setAttribute("USE-CANDIDATE",null)}else V.setAttribute("ICE-CONTROLLED",this.tieBreaker);return V}respondError(W,G,X,Y){let Z=new m7(W.messageMethod,272,W.transactionId);Z.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),X.sendStun(Z,G).catch((V)=>{e1("sendStun error",V)})}},sn=({remoteUsername:W,localUsername:G})=>{return`${W}:${G}`},vF=(W)=>{let[G,X]=W.split(":");return{remoteUsername:G,localUsername:X}};function gF(W){return W.map((G,X)=>[X,G])}function b4(W,G){let X=W.split(G);return[X[0],X.slice(1).join(G)]}var UK=class extends tn{addEventListener=(W,G)=>{this.addListener(W,G)};removeEventListener=(W,G)=>{this.removeListener(W,G)}},en=T1("werift:packages/webrtc/src/dataChannel.ts");function Wi(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var $S=class extends UK{constructor(W,G,X=!0){super();if(this.sctp=W,this.parameters=G,this.sendOpen=X,this.id=this.parameters.id,G.negotiated){if(this.id==null||this.id<0||this.id>65534)throw Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else if(X)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new f0;stateChanged=new f0;onMessage=new f0;error=new f0;bufferedAmountLow=new f0;onopen;onclose;onclosing;onmessage;onerror;isCreatedByRemote=!1;id;readyState="connecting";bufferedAmount=0;_bufferedAmountLowThreshold=0;messagesSent=0;bytesSent=0;messagesReceived=0;bytesReceived=0;get ordered(){return this.parameters.ordered}get maxRetransmits(){return this.parameters.maxRetransmits}get maxPacketLifeTime(){return this.parameters.maxPacketLifeTime}get label(){return this.parameters.label}get protocol(){return this.parameters.protocol}get negotiated(){return this.parameters.negotiated}get bufferedAmountLowThreshold(){return this._bufferedAmountLowThreshold}set bufferedAmountLowThreshold(W){if(W<0||W>4294967295)throw Error("bufferedAmountLowThreshold must be in range 0 - 4294967295");this._bufferedAmountLowThreshold=W}setId(W){this.id=W}setReadyState(W){if(W!==this.readyState){switch(this.readyState=W,this.stateChange.execute(W),this.stateChanged.execute(W),W){case"open":if(this.onopen)this.onopen();this.emit("open");break;case"closed":if(this.onclose)this.onclose();this.emit("close");break;case"closing":if(this.onclosing)this.onclosing();break}en("change state",W)}}addBufferedAmount(W){let G=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,G)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let G=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=G}close(){this.sctp.dataChannelClose(this)}},FS=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var wH=()=>({type:"nack"}),UJ=()=>({type:"nack",parameter:"pli"}),jH=()=>({type:"goog-remb"}),Gi=()=>({type:"transport-cc"}),$G=class{payloadType;mimeType;clockRate;channels;rtcpFeedback=[];parameters;direction="all";constructor(W){Object.assign(this,W)}get name(){return this.mimeType.split("/")[1]}get contentType(){return this.mimeType.split("/")[0]}get str(){let W=`${this.name}/${this.clockRate}`;if(this.channels===2)W+="/2";return W}},Xi=class{id;uri;constructor(W){Object.assign(this,W)}};var Yi=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Zi=class{ssrc;constructor(W={}){Object.assign(this,W)}},Vi=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},SS=class{rid;direction;constructor(W){Object.assign(this,W)}},Qi=(W={})=>new $G({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[wH(),UJ(),jH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),xS=(W={})=>new $G({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[wH(),UJ(),jH()],...W}),Ji=(W={})=>new $G({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[wH(),UJ(),jH()],...W}),Ui=(W={})=>new $G({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[wH(),UJ(),jH()],...W}),kS=(W={})=>new $G({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),_S=(W={})=>new $G({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),yS=[Ui(),Ji(),xS(),Qi(),kS(),_S()].map((W)=>W.mimeType),nH0=yS.filter((W)=>W.toLowerCase().startsWith("video/")),iH0=yS.filter((W)=>W.toLowerCase().startsWith("audio/"));var uF=2,hF=3,Ai=0,Sq=50,bF=51,mF=53,zi=56,Ii=57,wi="0.0.0.0",fF=9,gO={auto:"actpass",client:"active",server:"passive"},cF=Object.keys(gO).reduce((W,G)=>{let X=gO[G];return W[X]=G,W},{}),ji=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],vS=["cname","msid","mslabel","label"],pF={SRTP_AES128_CM_HMAC_SHA1_80:IH,SRTP_AEAD_AES_128_GCM:QJ},mq=["sendonly","sendrecv"],Oi=["sendrecv","recvonly"],Ki=class extends Map{constructor(W){super();if(W)for(let G of W)this.set(G.id,G)}};function Z8(W,...G){let X=G.filter((Y)=>Y!==void 0);return`${W}_${X.join("_")}`}function FG(){return performance.now()}var Ci=class{constructor(W,G,X,Y,Z){if(this.kind=W,this.receiver=X,this.sender=Y,this._direction=Z,G)this.setDtlsTransport(G)}id=Hi().toString();onTrack=new f0;mid;mLineIndex;usedForSender=!1;_currentDirection;offerDirection;_codecs=[];set codecs(W){this._codecs=W}get codecs(){return this._codecs}headerExtensions=[];options={};stopping=!1;stopped=!1;get dtlsTransport(){return this.receiver.dtlsTransport}get direction(){return this._direction}setDirection(W){if(this._direction=W,mq.includes(this._currentDirection??""))this.usedForSender=!0}get currentDirection(){return this._currentDirection}setCurrentDirection(W){this._currentDirection=W}setDtlsTransport(W){this.receiver.setDtlsTransport(W),this.sender.setDtlsTransport(W)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(W){if(this.receiver.addTrack(W))this.onTrack.execute(W,this)}stop(){if(this.stopping)return;this.stopping=!0}getPayloadType(W){return this.codecs.find((G)=>G.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let Z={type:"codec",id:Z8("codec",Y.payloadType,X),timestamp:W,payloadType:Y.payloadType,transportId:X,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};G.push(Z)}return G}},Di="inactive",gS="sendonly",uS="recvonly",hS="sendrecv",wO=[Di,gS,uS,hS],uO=class extends UK{uuid=bS().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new f0;onReceiveRtcp=new f0;onSourceChanged=new f0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((G)=>{this.muted=!1,this.header=G.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=(W)=>{if(this.remote)throw Error("this is remoteTrack");if(this.stopped)return;let G=Buffer.isBuffer(W)?t6.deSerialize(W):W;G.header.payloadType=this.codec?.payloadType??G.header.payloadType,this.onReceiveRtp.execute(G)}},Mi=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=bS().toString()}addTrack(W){W.streamId=this.id,this.tracks.push(W)}getTracks(){return this.tracks}getAudioTracks(){return this.tracks.filter((W)=>W.kind==="audio")}getVideoTracks(){return this.tracks.filter((W)=>W.kind==="video")}},Ti=T1("werift:packages/webrtc/src/utils.ts");function mS(W,G){let X=(V)=>V.toUpperCase(),Y=(V)=>V.match(/(.{2})/g).join(":"),Z=qi(G).update(W).digest("hex");return Y(X(Z))}var Pi={sha1:"sha1","sha-1":"sha1",sha224:"sha224","sha-224":"sha224",sha256:"sha256","sha-256":"sha256",sha384:"sha384","sha-384":"sha384",sha512:"sha512","sha-512":"sha512"};function fS(W){return Pi[W.trim().toLowerCase()]}function hO(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function Ri(W){let G=W[0];return G>19&&G<64}var cS=(W,G)=>wO[wO.indexOf(W)&wO.indexOf(G)];function Li(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var pS=Date.now,Bi=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,Ei=()=>{return Bi+process.hrtime.bigint()/1000n},QH=()=>Date.now()/1000,$i=()=>{let G=(Fq.timeOrigin+Fq.now()-Date.UTC(1900,0,1))/1000,[X,Y]=G.toString().split(".").map(Number);return E8([4,4],[X,Y]).readBigUInt64BE()},lS=(W)=>{let G=E8([8],[W]),[,X,Y]=r9(G,[2,2,2,2]);return E8([2,2],[X,Y]).readUInt32BE()};function Fi(W){let G=(J)=>{if(!J)return;let[U,N]=J.split(":");return[U,Number.parseInt(N)]},X=G(W.find(({urls:J})=>J.includes("stun:"))?.urls.slice(5)),Y=G(W.find(({urls:J})=>J.includes("turn:"))?.urls.slice(5)),{credential:Z,username:V}=W.find(({urls:J})=>J.includes("turn:"))||{},Q={stunServer:X,turnServer:Y,turnUsername:V,turnPassword:Z};return Ti("iceOptions",Q),Q}var GA0=aq.createSelfSignedCertificateWithKey;var Si=(W,G)=>{if(!W||typeof W!=="object")if(G!==null&&typeof G==="object")return G;else return W;if(!G||typeof G!=="object"){if(G==null)return W;return G}for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];if(Y!=null)W[X]=Y}return W},xi=T1("werift:packages/webrtc/src/media/receiver/nack.ts"),lF=150,ki=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new f0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,G){if(this._lost[W]=G,this.nackLoop||this.closed)return;this.nackLoop=setInterval(async()=>{try{if(await this.sendNack(),!Object.keys(this._lost).length)clearInterval(this.nackLoop),this.nackLoop=void 0}catch(X){xi("failed to send nack",X)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:G,ssrc:X}=W.header;if(this.mediaSourceSsrc=X,this.newEstSeqNum===0){this.newEstSeqNum=G;return}if(this.getLost(G)){this.removeLost(G);return}if(G===M9(this.newEstSeqNum,1))this.newEstSeqNum=G;else if(G>M9(this.newEstSeqNum,1)){for(let Y=M9(this.newEstSeqNum,1);Y<G;Y=M9(Y,1))this.setLost(Y,1);this.newEstSeqNum=G,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>lF)this._lost=Object.entries(this._lost).slice(-lF).reduce((W,[G,X])=>{return W[G]=X,W},{})}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach((W)=>{if(this._lost[W]++>this.retryCount)return this.removeLost(W),W})}sendNack=()=>new Promise((W,G)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let X=new YH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new uY({feedback:X});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(G),this.updateRetryCount(),this.onPacketLost.execute(X)}})},yi=T1("werift:packages/webrtc/media/receiver/receiverTwcc"),vi=class{constructor(W,G,X){this.dtlsTransport=W,this.rtcpSsrc=G,this.mediaSourceSsrc=X,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:Ei()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await _i(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((q,A)=>q.tsn-A.tsn),G=W[0].tsn,X=W.slice(-1)[0].tsn,Y=[],Z=W[0].tsn,V=M9(X-G,1),Q,J,U=[];for(let q=G;q<=X;q++){let A=this.extensionInfo[q]?.timestamp;if(A){if(!this.lastTimestamp)this.lastTimestamp=A;if(!Q)Q=this.lastTimestamp;let H=A-this.lastTimestamp;this.lastTimestamp=A;let I=new yq({delta:Number(H)});if(I.parseDelta(),U.push(I),J!=null&&J.status!==I.type)Y.push(new dQ({packetStatus:J.status,runLength:q-J.minTSN})),J={minTSN:q,status:I.type};if(q===X)if(J!=null)Y.push(new dQ({packetStatus:J.status,runLength:q-J.minTSN+1}));else Y.push(new dQ({packetStatus:I.type,runLength:1}));if(J==null)J={minTSN:q,status:I.type}}}if(!Q)return;let N=new uY({feedback:new ZH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:Z,packetStatusCount:V,referenceTime:Ld(Math.floor(Number(Q/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:U,packetChunks:Y})});this.dtlsTransport.sendRtcp([N]).catch((q)=>{yi(q)}),this.extensionInfo={},this.fbPktCount=Rd(this.fbPktCount,1)}},gi=class{base_seq;max_seq;cycles=0;packets_received=0;clockRate;jitter_q4=0;last_arrival;last_timestamp;expected_prior=0;received_prior=0;constructor(W){this.clockRate=W}add(W,G=Date.now()/1000){let X=this.max_seq==null||M2(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(X){let Y=lQ(G*this.clockRate);if(this.max_seq!=null&&W.header.sequenceNumber<this.max_seq)this.cycles+=65536;if(this.max_seq=W.header.sequenceNumber,W.header.timestamp!==this.last_timestamp&&this.packets_received>1){let Z=Math.abs(Y-(this.last_arrival??0)-(W.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=Z-(this.jitter_q4+8>>4)}this.last_arrival=Y,this.last_timestamp=W.header.timestamp}}get fraction_lost(){let W=this.packets_expected-this.expected_prior;this.expected_prior=this.packets_expected;let G=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let X=W-G;if(W==0||X<=0)return 0;else return Math.floor((X<<8)/W)}get jitter(){return this.jitter_q4>>4}get packets_expected(){return this.cycles+(this.max_seq??0)-(this.base_seq??0)+1}get packets_lost(){let W=this.packets_expected-this.packets_received;return W<0?0:W}},a5=T1("werift:packages/webrtc/src/transport/dtls.ts"),dF=class W{constructor(G,X,Y,Z=[]){this.config=G,this.iceTransport=X,this.localCertificate=Y,this.srtpProfiles=Z,this.localCertificate??=W.localCertificate}id=bi().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new f0;onRtcp=new f0;onRtp=new f0;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new mO(this.localCertificate?this.localCertificate.getFingerprints():[],this.role)}static async SetupCertificate(){if(this.localCertificate)return this.localCertificate;if(this.localCertificatePromise)return this.localCertificatePromise;return this.localCertificatePromise=(async()=>{let{certPem:G,keyPem:X,signatureHash:Y}=await aq.createSelfSignedCertificateWithKey({signature:p4.ecdsa_3,hash:rq.sha256_4},a6.secp256r1_23);return this.localCertificate=new dS(X,G,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(G){let X=fi([...this.remoteParameters?.fingerprints??[],...G.fingerprints]),Y=G.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:G.role;this.remoteParameters=new mO(X,Y)}async start(){if(this.state!=="new")throw Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");if(this.role==="auto")if(this.iceTransport.role==="controlling")this.role="server";else this.role="client";this.setState("connecting"),await new Promise(async(G,X)=>{if(this.role==="server")this.dtls=new In({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new jF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0});if(this.dtls.onData.subscribe((Y)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;this.dataReceiver(Y)}),this.dtls.onClose.subscribe(()=>{if(this.state!=="failed")this.setState("closed")}),this.dtls.onConnect.once(G),this.dtls.onError.once((Y)=>{this.setState("failed"),a5("dtls failed",Y),X(Y)}),this.dtls instanceof jF)await mi(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),a5("dtls connect failed",Y),X(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(G){throw this.setState("failed"),this.dtls?.close(),G}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),a5("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let G=this.dtls?.remoteCertificate;if(!G)throw Error("remote certificate not available");let X=this.remoteParameters.fingerprints.flatMap(({algorithm:J,value:U})=>{let N=fS(J);if(!N)return[];let q=hO(U);if(!q)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:N,normalizedValue:q}]});if(X.length===0)throw Error("no supported remote fingerprint algorithms");let Y=pi(X),Z=X.filter(({normalizedAlgorithm:J})=>J===Y),V=Z.reduce((J,{normalizedAlgorithm:U})=>{if(!J.has(U))J.set(U,hO(mS(G,U)));return J},new Map);if(!Z.some(({normalizedAlgorithm:J,normalizedValue:U})=>V.get(J)===U))throw Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw Error();let G=this.dtls.srtp.srtpProfile;if(!G)throw Error("need srtpProfile");a5("selected SRTP Profile",G);let{localKey:X,localSalt:Y,remoteKey:Z,remoteSalt:V}=this.dtls.extractSessionKeys(Oo(G),Ko(G)),Q={keys:{localMasterKey:X,localMasterSalt:Y,remoteMasterKey:Z,remoteMasterSalt:V},profile:G};this.srtp=new Yn(Q),this.srtcp=new Gn(Q)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((G)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!Mo(G))return;if(this.bytesReceived+=G.length,this.packetsReceived++,So(G)){let X;try{X=this.srtcp.decrypt(G)}catch(Z){if(Z instanceof bY){a5("dropping invalid SRTCP packet",Z);return}throw Z}let Y;try{Y=Fo.deSerialize(X)}catch(Z){a5("dropping malformed SRTCP packet",Z);return}for(let Z of Y)try{this.onRtcp.execute(Z)}catch(V){a5("RTCP error",V)}}else{let X;try{X=this.srtp.decrypt(G)}catch(Z){if(Z instanceof bY){a5("dropping invalid SRTP packet",Z);return}throw Z}let Y;try{Y=t6.deSerialize(X)}catch(Z){a5("dropping malformed SRTP packet",Z);return}try{this.onRtp.execute(Y)}catch(Z){a5("RTP error",Z)}}})}sendData=async(G)=>{if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return;if(!this.dtls)throw Error("dtls not established");await this.dtls.send(G)};async sendRtp(G,X){try{let Y=this.srtp.encrypt(G,X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;return this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{}),Y.length}catch(Y){return a5("failed to send",Y),0}}async sendRtcp(G){let X=Buffer.concat(G.map((Z)=>Z.serialize())),Y=this.srtcp.encrypt(X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{})}setState(G){if(G!=this.state)this.state=G,this.onStateChange.execute(G)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let G=FG(),X=[],Z={type:"transport",id:Z8("transport",this.id),timestamp:G,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?Z8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?Z8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?Z8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(X.push(Z),this.localCertificate){let Q=this.localCertificate.getFingerprints();if(Q.length>0){let J={type:"certificate",id:Z8("certificate","local"),timestamp:G,fingerprint:Q[0].value,fingerprintAlgorithm:Q[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};X.push(J)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let Q={type:"certificate",id:Z8("certificate","remote"),timestamp:G,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};X.push(Q)}let V=await this.iceTransport.getStats();return X.push(...V),X}};var dS=class{constructor(W,G,X){this.certPem=G,this.signatureHash=X;let Y=tQ.Certificate.fromPEM(Buffer.from(G));this.publicKey=Y.publicKey.toPEM(),this.privateKey=tQ.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new bO("sha-256",mS(tQ.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},bO=class{constructor(W,G){this.algorithm=W,this.value=G}},mO=class{constructor(W=[],G){this.fingerprints=W,this.role=G}},fi=(W)=>{let G=new Set;return W.filter(({algorithm:X,value:Y})=>{let Z=`${fS(X)??X.trim().toLowerCase()}:${hO(Y)}`;if(G.has(Z))return!1;return G.add(Z),!0})},ci=["sha512","sha384","sha256","sha224","sha1"],pi=(W)=>{return ci.find((G)=>W.some(({normalizedAlgorithm:X})=>X===G))??W[0].normalizedAlgorithm},li=class{constructor(W){this.ice=W,W.onData.subscribe((G)=>{if(Ri(G)){if(this.onData)this.onData(G)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},oF=(W)=>new li(W),nF=T1("werift:packages/webrtc/src/transport/ice.ts"),oi=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((G)=>{this.setState(G)}),this.iceGather.onIceCandidate=(G)=>{this.onIceCandidate.execute(G)}}id=di().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new f0;onIceCandidate=new f0;onNegotiationNeeded=new f0;get role(){if(this.connection.iceControlling)return"controlling";else return"controlled"}get gatheringState(){return this.iceGather.gatheringState}get localCandidates(){return this.iceGather.localCandidates}get localParameters(){return this.iceGather.localParameters}setState(W){if(W!==this.state)this.state=W,this.onStateChange.execute(W)}gather(){return this.iceGather.gather()}addRemoteCandidate=(W)=>{if(!this.connection.remoteCandidatesEnd)if(!W)return this.connection.addRemoteCandidate(void 0);else return this.connection.addRemoteCandidate(ii(W))};setRemoteParams(W,G=!1){if(G)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)nF("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else nF("restart",W),this.restart();this.connection.setRemoteParams(W)}restart(){this.connection.restart(),this.setState("new"),this.iceGather.gatheringState="new",this.waitStart=void 0,this.onNegotiationNeeded.execute()}async start(){if(this.state==="closed")throw Error("RTCIceTransport is closed");if(!this.connection.remotePassword||!this.connection.remoteUsername)throw Error("remoteParams missing");if(this.waitStart)await this.waitStart.asPromise();this.waitStart=new f0,this.setState("checking");try{await this.connection.connect()}catch(W){throw this.setState("failed"),W}this.waitStart.execute(),this.waitStart.complete(),this.waitStart=void 0}async stop(){if(this.state!=="closed")this.setState("closed"),await this.connection.close();this.onStateChange.complete(),this.onIceCandidate.complete(),this.onNegotiationNeeded.complete()}async getStats(){let W=FG(),G=[];for(let Y of this.localCandidates){let Z={type:"local-candidate",id:Z8("local-candidate",Y.foundation),timestamp:W,transportId:Z8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};G.push(Z)}for(let Y of this.connection.remoteCandidates){let Z=eQ(Y),V={type:"remote-candidate",id:Z8("remote-candidate",Z.foundation),timestamp:W,transportId:Z8("transport",this.id),address:Z.ip,port:Z.port,protocol:Z.protocol,candidateType:Z.type,priority:Z.priority,foundation:Z.foundation};G.push(V)}let X=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of X){let Z={type:"candidate-pair",id:Z8("candidate-pair",Y.foundation),timestamp:W,transportId:Z8("transport",this.id),localCandidateId:Z8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:Z8("remote-candidate",Y.remoteCandidate.foundation),state:Y.state,nominated:Y.nominated,packetsSent:Y.packetsSent,packetsReceived:Y.packetsReceived,bytesSent:Y.bytesSent,bytesReceived:Y.bytesReceived,currentRoundTripTime:Y.rtt};G.push(Z)}return G}};var ni=class{constructor(W={}){this.options=W,this.connection=new an(!1,this.options),this.connection.onIceCandidate.subscribe((G)=>{this.onIceCandidate(eQ(G))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new f0;async gather(){if(this.gatheringState==="new")this.setState("gathering"),await this.connection.gatherCandidates(),this.onIceCandidate(void 0),this.setState("complete")}get localCandidates(){return this.connection.localCandidates.map(eQ)}get localParameters(){return new nS({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(W){if(W!==this.gatheringState)this.gatheringState=W,this.onGatheringStateChange.execute(W)}};function eQ(W){let G=new oS(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return G.relatedAddress=W.relatedAddress,G.relatedPort=W.relatedPort,G.tcpType=W.tcptype,G}function ii(W){return new DG(W.foundation,W.component,W.protocol,W.priority,W.ip,W.port,W.type,W.relatedAddress,W.relatedPort,W.tcpType,W.generation,W.ufrag)}var ri=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let G=DG.fromSdp(W);return eQ(G).toJSON()}static isThis(W){if(typeof W?.candidate==="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},oS=class{constructor(W,G,X,Y,Z,V,Q,J,U){this.component=W,this.foundation=G,this.ip=X,this.port=Y,this.priority=Z,this.protocol=V,this.type=Q,this.generation=J,this.ufrag=U}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new ri({candidate:Yx(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let G=Zx(W.candidate);return G.sdpMLineIndex=W.sdpMLineIndex??void 0,G.sdpMid=W.sdpMid??void 0,G}catch(G){}}},nS=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},c7=class W{constructor(G=0,X=Buffer.from("")){this.flags=G,this._body=X}get body(){return this._body}set body(G){this._body=G}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let G=Buffer.alloc(4);return G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(this.body.length+4,2),Buffer.concat([G,this.body,...[...Array(qJ(this.body.length))].map(()=>Buffer.from("\x00"))])}},NK=class extends c7{constructor(W=0,G){super(W,G);if(this.flags=W,G)this.initiateTag=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4),this.outboundStreams=G.readUInt16BE(8),this.inboundStreams=G.readUInt16BE(10),this.initialTsn=G.readUInt32BE(12),this.params=eS(G.slice(16));else this.initiateTag=0,this.advertisedRwnd=0,this.outboundStreams=0,this.inboundStreams=0,this.initialTsn=0,this.params=[]}initiateTag;advertisedRwnd;outboundStreams;inboundStreams;initialTsn;params;get body(){let W=Buffer.alloc(16);return W.writeUInt32BE(this.initiateTag,0),W.writeUInt32BE(this.advertisedRwnd,4),W.writeUInt16BE(this.outboundStreams,8),W.writeUInt16BE(this.inboundStreams,10),W.writeUInt32BE(this.initialTsn,12),Buffer.concat([W,tS(this.params)])}},fq=class W extends NK{static type=1;get type(){return W.type}},fO=class W extends NK{static type=2;get type(){return W.type}},ti=class W extends NK{static type=130;get type(){return W.type}},cq=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0);let Y=4;while(Y<X.length)this.streams.push([X.readUInt16BE(Y),X.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(G){}get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([G,...this.streams.map(([X,Y])=>{let Z=Buffer.alloc(4);return Z.writeUInt16BE(X,0),Z.writeUInt16BE(Y,2),Z})])}},pq=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.tsn=X.readUInt32BE(0),this.streamId=X.readUInt16BE(4),this.streamSeqNum=X.readUInt16BE(6),this.protocol=X.readUInt32BE(8),this.userData=X.slice(12)}static type=0;get type(){return W.type}tsn=0;streamId=0;streamSeqNum=0;protocol=0;userData=Buffer.from("");abandoned=!1;acked=!1;misses=0;retransmit=!1;sentCount=0;bookSize=0;expiry;maxRetransmits;sentTime;get bytes(){let G=16+this.userData.length,X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.tsn,4),X.writeUInt16BE(this.streamId,8),X.writeUInt16BE(this.streamSeqNum,10),X.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([X,this.userData]);if(G%4)Y=Buffer.concat([Y,...[...Array(qJ(G))].map(()=>Buffer.from("\x00"))]);return Y}},cO=class W extends c7{static type=10;get type(){return W.type}},pO=class W extends c7{static type=11;get type(){return W.type}},NJ=class extends c7{constructor(W=0,G=void 0){super(W,G);if(this.flags=W,G)this.params=eS(G)}params=[];get body(){return tS(this.params)}},lO=class W extends NJ{static type=6;get type(){return W.type}},lq=class W extends NJ{static type=9;static CODE={InvalidStreamIdentifier:1,MissingMandatoryParameter:2,StaleCookieError:3,OutofResource:4,UnresolvableAddress:5,UnrecognizedChunkType:6,InvalidMandatoryParameter:7,UnrecognizedParameters:8,NoUserData:9,CookieReceivedWhileShuttingDown:10,RestartofanAssociationwithNewAddresses:11,UserInitiatedAbort:12,ProtocolViolation:13};get type(){return W.type}get descriptions(){return this.params.map(([G,X])=>{return{name:(Object.entries(W.CODE).find(([,Z])=>Z===G)||[])[0],body:X}})}},dO=class W extends NJ{static type=4;get type(){return W.type}},iS=class W extends NJ{static type=5;get type(){return W.type}},oO=class W extends NJ{static type=130;get type(){return W.type}},nO=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4);let Y=X.readUInt16BE(8),Z=X.readUInt16BE(10),V=12;[...Array(Y)].forEach(()=>{this.gaps.push([X.readUInt16BE(V),X.readUInt16BE(V+2)]),V+=4}),[...Array(Z)].forEach(()=>{this.duplicates.push(X.readUInt32BE(V)),V+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let G=16+4*(this.gaps.length+this.duplicates.length),X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.cumulativeTsn,4),X.writeUInt32BE(this.advertisedRwnd,8),X.writeUInt16BE(this.gaps.length,12),X.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([X,...this.gaps.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt16BE(Z[0],0),V.writeUInt16BE(Z[1],2),V})]);return Y=Buffer.concat([Y,...this.duplicates.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt32BE(Z,0),V})]),Y}},rS=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.cumulativeTsn=X.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),G}},aS=class W extends c7{static type=8;get type(){return W.type}},sS=class W extends c7{static type=14;get type(){return W.type}},ei=[pq,fq,fO,nO,dO,iS,lO,rS,aS,lq,cO,pO,sS,oO,cq],Wr=ei.reduce((W,G)=>{return W[G.type]=G,W},{});function qJ(W){let G=W%4;return G?4-G:0}function tS(W){let G=Buffer.from(""),X=Buffer.from("");return W.forEach(([Y,Z])=>{let V=Z.length+4,Q=Buffer.alloc(4);Q.writeUInt16BE(Y,0),Q.writeUInt16BE(V,2),G=Buffer.concat([G,X,Q,Z]),X=Buffer.concat([...Array(qJ(V))].map(()=>Buffer.from("\x00")))}),G}function eS(W){let G=[],X=0;while(X<=W.length-4){let Y=W.readUInt16BE(X),Z=W.readUInt16BE(X+2);G.push([Y,W.slice(X+4,X+Z)]),X+=Z+qJ(Z)}return G}function Gr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let G=W.readUInt16BE(0),X=W.readUInt16BE(2),Y=W.readUInt32BE(4),Z=W.readUInt32LE(8),V=D2(Buffer.concat([W.slice(0,8),Buffer.from("\x00\x00\x00\x00"),W.slice(12)]));if(Z!==V)throw Error("SCTP packet has invalid checksum");let Q=[],J=12;while(J+4<=W.length){let U=W.readUInt8(J),N=W.readUInt8(J+1),q=W.readUInt16BE(J+2),A=W.slice(J+4,J+q),H=Wr[U.toString()];if(H)Q.push(new H(N,A));else throw Error("unknown");J+=q+qJ(q)}return[G,X,Y,Q]}function Xr(W,G,X,Y){let Z=Buffer.alloc(8);Z.writeUInt16BE(W,0),Z.writeUInt16BE(G,2),Z.writeUInt32BE(X,4);let V=Y.bytes,Q=D2(Buffer.concat([Z,Buffer.from("\x00\x00\x00\x00"),V])),J=Buffer.alloc(4);return J.writeUInt32LE(Q,0),Buffer.concat([Z,J,V])}function Yr(W){return W.map((G,X)=>[X,G])}function Zr(W){return W.reduce((G,X)=>{return G[X]=new f0,G},{})}var iO=class W{constructor(G,X,Y,Z){this.requestSequence=G,this.responseSequence=X,this.lastTsn=Y,this.streams=Z}static type=13;get type(){return W.type}get bytes(){let G=Buffer.from(a1.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([G,...this.streams.map((X)=>Buffer.from(a1.Pack("!H",[X])))])}static parse(G){let[X,Y,Z]=a1.Unpack("!LLL",G),V=[];for(let Q=12;Q<G.length;Q+=2)V.push(a1.Unpack("!H",G.slice(Q))[0]);return new W(X,Y,Z,V)}},Wx=class W{constructor(G,X){this.requestSequence=G,this.newStreams=X}static type=17;get type(){return W.type}get bytes(){return Buffer.from(a1.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(G){let[X,Y]=a1.Unpack("!LHH",G);return new W(X,Y)}},xq={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},dq=class W{constructor(G,X){this.responseSequence=G,this.result=X}static type=16;get type(){return W.type}get bytes(){return Buffer.from(a1.Pack("!LL",[this.responseSequence,this.result]))}static parse(G){let[X,Y]=a1.Unpack("!LL",G);return new W(X,Y)}},rF={13:iO,16:dq,17:Wx},r1=T1("werift/sctp/sctp"),Vr=24,Qr=60,aF=65535,s5=1200,fQ=1,Gx=2,rO=4,sF=10,Jr=8,tF=0.125,eF=0.25,W2=3,Ur=1,Nr=60,JH=4294967296,qr=200,Hr=30,G2=135,X2=7,Y2=32776,Z2=49152,Ar=["new","closed","connected","connecting"],zr=class W{constructor(G,X=5000){this.transport=G,this.port=X,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new f0;stateChanged=Zr(Ar);onReconfigStreams=new f0;onReceive=new f0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=si(16);localPartialReliability=!0;localPort;localVerificationTag=DO();remoteExtensions=[];remotePartialReliability=!0;remotePort;remoteVerificationTag=0;advertisedRwnd=1048576;peerAdvertisedRwnd=this.advertisedRwnd;get peerRwnd(){return Math.max(0,this.peerAdvertisedRwnd-this.flightSize)}inboundStreams={};_inboundStreamsCount=0;_inboundStreamsMax=aF;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*s5;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=aF;localTsn=Number(DO());lastSackedTsn=KG(this.localTsn);advancedPeerAckTsn=KG(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=W2;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Hr;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(G,X=5000){let Y=new W(G,X);return Y.isServer=!1,Y}static server(G,X=5000){let Y=new W(G,X);return Y.isServer=!0,Y}async handleData(G){if(this.isStopped)return;let X,[,,Y,Z]=Gr(G);if(Z.filter((Q)=>Q.type===fq.type).length>0){if(Z.length!=1)throw Error();X=0}else X=this.localVerificationTag;if(Y!==X)return;this.sackHasNewDataInPacket=!1;for(let Q of Z)await this.receiveChunk(Q);if(this.sackNeeded){if(this.sackHasNewDataInPacket)this.sackPacketCount++;if(this.sackPacketCount>=2)this.sackImmediate=!0;await this.scheduleSack()}}async scheduleSack(){if(this.isStopped)return;if(!this.sackNeeded)return;if(this.sackImmediate){if(this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;await this.sendSack();return}if(this.sackTimeout)return;this.sackTimeout=setTimeout(()=>{this.sackTimeout=void 0,this.sendSack().catch((G)=>{r1("send delayed sack failed",G.message)})},qr)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let G=[],X;[...this.sackMisOrdered].sort().forEach((Z)=>{let V=(Z-this.lastReceivedTsn)%JH;if(Z===X)G[G.length-1][1]=V;else G.push([V,V]);X=_Y(Z)});let Y=new nO(0,void 0);Y.cumulativeTsn=this.lastReceivedTsn,Y.advertisedRwnd=Math.max(0,this.advertisedRwnd),Y.duplicates=[...this.sackDuplicates],Y.gaps=G,await this.sendChunk(Y).catch((Z)=>{r1("send sack failed",Z.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(G){switch(G.type){case pq.type:this.receiveDataChunk(G);break;case fq.type:{if(!this.isServer)return;let X=G;r1("receive init",X),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new fO;Y.initiateTag=this.localVerificationTag,Y.advertisedRwnd=this.advertisedRwnd,Y.outboundStreams=this._outboundStreamsCount,Y.inboundStreams=this._inboundStreamsCount,Y.initialTsn=this.localTsn,this.setExtensions(Y.params);let Z=Date.now()/1000,V=Buffer.from(a1.Pack("!L",[Z]));V=Buffer.concat([V,iF("sha1",this.hmacKey).update(V).digest()]),Y.params.push([X2,V]),r1("send initAck",Y),await this.sendChunk(Y).catch((Q)=>{r1("send initAck failed",Q.message)})}break;case fO.type:{if(this.associationState!=2)return;let X=G;this.timer1Cancel(),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new cO;for(let[Z,V]of X.params)if(Z===X2){Y.body=V;break}await this.sendChunk(Y).catch((Z)=>{r1("send echo failed",Z.message)}),this.timer1Start(Y),this.setState(3)}break;case nO.type:await this.receiveSackChunk(G);break;case dO.type:{let X=new iS;X.params=G.params,await this.sendChunk(X).catch((Y)=>{r1("send heartbeat ack failed",Y.message)})}break;case lO.type:this.setState(1);break;case rS.type:{this.timer2Cancel(),this.setState(7);let X=new aS;await this.sendChunk(X).catch((Y)=>{r1("send shutdown ack failed",Y.message)}),this.t2Start(X),this.setState(6)}break;case lq.type:r1("ErrorChunk",G.descriptions);break;case cO.type:{if(!this.isServer)return;let Y=G.body,Z=iF("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=Vr||!Y.slice(4).equals(Z)){r1("x State cookie is invalid");return}let V=Date.now()/1000,Q=a1.Unpack("!L",Y)[0];if(Q<V-Qr||Q>V){let U=new lq(0,void 0);U.params.push([lq.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(U).catch((N)=>{r1("send errorChunk failed",N.message)});return}let J=new pO;await this.sendChunk(J).catch((U)=>{r1("send cookieAck failed",U.message)}),this.setState(4)}break;case pO.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case sS.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case oO.type:{if(this.associationState!=4)return;let X=G;for(let[Y,Z]of X.params){let V=rF[Y];if(V)await this.receiveReconfigParam(V.parse(Z))}}break;case cq.type:this.receiveForwardTsnChunk(G);break}}getExtensions(G){for(let[X,Y]of G)if(X===Z2)this.remotePartialReliability=!0;else if(X===Y2)this.remoteExtensions=[...Y]}async receiveReconfigParam(G){switch(r1("receiveReconfigParam",rF[G.type]),G.type){case iO.type:{let X=G,Y=new dq(X.requestSequence,xq.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y),await Promise.all(X.streams.map(async(Z)=>{if(delete this.inboundStreams[Z],this.outboundStreamSeq[Z]){if(!this.reconfigQueue.includes(Z))this.reconfigQueue.push(Z)}})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(X.streams)}break;case dq.type:{let X=G;if(X.result!==xq.ReconfigResultSuccessPerformed)r1("OutgoingSSNResetRequestParam failed",Object.keys(xq).find((Y)=>xq[Y]===X.result));else if(X.responseSequence===this.reconfigRequest?.requestSequence){let Y=this.reconfigRequest.streams.map((Z)=>{return delete this.outboundStreamSeq[Z],Z});if(this.onReconfigStreams.execute(Y),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=W2,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Wx.type:{let X=G;this._inboundStreamsCount+=X.newStreams;let Y=new dq(X.requestSequence,1);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(G){if(this.sackNeeded=!0,this.markReceived(G.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(G.flags&fQ)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let X=this.getInboundStream(G.streamId);X.addChunk(G),this.advertisedRwnd-=G.userData.length;for(let Y of X.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(G){if(m4(this.lastSackedTsn,G.cumulativeTsn))return;let X=Date.now()/1000;this.lastSackedTsn=G.cumulativeTsn;let Y=this.flightSize>=this.cwnd,Z=0,V=0;while(this.sentQueue.length>0&&mQ(this.lastSackedTsn,this.sentQueue[0].tsn)){let J=this.sentQueue.shift();if(Z++,!J?.acked)V+=J.bookSize,this.flightSizeDecrease(J);if(Z===1&&J.sentCount===1)this.updateRto(X-J.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let Q=!1;if(G.gaps.length>0){let J=new Set,U;G.gaps.forEach((q)=>{for(let A=q[0];A<q[1]+1;A++)U=(G.cumulativeTsn+A)%JH,J.add(U)});let N=G.cumulativeTsn;for(let q of this.sentQueue){if(m4(q.tsn,U))break;if(J.has(q.tsn)&&!q.acked)V+=q.bookSize,q.acked=!0,this.flightSizeDecrease(q),N=q.tsn}for(let q of this.sentQueue){if(m4(q.tsn,N))break;if(!J.has(q.tsn)){if(q.misses++,q.misses===3){if(q.misses=0,!this.maybeAbandon(q))q.retransmit=!0;q.acked=!1,this.flightSizeDecrease(q),Q=!0}}}}if(this.fastRecoveryExit===void 0){if(Z&&Y){if(this.cwnd<=this.ssthresh)this.cwnd+=Math.min(V,s5);else if(this.partialBytesAcked+=V,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=s5}if(Q)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*s5),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(mQ(G.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(Z>0)this.timer3Restart();this.peerAdvertisedRwnd=G.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(G){if(this.sackNeeded=!0,this.sackImmediate=!0,mQ(this.lastReceivedTsn,G.cumulativeTsn))return;let X=(Y)=>m4(Y,this.lastReceivedTsn);this.lastReceivedTsn=G.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let[Y,Z]of G.streams){let V=this.getInboundStream(Y);V.streamSequenceNumber=M9(Z,1);for(let Q of V.popMessages())this.advertisedRwnd+=Q[2].length,this.receive(...Q)}Object.values(this.inboundStreams).forEach((Y)=>{this.advertisedRwnd+=Y.pruneChunks(this.lastReceivedTsn)})}updateRto(G){if(!this.srtt)this.rttvar=G/2,this.srtt=G;else this.rttvar=(1-eF)*this.rttvar+eF*Math.abs(this.srtt-G),this.srtt=(1-tF)*this.srtt+tF*G;this.rto=Math.max(Ur,Math.min(this.srtt+4*this.rttvar,Nr))}receive(G,X,Y){this.onReceive.execute(G,X,Y)}getInboundStream(G){if(!this.inboundStreams[G])this.inboundStreams[G]=new Ir;return this.inboundStreams[G]}markReceived(G){if(mQ(this.lastReceivedTsn,G)||this.sackMisOrdered.has(G))return this.sackDuplicates.push(G),!0;this.sackMisOrdered.add(G);for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let X=(Y)=>m4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X)),!1}send=async(G,X,Y,{expiry:Z,maxRetransmits:V,ordered:Q}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let J=Q?this.outboundStreamSeq[G]||0:0,U=Math.ceil(Y.length/s5),N=0,q=[];for(let A=0;A<U;A++){let H=new pq(0,void 0);if(H.flags=0,!Q)H.flags=rO;if(A===0)H.flags|=Gx;if(A===U-1)H.flags|=fQ;H.tsn=this.localTsn,H.streamId=G,H.streamSeqNum=J,H.protocol=X,H.userData=Y.slice(N,N+s5),H.bookSize=H.userData.length,H.expiry=Z,H.maxRetransmits=V,N+=s5,this.localTsn=_Y(this.localTsn),q.push(H)}if(q.forEach((A)=>{this.outboundQueue.push(A)}),Q)this.outboundStreamSeq[G]=M9(J,1);await this.transmit();while(this.outboundQueue.length)await this.flush.asPromise()};async transmit(){if(this.isStopped)return;if(this.transmitting){this.transmitRequested=!0;return}this.transmitting=!0;try{do this.transmitRequested=!1,await this.transmitOnce();while(this.transmitRequested)}finally{this.transmitting=!1}}async transmitOnce(){if(this.isStopped)return;if(this.forwardTsnChunk){if(await this.sendChunk(this.forwardTsnChunk).catch((Z)=>{r1("send forwardTsn failed",Z.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let G=this.fastRecoveryExit!=null?2*s5:4*s5,X=Math.min(this.flightSize+G,this.cwnd),Y=!0;for(let Z of this.sentQueue){if(Z.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=X)break;if(this.flightSizeIncrease(Z),Z.misses=0,Z.retransmit=!1,Z.sentCount++,await this.sendChunk(Z).catch((V)=>{r1("send data failed",V.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<X&&this.peerRwnd>0){let Z=this.outboundQueue.shift();if(!Z)break;if(Z.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(Z);break}if(this.sentQueue.push(Z),this.flightSizeIncrease(Z),Z.sentCount++,Z.sentTime=Date.now()/1000,await this.sendChunk(Z).catch((V)=>{r1("send data outboundQueue failed",V.message)}),!this.timer3Handle)this.timer3Start()}if(!this.outboundQueue.length)this.outboundQueue=[];this.flush.execute()}async transmitReconfigRequest(){if(this.reconfigQueue.length>0&&this.associationState===4&&!this.reconfigRequest){let G=[...new Set(this.reconfigQueue)],X=G.slice(0,G2);this.reconfigQueue=G.slice(G2);let Y=new iO(this.reconfigRequestSeq,this.reconfigResponseSeq,KG(this.localTsn),X);this.reconfigRequestSeq=_Y(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(G){r1("sendReconfigParam",G);let X=new oO;X.params.push([G.type,G.bytes]),await this.sendChunk(X).catch((Y)=>{r1("send reconfig failed",Y.message)})}async sendResetRequest(G){r1("sendResetRequest",G);let X=new pq(0,void 0);if(X.streamId=G,this.outboundQueue.push(X),!this.timer3Handle)await this.transmit()}flightSizeIncrease(G){this.flightSize+=G.bookSize}flightSizeDecrease(G){this.flightSize=Math.max(0,this.flightSize-G.bookSize)}timer1Start(G){if(this.timer1Handle)throw Error();this.timer1Chunk=G,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}timer1Expired=()=>{if(this.isStopped)return;if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Jr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((G)=>{r1("send timer1 chunk failed",G.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}};timer1Cancel(){if(this.timer1Handle)clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0}t2Start(G){if(this.timer2Handle)throw Error();this.timer2Chunk=G,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}timer2Expired=()=>{if(this.isStopped)return;if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>sF)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((G)=>{r1("send timer2Chunk failed",G.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}};timer2Cancel(){if(this.timer2Handle)clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0}timer3Start(){if(this.isStopped)return;if(this.timer3Handle)throw Error();this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Restart(){if(this.isStopped)return;this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Expired=()=>{if(this.isStopped)return;this.timer3Handle=void 0,this.sentQueue.forEach((G)=>{if(!this.maybeAbandon(G))G.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*s5),this.cwnd=s5,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;r1("timerReconfigHandleStart",{rto:this.rto}),this.timerReconfigFailures=0,this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}timerReconfigHandleExpired=async()=>{if(this.isStopped)return;if(this.timerReconfigFailures++,this.rto=Math.ceil(this.rto*1.5),this.timerReconfigFailures>sF)r1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(r1("timerReconfigHandleExpired",this.timerReconfigFailures,this.rto),await this.sendReconfigParam(this.reconfigRequest),this.isStopped)return;this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}};timerReconfigCancel(){if(this.timerReconfigHandle)r1("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0}heartbeatStart(){if(this.timerHeartbeatHandle||this.associationState!==4)return;this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1000)}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){if(this.timerHeartbeatHandle)clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState!==4)return;if(this.flightSize===0&&this.outboundQueue.length===0){let G=new dO;G.params.push([1,Buffer.from(a1.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(G).catch((X)=>{r1("send heartbeat failed",X.message)})}this.heartbeatStart()};setHeartbeatInterval(G){if(G<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=G,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(m4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let G=0,X={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,G++,!(Y.flags&rO))X[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(G)this.forwardTsnChunk=new cq(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(X).map(([Y,Z])=>[Number(Y),Z])}maybeAbandon(G){if(G.abandoned)return!0;if(!(!!G.maxRetransmits&&G.maxRetransmits<G.sentCount||!!G.expiry&&G.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((Z)=>Z.type===G.type);for(let Z=Y;Z>=0;Z--){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&fQ)break}for(let Z=Y;Z<this.sentQueue.length;Z++){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&fQ)break}return!0}static getCapabilities(){return new wr(65536)}setRemotePort(G){this.remotePort=G}async start(G){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),G)this.setRemotePort(G);if(!this.isServer)await this.init()}}async init(){let G=new fq;G.initiateTag=this.localVerificationTag,G.advertisedRwnd=this.advertisedRwnd,G.outboundStreams=this._outboundStreamsCount,G.inboundStreams=this._inboundStreamsMax,G.initialTsn=this.localTsn,this.setExtensions(G.params),r1("send init",G);try{await this.sendChunk(G),this.timer1Start(G),this.setState(2)}catch(X){r1("send init failed",X.message)}}setExtensions(G){let X=[];if(this.localPartialReliability)G.push([Z2,Buffer.from("")]),X.push(cq.type);X.push(ti.type),G.push([Y2,Buffer.from(X)])}async sendChunk(G){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let X=Xr(this.localPort,this.remotePort,this.remoteVerificationTag,G);await this.transport.send(X)}setState(G){if(G!=this.associationState)this.associationState=G;if(G===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(G===1){if(this.isClosed=!0,this.timer1Cancel(),this.timer2Cancel(),this.timer3Cancel(),this.timerReconfigCancel(),this.heartbeatCancel(),this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;this.setConnectionState("closed"),this.removeAllListeners()}}setConnectionState(G){this.state=G,r1("setConnectionState",G),this.stateChanged[G].execute()}async stop(){if(this.isStopped){this.setState(1);return}if(this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;if(this.associationState!==1)await this.abort();this.setState(1),clearTimeout(this.timer1Handle),clearTimeout(this.timer2Handle),clearTimeout(this.timer3Handle),clearTimeout(this.timerReconfigHandle),clearTimeout(this.timerHeartbeatHandle),clearTimeout(this.sackTimeout)}async abort(){let G=new lO;await this.sendChunk(G).catch((X)=>{r1("send abort failed",X.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((G)=>G.allUnsubscribe())}},Ir=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||m4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[G,X]of Yr(this.reassembly)){if(X.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(m4(X.tsn,W.tsn)){this.reassembly.splice(G,0,W);break}}}*popMessages(){let W=0,G,X,Y;while(W<this.reassembly.length){let Z=this.reassembly[W];if(G===void 0){if(Y=!(Z.flags&rO),!(Z.flags&Gx))if(Y)break;else{W++;continue}if(Y&&M2(Z.streamSeqNum,this.streamSequenceNumber))break;X=Z.tsn,G=W}else if(Z.tsn!==X)if(Y)break;else{G=void 0,W++;continue}if(Z.flags&fQ){let V=this.reassembly.slice(G,W+1).map((J)=>J.userData).reduce((J,U)=>{return J.push(U),J.push(Buffer.from("")),J},[]);V.pop();let Q=Buffer.concat(V);if(this.reassembly=[...this.reassembly.slice(0,G),...this.reassembly.slice(W+1)],Y&&Z.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=M9(this.streamSequenceNumber,1);W=G,yield[Z.streamId,Z.protocol,Q]}else W++;X=_Y(X)}}pruneChunks(W){let G=-1,X=0;for(let[Y,Z]of this.reassembly.entries())if(mQ(W,Z.tsn))G=Y,X+=Z.userData.length;else break;return this.reassembly=this.reassembly.slice(G+1),X}},wr=class{constructor(W){this.maxMessageSize=W}};function KG(W){return(W-1)%JH}function _Y(W){return(W+1)%JH}var FY=T1("werift:packages/webrtc/src/transport/sctp.ts"),cQ=65536,jr=class W{constructor(G=5000,X=cQ){this.port=G,this.maxMessageSize=X}dtlsTransport;sctp;onDataChannel=new f0;id=ai().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=cQ;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(G){if(this.dtlsTransport&&this.dtlsTransport.id===G.id)return;this.eventDisposer.forEach((X)=>X()),this.dtlsTransport=G,this.sctp=new zr(new Or(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((X)=>{X.forEach((Y)=>{let Z=this.dataChannels[Y];if(!Z)return;Z.setReadyState("closing"),Z.setReadyState("closed"),delete this.dataChannels[Y]})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{if(X.negotiated&&X.readyState!=="open")X.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{X.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="closed")this.sctp.setState(1)})].map((X)=>X.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(G){return Object.values(this.dataChannels).find((X)=>X.label===G)}datachannelReceive=async(G,X,Y)=>{if(X===Sq&&Y.length>0)switch(FY("DCEP",G,X,Y),Y[0]){case hF:{if(Y.length<12){FY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(G.toString())){let[,V,,Q,J,U]=a1.Unpack("!BBHLHH",Y),N=12,q=Y.slice(N,N+J).toString("utf8");N+=J;let A=Y.slice(N,N+U).toString("utf8");FY("DATA_CHANNEL_OPEN",{channelType:V,reliability:Q,streamId:G,label:q,protocol:A});let H=(V&3)===1?Q:void 0,I=(V&3)===2?Q:void 0,w=new FS({label:q,ordered:(V&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:G}),C=new $S(this,w,!1);C.isCreatedByRemote=!0,this.dataChannels[G]=C,this.onDataChannel.execute(C),C.setReadyState("open")}else FY("datachannel already opened","retransmit ack");let Z=this.dataChannels[G];this.dataChannelQueue.push([Z,Sq,Buffer.from(a1.Pack("!B",[uF]))]),await this.dataChannelFlush()}break;case uF:{FY("DATA_CHANNEL_ACK",G,X);let Z=this.dataChannels[G];if(!Z)throw Error("channel not found");Z.setReadyState("open")}break}else{let Z=this.dataChannels[G];if(Z){let V=(()=>{switch(X){case bF:return Y.toString("utf8");case zi:return"";case mF:return Y;case Ii:return Buffer.from([]);default:throw Error()}})();if(Z.messagesReceived++,Z.bytesReceived+=Y.length,Z.onMessage.execute(V),Z.emit("message",{data:V}),Z.onmessage)Z.onmessage({data:V})}}};dataChannelAddNegotiated(G){if(G.id==null)throw Error();if(this.dataChannels[G.id])throw Error();if(this.dataChannels[G.id]=G,this.sctp.associationState===4)G.setReadyState("open")}dataChannelOpen(G){if(G.id){if(this.dataChannels[G.id])throw Error(`Data channel with ID ${G.id} already registered`);this.dataChannels[G.id]=G}let X=Ai,Y=0,Z=0;if(!G.ordered)X=128;if(G.maxRetransmits)X=1,Z=G.maxRetransmits;else if(G.maxPacketLifeTime)X=2,Z=G.maxPacketLifeTime;let V=a1.Pack("!BBHLHH",[hF,X,Y,Z,G.label.length,G.protocol.length]),Q=Buffer.concat([Buffer.from(V),Buffer.from(G.label,"utf8"),Buffer.from(G.protocol,"utf8")]);this.dataChannelQueue.push([G,Sq,Q]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[G,X,Y]=this.dataChannelQueue.shift(),Z=G.id;if(Z===void 0){Z=this.dataChannelId;while(Object.keys(this.dataChannels).includes(Z.toString()))Z+=2;this.dataChannels[Z]=G,G.setId(Z)}if(X===Sq)await this.sctp.send(Z,X,Y,{ordered:!0});else{let V=G.maxPacketLifeTime?Date.now()+G.maxPacketLifeTime/1000:void 0;await this.sctp.send(Z,X,Y,{expiry:V,maxRetransmits:G.maxRetransmits,ordered:G.ordered}),G.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(G){if(this.remoteMaxMessageSize!==0&&G>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${G} > ${this.remoteMaxMessageSize}`)}datachannelSend=(G,X)=>{let Y=Buffer.isBuffer(X)?X:Buffer.from(X),Z=Wi(X);if(this.assertSendableMessageSize(Z),G.addBufferedAmount(Z),this.dataChannelQueue.push(typeof X==="string"?[G,bF,Y]:[G,mF,Y]),this.sctp.associationState!==4)FY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),Z};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(G=cQ){return new Xx(G)}setRemoteMaxMessageSize(G){this.remoteMaxMessageSize=G??cQ}setRemotePort(G){this.sctp.setRemotePort(G)}async start(G){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(G)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(G){if(!["closing","closed"].includes(G.readyState))if(G.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(G.id))this.sctp.reconfigQueue.push(G.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((X)=>X[0].id!==G.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((X)=>X!==G.id),G.id)delete this.dataChannels[G.id];G.setReadyState("closed")}}},Xx=class{constructor(W){this.maxMessageSize=W}},Or=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},oq=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(G){let[X,Y]=Kr(G),Z=new W;X.forEach((Q)=>{if(Q.startsWith("v="))Z.version=Number.parseInt(Q.slice(2),10);else if(Q.startsWith("o="))Z.origin=Q.slice(2);else if(Q.startsWith("s="))Z.name=Q.slice(2);else if(Q.startsWith("c="))Z.host=jO(Q.slice(2));else if(Q.startsWith("t="))Z.time=Q.slice(2);else if(Q.startsWith("a=")){let[J,U]=OO(Q);switch(J){case"fingerprint":{let[N,q]=U?.split(" ")||[];Z.dtlsFingerprints.push(new bO(N,q))}break;case"ice-lite":Z.iceLite=!0;break;case"ice-options":Z.iceOptions=U;break;case"ice-pwd":Z.icePassword=U;break;case"ice-ufrag":Z.iceUsernameFragment=U;break;case"group":KO(Z.group,U);break;case"msid-semantic":KO(Z.msidSemantic,U);break;case"setup":Z.dtlsRole=cF[U];break;case"extmap-allow-mixed":Z.extMapAllowMixed=!0;break}}});let V=Z.group.find((Q)=>Q.semantic==="BUNDLE");return Y.forEach((Q)=>{let U=Q[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!U)throw Error("m line not found");let N=U[1],q=U[4].split(" "),A=["audio","video"].includes(N)?q.map((w)=>Number(w)):void 0,H=new aO(N,Number.parseInt(U[2]),U[3],A||q);if(H.dtlsParams=new mO([...Z.dtlsFingerprints],Z.dtlsRole),H.iceParams=new nS({iceLite:Z.iceLite,usernameFragment:Z.iceUsernameFragment,password:Z.icePassword}),H.iceOptions=Z.iceOptions,Z.media.push(H),Q.slice(1).forEach((w)=>{if(w.startsWith("c="))H.host=jO(w.slice(2));else if(w.startsWith("a=")){let[C,D]=OO(w);switch(C){case"candidate":if(!D)throw Error();H.iceCandidates.push(Zx(D));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[x,h]=D.split(" ");if(x.includes("/"))[x]=x.split("/");H.rtp.headerExtensions.push(new Xi({id:Number.parseInt(x),uri:h}))}break;case"fingerprint":{if(!D)throw Error();let[x,h]=D.split(" ");H.dtlsParams?.fingerprints.push(new bO(x,h))}break;case"ice-options":H.iceOptions=D;break;case"ice-pwd":H.iceParams.password=D;break;case"ice-ufrag":H.iceParams.usernameFragment=D;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new Xx(Number.parseInt(D,10));break;case"mid":H.rtp.muxId=D;break;case"msid":H.msid=D;break;case"rtcp":{let[x,h]=b4(D," ");H.rtcpPort=Number.parseInt(x),H.rtcpHost=jO(h)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=cF[D];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=C;break;case"rtpmap":{let[x,h]=b4(D," "),[l,u,n]=h.split("/"),c;if(H.kind==="audio")c=n?Number.parseInt(n):1;let p=new $G({mimeType:H.kind+"/"+l,channels:c,clockRate:Number.parseInt(u),payloadType:Number.parseInt(x)});H.rtp.codecs.push(p)}break;case"sctpmap":{if(!D)throw Error();let[x,h]=b4(D," ");H.sctpMap[Number.parseInt(x)]=h,H.sctpPort=Number.parseInt(x)}break;case"sctp-port":if(!D)throw Error();H.sctpPort=Number.parseInt(D);break;case"ssrc":{let[x,h]=b4(D," "),l=Number.parseInt(x),[u,n]=b4(h,":"),c=H.ssrc.find((p)=>p.ssrc===l);if(!c)c=new tO({ssrc:l}),H.ssrc.push(c);if(vS.includes(u))c[u]=n}break;case"ssrc-group":KO(H.ssrcGroup,D);break;case"rid":{let[x,h]=b4(D," ");H.simulcastParameters.push(new SS({rid:x,direction:h}))}break}}}),!H.iceParams.usernameFragment||!H.iceParams.password){if(H.rtp.muxId&&V&&V.items.includes(H.rtp.muxId))for(let w=0;w<V.items.length;w++){if(!V.items.includes(w.toString()))continue;let C=Z.media[w];if(C.iceParams?.usernameFragment&&C.iceParams.password){H.iceParams={...C.iceParams};break}}}if(!H.dtlsParams.role)H.dtlsParams=void 0;let I=(w)=>H.rtp.codecs.find((C)=>C.payloadType===w);Q.slice(1).forEach((w)=>{if(w.startsWith("a=")){let[C,D]=OO(w);if(C==="fmtp"){let[x,h]=b4(D," "),l=I(Number(x));l.parameters=h}else if(C==="rtcp-fb"){let[x,h,l]=D.split(" ");H.rtp.codecs.forEach((u)=>{if(["*",u.payloadType.toString()].includes(x))u.rtcpFeedback.push(new Yi({type:h,parameter:l}))})}}})}),Z}webrtcTrackId(G){if(G.msid?.includes(" ")){let X=G.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(X[0])||Y.items.includes("*")))return X[1]}return}get string(){let G=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)G.push(`c=${sO(this.host)}`);if(G.push(`t=${this.time}`),this.group.forEach((Z)=>G.push(`a=group:${Z.str}`)),this.extMapAllowMixed)G.push("a=extmap-allow-mixed");this.msidSemantic.forEach((Z)=>G.push(`a=msid-semantic:${Z.str}`));let X=this.media.map((Z)=>Z.toString()).join("");return G.join(`\r
242
+ `)}}K9.CertificateTag="CERTIFICATE";K9.CrlTag="CRL";K9.CertificateRequestTag="CERTIFICATE REQUEST";K9.PublicKeyTag="PUBLIC KEY";K9.PrivateKeyTag="PRIVATE KEY";class C4 extends y6{static isAsnEncoded(W){return S0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(K9.isPem(W))return K9.decode(W)[0];else if(p0.isHex(W))return p0.FromHex(W);else if(p0.isBase64(W))return p0.FromBase64(W);else if(p0.isBase64Url(W))return p0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let G=S0.toUint8Array(W);if(G.length>0&&G[0]===48)return S0.toArrayBuffer(W);let X=p0.ToBinary(W);if(K9.isPem(X))return K9.decode(X)[0];else if(p0.isHex(X))return p0.FromHex(X);else if(p0.isBase64(X))return p0.FromBase64(X);else if(p0.isBase64Url(X))return p0.FromBase64Url(X);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(C4.isAsnEncoded(W[0]))super(C4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return K9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class l5 extends C4{static async create(W,G=y8.get()){if(W instanceof l5)return W;else if(x6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let X=await G.subtle.exportKey("spki",W);return new l5(X)}else if(W.publicKey)return W.publicKey;else if(S0.isBufferSource(W))return new l5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(C4.isAsnEncoded(W))super(W,w9);else super(W);this.tag=K9.PublicKeyTag}async export(...W){let G,X=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,X=W[1]||X,G=W[2]||y8.get();else G=W[0]||y8.get();let Z=this.rawData,V=L0.parse(this.rawData,w9);if(V.algorithm.algorithm===E6)Z=Vc(V,Z);return G.subtle.importKey("spki",Z,Y,!0,X)}onInit(W){let G=V8.resolve(QG),X=this.algorithm=G.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case B7:{let Y=L0.parse(W.subjectPublicKey,SV),Z=S0.toUint8Array(Y.modulus);X.publicExponent=S0.toUint8Array(Y.publicExponent),X.modulusLength=(!Z[0]?Z.slice(1):Z).byteLength<<3;break}}}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||y8.get();else X=W[0]||y8.get();return await X.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let G,X="SHA-1";if(W.length===1)if(typeof W[0]==="string")X=W[0],G=y8.get();else G=W[0];else if(W.length===2)X=W[0],G=W[1];else G=y8.get();let Y=L0.parse(this.rawData,w9);return await G.subtle.digest(X,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,w9);switch(W.Algorithm=k6.serializeAlgorithm(G.algorithm),G.algorithm.algorithm){case iW:W["EC Point"]=G.subjectPublicKey;break;case B7:default:W["Raw Data"]=G.subjectPublicKey}return W}}function Vc(W,G){return W.algorithm=new T0({algorithm:B7,parameters:null}),G=L0.serialize(W),G}class NQ extends Y5{static async create(W,G=!1,X=y8.get()){if("name"in W&&"serialNumber"in W)return new NQ(W,G);let Z=await(await l5.create(W,X)).getKeyIdentifier(X);return new NQ(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let G=new q4({keyIdentifier:new _X(p0.FromHex(W[0]))});super(NN,W[1],L0.serialize(G))}else{let G=W[0],X=G.name instanceof _6?L0.parse(G.name.rawData,q8):G.name,Y=new q4({authorityCertIssuer:X,authorityCertSerialNumber:p0.FromHex(G.serialNumber)});super(NN,W[1],L0.serialize(Y))}}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,q4);if(G.keyIdentifier)this.keyId=p0.ToHex(G.keyIdentifier);if(G.authorityCertIssuer||G.authorityCertSerialNumber)this.certId={name:G.authorityCertIssuer||[],serialNumber:G.authorityCertSerialNumber?p0.ToHex(G.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,q4);if(G.authorityCertIssuer)W["Authority Issuer"]=new _6(G.authorityCertIssuer).toTextObject();if(G.authorityCertSerialNumber)W["Authority Serial Number"]=G.authorityCertSerialNumber;if(G.keyIdentifier)W[""]=G.keyIdentifier;return W}}NQ.NAME="Authority Key Identifier";class Zj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,yX);this.ca=G.cA,this.pathLength=G.pathLenConstraint}else{let G=new yX({cA:W[0],pathLenConstraint:W[1]});super(qN,W[2],L0.serialize(G));this.ca=W[0],this.pathLength=W[1]}}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ca)W.CA=this.ca;if(this.pathLength!==void 0)W["Path Length"]=this.pathLength;return W}}Zj.NAME="Basic Constraints";var P3;(function(W){W.serverAuth="1.3.6.1.5.5.7.3.1",W.clientAuth="1.3.6.1.5.5.7.3.2",W.codeSigning="1.3.6.1.5.5.7.3.3",W.emailProtection="1.3.6.1.5.5.7.3.4",W.timeStamping="1.3.6.1.5.5.7.3.8",W.ocspSigning="1.3.6.1.5.5.7.3.9"})(P3||(P3={}));class Vj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,WV);this.usages=G.map((X)=>X)}else{let G=new WV(W[0]);super(KN,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((G)=>D4.toString(G)).join(", "),W}}Vj.NAME="Extended Key Usages";var R3;(function(W){W[W.digitalSignature=1]="digitalSignature",W[W.nonRepudiation=2]="nonRepudiation",W[W.keyEncipherment=4]="keyEncipherment",W[W.dataEncipherment=8]="dataEncipherment",W[W.keyAgreement=16]="keyAgreement",W[W.keyCertSign=32]="keyCertSign",W[W.cRLSign=64]="cRLSign",W[W.encipherOnly=128]="encipherOnly",W[W.decipherOnly=256]="decipherOnly"})(R3||(R3={}));class Qj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,XV);this.usages=G.toNumber()}else{let G=new XV(W[0]);super(CN,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,XV);return W[""]=G.toJSON().join(", "),W}}Qj.NAME="Key Usages";class tN extends Y5{static async create(W,G=!1,X=y8.get()){let Z=await(await l5.create(W,X)).getKeyIdentifier(X);return new tN(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,e9);this.keyId=p0.ToHex(G)}else{let G=typeof W[0]==="string"?p0.FromHex(W[0]):W[0],X=new e9(G);super(bI,W[1],L0.serialize(X));this.keyId=p0.ToHex(G)}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,e9);return W[""]=G,W}}tN.NAME="Subject Key Identifier";class Jj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(uI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,TN);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Jj.NAME="Subject Alternative Name";class l9{static register(W,G){this.items.set(W,G)}static create(W){let G=new Y5(W),X=this.items.get(G.type);if(X)return new X(W);return G}}l9.items=new Map;class Uj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0])){super(W[0]);let X=L0.parse(this.value,aZ);this.policies=X.map((Y)=>Y.policyIdentifier)}else{let X=W[0],Y=(G=W[1])!==null&&G!==void 0?G:!1,Z=new aZ(X.map((V)=>new vX({policyIdentifier:V})));super(AN,Y,L0.serialize(Z));this.policies=X}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((G)=>new d1("",{},D4.toString(G))),W}}Uj.NAME="Certificate Policies";l9.register(AN,Uj);class Nj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else if(Array.isArray(W[0])&&typeof W[0][0]==="string"){let Y=W[0].map((V)=>{return new z4({distributionPoint:new A4({fullName:[new V1({uniformResourceIdentifier:V})]})})}),Z=new P6(Y);super(jN,W[1],L0.serialize(Z))}else{let X=new P6(W[0]);super(jN,W[1],L0.serialize(X))}(G=this.distributionPoints)!==null&&G!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,P6);this.distributionPoints=G}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((G)=>{var X;let Y={};if(G.distributionPoint)Y[""]=(X=G.distributionPoint.fullName)===null||X===void 0?void 0:X.map((Z)=>new K4(Z).toString()).join(", ");if(G.reasons)Y.Reasons=G.reasons.toString();if(G.cRLIssuer)Y["CRL Issuer"]=G.cRLIssuer.map((Z)=>Z.toString()).join(", ");return Y}),W}}Nj.NAME="CRL Distribution Points";class qj extends Y5{constructor(...W){var G,X,Y,Z;if(S0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof vW){let V=new vW(W[0]);super(UN,W[1],L0.serialize(V))}else{let V=W[0],Q=new vW;rN(Q,V,KI,"ocsp"),rN(Q,V,CI,"caIssuers"),rN(Q,V,DI,"timeStamping"),rN(Q,V,MI,"caRepository");super(UN,W[1],L0.serialize(Q))}(G=this.ocsp)!==null&&G!==void 0||(this.ocsp=[]),(X=this.caIssuers)!==null&&X!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(Z=this.caRepository)!==null&&Z!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],L0.parse(W.extnValue,vW).forEach((X)=>{switch(X.accessMethod){case KI:this.ocsp.push(new K4(X.accessLocation));break;case CI:this.caIssuers.push(new K4(X.accessLocation));break;case DI:this.timeStamping.push(new K4(X.accessLocation));break;case MI:this.caRepository.push(new K4(X.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)iN(W,"OCSP",this.ocsp);if(this.caIssuers.length)iN(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)iN(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)iN(W,"CA Repository",this.caRepository);return W}}qj.NAME="Authority Info Access";function iN(W,G,X){if(X.length===1)W[G]=X[0].toTextObject();else{let Y=new d1("");X.forEach((Z,V)=>{let Q=Z.toTextObject(),J=`${Q[d1.NAME]} ${V+1}`,U=Y[J];if(!Array.isArray(U))U=[],Y[J]=U;U.push(Q)}),W[G]=Y}}function rN(W,G,X,Y){let Z=G[Y];if(Z)(Array.isArray(Z)?Z:[Z]).forEach((Q)=>{if(typeof Q==="string")Q=new K4("url",Q);W.push(new T6({accessMethod:X,accessLocation:L0.parse(Q.rawData,V1)}))})}class Hj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(xI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,q8);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Hj.NAME="Issuer Alternative Name";class qY extends y6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else{let X=W[0],Y=Array.isArray(W[1])?W[1].map((Z)=>S0.toArrayBuffer(Z)):[];G=L0.serialize(new I9({type:X,values:Y}))}super(G,I9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((G)=>new d1("",{"":G})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[d1.NAME]===qY.NAME)W[d1.NAME]=D4.toString(this.type);return W}}qY.NAME="Attribute";class Aj extends qY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=new uV({printableString:W[0]});super(pw,[L0.serialize(X)])}(G=this.password)!==null&&G!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],uV);this.password=G.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[d1.VALUE]=this.password,W}}Aj.NAME="Challenge Password";class eN extends qY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=W[0],Y=new W5;for(let Z of X)Y.push(L0.parse(Z.rawData,j9));super(bV,[L0.serialize(Y)])}(G=this.items)!==null&&G!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],W5);this.items=G.map((X)=>l9.create(L0.serialize(X)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.items.map((X)=>X.toTextObject());for(let X of G)W[X[d1.NAME]]=X;return W}}eN.NAME="Extensions";class HQ{static register(W,G){this.items.set(W,G)}static create(W){let G=new qY(W),X=this.items.get(G.type);if(X)return new X(W);return G}}HQ.items=new Map;var AQ="crypto.signatureFormatter";class y3{toAsnSignature(W,G){return S0.toArrayBuffer(G)}toWebSignature(W,G){return S0.toArrayBuffer(G)}}var sN,Wj=sN=class{static createPssParams(G,X){let Y=sN.getHashAlgorithm(G);if(!Y)return null;return new j4({hashAlgorithm:Y,maskGenAlgorithm:new T0({algorithm:$6,parameters:L0.serialize(Y)}),saltLength:X})}static getHashAlgorithm(G){let X=V8.resolve(QG);if(typeof G==="string")return X.toAsnAlgorithm({name:G});if(typeof G==="object"&&G&&"name"in G)return X.toAsnAlgorithm(G);return null}toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in G){let X;if(typeof G.hash==="string")X=G.hash;else if(G.hash&&typeof G.hash==="object"&&"name"in G.hash&&typeof G.hash.name==="string")X=G.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(X.toLowerCase()){case"sha-1":return new T0({algorithm:sX,parameters:null});case"sha-256":return new T0({algorithm:gN,parameters:null});case"sha-384":return new T0({algorithm:tX,parameters:null});case"sha-512":return new T0({algorithm:eX,parameters:null})}}else return new T0({algorithm:B7,parameters:null});break;case"rsa-pss":if("hash"in G){if(!(("saltLength"in G)&&typeof G.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let X=sN.createPssParams(G.hash,G.saltLength);if(!X)throw Error("Cannot create PSS parameters");return new T0({algorithm:E6,parameters:L0.serialize(X)})}else return new T0({algorithm:E6,parameters:null})}return null}toWebAlgorithm(G){switch(G.algorithm){case B7:return{name:"RSASSA-PKCS1-v1_5"};case sX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case gN:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case tX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case eX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case E6:if(G.parameters){let X=L0.parse(G.parameters,j4);return{name:"RSA-PSS",hash:V8.resolve(QG).toWebAlgorithm(X.hashAlgorithm),saltLength:X.saltLength}}else return{name:"RSA-PSS"}}return null}};Wj=sN=j([S6()],Wj);V8.registerSingleton(qQ,Wj);var Gj=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"sha-1":return new T0({algorithm:rW});case"sha-256":return new T0({algorithm:aW});case"sha-384":return new T0({algorithm:sW});case"sha-512":return new T0({algorithm:tW})}return null}toWebAlgorithm(G){switch(G.algorithm){case rW:return{name:"SHA-1"};case aW:return{name:"SHA-256"};case sW:return{name:"SHA-384"};case tW:return{name:"SHA-512"}}return null}};Gj=j([S6()],Gj);V8.registerSingleton(qQ,Gj);class D5{addPadding(W,G){let X=S0.toUint8Array(G),Y=new Uint8Array(W);return Y.set(X,W-X.length),Y.buffer}removePadding(W,G=!1){let X=S0.toUint8Array(W);for(let Y=0;Y<X.length;Y++){if(!X[Y])continue;X=X.slice(Y);break}if(G&&X[0]>127){let Y=new Uint8Array(X.length+1);return Y.set(X,1),Y.buffer}return X.buffer}toAsnSignature(W,G){if(W.name==="ECDSA"){let X=W.namedCurve,Y=D5.namedCurveSize.get(X)||D5.defaultNamedCurveSize,Z=new aX,V=S0.toUint8Array(G);return Z.r=this.removePadding(V.slice(0,Y),!0),Z.s=this.removePadding(V.slice(Y,Y+Y),!0),L0.serialize(Z)}return null}toWebSignature(W,G){if(W.name==="ECDSA"){let X=L0.parse(G,aX),Y=W.namedCurve,Z=D5.namedCurveSize.get(Y)||D5.defaultNamedCurveSize,V=this.addPadding(Z,this.removePadding(X.r)),Q=this.addPadding(Z,this.removePadding(X.s));return kT(V,Q)}return null}}D5.namedCurveSize=new Map;D5.defaultNamedCurveSize=32;var tw="1.3.101.110",L3="1.3.101.111",ew="1.3.101.112",B3="1.3.101.113",Xj=class{toAsnAlgorithm(G){let X=null;switch(G.name.toLowerCase()){case"ed25519":X=ew;break;case"x25519":X=tw;break;case"eddsa":switch(G.namedCurve.toLowerCase()){case"ed25519":X=ew;break;case"ed448":X=B3;break}break;case"ecdh-es":switch(G.namedCurve.toLowerCase()){case"x25519":X=tw;break;case"x448":X=L3;break}}if(X)return new T0({algorithm:X});return null}toWebAlgorithm(G){switch(G.algorithm){case ew:return{name:"Ed25519"};case B3:return{name:"EdDSA",namedCurve:"Ed448"};case tw:return{name:"X25519"};case L3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Xj=j([S6()],Xj);V8.registerSingleton(qQ,Xj);var cV,pV,lV,dV,oV,nV,iV,JY;class v3 extends C4{get subjectName(){if(!M1(this,pV,"f"))N8(this,pV,new p5(this.asn.certificationRequestInfo.subject),"f");return M1(this,pV,"f")}get subject(){if(!M1(this,lV,"f"))N8(this,lV,this.subjectName.toString(),"f");return M1(this,lV,"f")}get signatureAlgorithm(){if(!M1(this,dV,"f")){let W=V8.resolve(QG);N8(this,dV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return M1(this,dV,"f")}get signature(){if(!M1(this,oV,"f"))N8(this,oV,this.asn.signature,"f");return M1(this,oV,"f")}get publicKey(){if(!M1(this,nV,"f"))N8(this,nV,new l5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return M1(this,nV,"f")}get attributes(){if(!M1(this,iV,"f"))N8(this,iV,this.asn.certificationRequestInfo.attributes.map((W)=>HQ.create(L0.serialize(W))),"f");return M1(this,iV,"f")}get extensions(){if(!M1(this,JY,"f")){N8(this,JY,[],"f");let W=this.getAttribute(bV);if(W instanceof eN)N8(this,JY,W.items,"f")}return M1(this,JY,"f")}get tbs(){if(!M1(this,cV,"f"))N8(this,cV,this.asn.certificationRequestInfoRaw||L0.serialize(this.asn.certificationRequestInfo),"f");return M1(this,cV,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,VG]:[W];super(G[0],G[1]);cV.set(this,void 0),pV.set(this,void 0),lV.set(this,void 0),dV.set(this,void 0),oV.set(this,void 0),nV.set(this,void 0),iV.set(this,void 0),JY.set(this,void 0),this.tag=K9.CertificateRequestTag}onInit(W){}getAttribute(W){for(let G of this.attributes)if(G.type===W)return G;return null}getAttributes(W){return this.attributes.filter((G)=>G.type===W)}getExtension(W){for(let G of this.extensions)if(G.type===W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>G.type===W)}async verify(W=y8.get()){let G={...this.publicKey.algorithm,...this.signatureAlgorithm},X=await this.publicKey.export(G,["verify"],W),Y=V8.resolveAll(AQ).reverse(),Z=null;for(let Q of Y)if(Z=Q.toWebSignature(G,this.signature),Z)break;if(!Z)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,X,Z,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,VG),X=G.certificationRequestInfo,Y=new d1("",{Version:`${M7[X.version]} (${X.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let Z=new d1("");for(let V of this.attributes){let Q=V.toTextObject();Z[Q[d1.NAME]]=Q}Y.Attributes=Z}return W.Data=Y,W.Signature=new d1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signature}),W}}cV=new WeakMap,pV=new WeakMap,lV=new WeakMap,dV=new WeakMap,oV=new WeakMap,nV=new WeakMap,iV=new WeakMap,JY=new WeakMap;v3.NAME="PKCS#10 Certificate Request";var rV,aV,sV,tV,eV,WQ,GQ,XQ,YQ,ZQ,UY,VQ;class zj extends C4{get publicKey(){if(!M1(this,VQ,"f"))N8(this,VQ,new l5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return M1(this,VQ,"f")}get serialNumber(){if(!M1(this,aV,"f")){let W=this.asn.tbsCertificate,G=new Uint8Array(W.serialNumber);if(G.length>1&&G[0]===0&&G[1]>127)G=G.slice(1);N8(this,aV,p0.ToHex(G),"f")}return M1(this,aV,"f")}get subjectName(){if(!M1(this,sV,"f"))N8(this,sV,new p5(this.asn.tbsCertificate.subject),"f");return M1(this,sV,"f")}get subject(){if(!M1(this,tV,"f"))N8(this,tV,this.subjectName.toString(),"f");return M1(this,tV,"f")}get issuerName(){if(!M1(this,eV,"f"))N8(this,eV,new p5(this.asn.tbsCertificate.issuer),"f");return M1(this,eV,"f")}get issuer(){if(!M1(this,WQ,"f"))N8(this,WQ,this.issuerName.toString(),"f");return M1(this,WQ,"f")}get notBefore(){if(!M1(this,GQ,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");N8(this,GQ,W,"f")}return M1(this,GQ,"f")}get notAfter(){if(!M1(this,XQ,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");N8(this,XQ,W,"f")}return M1(this,XQ,"f")}get signatureAlgorithm(){if(!M1(this,YQ,"f")){let W=V8.resolve(QG);N8(this,YQ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return M1(this,YQ,"f")}get signature(){if(!M1(this,ZQ,"f"))N8(this,ZQ,this.asn.signatureValue,"f");return M1(this,ZQ,"f")}get extensions(){if(!M1(this,UY,"f")){if(N8(this,UY,[],"f"),this.asn.tbsCertificate.extensions)N8(this,UY,this.asn.tbsCertificate.extensions.map((W)=>l9.create(L0.serialize(W))),"f")}return M1(this,UY,"f")}get tbs(){if(!M1(this,rV,"f"))N8(this,rV,this.asn.tbsCertificateRaw||L0.serialize(this.asn.tbsCertificate),"f");return M1(this,rV,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,h5]:[W];super(G[0],G[1]);rV.set(this,void 0),aV.set(this,void 0),sV.set(this,void 0),tV.set(this,void 0),eV.set(this,void 0),WQ.set(this,void 0),GQ.set(this,void 0),XQ.set(this,void 0),YQ.set(this,void 0),ZQ.set(this,void 0),UY.set(this,void 0),VQ.set(this,void 0),this.tag=K9.CertificateTag}onInit(W){}getExtension(W){for(let G of this.extensions)if(typeof W==="string"){if(G.type===W)return G}else if(G instanceof W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>{if(typeof W==="string")return G.type===W;else return G instanceof W})}async verify(W={},G=y8.get()){let X,Y,Z=W.publicKey;try{if(!Z)X={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(X,["verify"],G);else if("publicKey"in Z)X={...Z.publicKey.algorithm,...this.signatureAlgorithm},Y=await Z.publicKey.export(X,["verify"],G);else if(Z instanceof l5)X={...Z.algorithm,...this.signatureAlgorithm},Y=await Z.export(X,["verify"],G);else if(S0.isBufferSource(Z)){let U=new l5(Z);X={...U.algorithm,...this.signatureAlgorithm},Y=await U.export(X,["verify"],G)}else X={...Z.algorithm,...this.signatureAlgorithm},Y=Z}catch{return!1}let V=V8.resolveAll(AQ).reverse(),Q=null;for(let U of V)if(Q=U.toWebSignature(X,this.signature),Q)break;if(!Q)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let J=await G.subtle.verify(this.signatureAlgorithm,Y,Q,this.tbs);if(W.signatureOnly)return J;else{let N=(W.date||new Date).getTime();return J&&this.notBefore.getTime()<N&&N<this.notAfter.getTime()}}async getThumbprint(...W){let G,X="SHA-1";if(W[0])if(!W[0].subtle)X=W[0]||X,G=W[1];else G=W[0];return G!==null&&G!==void 0||(G=y8.get()),await G.subtle.digest(X,this.rawData)}async isSelfSigned(W=y8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,h5),X=G.tbsCertificate,Y=new d1("",{Version:`${M7[X.version]} (${X.version})`,"Serial Number":X.serialNumber,"Signature Algorithm":k6.serializeAlgorithm(X.signature),Issuer:this.issuer,Validity:new d1("",{"Not Before":X.validity.notBefore.getTime(),"Not After":X.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(X.issuerUniqueID)Y["Issuer Unique ID"]=X.issuerUniqueID;if(X.subjectUniqueID)Y["Subject Unique ID"]=X.subjectUniqueID;if(this.extensions.length){let Z=new d1("");for(let V of this.extensions){let Q=V.toTextObject();Z[Q[d1.NAME]]=Q}Y.Extensions=Z}return W.Data=Y,W.Signature=new d1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signatureValue}),W}}rV=new WeakMap,aV=new WeakMap,sV=new WeakMap,tV=new WeakMap,eV=new WeakMap,WQ=new WeakMap,GQ=new WeakMap,XQ=new WeakMap,YQ=new WeakMap,ZQ=new WeakMap,UY=new WeakMap,VQ=new WeakMap;zj.NAME="Certificate";function Qc(W,G=y8.get()){let X=S0.toUint8Array(p0.FromHex(W||"")),Y=X&&X.length&&X.some((V)=>V>0)?new Uint8Array(X):void 0;if(!Y)Y=G.getRandomValues(new Uint8Array(16));let Z=0;while(Z<Y.length-1&&Y[Z]===0)Z++;if(Y=Y.slice(Z),Y[0]>127){let V=new Uint8Array(Y.length+1);V[0]=0,V.set(Y,1),Y=V}return Y.buffer}class Ij{static async createSelfSigned(W,G=y8.get()){if(!W.keys.privateKey)throw Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!W.keys.publicKey)throw Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:W.serialNumber,subject:W.name,issuer:W.name,notBefore:W.notBefore,notAfter:W.notAfter,publicKey:W.keys.publicKey,signingKey:W.keys.privateKey,signingAlgorithm:W.signingAlgorithm,extensions:W.extensions},G)}static async create(W,G=y8.get()){var X;let Y;if(W.publicKey instanceof l5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(S0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await G.subtle.exportKey("spki",W.publicKey);let Z=Qc(W.serialNumber,G),V=W.notBefore||new Date,Q=W.notAfter||new Date(V.getTime()+31536000000),J=new h5({tbsCertificate:new O9({version:M7.v3,serialNumber:Z,validity:new R6({notBefore:V,notAfter:Q}),extensions:new W5(((X=W.extensions)===null||X===void 0?void 0:X.map((C)=>L0.parse(C.rawData,j9)))||[]),subjectPublicKeyInfo:L0.parse(Y,w9)})});if(W.subject){let C=W.subject instanceof p5?W.subject:new p5(W.subject);J.tbsCertificate.subject=L0.parse(C.toArrayBuffer(),G8)}if(W.issuer){let C=W.issuer instanceof p5?W.issuer:new p5(W.issuer);J.tbsCertificate.issuer=L0.parse(C.toArrayBuffer(),G8)}let U={hash:"SHA-256"},N="signingKey"in W?{...U,...W.signingAlgorithm,...W.signingKey.algorithm}:{...U,...W.signingAlgorithm},q=V8.resolve(QG);J.tbsCertificate.signature=J.signatureAlgorithm=q.toAsnAlgorithm(N);let A=L0.serialize(J.tbsCertificate),H="signingKey"in W?await G.subtle.sign(N,W.signingKey,A):W.signature,I=V8.resolveAll(AQ).reverse(),w=null;for(let C of I)if(w=C.toAsnSignature(N,H),w)break;if(!w)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return J.signatureValue=w,new zj(L0.serialize(J))}}var Jc,Uc,Nc,qc,Hc,E3;(function(W){W[W.unspecified=0]="unspecified",W[W.keyCompromise=1]="keyCompromise",W[W.cACompromise=2]="cACompromise",W[W.affiliationChanged=3]="affiliationChanged",W[W.superseded=4]="superseded",W[W.cessationOfOperation=5]="cessationOfOperation",W[W.certificateHold=6]="certificateHold",W[W.removeFromCRL=8]="removeFromCRL",W[W.privilegeWithdrawn=9]="privilegeWithdrawn",W[W.aACompromise=10]="aACompromise"})(E3||(E3={}));Jc=new WeakMap,Uc=new WeakMap,Nc=new WeakMap,qc=new WeakMap,Hc=new WeakMap;var Ac,zc,Ic,wc,jc,Oc,Kc;Ac=new WeakMap,zc=new WeakMap,Ic=new WeakMap,wc=new WeakMap,jc=new WeakMap,Oc=new WeakMap,Kc=new WeakMap;l9.register(qN,Zj);l9.register(KN,Vj);l9.register(CN,Qj);l9.register(bI,tN);l9.register(NN,NQ);l9.register(uI,Jj);l9.register(jN,Nj);l9.register(UN,qj);l9.register(xI,Hj);HQ.register(pw,Aj);HQ.register(bV,eN);V8.registerSingleton(AQ,y3);V8.registerSingleton(AQ,D5);D5.namedCurveSize.set("P-256",32);D5.namedCurveSize.set("K-256",32);D5.namedCurveSize.set("P-384",48);D5.namedCurveSize.set("P-521",66);var vY=v1(I8(),1),$2=v1(I8(),1),F2=v1(xU(),1);import{createHash as ud,createHmac as hd}from"crypto";import*as M4 from"crypto";var UG=M4&&typeof M4==="object"&&"webcrypto"in M4?M4.webcrypto:M4&&typeof M4==="object"&&("randomBytes"in M4)?M4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function NG(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function CQ(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function d5(W,...G){if(!NG(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function Jq(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");CQ(W.outputLen),CQ(W.blockLen)}function IY(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function IE(W,G){d5(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function P4(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function Uq(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function o5(W,G){return W<<32-G|W>>>G}var wE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),np=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function R4(W){if(d5(W),wE)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=np[W[X]];return G}var T4={_0:48,_9:57,A:65,F:70,a:97,f:102};function zE(W){if(W>=T4._0&&W<=T4._9)return W-T4._0;if(W>=T4.A&&W<=T4.F)return W-(T4.A-10);if(W>=T4.a&&W<=T4.f)return W-(T4.a-10);return}function qG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(wE)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=zE(W.charCodeAt(V)),J=zE(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function Nq(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function DQ(W){if(typeof W==="string")W=Nq(W);return d5(W),W}function o9(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];d5(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class MQ{}function qq(W){let G=(Y)=>W().update(DQ(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function HG(W=32){if(UG&&typeof UG.getRandomValues==="function")return UG.getRandomValues(new Uint8Array(W));if(UG&&typeof UG.randomBytes==="function")return Uint8Array.from(UG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ej=BigInt(0),Bj=BigInt(1);function TQ(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function m6(W,G,X=""){let Y=NG(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function PQ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function jE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Ej:BigInt("0x"+W)}function L4(W){return jE(R4(W))}function $j(W){return d5(W),jE(R4(Uint8Array.from(W).reverse()))}function wY(W,G){return qG(W.toString(16).padStart(G*2,"0"))}function Fj(W,G){return wY(W,G).reverse()}function B8(W,G,X){let Y;if(typeof G==="string")try{Y=qG(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(NG(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var Lj=(W)=>typeof W==="bigint"&&Ej<=W;function RQ(W,G,X){return Lj(W)&&Lj(G)&&Lj(X)&&G<=W&&W<X}function OE(W,G,X,Y){if(!RQ(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function Hq(W){let G;for(G=0;W>Ej;W>>=Bj,G+=1);return G}var f6=(W)=>(Bj<<BigInt(W))-Bj;function KE(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),Z=(I)=>Uint8Array.of(I),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},N=(...I)=>X(Q,V,...I),q=(I=Y(0))=>{if(Q=N(Z(0),I),V=N(),I.length===0)return;Q=N(Z(1),I),V=N()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let I=0,w=[];while(I<G){V=N();let C=V.slice();w.push(C),I+=V.length}return o9(...w)};return(I,w)=>{U(),q(I);let C=void 0;while(!(C=w(A())))q();return U(),C}}function LQ(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function Sj(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),C9=BigInt(1),AG=BigInt(2),ME=BigInt(3),TE=BigInt(4),PE=BigInt(5),ip=BigInt(7),RE=BigInt(8),rp=BigInt(9),LE=BigInt(16);function Z5(W,G){let X=W%G;return X>=_9?X:G+X}function V5(W,G,X){let Y=W;while(G-- >_9)Y*=Y,Y%=X;return Y}function CE(W,G){if(W===_9)throw Error("invert: expected non-zero number");if(G<=_9)throw Error("invert: expected positive modulus, got "+G);let X=Z5(W,G),Y=G,Z=_9,V=C9,Q=C9,J=_9;while(X!==_9){let N=Y/X,q=Y%X,A=Z-Q*N,H=V-J*N;Y=X,X=q,Z=Q,V=J,Q=A,J=H}if(Y!==C9)throw Error("invert: does not exist");return Z5(Z,G)}function xj(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function BE(W,G){let X=(W.ORDER+C9)/TE,Y=W.pow(G,X);return xj(W,Y,G),Y}function ap(W,G){let X=(W.ORDER-PE)/RE,Y=W.mul(G,AG),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,AG),Z),J=W.mul(V,W.sub(Q,W.ONE));return xj(W,J,G),J}function sp(W){let G=T5(W),X=EE(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+ip)/LE;return(J,U)=>{let N=J.pow(U,Q),q=J.mul(N,Y),A=J.mul(N,Z),H=J.mul(N,V),I=J.eql(J.sqr(q),U),w=J.eql(J.sqr(A),U);N=J.cmov(N,q,I),q=J.cmov(H,A,w);let C=J.eql(J.sqr(q),U),D=J.cmov(N,q,C);return xj(J,D,U),D}}function EE(W){if(W<ME)throw Error("sqrt is not defined for small field");let G=W-C9,X=0;while(G%AG===_9)G/=AG,X++;let Y=AG,Z=T5(W);while(DE(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return BE;let V=Z.pow(Y,G),Q=(G+C9)/AG;return function(U,N){if(U.is0(N))return N;if(DE(U,N)!==1)throw Error("Cannot find square root");let q=X,A=U.mul(U.ONE,V),H=U.pow(N,G),I=U.pow(N,Q);while(!U.eql(H,U.ONE)){if(U.is0(H))return U.ZERO;let w=1,C=U.sqr(H);while(!U.eql(C,U.ONE))if(w++,C=U.sqr(C),w===q)throw Error("Cannot find square root");let D=C9<<BigInt(q-w-1),x=U.pow(A,D);q=w,A=U.sqr(x),H=U.mul(H,A),I=U.mul(I,x)}return I}}function tp(W){if(W%TE===ME)return BE;if(W%RE===PE)return ap;if(W%LE===rp)return sp(W);return EE(W)}var ep=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kj(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=ep.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return LQ(W,X),W}function Wl(W,G,X){if(X<_9)throw Error("invalid exponent, negatives unsupported");if(X===_9)return W.ONE;if(X===C9)return G;let Y=W.ONE,Z=G;while(X>_9){if(X&C9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=C9}return Y}function Aq(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function DE(W,G){let X=(W.ORDER-C9)/AG,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function zq(W,G){if(G!==void 0)CQ(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function T5(W,G,X=!1,Y={}){if(W<=_9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:N}=zq(W,Z);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:N,MASK:f6(U),ZERO:_9,ONE:C9,allowedLengths:J,create:(H)=>Z5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return _9<=H&&H<W},is0:(H)=>H===_9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&C9)===C9,neg:(H)=>Z5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>Z5(H*H,W),add:(H,I)=>Z5(H+I,W),sub:(H,I)=>Z5(H-I,W),mul:(H,I)=>Z5(H*I,W),pow:(H,I)=>Wl(A,H,I),div:(H,I)=>Z5(H*CE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>CE(H,W),sqrt:V||((H)=>{if(!q)q=tp(W);return q(A,H)}),toBytes:(H)=>X?Fj(H,N):wY(H,N),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>N)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(N);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=X?$j(H):L4(H);if(Q)w=Z5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>Aq(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function $E(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function _j(W){let G=$E(W);return G+Math.ceil(G/2)}function Iq(W,G,X=!1){let Y=W.length,Z=$E(G),V=_j(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?$j(W):L4(W),J=Z5(Q,G-C9)+C9;return X?Fj(J,Z):wY(J,Z)}function Gl(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,N=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+N,J,Y)}function FE(W,G,X){return W&G^~W&X}function SE(W,G,X){return W&G^W&X^G&X}class wq extends MQ{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=Uq(this.buffer)}update(W){IY(this),W=DQ(W),d5(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=Uq(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){IY(this),IE(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,P4(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let q=V;q<Y;q++)G[q]=0;Gl(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=Uq(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,N=this.get();if(U>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<U;q++)Q.setUint32(4*q,N[q],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var B4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var G9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),X9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jq=BigInt(4294967295),xE=BigInt(32);function Xl(W,G=!1){if(G)return{h:Number(W&jq),l:Number(W>>xE&jq)};return{h:Number(W>>xE&jq)|0,l:Number(W&jq)|0}}function kE(W,G=!1){let X=W.length,Y=new Uint32Array(X),Z=new Uint32Array(X);for(let V=0;V<X;V++){let{h:Q,l:J}=Xl(W[V],G);[Y[V],Z[V]]=[Q,J]}return[Y,Z]}var yj=(W,G,X)=>W>>>X,vj=(W,G,X)=>W<<32-X|G>>>X,zG=(W,G,X)=>W>>>X|G<<32-X,IG=(W,G,X)=>W<<32-X|G>>>X,BQ=(W,G,X)=>W<<64-X|G>>>X-32,EQ=(W,G,X)=>W>>>X-32|G<<64-X;function F7(W,G,X,Y){let Z=(G>>>0)+(Y>>>0);return{h:W+X+(Z/4294967296|0)|0,l:Z|0}}var _E=(W,G,X)=>(W>>>0)+(G>>>0)+(X>>>0),yE=(W,G,X,Y)=>G+X+Y+(W/4294967296|0)|0,vE=(W,G,X,Y)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0),gE=(W,G,X,Y,Z)=>G+X+Y+Z+(W/4294967296|0)|0,uE=(W,G,X,Y,Z)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0)+(Z>>>0),hE=(W,G,X,Y,Z,V)=>G+X+Y+Z+V+(W/4294967296|0)|0;var Zl=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),c6=new Uint32Array(64);class bE extends wq{constructor(W=32){super(64,W,8,!1);this.A=B4[0]|0,this.B=B4[1]|0,this.C=B4[2]|0,this.D=B4[3]|0,this.E=B4[4]|0,this.F=B4[5]|0,this.G=B4[6]|0,this.H=B4[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let q=0;q<16;q++,G+=4)c6[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=c6[q-15],H=c6[q-2],I=o5(A,7)^o5(A,18)^A>>>3,w=o5(H,17)^o5(H,19)^H>>>10;c6[q]=w+c6[q-7]+I+c6[q-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:N}=this;for(let q=0;q<64;q++){let A=o5(Q,6)^o5(Q,11)^o5(Q,25),H=N+A+FE(Q,J,U)+Zl[q]+c6[q]|0,w=(o5(X,2)^o5(X,13)^o5(X,22))+SE(X,Y,Z)|0;N=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,N=N+this.H|0,this.set(X,Y,Z,V,Q,J,U,N)}roundClean(){P4(c6)}destroy(){this.set(0,0,0,0,0,0,0,0),P4(this.buffer)}}var mE=(()=>kE(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((W)=>BigInt(W))))(),Vl=(()=>mE[0])(),Ql=(()=>mE[1])(),p6=new Uint32Array(80),l6=new Uint32Array(80);class gj extends wq{constructor(W=64){super(128,W,16,!1);this.Ah=X9[0]|0,this.Al=X9[1]|0,this.Bh=X9[2]|0,this.Bl=X9[3]|0,this.Ch=X9[4]|0,this.Cl=X9[5]|0,this.Dh=X9[6]|0,this.Dl=X9[7]|0,this.Eh=X9[8]|0,this.El=X9[9]|0,this.Fh=X9[10]|0,this.Fl=X9[11]|0,this.Gh=X9[12]|0,this.Gl=X9[13]|0,this.Hh=X9[14]|0,this.Hl=X9[15]|0}get(){let{Ah:W,Al:G,Bh:X,Bl:Y,Ch:Z,Cl:V,Dh:Q,Dl:J,Eh:U,El:N,Fh:q,Fl:A,Gh:H,Gl:I,Hh:w,Hl:C}=this;return[W,G,X,Y,Z,V,Q,J,U,N,q,A,H,I,w,C]}set(W,G,X,Y,Z,V,Q,J,U,N,q,A,H,I,w,C){this.Ah=W|0,this.Al=G|0,this.Bh=X|0,this.Bl=Y|0,this.Ch=Z|0,this.Cl=V|0,this.Dh=Q|0,this.Dl=J|0,this.Eh=U|0,this.El=N|0,this.Fh=q|0,this.Fl=A|0,this.Gh=H|0,this.Gl=I|0,this.Hh=w|0,this.Hl=C|0}process(W,G){for(let h=0;h<16;h++,G+=4)p6[h]=W.getUint32(G),l6[h]=W.getUint32(G+=4);for(let h=16;h<80;h++){let p=p6[h-15]|0,u=l6[h-15]|0,n=zG(p,u,1)^zG(p,u,8)^yj(p,u,7),c=IG(p,u,1)^IG(p,u,8)^vj(p,u,7),l=p6[h-2]|0,W0=l6[h-2]|0,m=zG(l,W0,19)^BQ(l,W0,61)^yj(l,W0,6),Y0=IG(l,W0,19)^EQ(l,W0,61)^vj(l,W0,6),U0=vE(c,Y0,l6[h-7],l6[h-16]),y=gE(U0,n,m,p6[h-7],p6[h-16]);p6[h]=y|0,l6[h]=U0|0}let{Ah:X,Al:Y,Bh:Z,Bl:V,Ch:Q,Cl:J,Dh:U,Dl:N,Eh:q,El:A,Fh:H,Fl:I,Gh:w,Gl:C,Hh:D,Hl:x}=this;for(let h=0;h<80;h++){let p=zG(q,A,14)^zG(q,A,18)^BQ(q,A,41),u=IG(q,A,14)^IG(q,A,18)^EQ(q,A,41),n=q&H^~q&w,c=A&I^~A&C,l=uE(x,u,c,Ql[h],l6[h]),W0=hE(l,D,p,n,Vl[h],p6[h]),m=l|0,Y0=zG(X,Y,28)^BQ(X,Y,34)^BQ(X,Y,39),U0=IG(X,Y,28)^EQ(X,Y,34)^EQ(X,Y,39),y=X&Z^X&Q^Z&Q,o=Y&V^Y&J^V&J;D=w|0,x=C|0,w=H|0,C=I|0,H=q|0,I=A|0,{h:q,l:A}=F7(U|0,N|0,W0|0,m|0),U=Q|0,N=J|0,Q=Z|0,J=V|0,Z=X|0,V=Y|0;let B=_E(m,U0,o);X=yE(B,W0,Y0,y),Y=B|0}({h:X,l:Y}=F7(this.Ah|0,this.Al|0,X|0,Y|0)),{h:Z,l:V}=F7(this.Bh|0,this.Bl|0,Z|0,V|0),{h:Q,l:J}=F7(this.Ch|0,this.Cl|0,Q|0,J|0),{h:U,l:N}=F7(this.Dh|0,this.Dl|0,U|0,N|0),{h:q,l:A}=F7(this.Eh|0,this.El|0,q|0,A|0),{h:H,l:I}=F7(this.Fh|0,this.Fl|0,H|0,I|0),{h:w,l:C}=F7(this.Gh|0,this.Gl|0,w|0,C|0),{h:D,l:x}=F7(this.Hh|0,this.Hl|0,D|0,x|0),this.set(X,Y,Z,V,Q,J,U,N,q,A,H,I,w,C,D,x)}roundClean(){P4(p6,l6)}destroy(){P4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class fE extends gj{constructor(){super(48);this.Ah=G9[0]|0,this.Al=G9[1]|0,this.Bh=G9[2]|0,this.Bl=G9[3]|0,this.Ch=G9[4]|0,this.Cl=G9[5]|0,this.Dh=G9[6]|0,this.Dl=G9[7]|0,this.Eh=G9[8]|0,this.El=G9[9]|0,this.Fh=G9[10]|0,this.Fl=G9[11]|0,this.Gh=G9[12]|0,this.Gl=G9[13]|0,this.Hh=G9[14]|0,this.Hl=G9[15]|0}}var jY=qq(()=>new bE);var cE=qq(()=>new gj),pE=qq(()=>new fE);class uj extends MQ{constructor(W,G){super();this.finished=!1,this.destroyed=!1,Jq(W);let X=DQ(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),P4(Z)}update(W){return IY(this),this.iHash.update(W),this}digestInto(W){IY(this),d5(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var hj=(W,G,X)=>new uj(W,G).update(X).digest();hj.create=(W,G)=>new uj(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var OY=BigInt(0),wG=BigInt(1);function $Q(W,G){let X=G.negate();return W?X:G}function Oq(W,G){let X=Aq(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function nE(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function bj(W,G){nE(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=f6(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function lE(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=wG;let N=G*Y,q=N+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Jl(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Ul(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var mj=new WeakMap,iE=new WeakMap;function fj(W){return iE.get(W)||1}function dE(W){if(W!==OY)throw Error("invalid wNAF")}class cj{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>OY){if(G&wG)X=X.add(Y);Y=Y.double(),G>>=wG}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=bj(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=bj(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:N,isNeg:q,isNegF:A,offsetF:H}=lE(X,Q,V);if(X=J,N)Z=Z.add($Q(A,G[H]));else Y=Y.add($Q(q,G[U]))}return dE(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=bj(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===OY)break;let{nextN:Q,offset:J,isZero:U,isNeg:N}=lE(X,V,Z);if(X=Q,U)continue;else{let q=G[J];Y=Y.add(N?q.negate():q)}}return dE(X),Y}getPrecomputes(W,G,X){let Y=mj.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);mj.set(G,Y)}}return Y}cached(W,G,X){let Y=fj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=fj(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){nE(G,this.bits),iE.set(W,G),mj.delete(W)}hasCache(W){return fj(W)!==1}}function rE(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>OY||Y>OY){if(X&wG)V=V.add(Z);if(Y&wG)Q=Q.add(Z);Z=Z.double(),X>>=wG,Y>>=wG}return{p1:V,p2:Q}}function aE(W,G,X,Y){Jl(X,W),Ul(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=Hq(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let N=f6(U),q=Array(Number(N)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){q.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&N);q[x]=q[x].add(X[C])}let w=Q;for(let C=q.length-1,D=Q;C>0;C--)D=D.add(q[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function oE(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return kj(G),G}else return T5(W,{isLE:X})}function sE(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let N=G[U];if(!(typeof N==="bigint"&&N>OY))throw Error(`CURVE.${U} must be positive bigint`)}let Z=oE(G.p,X.Fp,Y),V=oE(G.n,X.Fn,Y),J=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of J)if(!Z.isValid(G[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var tE=(W,G)=>(W+(W>=0?G:-G)/W$)/G;function Nl(W,G,X){let[[Y,Z],[V,Q]]=G,J=tE(Q*W,X),U=tE(-Z*W,X),N=W-J*Y-U*V,q=-J*Z-U*Q,A=N<$4,H=q<$4;if(A)N=-N;if(H)q=-q;let I=f6(Math.ceil(Hq(X)/2))+KY;if(N<$4||N>=I||q<$4||q>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}function lj(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function pj(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(TQ(X.lowS,"lowS"),TQ(X.prehash,"prehash"),X.format!==void 0)lj(X.format);return X}class eE extends Error{constructor(W=""){super(W)}}var E4={Err:eE,_tlv:{encode:(W,G)=>{let{Err:X}=E4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=PQ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?PQ(Z.length/2|128):"";return PQ(W)+V+Z+G},decode(W,G){let{Err:X}=E4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let N=G.subarray(Y,Y+U);if(N.length!==U)throw new X("tlv.decode: length bytes not complete");if(N[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let q of N)Q=Q<<8|q;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=E4;if(W<$4)throw new G("integer: negative integers are not allowed");let X=PQ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=E4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return L4(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=E4,Z=B8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:N,l:q}=Y.decode(2,U);if(q.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(N)}},hexFromSig(W){let{_tlv:G,_int:X}=E4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},$4=BigInt(0),KY=BigInt(1),W$=BigInt(2),Kq=BigInt(3),ql=BigInt(4);function d6(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=B8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Hl(W,G={}){let X=sE("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;LQ(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let N=X$(Y,Z);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(TQ(B,"isCompressed"),B){q();let v=!Y.isOdd(_);return o9(G$(v),S)}else return o9(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){m6(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=N,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(f){let e=f instanceof Error?": "+f.message:"";throw Error("bad point: is not on curve, sqrt error"+e)}q();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,Kq),ql),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function p(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Nl(y,U.basises,Z.ORDER)}let c=Sj((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),l=Sj((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=$Q(R,o),B=$Q(_,B),o.add(B)}class m{constructor(y,o,B){this.X=p("x",y),this.Y=p("y",o,!0),this.Z=p("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(m6(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(B8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(Kq);return this}assertValidity(){l(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,Kq),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,Kq),e=Y.mul(o,_),N0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,N0),$0=Y.sub($0,D0),D0=Y.add(o,R);let x0=Y.add(_,v);return D0=Y.mul(D0,x0),x0=Y.add(e,Q0),D0=Y.sub(D0,x0),x0=Y.add(B,R),P=Y.add(S,v),x0=Y.mul(x0,P),P=Y.add(N0,Q0),x0=Y.sub(x0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(N0,b),b=Y.add(N0,b),E=Y.mul(P,b),N0=Y.add(e,e),N0=Y.add(N0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),N0=Y.add(N0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(N0,D0),E=Y.add(E,e),e=Y.mul(x0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,N0),b=Y.mul(x0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>Oq(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=W0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return Oq(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===$4||B.is0())return m.ZERO;if(y===KY)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=rE(m,B,_,v);return W0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===KY)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===KY)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return TQ(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return R4(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return Oq(m,y)}static msm(y,o){return aE(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(d6(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new cj(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function G$(W){return Uint8Array.of(W?2:3)}function X$(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Al(W,G={}){let{Fn:X}=W,Y=G.randomBytes||HG,Z=Object.assign(X$(W.Fp,X),{seed:_j(X.ORDER)});function V(I){try{return!!d6(X,I)}catch(w){return!1}}function Q(I,w){let{publicKey:C,publicKeyUncompressed:D}=Z;try{let x=I.length;if(w===!0&&x!==C)return!1;if(w===!1&&x!==D)return!1;return!!W.fromBytes(I)}catch(x){return!1}}function J(I=Y(Z.seed)){return Iq(m6(I,Z.seed,"seed"),X.ORDER)}function U(I,w=!0){return W.BASE.multiply(d6(X,I)).toBytes(w)}function N(I){let w=J(I);return{secretKey:w,publicKey:U(w)}}function q(I){if(typeof I==="bigint")return!1;if(I instanceof W)return!0;let{secretKey:w,publicKey:C,publicKeyUncompressed:D}=Z;if(X.allowedLengths||w===C)return;let x=B8("key",I).length;return x===C||x===D}function A(I,w,C=!0){if(q(I)===!0)throw Error("first arg must be private key");if(q(w)===!1)throw Error("second arg must be public key");let D=d6(X,I);return W.fromHex(w).multiply(D).toBytes(C)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:N,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(I)=>d6(X,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:Z})}function zl(W,G,X={}){Jq(G),LQ(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||HG,Z=X.hmac||((B,...R)=>hj(G,B,o9(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=Al(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>KY;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){lj(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return m6(B,S,`${R} signature`)}class p{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=E4.toSig(m6(B));return new p(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new p(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(qG(B),R)}addRecoveryBit(B){return new p(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*W$<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let E=v===2||v===3?_+J:_;if(!V.isValid(E))throw Error("recovery id 2 or 3 invalid");let b=V.toBytes(E),k=W.fromBytes(o9(G$((v&1)===0),b)),f=Q.inv(E),e=n(B8("msgHash",B)),N0=Q.create(-e*f),Q0=Q.create(S*f),$0=W.BASE.multiplyUnsafe(N0).add(k.multiplyUnsafe(Q0));if($0.is0())throw Error("point at infinify");return $0.assertValidity(),$0}hasHighS(){return D(this.s)}toBytes(B=C){if(lj(B),B==="der")return qG(E4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return o9(Uint8Array.of(this.recovery),R,_)}return o9(R,_)}toHex(B){return R4(this.toBytes(B))}assertValidity(){}static fromCompact(B){return p.fromBytes(B8("sig",B),"compact")}static fromDER(B){return p.fromBytes(B8("sig",B),"der")}normalizeS(){return this.hasHighS()?new p(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return R4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return R4(this.toBytes("compact"))}}let u=X.bits2int||function(R){if(R.length>8192)throw Error("input is too large");let _=L4(R),S=R.length*8-U;return S>0?_>>BigInt(S):_},n=X.bits2int_modN||function(R){return Q.create(u(R))},c=f6(U);function l(B){return OE("num < 2^"+U,B,$4,c),Q.toBytes(B)}function W0(B,R){return m6(B,void 0,"message"),R?m6(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=pj(_,w);B=W0(B,v);let E=n(B),b=d6(Q,R),k=[l(b),l(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(B8("extraEntropy",Q0))}let f=o9(...k),e=E;function N0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),x0=W.BASE.multiply($0).toAffine(),q1=Q.create(x0.x);if(q1===$4)return;let U1=Q.create(D0*Q.create(e+q1*b));if(U1===$4)return;let J0=(x0.x===q1?0:2)|Number(x0.y&KY),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new p(q1,B0,J0)}return{seed:f,k2sig:N0}}function Y0(B,R,_={}){B=B8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return KE(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||NG(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new p(B.r,B.s);else if(_){try{R=p.fromBytes(B8("sig",B),"der")}catch(v){if(!(v instanceof E4.Err))throw v}if(!R)try{R=p.fromBytes(B8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=pj(S,w);if(_=B8("publicKey",_),R=W0(B8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):p.fromBytes(B8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,N0=n(R),Q0=Q.inv(e),$0=Q.create(N0*Q0),D0=Q.create(f*Q0),x0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(x0.is0())return!1;return Q.create(x0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=pj(_,w);return R=W0(R,S),p.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:p,hash:G})}function Il(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=T5(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function wl(W){let{CURVE:G,curveOpts:X}=Il(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function jl(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,zq(X.Fn.ORDER,X.Fn.BITS))})}function Y$(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=wl(W),V=Hl(G,X),Q=zl(V,Y,Z);return jl(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function CY(W,G){let X=(Y)=>Y$({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Z$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},V$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Q$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},Ol=T5(Z$.p),Kl=T5(V$.p),Cl=T5(Q$.p);var J$=CY({...Z$,Fp:Ol,lowS:!1},jY);var Pq0=CY({...V$,Fp:Kl,lowS:!1},pE);var Rq0=CY({...Q$,Fp:Cl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},cE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Cq=J$;var Z9=v1(I8(),1),W7=v1(I8(),1),g2=v1(I8(),1),MG=v1(I8(),1),f4=v1(I8(),1),c2=v1(xU(),1),PG=v1(I8(),1),i6=v1(I8(),1),RG=v1(I8(),1),fY=v1(I8(),1),r6=v1(I8(),1),LG=v1(I8(),1),G7=v1(I8(),1),X7=v1(I8(),1),zH=v1(I8(),1),e5=v1(I8(),1),a2=v1(I8(),1),Co=v1(H$(),1);import{randomBytes as Wo}from"crypto";import{setTimeout as Go}from"timers/promises";import{createCipheriv as Ao,createDecipheriv as zo}from"crypto";var vq=v1(z$(),1),BG=v1(I8(),1),CG=v1(I8(),1),f7=v1(I8(),1),b7=v1(I8(),1),EG=v1(I8(),1);import{createHmac as VO}from"crypto";import{createCipheriv as WF,createDecipheriv as GF,createHmac as XF,timingSafeEqual as ro}from"crypto";import{createCipheriv as QF,createDecipheriv as JF}from"crypto";import{setTimeout as Vn}from"timers/promises";import{randomBytes as qn}from"crypto";import{createHmac as jS}from"crypto";import{randomBytes as OS}from"crypto";var Pq="undefined",RY=Pq!==typeof Buffer&&Buffer,PY=Pq!==typeof Uint8Array&&Uint8Array,Tq=Pq!==typeof ArrayBuffer&&ArrayBuffer,I$=[0,0,0,0,0,0,0,0],Tl=Array.isArray||Sl,TY=4294967296,Pl=16777216,LY,Rq=j$("Uint64BE",!0,!0),nj=j$("Int64BE",!0,!1);function j$(W,G,X){var Y=G?0:4,Z=G?4:0,V=G?0:3,Q=G?1:2,J=G?2:1,U=G?3:0,N=G?Bl:$l,q=G?El:Fl,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=h,A.toString=p,A.toJSON=h,A.toArray=Rl,RY)A.toBuffer=Ll;if(PY)A.toArrayBuffer=O$;return w[H]=C,w;function w(c,l,W0,m){if(!(this instanceof w))return new w(c,l,W0,m);return D(this,c,l,W0,m)}function C(c){return!!(c&&c[I])}function D(c,l,W0,m,Y0){if(PY&&Tq){if(l instanceof Tq)l=new PY(l);if(m instanceof Tq)m=new PY(m)}if(!l&&!W0&&!m&&!LY){c.buffer=K$(I$,0);return}if(!w$(l,W0)){var U0=LY||Array;Y0=W0,m=l,W0=0,l=LY===RY?RY.alloc(8):new U0(8)}if(c.buffer=l,c.offset=W0|=0,Pq===typeof m)return;if(typeof m==="string")x(l,W0,m,Y0||10);else if(w$(m,Y0))oj(l,W0,m,Y0);else if(typeof Y0==="number")u(l,W0+Y,m),u(l,W0+Z,Y0);else if(m>0)N(l,W0,m);else if(m<0)q(l,W0,m);else oj(l,W0,I$,0)}function x(c,l,W0,m){var Y0=0,U0=W0.length,y=0,o=0;if(W0[0]==="-")Y0++;var B=Y0;while(Y0<U0){var R=parseInt(W0[Y0++],m);if(!(R>=0))break;o=o*m+R,y=y*m+Math.floor(o/TY),o%=TY}if(B)if(y=~y,o)o=TY-o;else y++;u(c,l+Y,y),u(c,l+Z,o)}function h(){var c=this.buffer,l=this.offset,W0=n(c,l+Y),m=n(c,l+Z);if(!X)W0|=0;return W0?W0*TY+m:m}function p(c){var l=this.buffer,W0=this.offset,m=n(l,W0+Y),Y0=n(l,W0+Z),U0="",y=!X&&m&2147483648;if(y)m=~m,Y0=TY-Y0;c=c||10;while(!0){var o=m%c*TY+Y0;if(m=Math.floor(m/c),Y0=Math.floor(o/c),U0=(o%c).toString(c)+U0,!m&&!Y0)break}if(y)U0="-"+U0;return U0}function u(c,l,W0){c[l+U]=W0&255,W0=W0>>8,c[l+J]=W0&255,W0=W0>>8,c[l+Q]=W0&255,W0=W0>>8,c[l+V]=W0&255}function n(c,l){return c[l+V]*Pl+(c[l+Q]<<16)+(c[l+J]<<8)+c[l+U]}}function Rl(W){var G=this.buffer,X=this.offset;if(LY=null,W!==!1&&Tl(G))return G.length===8?G:G.slice(X,X+8);return K$(G,X)}function Ll(W){var G=this.buffer,X=this.offset;if(LY=RY,W!==!1&&RY.isBuffer(G))return G.length===8?G:G.slice(X,X+8);return RY.from(O$.call(this,W))}function O$(W){var G=this.buffer,X=this.offset,Y=G.buffer;if(LY=PY,W!==!1&&!G.offset&&Y instanceof Tq)return Y.byteLength===8?Y:Y.slice(X,X+8);var Z=new PY(8);return oj(Z,0,G,X),Z.buffer}function w$(W,G){var X=W&&W.length;return G|=0,X&&G+8<=X&&typeof W[G]!=="string"}function oj(W,G,X,Y){G|=0,Y|=0;for(var Z=0;Z<8;Z++)W[G++]=X[Y++]&255}function K$(W,G){return Array.prototype.slice.call(W,G,G+8)}function Bl(W,G,X){var Y=G+8;while(Y>G)W[--Y]=X&255,X/=256}function El(W,G,X){var Y=G+8;X++;while(Y>G)W[--Y]=-X&255^255,X/=256}function $l(W,G,X){var Y=G+8;while(G<Y)W[G++]=X&255,X/=256}function Fl(W,G,X){var Y=G+8;X++;while(G<Y)W[G++]=-X&255^255,X/=256}function Sl(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var sQ=v1(rj(),1);import{createHash as $n}from"crypto";import{setTimeout as Fn}from"timers/promises";import{createHash as un}from"crypto";import{isIPv4 as EF}from"net";import{randomBytes as hn}from"crypto";import{isIPv4 as $F}from"net";var bq=v1(M$(),1),LS=v1(g$(),1),ES=v1(rj(),1);import*as yO from"timers/promises";import{randomUUID as mn}from"crypto";import*as BS from"os";import{EventEmitter as tn}from"events";import{randomUUID as Ni}from"crypto";import{setTimeout as IO}from"timers/promises";import{createHash as qi}from"crypto";import{performance as Fq}from"perf_hooks";import{randomUUID as Hi}from"crypto";import{randomUUID as bS}from"crypto";import{setTimeout as _i}from"timers/promises";import{randomBytes as ui}from"crypto";import{isIPv4 as hi}from"net";var tQ=v1(gz(),1);import{randomUUID as bi}from"crypto";import{setTimeout as mi}from"timers/promises";import{randomUUID as di}from"crypto";import{randomUUID as ai}from"crypto";import{createHmac as iF,randomBytes as si}from"crypto";import{randomBytes as Q2}from"crypto";import{randomUUID as J2}from"crypto";import{setTimeout as U2}from"timers/promises";import{randomUUID as Lr}from"crypto";function z2(){return a1.Unpack("!H",A2(2))[0]}function DO(){return a1.Unpack("!L",A2(4))[0]}var nq=class{constructor(W){this.bitLength=W}value=0;set(W,G,X){return X&=(1<<W)-1,this.value|=X<<this.bitLength-W-G,this}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}},I2=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,G=1){let X=BigInt(W),Y=BigInt(G);return X&=(1n<<Y)-1n,this._value|=X<<BigInt(this.bitLength)-Y-this.offset,this.offset+=Y,this}get value(){return Number(this._value)}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}};function g8(W,G,X=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let Z=Y.slice(G,G+X).join("");return Number.parseInt(Z,2)}function E8(W,G){return _q(W)(G)}function _q(W,G){let X=W.reduce((Z,V)=>Z+V,0),Y=G?Buffer.alloc(X):void 0;return(Z)=>{let V=Y||Buffer.alloc(X),Q=0;return Z.forEach((J,U)=>{let N=W[U];if(N===8)V.writeBigUInt64BE(J,Q);else V.writeUIntBE(J,Q,N);Q+=N}),V}}function r9(W,G){let X=0;return G.map((Y)=>{let Z;if(Y===8)Z=W.readBigUInt64BE(X);else Z=W.readUIntBE(X,Y);return X+=Y,Z})}var pQ=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,G){if(W==0)return this;G&=4294967295>>>32-W;let X;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=G<<this.bitsPending-W,X=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=G,X=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=G>>W-this.bitsPending,X=this.bitsPending,this.bitsPending=0;else X=Math.min(8,W),this.bitsPending=8-X,this.uint8Array[this.position++]=G>>W-X<<this.bitsPending;if(W-=X,W>0)this.writeBits(W,G);return this}readBits(W){return this._readBits(W)}_readBits(W,G){if(typeof G>"u")G=0;if(W==0)return G;let X,Y;if(this.bitsPending>0){let Z=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,X=Z>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,X=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,G=G<<Y|X,W>0?this._readBits(W,G):G}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},Cd=3988292384,Dd=2197175160;function w2(W){return typeof W!=="string"}function j2(W){let G=Array(256),X=0;for(let Y=0;Y<256;++Y)X=Y,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,G[Y]=X;return new Int32Array(G)}function O2(W){let G=new Int32Array(4096),X=0,Y=0,Z=0;for(Z=0;Z<256;++Z)G[Z]=W[Z];for(Z=0;Z<256;++Z){Y=W[Z];for(X=256+Z;X<4096;X+=256)Y=G[X]=Y>>>8^W[Y&255]}let V=[];for(Z=1;Z<16;++Z)V[Z-1]=G.subarray(Z*256,Z*256+256);return V}function K2(W,G,X){let Y=G^-1,Z=0,V=W.length,Q=0,J=0;while(Z<V)if(Q=W.charCodeAt(Z++),Q<128)Y=Y>>>8^X[(Y^Q)&255];else if(Q<2048)Y=Y>>>8^X[(Y^(192|Q>>6&31))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];else if(Q>=55296&&Q<57344)Q=(Q&1023)+64,J=W.charCodeAt(Z++)&1023,Y=Y>>>8^X[(Y^(240|Q>>8&7))&255],Y=Y>>>8^X[(Y^(128|Q>>2&63))&255],Y=Y>>>8^X[(Y^(128|J>>6&15|(Q&3)<<4))&255],Y=Y>>>8^X[(Y^(128|J&63))&255];else Y=Y>>>8^X[(Y^(224|Q>>12&15))&255],Y=Y>>>8^X[(Y^(128|Q>>6&63))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];return~Y>>>0}function C2(W,G,X,Y){let[Z,V,Q,J,U,N,q,A,H,I,w,C,D,x,h]=Y,p=G^-1,u=0,n=W.length-15;while(u<n)p=h[W[u++]^p&255]^x[W[u++]^p>>>8&255]^D[W[u++]^p>>>16&255]^C[W[u++]^p>>>24]^w[W[u++]]^I[W[u++]]^H[W[u++]]^A[W[u++]]^q[W[u++]]^N[W[u++]]^U[W[u++]]^J[W[u++]]^Q[W[u++]]^V[W[u++]]^Z[W[u++]]^X[W[u++]];for(n+=15;u<n;)p=p>>>8^X[(p^W[u++])&255];return~p>>>0}var MO=j2(Cd),Md=O2(MO),TO=j2(Dd),Td=O2(TO);function Pd(W,G=0){if(w2(W))return C2(W,G,MO,Md);return K2(W,G,MO)}function D2(W,G=0){if(w2(W))return C2(W,G,TO,Td);return K2(W,G,TO)}function Rd(W,G){return W+G&255}function M9(W,G){return W+G&65535}function yY(W,G){return Number(BigInt(W)+BigInt(G)&0xffffffffn)}function Ld(W){return W&16777215}function M2(W,G){return W<G&&G-W>32768||W>G&&W-G<32768}function m4(W,G){return W<G&&G-W>2147483648||W>G&&W-G<2147483648}function mQ(W,G){return W===G||m4(W,G)}var lQ=(W)=>Number.parseInt(W,10);var T2=(W,G)=>G?G[W]:void 0;async function Ed(W,G,X="udp4",Y){let Z;for(let V=W;V<=G;V++){let Q=Bd(X);if(setImmediate(()=>Q.bind({port:V,address:T2(X,Y)})),await new Promise((U)=>{Q.once("error",(N)=>U(N)),Q.once("listening",()=>U())})){await new Promise((U)=>Q.close(()=>U()));continue}if(Z=Q.address()?.port,await new Promise((U)=>Q.close(()=>U())),W<=Z&&Z<=G)break}if(!Z)throw Error("port not found");return Z}function iq(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var T1=P2.default.debug,f0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let G of this.event.stack)G.execute(...W);(async()=>{for(let G of this.event.promiseStack)await G.execute(...W)})().catch((G)=>{this.onerror(G)})};complete=()=>{if(this.ended)return;for(let W of this.event.stack)if(W.complete)W.complete();if(this.allUnsubscribe(),this.ended=!0,this.onended)this.onended(),this.onended=void 0};error=(W)=>{if(this.ended)return;for(let G of this.event.stack)if(G.error)G.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,G,X)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};pipe(W){this.subscribe((...G)=>{W.execute(...G)})}queuingSubscribe=(W,G,X)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};once=(W,G,X)=>{let Y=this.subscribe((...Z)=>{Y.unSubscribe(),W(...Z)},G,X)};watch=(W,G)=>new Promise((X,Y)=>{let Z=G&&setTimeout(()=>{Y("Event watch timeout")},G),{unSubscribe:V}=this.subscribe((...Q)=>{if(W(...Q)){if(Z)clearTimeout(Z);V(),X(Q)}})});asPromise=(W)=>new Promise((G,X)=>{let Y=W&&setTimeout(()=>{X("Event asPromise timeout")},W);this.once((...Z)=>{if(Y)clearTimeout(Y);G(Z)},()=>{if(Y)clearTimeout(Y);G([])},(Z)=>{if(Y)clearTimeout(Y);X(Z)})});get returnTrigger(){let{execute:W,error:G,complete:X}=this;return{execute:W,error:G,complete:X}}get returnListener(){let{subscribe:W,once:G,asPromise:X}=this;return{subscribe:W,once:G,asPromise:X}}get length(){return this.event.stack.length}},$d=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},u$=T1("werift-ice:packages/ice/src/transport.ts"),PO=class W{constructor(G,X={}){this.socketType=G,this.options=X,this.socket=Fd(G),this.socket.on("message",(Y,Z)=>{if(iq(Z.family)===6)[Z.address]=Z.address.split("%");this.rinfo=Z;try{this.onData(Y,[Z.address,Z.port])}catch(V){u$("onData error",V)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(G,X={}){let Y=new W(G,X);return await Y.init(),Y}async init(){let G=T2(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:G});else if(this.options.portRange){let X=await Ed(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:X,address:G})}else this.socket.bind({address:G});await new Promise((X)=>this.socket.once("listening",X))}send=async(G,X)=>{if(X&&!R2.isIP(X[0]))return new Promise((Y,Z)=>{this.socket.send(G,X[1],X[0],(V)=>{if(V)u$("send error",X,G),Z(V);else Y()})});else X=X??[this.rinfo?.address,this.rinfo?.port],this.socket.send(G,X[1],X[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((G)=>{this.closed=!0,this.socket.once("close",G);try{this.socket.close()}catch(X){G()}})},xd=class W{constructor(G){this.addr=G,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((G,X)=>{try{this.client=Sd({port:this.addr[1],host:this.addr[0]},G)}catch(Y){X(Y)}}),this.client.on("data",(G)=>{let X=[this.client.remoteAddress,this.client.remotePort];this.onData(G,X)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(G)=>{console.log("error",G)})}async init(){await this.connecting}static async init(G){let X=new W(G);return await X.init(),X}get address(){return{}}send=async(G,X)=>{await this.connecting,this.client.write(G,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},p4={rsa_1:1,ecdsa_3:3},rq={sha256_4:4},RO={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},vd=Object.values(RO),a6={x25519_29:29,secp256r1_23:23},L2=Object.values(a6),B2={named_curve_3:3},h$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},gd=[1,64],E2=[{hash:rq.sha256_4,signature:p4.rsa_1},{hash:rq.sha256_4,signature:p4.ecdsa_3}],bd=()=>{let W=Cq.utils.randomPrivateKey(),G=Cq.getPublicKey(W,!1),X=Buffer.from(W),Y=Buffer.from(G);return{privateKey:X,publicKey:Y}},md=({publicKey:W,privateKey:G})=>{let X=Cq.getSharedSecret(G,W);return Buffer.from(X).subarray(1)};function S2(W,G,X){switch(X){case a6.secp256r1_23:return md({publicKey:W,privateKey:G});case a6.x25519_29:return Buffer.from(F2.default.scalarMult(G,W));default:throw Error()}}function b$(W,G,X){let Y=hd(W,G);return Y.update(X),Y.digest()}function WJ(W,G,X,Y="sha256"){let Z=X,V=[],Q=G;do{Q=b$(Y,W,Q);let J=b$(Y,W,Buffer.concat([Q,G]));V.push(J),X-=J.length}while(X>0);return Buffer.concat(V,Z)}function x2(W,G,X){let Y=Buffer.concat([Buffer.from("master secret"),G,X]);return WJ(W,Y,48)}function k2(W,G){let X=_2("sha256",G),Y="extended master secret";return WJ(W,Buffer.concat([Buffer.from("extended master secret"),X]),48)}function fd(W,G,X,Y,Z,V){let Q=V?Y:Z,J=V?Z:Y,U=Buffer.concat([Buffer.from(W),Q,J]);return WJ(X,U,G)}function _2(W,G){return ud(W).update(G).digest()}function y2(W,G,X,Y=12){let Z=_2("sha256",G);return WJ(W,Buffer.concat([Buffer.from(X),Z]),Y)}function cd(W,G){return y2(W,G,"client finished")}function pd(W,G){return y2(W,G,"server finished")}function ld(W,G,X,Y,Z,V,Q="sha256"){let J=Y*2+Z*2,U=W,N=Buffer.concat([X,G]),q=WJ(U,Buffer.concat([Buffer.from("key expansion"),N]),J,Q),A=$2.createDecode(q),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(Z),C=A.readBuffer(Z),D=Buffer.alloc(V,0),x=Buffer.alloc(V,0);return w.copy(D,0),C.copy(x,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:D,serverNonce:x}}var c4={CLIENT:1,SERVER:2},dd=class{id=0;name;hashAlgorithm;verifyDataLength=12;blockAlgorithm;kx;init(...W){throw Error("not implemented")}encrypt(...W){throw Error("not implemented")}decrypt(...W){throw Error("not implemented")}toString(){return this.name}},LO=yd;y8.set(LO);var aq=class{constructor(W,G,X,Y){if(this.sessionType=W,this.certPem=G,this.keyPem=X,G&&X&&Y)this.parseX509(G,X,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,G)=>{let X=(()=>{switch(W.signature){case p4.rsa_1:return"RSASSA-PKCS1-v1_5";case p4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case rq.sha256_4:return"SHA-256"}})(),Z=(()=>{switch(G){case a6.secp256r1_23:return"P-256";case a6.x25519_29:if(X==="ECDSA")return"P-256";return"X25519";default:{if(X==="ECDSA")return"P-256";if(X==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),V=(()=>{switch(X){case"ECDSA":return{name:X,hash:Y,namedCurve:Z};case"RSASSA-PKCS1-v1_5":return{name:X,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),Q=await LO.subtle.generateKey(V,!0,["sign","verify"]),U=(await Ij.createSelfSigned({serialNumber:_d(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+315360000000),signingAlgorithm:V,keys:Q})).toString("pem"),N=K9.encode(await LO.subtle.exportKey("pkcs8",Q.privateKey),"private key");return{certPem:U,keyPem:N,signatureHash:W}};encryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber})}verifyData(W){if(this.sessionType===c4.CLIENT)return cd(this.masterSecret,W);else return pd(this.masterSecret,W)}signatureData(W,G){let X=kd(G).update(W),Y=this.localPrivateKey.toPEM().toString();return X.sign(Y)}generateKeySignature(W){let G=this.sessionType===c4.CLIENT?this.localRandom:this.remoteRandom,X=this.sessionType===c4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(G.serialize(),X.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,G,X){let Y=NH.Certificate.fromPEM(Buffer.from(W)),Z=NH.PrivateKey.fromPEM(Buffer.from(G));this.localCert=Y.raw,this.localPrivateKey=Z,this.signatureHashAlgorithm=X}valueKeySignature(W,G,X,Y){let Z=Buffer.from(vY.encode({type:B2.named_curve_3,curve:Y,len:X.length},{type:vY.types.uint8,curve:vY.types.uint16be,len:vY.types.uint8}).slice());return Buffer.concat([W,G,Z,X])}},sq=class{srtpProfile;static findMatchingSRTPProfile(W,G){for(let X of G)if(W.includes(X))return X}},eO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((G)=>G!=null&&G.length>0).join(",0x"),v2=(W)=>Object.entries({...W}).reduce((G,[X,Y])=>{if(typeof Y==="number"||typeof Y==="string")G[X]=Y;if(Buffer.isBuffer(Y))G[X]=eO(Y);return G},{}),P5=class W{constructor(G,X,Y,Z,V,Q){this.msg_type=G,this.length=X,this.message_seq=Y,this.fragment_offset=Z,this.fragment_length=V,this.fragment=Q}static spec={msg_type:W7.types.uint8,length:W7.types.uint24be,message_seq:W7.types.uint16be,fragment_offset:W7.types.uint24be,fragment_length:W7.types.uint24be,fragment:W7.types.buffer((G)=>G.current.fragment_length)};get summary(){return v2(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(W7.decode(G,W.spec)))}serialize(){let G=W7.encode(this,W.spec).slice();return Buffer.from(G)}chunk(G){let X=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,X,0,this.fragment)];let Z=[];if(!G)G=1240;while(X<Y){let V=Math.min(G,Y-X),Q=Buffer.from(this.fragment.slice(X,X+V));if(Q.length<=0)throw Error("Zero or less bytes processed while fragmenting handshake message.");Z.push(new W(this.msg_type,Y,this.message_seq,X,Q.length,Q)),X+=Q.length}return Z}static assemble(G){if(!G?.length)throw Error("cannot reassemble handshake from empty array");G=G.sort((Y,Z)=>Y.fragment_offset-Z.fragment_offset);let X=Buffer.alloc(G[0].length);for(let Y of G)Y.fragment.copy(X,Y.fragment_offset);return new W(G[0].msg_type,G[0].length,G[0].message_seq,0,X.length,X)}static findAllFragments(G,X){let Y=G.find((Z)=>Z.msg_type===X);if(!Y)return[];if(!G?.length)return[];return G.filter((Z)=>{return Z.msg_type===Y.msg_type&&Z.message_seq===Y.message_seq&&Z.length===Y.length})}},{uint16be:tq,uint24be:od,buffer:u2,array:nd,uint8:nQ,string:id}=g2.types,rd={type:tq,data:u2(tq)},BO=nd(rd,tq,"bytes"),ad=u2(od),sd=nQ,td=id(tq),ed={hash:nQ,signature:nQ},WK={major:nQ,minor:nQ},TG=class W{constructor(G=Math.floor(Date.now()/1000),X=Wo(28)){this.gmt_unix_time=G,this.random_bytes=X}static spec={gmt_unix_time:MG.types.uint32be,random_bytes:MG.types.buffer(28)};static deSerialize(G){return new W(...Object.values(MG.decode(G,W.spec)))}static from(G){return new W(...Object.values(G))}serialize(){let G=MG.encode(this,W.spec).slice();return Buffer.from(G)}},h2=class W{constructor(G,X,Y,Z,V,Q,J){this.clientVersion=G,this.random=X,this.sessionId=Y,this.cookie=Z,this.cipherSuites=V,this.compressionMethods=Q,this.extensions=J}msgType=1;messageSeq=0;static spec={clientVersion:{major:Z9.types.uint8,minor:Z9.types.uint8},random:TG.spec,sessionId:Z9.types.buffer(Z9.types.uint8),cookie:Z9.types.buffer(Z9.types.uint8),cipherSuites:Z9.types.array(Z9.types.uint16be,Z9.types.uint16be,"bytes"),compressionMethods:Z9.types.array(Z9.types.uint8,Z9.types.uint8,"bytes"),extensions:BO};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(Z9.decode(G,W.spec)))}serialize(){let G=Z9.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Xo=class W{constructor(G,X,Y,Z,V){this.epoch=G,this.sequenceNumber=X,this.contentType=Y,this.protocolVersion=Z,this.contentLen=V}static spec={epoch:f4.types.uint16be,sequenceNumber:f4.types.uint48be,contentType:f4.types.uint8,protocolVersion:WK,contentLen:f4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(f4.decode(G,W.spec)))}serialize(){let G=f4.encode(this,W.spec).slice();return Buffer.from(G)}},b2=class W{constructor(G,X){this.recordLayerHeader=G,this.fragment=X}get summary(){return{header:this.recordLayerHeader,fragment:eO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){if(G.length<13)throw Error("Invalid DTLS record: buffer is too short");let X=G.readUInt8(0),Y=G.readUInt8(1),Z=G.readUInt8(2),V=G.readUInt16BE(3),Q=G.slice(5,11).readUIntBE(0,6),J=G.readUInt16BE(11);if(G.length<13+J)throw Error("Invalid DTLS record: fragment length exceeds buffer");let U=G.slice(13,13+J);return new W({contentType:X,protocolVersion:{major:Y,minor:Z},epoch:V,sequenceNumber:Q,contentLen:J},U)}serialize(){let G=this.fragment.length,X=13+G,Y=Buffer.alloc(X);return Y.writeUInt8(this.recordLayerHeader.contentType,0),Y.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),Y.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),Y.writeUInt16BE(this.recordLayerHeader.epoch,3),Y.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),Y.writeUInt16BE(G,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Xo(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},m2=(W)=>(G)=>{return W.lastFlight=G,G.flatMap((X)=>{return X.messageSeq=W.sequenceNumber++,X.toFragment().chunk()})},GJ=(W)=>(G,X)=>{return G.map((Y)=>{return new b2({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:X,contentLen:Y.fragment.length},Y.fragment)})},EO=((W)=>{return W[W.CloseNotify=0]="CloseNotify",W[W.UnexpectedMessage=10]="UnexpectedMessage",W[W.BadRecordMac=20]="BadRecordMac",W[W.DecryptionFailed=21]="DecryptionFailed",W[W.RecordOverflow=22]="RecordOverflow",W[W.DecompressionFailure=30]="DecompressionFailure",W[W.HandshakeFailure=40]="HandshakeFailure",W[W.NoCertificate=41]="NoCertificate",W[W.BadCertificate=42]="BadCertificate",W[W.UnsupportedCertificate=43]="UnsupportedCertificate",W[W.CertificateRevoked=44]="CertificateRevoked",W[W.CertificateExpired=45]="CertificateExpired",W[W.CertificateUnknown=46]="CertificateUnknown",W[W.IllegalParameter=47]="IllegalParameter",W[W.UnknownCa=48]="UnknownCa",W[W.AccessDenied=49]="AccessDenied",W[W.DecodeError=50]="DecodeError",W[W.DecryptError=51]="DecryptError",W[W.ExportRestriction=60]="ExportRestriction",W[W.ProtocolVersion=70]="ProtocolVersion",W[W.InsufficientSecurity=71]="InsufficientSecurity",W[W.InternalError=80]="InternalError",W[W.UserCanceled=90]="UserCanceled",W[W.NoRenegotiation=100]="NoRenegotiation",W[W.UnsupportedExtension=110]="UnsupportedExtension",W})(EO||{}),Yo=T1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZO=T1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),XJ=class W{constructor(G,X,Y,Z){this.transport=G,this.dtls=X,this.flight=Y,this.nextFlight=Z}state="PREPARING";static RetransmitCount=10;createPacket(G){let X=m2(this.dtls)(G);return this.dtls.bufferHandshakeCache(X,!0,this.flight),GJ(this.dtls)(X.map((Z)=>({type:22,fragment:Z.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(G){let X=0;for(;X<=W.RetransmitCount;X++){if(this.setState("SENDING"),this.send(G).catch((Y)=>{ZO("fail to send",ZO)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Go(1000*((X+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else Yo(this.dtls.sessionId,"retransmit",X,this.dtls.flight)}if(X>W.RetransmitCount)throw ZO(this.dtls.sessionId,"retransmit failed",X),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(G)=>Promise.all(G.map((X)=>this.transport.send(X)));setState(G){this.state=G}},Zo=class extends XJ{constructor(W,G,X){super(W,G,1,3);this.cipher=X}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let G=new h2({major:254,minor:253},new TG,Buffer.from([]),Buffer.from([]),vd,[0],W);this.dtls.version=G.clientVersion,this.cipher.localRandom=TG.from(G.random);let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},Vo=T1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),Qo=class extends XJ{constructor(W,G){super(W,G,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[G]=this.dtls.lastFlight;Vo("dtls version",G.clientVersion),G.cookie=W.cookie,this.dtls.cookie=W.cookie;let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},qH={NULL:0,ECDHE:1},YJ={NULL:0,RSA:1,ECDSA:2,PSK:3},ZJ={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},VJ=class{id=0;name;signType;keyType;toString(){return this.name}};function Jo(){let W=new VJ;return W.id=ZJ.RSA,W.name="RSA",W.keyType=YJ.RSA,W}function Uo(){let W=new VJ;return W.id=ZJ.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=qH.ECDHE,W.keyType=YJ.RSA,W}function No(){let W=new VJ;return W.id=ZJ.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=qH.ECDHE,W.keyType=YJ.ECDSA,W}function qo(){let W=new VJ;return W.id=ZJ.PSK,W.name="PSK",W.signType=qH.NULL,W.keyType=YJ.PSK,W}function Ho(){let W=new VJ;return W.id=ZJ.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=qH.ECDHE,W.keyType=YJ.PSK,W}var Io=T1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),wo=class extends dd{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return v2(this)}init(W,G,X){let Y=ld(W,X,G,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=Y.clientWriteKey,this.serverWriteKey=Y.serverWriteKey,this.clientNonce=Y.clientNonce,this.serverNonce=Y.serverNonce}encrypt(W,G,X){let Y=W===c4.CLIENT,Z=Y?this.clientNonce:this.serverNonce,V=Y?this.clientWriteKey:this.serverWriteKey;if(!Z||!V)throw Error();Z.writeUInt16BE(X.epoch,this.nonceImplicitLength),Z.writeUIntBE(X.sequenceNumber,this.nonceImplicitLength+2,6);let Q=Z.slice(this.nonceImplicitLength),J=this.encodeAdditionalBuffer(X,G.length),U=Ao(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});U.setAAD(J,{plaintextLength:G.length});let N=U.update(G),q=U.final(),A=U.getAuthTag();return Buffer.concat([Q,N,q,A])}encodeAdditionalBuffer(W,G){let X=Buffer.alloc(13);return X.writeUInt16BE(W.epoch,0),X.writeUintBE(W.sequenceNumber,2,6),X.writeUInt8(W.type,8),X.writeUInt16BE(W.version,9),X.writeUInt16BE(G,11),X}decrypt(W,G,X){let Y=W===c4.CLIENT,Z=Y?this.serverNonce:this.clientNonce,V=Y?this.serverWriteKey:this.clientWriteKey;if(!Z||!V)throw Error();G.subarray(0,this.nonceExplicitLength).copy(Z,this.nonceImplicitLength);let J=G.subarray(this.nonceExplicitLength,G.length-this.authTagLength),U=G.subarray(G.length-this.authTagLength),N=this.encodeAdditionalBuffer(X,J.length),q=zo(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});q.setAuthTag(U),q.setAAD(N,{plaintextLength:J.length});let A=q.update(J);try{let H=q.final();return H.length>0?Buffer.concat([A,H]):A}catch(H){throw Io("decrypt failed",H,W,eO(G),X,this.summary),H}}},v8={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:49195,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:49196,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:49199,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:49200,TLS_RSA_WITH_AES_128_GCM_SHA256:156,TLS_RSA_WITH_AES_256_GCM_SHA384:157,TLS_PSK_WITH_AES_128_GCM_SHA256:168,TLS_PSK_WITH_AES_256_GCM_SHA384:169,TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:53249,TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:53250,TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256:52396,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:52393,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:52392,TLS_PSK_WITH_CHACHA20_POLY1305_SHA256:52395},kQ={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},_Q={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},m$=Jo(),f$=Uo(),c$=No(),p$=qo(),l$=Ho();function f2(W){switch(W){case v8.TLS_RSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",m$,kQ);case v8.TLS_RSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",m$,_Q,"sha384");case v8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",f$,kQ);case v8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",f$,_Q,"sha384");case v8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",c$,kQ);case v8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",c$,_Q,"sha384");case v8.TLS_PSK_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",p$,kQ,"sha256");case v8.TLS_PSK_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",p$,_Q,"sha384");case v8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",l$,kQ,"sha256");case v8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",l$,_Q,"sha384");default:break}return null}function u7(W,G,X,Y,Z,V="sha256"){let Q=new wo;return Q.id=W,Q.name=G,Q.blockAlgorithm=X,Q.kx=Y,Q.hashAlgorithm=V,Q.keyLength=Z.K_LEN,Q.nonceLength=Z.N_MAX,Q.nonceImplicitLength=4,Q.nonceExplicitLength=8,Q.ivLength=Q.nonceImplicitLength,Q.authTagLength=16,Q}function p2(W){switch(W){case a6.secp256r1_23:{let{privateKey:G,publicKey:X}=bd();return{curve:W,privateKey:G,publicKey:X}}case a6.x25519_29:{let G=c2.default.box.keyPair();return{curve:W,privateKey:Buffer.from(G.secretKey.buffer),publicKey:Buffer.from(G.publicKey.buffer)}}default:throw Error()}}var HH=class{static type=23},AH=class W{static type=65281;static spec={type:PG.types.uint16be,data:PG.types.uint8};type=W.type;data=0;constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(PG.decode(G,W.spec))}serialize(){let G=PG.encode(this,W.spec).slice();return Buffer.from(G)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},gY=class W{static type=14;static spec={type:i6.types.uint16be,data:i6.types.buffer(i6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(G={}){Object.assign(this,G)}static create(G,X){return new W({profiles:G,mki:X})}static deSerialize(G){let X=new W(i6.decode(G,W.spec)),Y=X.data.readUInt16BE(),Z=Array(Y/2);for(let V=0;V<Z.length;V++)Z[V]=X.data.readUInt16BE(V*2+2);return X.profiles=Z,X.mki=X.data.slice(Y+2),X}serialize(){let G=Buffer.alloc(2);G.writeUInt16BE(this.profiles.length*2);let X=Buffer.concat([G,...this.profiles.map((Z)=>{let V=Buffer.alloc(2);return V.writeUInt16BE(Z),V}),this.mki]);this.data=X;let Y=i6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(G){let X=Buffer.alloc(4);return X.writeUInt16BE(W.type),X.writeUInt16BE(G.length,2),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},eq=class W{constructor(G){this.certificateList=G}msgType=11;messageSeq;static spec={certificateList:RG.types.array(ad,RG.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(...Object.values(RG.decode(G,W.spec)))}serialize(){let G=RG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},l2=class W{constructor(G=1){this.type=G}static spec={type:fY.types.uint8};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(fY.decode(G,W.spec)))}serialize(){let G=fY.encode(this,W.spec).slice();return Buffer.from(G)}},d2=class W{constructor(G,X){this.algorithm=G,this.signature=X}msgType=15;messageSeq;static spec={algorithm:r6.types.uint16be,signature:r6.types.buffer(r6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){let X=r6.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=r6.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},o2=class W{constructor(G){this.publicKey=G}msgType=16;messageSeq;static spec={publicKey:LG.types.buffer(LG.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(G){let X=LG.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=LG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},$O=class W{constructor(G){this.verifyData=G}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(G)}serialize(){return this.verifyData}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},n2=class W{constructor(G,X,Y){this.certificateTypes=G,this.signatures=X,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:G7.types.array(sd,G7.types.uint8,"bytes"),signatures:G7.types.array(ed,G7.types.uint16be,"bytes"),authorities:G7.types.array(td,G7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(G7.decode(G,W.spec)))}serialize(){let G=G7.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},i2=class W{constructor(G,X,Y,Z,V,Q){this.serverVersion=G,this.random=X,this.sessionId=Y,this.cipherSuite=Z,this.compressionMethod=V,this.extensions=Q}msgType=2;messageSeq;static spec={serverVersion:WK,random:TG.spec,sessionId:X7.types.buffer(X7.types.uint8),cipherSuite:X7.types.uint16be,compressionMethod:X7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=X7.decode(G,W.spec),Y=new W(...Object.values(X));if(Y.serialize().length<G.length)return new W(...Object.values(X7.decode(G,{...W.spec,extensions:BO})));return Y}serialize(){let G=this.extensions===void 0?X7.encode(this,W.spec).slice():X7.encode(this,{...W.spec,extensions:BO}).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},r2=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(zH.decode(G,W.spec)))}serialize(){let G=zH.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}};function jo(W,G){return Buffer.from(a2.encode(W,G).slice())}var s2=class W{constructor(G,X,Y,Z,V,Q,J,U){this.ellipticCurveType=G,this.namedCurve=X,this.publicKeyLength=Y,this.publicKey=Z,this.hashAlgorithm=V,this.signatureAlgorithm=Q,this.signatureLength=J,this.signature=U}msgType=12;messageSeq;static spec={ellipticCurveType:e5.types.uint8,namedCurve:e5.types.uint16be,publicKeyLength:e5.types.uint8,publicKey:e5.types.buffer((G)=>G.current.publicKeyLength),hashAlgorithm:e5.types.uint8,signatureAlgorithm:e5.types.uint8,signatureLength:e5.types.uint16be,signature:e5.types.buffer((G)=>G.current.signatureLength)};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=e5.decode(G,W.spec);return new W(...Object.values(X))}serialize(){return jo(this,W.spec)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},IH=1,QJ=7;var Oo=(W)=>{switch(W){case IH:case QJ:return 16}},Ko=(W)=>{switch(W){case IH:return 14;case QJ:return 12}},BH0=T1("werift-rtp : packages/rtp/src/codec/av1.ts");var Do={0:"Reserved",1:"OBU_SEQUENCE_HEADER",2:"OBU_TEMPORAL_DELIMITER",3:"OBU_FRAME_HEADER",4:"OBU_TILE_GROUP",5:"OBU_METADATA",6:"OBU_FRAME",7:"OBU_REDUNDANT_FRAME_HEADER",8:"OBU_TILE_LIST",15:"OBU_PADDING"},EH0=Object.entries(Do).reduce((W,[G,X])=>{return W[X]=Number(G),W},{});var $H0=Buffer.from([0,0,0,1]);function d$(W,G){let X=Buffer.alloc(G);return W.copy(X),X}function WH(W){return Number.parseInt(W.toString(),10)}function Mo(W){let G=W[0];return G>127&&G<192}var FO=4,e6=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(G={}){Object.assign(this,G)}static serialize(G,X,Y,Z){let Q=new W({type:G,count:X,version:2,length:Z}).serialize();return Buffer.concat([Q,Y])}serialize(){let G=new nq(8);if(G.set(2,0,this.version),this.padding)G.set(1,2,1);return G.set(5,3,this.count),E8([1,1,2],[G.value,this.type,this.length])}static deSerialize(G){let[X,Y,Z]=r9(G,[1,1,2]),V=g8(X,0,2),Q=g8(X,2,1)>0,J=g8(X,3,5);return new W({version:V,padding:Q,count:J,type:Y,length:Z})}},o$=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(G={}){Object.assign(this,G)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(G){let[X,Y]=r9(G,[4,4]),Z=[];for(let V=8;V<G.length;V+=8)Z.push({ssrc:G.readUInt32BE(V),sequenceNumber:G[V+4]});return new W({senderSsrc:X,mediaSsrc:Y,fir:Z})}serialize(){let G=E8([4,4],[this.senderSsrc,this.mediaSsrc]),X=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:Z},V)=>{X.writeUInt32BE(Y,V*8),X[V*8+4]=Z}),Buffer.concat([G,X])}},GH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y]=r9(G,[4,4]);return new W({senderSsrc:X,mediaSsrc:Y})}serialize(){return E8([4,4],[this.senderSsrc,this.mediaSsrc])}},XH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y,Z,V,Q]=r9(G,[4,4,4,1,1]),J=g8(Q,0,6),U=(g8(Q,6,2)<<16)+(G[14]<<8)+G[15],N=J>46?18446744073709551615n:BigInt(U)<<BigInt(J),q=[];for(let A=16;A<G.length;A+=4){let H=G.slice(A).readUIntBE(0,4);q.push(H)}return new W({senderSsrc:X,mediaSsrc:Y,uniqueID:E8([4],[Z]).toString(),ssrcNum:V,brExp:J,brMantissa:U,ssrcFeedbacks:q,bitrate:N})}serialize(){let G=Buffer.concat([E8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),E8([1],[this.ssrcNum])]),X=new nq(24);X.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((V)=>E8([4],[V]))),Z=Buffer.concat([G,E8([3],[X.value]),Y]);return this.length=Z.length/4,Z}},To=T1("werift-rtp: /rtcp/psfb/index"),iQ=class W{static type=206;type=W.type;feedback;constructor(G={}){Object.assign(this,G)}serialize(){let G=this.feedback.serialize();return e6.serialize(this.type,this.feedback.count,G,this.feedback.length)}static deSerialize(G,X){let Y;switch(X.count){case o$.count:Y=o$.deSerialize(G);break;case GH.count:Y=GH.deSerialize(G);break;case XH.count:Y=XH.deSerialize(G);break;default:To("unknown psfb packet",X.count);break}return new W({feedback:Y})}},rQ=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(G={}){Object.assign(this,G)}serialize(){let G=E8([4],[this.ssrc]);return G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let[Y]=r9(G,[4]),Z=4,V=[];for(let Q=0;Q<X;Q++)V.push(GK.deSerialize(G.slice(Z,Z+24))),Z+=24;return new W({ssrc:Y,reports:V})}},GK=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(G={}){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,fractionLost:this.fractionLost,packetsLost:this.packetsLost,highestSequence:this.highestSequence,jitter:this.jitter,lsr:this.lsr,dlsr:this.dlsr}}serialize(){return E8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(G){let[X,Y,Z,V,Q,J,U]=r9(G,[4,1,3,4,4,4,4]);return new W({ssrc:X,fractionLost:Y,packetsLost:Z,highestSequence:V,jitter:Q,lsr:J,dlsr:U})}},t2=205,YH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:t2,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z]=r9(G,[4,4]),V=[];for(let Q=8;Q<G.length;Q+=4){let[J,U]=r9(G.subarray(Q),[2,2]);V.push(J);for(let N=0;N<16;N++)if(U>>N&1)V.push(J+N+1)}return new W({header:X,senderSsrc:Y,mediaSourceSsrc:Z,lost:V})}serialize(){let G=E8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),X=[];if(this.lost.length>0){let Z=this.lost[0],V=0;this.lost.slice(1).forEach((Q)=>{let J=Q-Z-1;if(J>=0&&J<16)V|=1<<J;else X.push(E8([2,2],[Z,V])),Z=Q,V=0}),X.push(E8([2,2],[Z,V]))}let Y=Buffer.concat([G,Buffer.concat(X)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},Po=T1("werift/rtp/rtcp/rtpfb/twcc"),ZH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:205,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z,V,Q,J,U]=r9(G,[4,4,2,2,3,1]),N=[],q=[],A=16;for(let I=0;I<Q;){let w=g8(G.slice(A,A+1)[0],0,1),C;switch(w){case 0:{let D=dQ.deSerialize(G.slice(A,A+2));C=D;let x=Math.min(Q-I,D.runLength);if(D.packetStatus===1||D.packetStatus===2)for(let h=0;h<x;h++)q.push(new yq({type:D.packetStatus}));I+=x}break;case 1:{let D=Ro.deSerialize(G.slice(A,A+2));if(C=D,D.symbolSize===0)D.symbolList.forEach((x)=>{if(x===1)q.push(new yq({type:1}))});if(D.symbolSize===1)D.symbolList.forEach((x)=>{if(x===1||x===2)q.push(new yq({type:x}))});I+=D.symbolList.length}break}if(!C)throw Error();A+=2,N.push(C)}let H=A;return q.forEach((I)=>{if(I.type===1)I.deSerialize(G.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(G.slice(H,H+2)),H+=2}),new W({senderSsrc:Y,mediaSourceSsrc:Z,baseSequenceNumber:V,packetStatusCount:Q,referenceTime:J,fbPktCount:U,recvDeltas:q,packetChunks:N,header:X})}serialize(){let G=E8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),X=Buffer.concat(this.packetChunks.map((V)=>V.serialize())),Y=Buffer.concat(this.recvDeltas.map((V)=>{try{return V.serialize()}catch(Q){Po(Q?.message);return}}).filter((V)=>V)),Z=Buffer.concat([G,X,Y]);if(this.header.padding&&Z.length%4!==0){let V=4-Z.length%4,Q=Buffer.alloc(V);return Q[Q.length-1]=Q.length,this.header.length=Math.floor((Z.length+Q.length)/4),Buffer.concat([this.header.serialize(),Z,Q])}return this.header.length=Math.floor(Z.length/4),Buffer.concat([this.header.serialize(),Z])}get packetResults(){let G=this.baseSequenceNumber-1,X=this.packetChunks.filter((Q)=>Q instanceof dQ).flatMap((Q)=>Q.results(G)),Y=0,V=BigInt(this.referenceTime)*64n;for(let Q of X){let J=this.recvDeltas[Y];if(!Q.received||!J)continue;V+=BigInt(J.delta)/1000n,Q.delta=J.delta,Q.receivedAtMs=Number(V),Y++}return X}},dQ=class W{type;packetStatus;runLength;constructor(G={}){Object.assign(this,G),this.type=0}static deSerialize(G){let X=g8(G[0],1,2),Y=(g8(G[0],3,5)<<8)+G[1];return new W({type:0,packetStatus:X,runLength:Y})}serialize(){return new I2(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(G){let X=this.packetStatus===1||this.packetStatus===2,Y=[];for(let Z=0;Z<=this.runLength;++Z)Y.push(new Lo({sequenceNumber:++G,received:X}));return Y}},Ro=class W{type;symbolSize;symbolList=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let Y=g8(G[0],1,1),Z=[];function V(Q,J){for(let U=0;U<Q;U++)J(U)}switch(Y){case 0:V(6,(Q)=>Z.push(g8(G[0],2+Q,1))),V(8,(Q)=>Z.push(g8(G[1],Q,1)));break;case 1:V(3,(Q)=>Z.push(g8(G[0],2+Q*2,2))),V(4,(Q)=>Z.push(g8(G[1],Q*2,2)));break;default:Y=(g8(G[0],2,6)<<8)+G[1]}return new W({type:1,symbolSize:Y,symbolList:Z})}serialize(){let G=Buffer.alloc(2),X=new I2(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((Z)=>{X.set(Z,Y)}),G.writeUInt16BE(X.value),G}},yq=class W{type;delta;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X,Y;if(G.length===1)X=1,Y=250*G[0];else if(G.length===2)X=2,Y=250*G.readInt16BE();if(X===void 0||Y===void 0)throw Error();return new W({type:X,delta:Y})}deSerialize(G){let X=W.deSerialize(G);this.delta=X.delta}parsed=!1;parseDelta(){if(this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255){if(this.delta>32767)this.delta=32767;if(this.delta<-32768)this.delta=-32768;if(!this.type)this.type=2}else if(!this.type)this.type=1;this.parsed=!0}serialize(){if(!this.parsed)this.parseDelta();if(this.type===1){let G=Buffer.alloc(1);return G.writeUInt8(this.delta),G}else if(this.type===2){let G=Buffer.alloc(2);return G.writeInt16BE(this.delta),G}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var Lo=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},Bo=T1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),uY=class W{static type=t2;type=W.type;feedback;header;constructor(G={}){Object.assign(this,G)}serialize(){return this.feedback.serialize()}static deSerialize(G,X){let Y;switch(X.count){case YH.count:Y=YH.deSerialize(G,X);break;case ZH.count:Y=ZH.deSerialize(G,X);break;default:Bo("unknown rtpfb packet",X.count);break}return new W({feedback:Y,header:X})}},VH=class W{static type=202;type=W.type;chunks=[];constructor(G){Object.assign(this,G)}get length(){let G=0;return this.chunks.forEach((X)=>G+=X.length),G}serialize(){let G=Buffer.concat(this.chunks.map((X)=>X.serialize()));while(G.length%4)G=Buffer.concat([G,Buffer.from([0])]);return e6.serialize(this.type,this.chunks.length,G,G.length/4)}static deSerialize(G,X){let Y=[];for(let Z=0;Z<G.length;){let V=e2.deSerialize(G.slice(Z));Y.push(V),Z+=V.length}return new W({chunks:Y})}},e2=class W{source;items=[];constructor(G={}){Object.assign(this,G)}get length(){let G=4;return this.items.forEach((X)=>G+=X.length),G+=1,G+=n$(G),G}serialize(){let G=Buffer.concat([E8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([G,Buffer.alloc(n$(G.length))])}static deSerialize(G){let X=G.readUInt32BE(),Y=[];for(let Z=4;Z<G.length;){if(G[Z]===0)break;let Q=WS.deSerialize(G.slice(Z));Y.push(Q),Z+=Q.length}return new W({source:X,items:Y})}},WS=class W{type;text;constructor(G){Object.assign(this,G)}get length(){return 2+Buffer.from(this.text).length}serialize(){let G=Buffer.from(this.text);return Buffer.concat([E8([1,1],[this.type,G.length]),G])}static deSerialize(G){let X=G[0],Y=G[1],Z=G.slice(2,2+Y).toString();return new W({type:X,text:Z})}};function n$(W){if(W%4==0)return 0;return 4-W%4}var hY=class W{ssrc=0;senderInfo;reports=[];static type=200;type=W.type;constructor(G){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((G)=>G.toJSON())}}serialize(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.ssrc),G=Buffer.concat([G,this.senderInfo.serialize()]),G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let Y=G.readUInt32BE(),Z=GS.deSerialize(G.subarray(4,24)),V=24,Q=[];for(let U=0;U<X;U++)Q.push(GK.deSerialize(G.subarray(V,V+24))),V+=24;return new W({ssrc:Y,senderInfo:Z,reports:Q})}},GS=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(G={}){Object.assign(this,G)}toJSON(){return{ntpTimestamp:Eo(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return E8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(G){let[X,Y,Z,V]=r9(G,[8,4,4,4]);return new W({ntpTimestamp:X,rtpTimestamp:Y,packetCount:Z,octetCount:V})}},Eo=(W)=>{let[G,X]=r9(E8([8],[W]),[4,4]);return Number(`${G}.${X}`)},$o=T1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),Fo=class{static deSerialize(W){let G=0,X=[];while(G<W.length){let Y=e6.deSerialize(W.subarray(G,G+FO));G+=FO;let Z=W.subarray(G);if(G+=Y.length*4,Y.padding)Z=Z.subarray(0,Z.length-Z.subarray(-1)[0]);try{switch(Y.type){case hY.type:X.push(hY.deSerialize(Z,Y.count));break;case rQ.type:X.push(rQ.deSerialize(Z,Y.count));break;case VH.type:X.push(VH.deSerialize(Z,Y));break;case uY.type:X.push(uY.deSerialize(Z,Y));break;case iQ.type:X.push(iQ.deSerialize(Z,Y));break;default:break}}catch(V){$o("deSerialize RTCP",V)}}return X}};function So(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var D9={sdesMid:"urn:ietf:params:rtp-hdrext:sdes:mid",sdesRTPStreamID:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",repairedRtpStreamId:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",transportWideCC:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",absSendTime:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",dependencyDescriptor:"https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension",audioLevelIndication:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",videoOrientation:"urn:3gpp:video-orientation"};function xo(W,G){return W.map((X)=>{let Y=G[X.id];if(!Y)return{uri:"unknown",value:X.payload};switch(Y){case D9.sdesMid:case D9.sdesRTPStreamID:case D9.repairedRtpStreamId:return{uri:Y,value:uo(X.payload)};case D9.transportWideCC:return{uri:Y,value:ho(X.payload)};case D9.absSendTime:return{uri:Y,value:bo(X.payload)};case D9.audioLevelIndication:return{uri:Y,value:mo(X.payload)};case D9.videoOrientation:return{uri:Y,value:fo(X.payload)};default:return{uri:Y,value:X.payload}}}).reduce((X,Y)=>{if(Y)X[Y.uri]=Y.value;return X},{})}function ko(W){return Buffer.from(W)}function _o(W){return Buffer.from(W)}function yo(W){return Buffer.from(W)}function vo(W){return E8([2],[W])}function go(W){let G=Buffer.alloc(3),X=W>>14n&0x00ffffffn;return G.writeUIntBE(Number(X),0,3),G}function uo(W){return W.toString()}function ho(W){return W.readUInt16BE()}function bo(W){return r9(W,[3])[0]}function mo(W){let G=new pQ(W);return{v:G.readBits(1)===1,level:G.readBits(7)}}function fo(W){let G=new pQ(W);return G.readBits(4),{c:G.readBits(1),f:G.readBits(1),r1:G.readBits(1),r0:G.readBits(1)}}var co=T1("packages/rtp/src/rtp/red/packet.ts"),XS=class W{header;blocks=[];static deSerialize(G){let X=G instanceof ArrayBuffer?Buffer.from(G):G,Y=new W,Z=0;return[Y.header,Z]=i$.deSerialize(X),Y.header.fields.forEach(({blockLength:V,timestampOffset:Q,blockPT:J})=>{if(V&&Q){let U=X.subarray(Z,Z+V);Y.blocks.push({block:U,blockPT:J,timestampOffset:Q}),Z+=V}else{let U=X.subarray(Z);Y.blocks.push({block:U,blockPT:J})}}),Y}serialize(){this.header=new i$;for(let{timestampOffset:X,blockPT:Y,block:Z}of this.blocks)if(X)this.header.fields.push({fBit:1,blockPT:Y,blockLength:Z.length,timestampOffset:X});else this.header.fields.push({fBit:0,blockPT:Y});let G=this.header.serialize();for(let{block:X}of this.blocks)G=Buffer.concat([G,X]);return G}},i$=class W{fields=[];static deSerialize(G){let X=0,Y=new W;for(;;){let Z={};Y.fields.push(Z);let V=new pQ(G.subarray(X));if(Z.fBit=V.readBits(1),Z.blockPT=V.readBits(7),X++,Z.fBit===0)break;Z.timestampOffset=V.readBits(14),Z.blockLength=V.readBits(10),X+=3}return[Y,X]}serialize(){let G=Buffer.alloc(0);for(let X of this.fields)try{if(X.timestampOffset&&X.blockLength){let Y=new pQ(Buffer.alloc(4)).writeBits(1,X.fBit).writeBits(7,X.blockPT).writeBits(14,X.timestampOffset).writeBits(10,X.blockLength);G=Buffer.concat([G,Y.uint8Array])}else{let Y=new pQ(Buffer.alloc(1)).writeBits(1,0).writeBits(7,X.blockPT);G=Buffer.concat([G,Y.uint8Array])}}catch(Y){co(Y?.message)}return G}},po=class{constructor(W=1){this.distance=W}cache=[];cacheSize=10;push(W){if(this.cache.push(W),this.cache.length>this.cacheSize)this.cache.shift()}build(){let W=new XS,G=this.cache.slice(-(this.distance+1)),X=G.pop();if(!X)return W;return G.forEach((Y)=>{let Z=yY(X.timestamp,-Y.timestamp);if(Z>lo)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:Z})}),W.blocks.push({block:X.block,blockPT:X.blockPT}),W}},lo=16383,oo=class{size=150;sequenceNumbers=[];push(W,G){let X=[];return W.blocks.forEach(({blockPT:Z,timestampOffset:V,block:Q},J)=>{let U=M9(G.header.sequenceNumber,-(W.blocks.length-(J+1)));if(V)X.push(new t6(new s6({timestamp:yY(G.header.timestamp,-V),payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q));else X.push(new t6(new s6({timestamp:G.header.timestamp,payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q))}),X.filter((Z)=>{if(this.sequenceNumbers.includes(Z.header.sequenceNumber))return!1;else{if(this.sequenceNumbers.length>this.size)this.sequenceNumbers.shift();return this.sequenceNumbers.push(Z.header.sequenceNumber),!0}})}},OG={OneByte:48862,TwoByte:4096},r$=2,a$=4,s$=8,t$=12,e$=4,s6=class W{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=OG.OneByte;extensionLength;extensions=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X=new W,Y=0,Z=G[Y++];X.version=g8(Z,0,2),X.padding=g8(Z,2)>0,X.extension=g8(Z,3)>0,X.csrcLength=g8(Z,4,4),X.csrc=[...Array(X.csrcLength)].map(()=>{let Q=G.readUInt32BE(Y);return Y+=4,Q}),Y+=t$-1;let V=G[1];X.marker=g8(V,0)>0,X.payloadType=g8(V,1,7),X.sequenceNumber=G.readUInt16BE(r$),X.timestamp=G.readUInt32BE(a$),X.ssrc=G.readUInt32BE(s$);for(let Q=0;Q<X.csrc.length;Q++){let J=t$+Q*e$;X.csrc[Q]=G.subarray(J).readUInt32BE()}if(X.extension){X.extensionProfile=G.subarray(Y).readUInt16BE(),Y+=2;let Q=G.subarray(Y).readUInt16BE()*4;switch(X.extensionLength=Q,Y+=2,X.extensionProfile){case OG.OneByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y]>>4,N=(G[Y]&(G[Y]^240))+1;if(Y++,U===15)break;let q={id:U,payload:G.subarray(Y,Y+N)};X.extensions=[...X.extensions,q],Y+=N}}break;case OG.TwoByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y];Y++;let N=G[Y];Y++;let q={id:U,payload:G.subarray(Y,Y+N)};X.extensions=[...X.extensions,q],Y+=N}}break;default:{let J={id:0,payload:G.subarray(Y,Y+Q)};X.extensions=[...X.extensions,J],Y+=X.extensions[0].payload.length}break}}if(X.payloadOffset=Y,X.padding)X.paddingSize=G[G.length-1];return X}get serializeSize(){let{csrc:G,extensionProfile:X,extensions:Y}=this,Z=12+G.length*e$;if(Y.length>0||this.extension===!0){let V=4;switch(X){case OG.OneByte:for(let Q of Y)V+=1+Q.payload.length;break;case OG.TwoByte:for(let Q of Y)V+=2+Q.payload.length;break;default:V+=Y[0].payload.length}Z+=Math.floor((V+3)/4)*4}return Z}serialize(G){let X=Buffer.alloc(G),Y=0,Z=new nq(8);if(Z.set(2,0,this.version),this.padding)Z.set(1,2,1);if(this.extensions.length>0)this.extension=!0;if(this.extension)Z.set(1,3,1);Z.set(4,4,this.csrc.length),X.writeUInt8(Z.value,Y++);let V=new nq(8);if(this.marker)V.set(1,0,1);V.set(7,1,this.payloadType),X.writeUInt8(V.value,Y++),X.writeUInt16BE(this.sequenceNumber,r$),Y+=2,X.writeUInt32BE(this.timestamp,a$),Y+=4,X.writeUInt32BE(this.ssrc,s$),Y+=4;for(let Q of this.csrc)X.writeUInt32BE(Q,Y),Y+=4;if(this.extension){let Q=Y;X.writeUInt16BE(this.extensionProfile,Y),Y+=4;let J=Y;switch(this.extensionProfile){case OG.OneByte:for(let q of this.extensions)X.writeUInt8(q.id<<4|q.payload.length-1,Y++),q.payload.copy(X,Y),Y+=q.payload.length;break;case OG.TwoByte:for(let q of this.extensions)X.writeUInt8(q.id,Y++),X.writeUInt8(q.payload.length,Y++),q.payload.copy(X,Y),Y+=q.payload.length;break;default:{let q=this.extensions[0].payload.length;if(q%4!=0)throw Error();this.extensions[0].payload.copy(X,Y),Y+=q}}let U=Y-J,N=Math.trunc((U+3)/4)*4;X.writeUInt16BE(Math.trunc(N/4),Q+2);for(let q=0;q<N-U;q++)X.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,X}},t6=class W{constructor(G,X){this.header=G,this.payload=X}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new s6({...this.header}),this.payload)}serialize(){let G=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:X}=this.header;if(this.payload.copy(G,X),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),G=Buffer.concat([G,Y])}return G}static deSerialize(G){let X=s6.deSerialize(G);return new W(X,G.subarray(X.payloadOffset,G.length-X.paddingSize))}clear(){this.payload=null}};function no(W,G,X){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:a1.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:X}),W.payload.subarray(2))}function io(W,G,X,Y){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:X,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(a1.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var YS=class{constructor(W,G,X,Y){this.srtpSessionKey=W,this.srtpSessionSalt=G,this.srtcpSessionKey=X,this.srtcpSessionSalt=Y}encryptRtp(W,G,X){return Buffer.from([])}decryptRtp(W,G,X){return[]}encryptRTCP(W,G){return Buffer.from([])}decryptRTCP(W){return[]}},bY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},YF=12,ao=8;function XK(W,G,X="Failed to authenticate SRTP packet"){let Y=W.length-G;aQ(W.length>=YF+G,X);let Z=VS(()=>s6.deSerialize(W.subarray(0,Y)),X);return Z.paddingSize=0,aQ(Z.payloadOffset>=YF&&Z.payloadOffset<=Y,X),Z}function ZS(W,G,X,Y="Failed to authenticate SRTCP packet"){return aQ(W.length>=ao+G+X,Y),VS(()=>e6.deSerialize(W.subarray(0,FO)),Y)}function aQ(W,G){if(!W)throw new bY(G)}function VS(W,G){try{return W()}catch{throw new bY(G)}}function QS(W,G,X="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;aQ(G.length>W.payloadOffset,X);let Y=G[G.length-1];return aQ(Y>0&&Y<=G.length-W.payloadOffset,X),W.paddingSize=Y,W}var so=class extends YS{constructor(W,G,X,Y,Z,V){super(W,G,X,Y);this.srtpSessionAuthTag=Z,this.srtcpSessionAuthTag=V}authTagLength=10;encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.generateCounter(W.sequenceNumber,X,W.ssrc,this.srtpSessionSalt),Q=WF("aes-128-ctr",this.srtpSessionKey,Z).update(G),J=this.generateSrtpAuthTag(X,Y,Q);return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.authTagLength)){let Y=W.length-this.authTagLength,Z=W.subarray(0,Y),V=W.subarray(Y),Q=this.generateSrtpAuthTag(G,Z.subarray(0,X.payloadOffset),Z.subarray(X.payloadOffset));VF(V,Q,"Failed to authenticate SRTP packet");let J=this.generateCounter(X.sequenceNumber,G,X.ssrc,this.srtpSessionSalt),U=GF("aes-128-ctr",this.srtpSessionKey,J),N=Z.subarray(X.payloadOffset),q=U.update(N),A=Buffer.concat([Z.subarray(0,X.payloadOffset),q]);return[A,QS(X,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=Buffer.from(W),Y=X.readUInt32BE(4),Z=this.generateCounter(G&65535,G>>16,Y,this.srtcpSessionSalt);WF("aes-128-ctr",this.srtcpSessionKey,Z).update(X.slice(8)).copy(X,8),X=Buffer.concat([X,Buffer.alloc(4)]),X.writeUInt32BE(G,X.length-4),X[X.length-4]|=128;let J=this.generateSrtcpAuthTag(X);return X=Buffer.concat([X,J]),X}decryptRTCP(W){let G=ZS(W,this.authTagLength,ZF),X=W.length-(this.authTagLength+ZF),Y=W.subarray(0,W.length-this.authTagLength),Z=W.subarray(W.length-this.authTagLength),V=this.generateSrtcpAuthTag(Y);VF(Z,V,"Failed to authenticate SRTCP packet");let Q=Buffer.from(W).slice(0,X);if(W[X]>>>7===0)return[Q,G];let U=W.readUInt32BE(X);U&=2147483647;let N=W.readUInt32BE(4),q=this.generateCounter(U&65535,U>>16,N,this.srtcpSessionSalt);return GF("aes-128-ctr",this.srtcpSessionKey,q).update(Q.subarray(8)).copy(Q,8),[Q,G]}generateSrtcpAuthTag(W){return XF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,G,X,Y){let Z=Buffer.alloc(16);Z.writeUInt32BE(X,4),Z.writeUInt32BE(G,8),Z.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let V=0;V<Y.length;V++)Z[V]^=Y[V];return Z}generateSrtpAuthTag(W,...G){let X=XF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let Z of G)X.update(Z);return X.update(Y).digest().subarray(0,10)}},ZF=4;function VF(W,G,X){if(W.length!==G.length||!ro(W,G))throw new bY(X)}var to=class extends YS{aeadAuthTagLen=16;rtpIvWriter=_q([2,4,4,2],!0);rtcpIvWriter=_q([2,4,2,4],!0);aadWriter=_q([4],!0);constructor(W,G,X,Y){super(W,G,X,Y)}encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.rtpInitializationVector(W,X),V=QF("aes-128-gcm",this.srtpSessionKey,Z);V.setAAD(Y);let Q=V.update(G);V.final();let J=V.getAuthTag();return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.aeadAuthTagLen)){let Y=W.subarray(0,X.payloadOffset),Z=W.length-this.aeadAuthTagLen,V=W.subarray(Z),Q=Buffer.from([]);Q=d$(Q,W.length-this.aeadAuthTagLen),Y.copy(Q);let J=this.rtpInitializationVector(X,G),U=W.slice(X.payloadOffset,Z),N=JF("aes-128-gcm",this.srtpSessionKey,J);N.setAAD(Y),N.setAuthTag(V);let q=N.update(U);return NF(N,"SRTP"),q.copy(Q,X.payloadOffset),[Q,QS(X,Q,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,Z=Buffer.from([]);Z=d$(Z,Y+QO),W.slice(0,8).copy(Z);let V=this.rtcpInitializationVector(X,G),Q=this.rtcpAdditionalAuthenticatedData(W,G),J=QF("aes-128-gcm",this.srtcpSessionKey,V);J.setAAD(Q);let U=J.update(W.slice(8));return J.final(),U.copy(Z,8),J.getAuthTag().copy(Z,8+U.length),Q.slice(8,12).copy(Z,Y),Z}decryptRTCP(W){let G=ZS(W,this.aeadAuthTagLen,QO),X=W.length-QO,Y=X-this.aeadAuthTagLen,Z=W.readUInt32BE(4),V=W.readUInt32BE(X),Q=V>>>31===1,J=V&~(UF<<24),U=this.rtcpInitializationVector(Z,J),N=Q?Buffer.concat([W.subarray(0,8),W.subarray(X)]):Buffer.concat([W.subarray(0,Y),W.subarray(X)]),q=Q?W.slice(8,Y):Buffer.alloc(0),A=Q?Buffer.alloc(Y):Buffer.from(W.subarray(0,Y));if(Q)W.slice(0,8).copy(A);let H=JF("aes-128-gcm",this.srtcpSessionKey,U);H.setAAD(N),H.setAuthTag(W.subarray(Y,X));let I=H.update(q);if(NF(H,"SRTCP"),Q)I.copy(A,8);return[A,G]}rtpInitializationVector(W,G){let X=this.rtpIvWriter([0,W.ssrc,G,W.sequenceNumber]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtpSessionSalt[Y];return X}rtcpInitializationVector(W,G){let X=this.rtcpIvWriter([0,W,0,G]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtcpSessionSalt[Y];return X}rtcpAdditionalAuthenticatedData(W,G){let X=Buffer.concat([W.subarray(0,8),this.aadWriter([G])]);return X[8]|=UF,X}},QO=4,UF=128;function NF(W,G){try{W.final()}catch{throw new bY(`Failed to authenticate ${G} packet`)}}var JS=class{constructor(W,G,X){this.masterKey=W,this.masterSalt=G,this.profile=X;{let Y=14-G.length;if(Y>0)this.masterSalt=Buffer.concat([G,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=VO("sha1",this.srtcpSessionAuthTag),X){case IH:this.cipher=new so(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case QJ:this.cipher=new to(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vq.default.AES(this.masterKey);return Buffer.from(Y.encrypt(G))}generateSessionSalt(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vq.default.AES(this.masterKey);return G=Buffer.from(Y.encrypt(G)),G.subarray(0,14)}generateSessionAuthTag(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Q=X.length-1,J=G.length-1;Q>=0;Q--,J--)G[J]=G[J]^X[Q];let Y=Buffer.concat([G,Buffer.from([0,0])]),Z=Buffer.concat([G,Buffer.from([0,1])]),V=new vq.default.AES(this.masterKey);return Y=Buffer.from(V.encrypt(Y)),Z=Buffer.from(V.encrypt(Z)),Buffer.concat([Y,Z.subarray(0,4)])}getSrtpSsrcState(W){let G=this.srtpSSRCStates[W];if(G)return G;return G={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=G,G}getSrtcpSsrcState(W){let G=this.srtcpSSRCStates[W];if(G)return G;return G={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=G,G}updateRolloverCount(W,G){if(!G.rolloverHasProcessed)G.rolloverHasProcessed=!0;else if(W===0){if(G.lastSequenceNumber>yQ)G.rolloverCounter++}else if(G.lastSequenceNumber<yQ&&W>qF-yQ){if(G.rolloverCounter>0)G.rolloverCounter--}else if(W<yQ&&G.lastSequenceNumber>qF-yQ)G.rolloverCounter++;G.lastSequenceNumber=W}generateSrtpAuthTag(W,G){this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag);let X=Buffer.alloc(4);return X.writeUInt32BE(G),this.srtpSessionAuth.update(W).update(X).digest().slice(0,10)}index(W){let G=this.srtcpSSRCStates[W];if(!G)return 0;return G.srtcpIndex}setIndex(W,G){let X=this.getSrtcpSsrcState(W);X.srtcpIndex=G%2147483647}},yQ=100,qF=65535,eo=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRTCP(W){let G=W.readUInt32BE(4),X=this.getSrtcpSsrcState(G);if(X.srtcpIndex++,X.srtcpIndex>>Wn)X.srtcpIndex=0;return this.cipher.encryptRTCP(W,X.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},Wn=2147483647,US=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,G,X,Y,Z){this.localContext=new this.ContextCls(W,G,Z),this.remoteContext=new this.ContextCls(X,Y,Z)}},Gn=class extends US{constructor(W){super(eo);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRTCP(W);return G};encrypt(W){return this.localContext.encryptRTCP(W)}},Xn=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRtp(W,G){let X=this.getSrtpSsrcState(G.ssrc);return this.updateRolloverCount(G.sequenceNumber,X),this.cipher.encryptRtp(G,W,X.rolloverCounter)}decryptRtp(W){let G=XK(W,this.rtpAuthTagLength),X=this.srtpSSRCStates[G.ssrc],Y=X?{...X}:{ssrc:G.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(G.sequenceNumber,Y);let Z=this.cipher.decryptRtp(W,Y.rolloverCounter,G);if(X)Object.assign(X,Y);else this.srtpSSRCStates[G.ssrc]=Y;return Z}get rtpAuthTagLength(){return this.profile===QJ?16:10}},Yn=class extends US{constructor(W){super(Xn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRtp(W);return G};encrypt(W,G){return this.localContext.encryptRtp(W,G)}},_H0=class{constructor(W){this.props=W}sequenceNumber=z2();timestamp=DO();create(W){this.sequenceNumber=M9(this.sequenceNumber,1);let G=this.props.between*this.props.clockRate/1000;this.timestamp=yY(this.timestamp,G);let X=new s6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new t6(X,W)}},v9=T1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Zn=class extends XJ{constructor(W,G,X,Y){super(W,G,5,7);this.cipher=X,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let G=(()=>{switch(W.msg_type){case 2:return i2.deSerialize(W.fragment);case 11:return eq.deSerialize(W.fragment);case 12:return s2.deSerialize(W.fragment);case 13:return n2.deSerialize(W.fragment);case 14:return r2.deSerialize(W.fragment)}})();if(G)cY[G.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(G)}async exec(){if(this.dtls.flight===5){v9(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let W=this.dtls.requestedCertificateTypes.length>0;v9(this.dtls.sessionId,"send flight5",W);let G=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((X)=>X);this.dtls.lastMessage=G,await this.transmit(G)}sendCertificate(){let W=new eq([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new o2(this.cipher.localKeyPair.publicKey),G=this.createPacket([W]),X=Buffer.concat(G.map((J)=>J.serialize())),Y=this.cipher.localKeyPair,Z=this.cipher.remoteKeyPair;if(!Z.publicKey)throw Error("not exist");let V=S2(Z.publicKey,Y.privateKey,Y.curve);v9(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let Q=Buffer.concat(this.dtls.sortedHandshakeCache.map((J)=>J.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?k2(V,Q):x2(V,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=f2(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),v9(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),X}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Q)=>Q.serialize())),G=this.cipher.signatureData(W,"sha256"),X=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case p4.ecdsa_3:return h$.ecdsa_secp256r1_sha256;case p4.rsa_1:return h$.rsa_pkcs1_sha256}})();if(!X)throw Error();v9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,X);let Y=new d2(X,G),Z=this.createPacket([Y]);return Buffer.concat(Z.map((Q)=>Q.serialize()))}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=GJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);this.dtls.recordSequenceNumber=0;let Z=this.cipher.encryptPacket(Y).serialize();return v9(this.dtls.sessionId,"finished",this.cipher.cipher.summary),Z}},cY={};cY[2]=({cipher:W,srtp:G,dtls:X})=>(Y)=>{if(v9(X.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TG.from(Y.random),W.cipherSuite=Y.cipherSuite,v9(X.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((Z)=>{switch(Z.type){case gY.type:{let V=gY.fromData(Z.data),Q=sq.findMatchingSRTPProfile(V.profiles,X.options.srtpProfiles||[]);if(v9(X.sessionId,"selected srtp profile",Q),Q==null)return;G.srtpProfile=Q}break;case HH.type:X.remoteExtendedMasterSecret=!0;break;case AH.type:v9(X.sessionId,"RenegotiationIndication");break}})};cY[11]=({cipher:W,dtls:G})=>(X)=>{v9(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};cY[12]=({cipher:W,dtls:G})=>(X)=>{if(!W.localRandom||!W.remoteRandom)throw Error();v9(G.sessionId,"ServerKeyExchange",X),v9(G.sessionId,"selected curve",X.namedCurve),W.remoteKeyPair={curve:X.namedCurve,publicKey:X.publicKey},W.localKeyPair=p2(X.namedCurve)};cY[13]=({dtls:W})=>(G)=>{v9(W.sessionId,"certificate_request",G),W.requestedCertificateTypes=G.certificateTypes,W.requestedSignatureAlgorithms=G.signatures};cY[14]=({dtls:W})=>(G)=>{v9(W.sessionId,"server_hello_done",G)};var NS=class W{constructor(G,X){this.serverVersion=G,this.cookie=X}msgType=3;messageSeq;static spec={serverVersion:WK,cookie:BG.types.buffer(BG.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){return new W(...Object.values(BG.decode(G,W.spec)))}serialize(){let G=BG.encode(this,W.spec).slice();return Buffer.from(G)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Qn=T1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),HF=class{constructor(W,G){this.options=W,this.sessionType=G}version={major:254,minor:253};lastFlight=[];lastMessage=[];recordSequenceNumber=0;sequenceNumber=0;epoch=0;flight=0;handshakeCache={};cookie;requestedCertificateTypes=[];requestedSignatureAlgorithms=[];remoteExtendedMasterSecret=!1;get sessionId(){return this.cookie?this.cookie.toString("hex").slice(0,10):""}get sortedHandshakeCache(){return Object.entries(this.handshakeCache).sort(([W],[G])=>Number(W)-Number(G)).flatMap(([,{data:W}])=>W.sort((G,X)=>G.message_seq-X.message_seq))}checkHandshakesExist=(W)=>!W.find((G)=>this.sortedHandshakeCache.find((X)=>X.msg_type===G)==null);bufferHandshakeCache(W,G,X){if(!this.handshakeCache[X])this.handshakeCache[X]={data:[],isLocal:G,flight:X};let Y=W.filter((Z)=>{let V=this.handshakeCache[X].data.find((Q)=>Q.msg_type===Z.msg_type);if(V)return Qn(this.sessionId,"exist",V.summary,G,X),!1;return!0});this.handshakeCache[X].data=[...this.handshakeCache[X].data,...Y]}},Jn=class{constructor(W){this.socket=W}send=(W)=>{return this.socket.send(W)}},SO=class W{static type=10;static spec={type:f7.types.uint16be,data:f7.types.array(f7.types.uint16be,f7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static fromData(G){return new W({type:W.type,data:f7.decode(G,W.spec.data)})}static deSerialize(G){return new W(f7.decode(G,W.spec))}serialize(){return Buffer.from(f7.encode(this,W.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},xO=class W{static type=13;static spec={type:b7.types.uint16be,data:b7.types.array({hash:b7.types.uint8,signature:b7.types.uint8},b7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(b7.decode(G,W.spec))}serialize(){let G=b7.encode(this,W.spec).slice();return Buffer.from(G)}static fromData(G){let X=Buffer.alloc(2);return X.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},AF=class W{constructor(G,X){this.level=G,this.description=X}static spec={level:EG.types.uint8,description:EG.types.uint8};static deSerialize(G){return new W(...Object.values(EG.decode(G,W.spec)))}serialize(){let G=EG.encode(this,W.spec).slice();return Buffer.from(G)}},zF=T1("werift-dtls : packages/dtls/record/receive.ts : log"),JO=T1("werift-dtls : packages/dtls/record/receive.ts : err"),Un=(W)=>{let G=0,X=[];while(W.length>G){let Y=W.readUInt16BE(G+11);if(W.length<G+(12+Y))break;let Z=b2.deSerialize(W.subarray(G));X.push(Z),G+=13+Y}return X},Nn=(W,G)=>(X)=>{switch(X.recordLayerHeader.contentType){case 20:return zF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let Z=X.fragment;try{if(X.recordLayerHeader.epoch>0)zF(W.sessionId,"decrypt handshake"),Z=G.decryptPacket(X)}catch(V){throw JO(W.sessionId,"decrypt failed",V),V}try{let V=0,Q=[];while(Z.length>V){let J=P5.deSerialize(Z.subarray(V));Q.push({type:22,data:J}),V+=J.fragment_length+12}return Q}catch(V){throw JO(W.sessionId,"decSerialize failed",V,Z),V}}case 23:return[{type:23,data:G.decryptPacket(X)}];case 21:{let Z=AF.deSerialize(X.fragment);if(EO[Z.description]==null){let V=G.decryptPacket(X);Z=AF.deSerialize(V)}if(JO(W.sessionId,"ContentType.alert",Z,EO[Z.description],"flight",W.flight,"lastFlight",W.lastFlight),Z.level>1)throw Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},IF=T1("werift-dtls : packages/dtls/src/socket.ts : log"),wF=T1("werift-dtls : packages/dtls/src/socket.ts : err"),qS=class{constructor(W,G){this.options=W,this.sessionType=G,this.dtls=new HF(this.options,this.sessionType),this.cipher=new aq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Jn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new f0;onData=new f0;onError=new f0;onClose=new f0;transport;cipher;dtls;srtp=new sq;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){IF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new aq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new HF(this.options,this.sessionType),this.srtp=new sq,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let G=Un(W);for(let X of G)try{let Y=Nn(this.dtls,this.cipher)(X);for(let Z of Y)switch(Z.type){case 22:{let V=Z.data,Q=this.handleFragmentHandshake([V]),J=Object.values(Q.reduce((U,N)=>{if(!U[N.msg_type])U[N.msg_type]=[];return U[N.msg_type].push(N),U},{})).map((U)=>P5.assemble(U)).sort((U,N)=>U.msg_type-N.msg_type);this.onHandleHandshakes(J).catch((U)=>{wF(this.dtls.sessionId,"onHandleHandshakes error",U),this.onError.execute(U)})}break;case 23:this.onData.execute(Z.data);break;case 21:this.onClose.execute();break}}catch(Y){wF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(IF(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let W=gY.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(W.extension)}{let W=SO.createEmpty();W.data=L2,this.extensions.push(W.extension)}{let W=xO.createEmpty();W.data=E2,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:HH.type,data:Buffer.alloc(0)});{let W=AH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(G,X)=>{for(let Y=0;Y<10;Y++)if(W()){G();break}else await Vn(100*Y);X("waitForReady timeout")});handleFragmentHandshake(W){let G=W.filter((X)=>{if(X.fragment_length!==X.length)return this.bufferFragmentedHandshakes.push(X),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[X]=this.bufferFragmentedHandshakes.slice(-1);if(X.fragment_offset+X.fragment_length===X.length)G=[...this.bufferFragmentedHandshakes,...G],this.bufferFragmentedHandshakes=[]}return G}send=async(W)=>{let G=GJ(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(G).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,G){let X=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+G*2),{clientKey:Y,serverKey:Z,clientSalt:V,serverSalt:Q}=CG.decode(X,{clientKey:CG.types.buffer(W),serverKey:CG.types.buffer(W),clientSalt:CG.types.buffer(G),serverSalt:CG.types.buffer(G)});if(this.sessionType===c4.CLIENT)return{localKey:Y,localSalt:V,remoteKey:Z,remoteSalt:Q};else return{localKey:Z,localSalt:Q,remoteKey:Y,remoteSalt:V}}exportKeyingMaterial(W,G){return fd(W,G,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===c4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},UO=T1("werift-dtls : packages/dtls/src/client.ts : log"),jF=class extends qS{constructor(W){super(W,c4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,UO(this.dtls.sessionId,"start client")}async connect(){await new Zo(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{UO(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 3:{let X=NS.deSerialize(G.fragment);await new Qo(this.transport,this.dtls).exec(X)}break;case 2:{if(this.connected)return;this.flight5=new Zn(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(G)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);let X=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),UO(this.dtls.sessionId,"dtls connected");break}}},h7=T1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),Hn=(W,G,X,Y)=>(Z)=>{h7("dtls version",Z.clientVersion),G.flight=2,G.recordSequenceNumber=0,G.sequenceNumber=0,Z.extensions.forEach((A)=>{switch(A.type){case SO.type:{let H=SO.fromData(A.data).data;h7(G.sessionId,"curves",H);let I=H.filter((w)=>L2.includes(w))[0];X.namedCurve=I,h7(G.sessionId,"curve selected",X.namedCurve)}break;case xO.type:{if(!X.signatureHashAlgorithm)throw Error("need to set certificate");let H=xO.fromData(A.data).data;h7(G.sessionId,"hash,signature",H);let I=H.find((C)=>C.signature===X.signatureHashAlgorithm?.signature)?.signature,w=H.find((C)=>C.hash===X.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case gY.type:{if(!G.options?.srtpProfiles)return;if(G.options.srtpProfiles.length===0)return;let H=gY.fromData(A.data);h7(G.sessionId,"srtp profiles",H.profiles);let I=sq.findMatchingSRTPProfile(H.profiles,G.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,h7(G.sessionId,"srtp profile selected",Y.srtpProfile)}break;case HH.type:G.remoteExtendedMasterSecret=!0;break;case AH.type:h7(G.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));h7("dtls supported version",I)}break}}),X.localRandom=new TG,X.remoteRandom=TG.from(Z.random);let V=Z.cipherSuites;h7(G.sessionId,"cipher suites",V);let Q=(()=>{switch(X.signatureHashAlgorithm?.signature){case p4.ecdsa_3:return RO.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case p4.rsa_1:return RO.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(Q===void 0||!V.includes(Q))throw Error("dtls cipher suite negotiation failed");X.cipherSuite=Q,h7(G.sessionId,"selected cipherSuite",X.cipherSuite),X.localKeyPair=p2(X.namedCurve),G.cookie||=qn(20);let J=new NS({major:254,minor:253},G.cookie),U=m2(G)([J]),q=GJ(G)(U.map((A)=>({type:22,fragment:A.serialize()})),++G.recordSequenceNumber).map((A)=>A.serialize());for(let A of q)W.send(A)},OF=T1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),An=class extends XJ{constructor(W,G,X,Y){super(W,G,4,6);this.cipher=X,this.srtp=Y}async exec(W,G=!1){if(this.dtls.flight===4){OF(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([W],!1,4);let X=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),G&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=X,await this.transmit(X)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(gY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:HH.type,data:Buffer.alloc(0)});let G=AH.createEmpty();W.push(G.extension);let X=new i2(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([X]);return Buffer.concat(Y.map((Z)=>Z.serialize()))}sendCertificate(){let W=new eq([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let G=new s2(B2.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,W.length,W),X=this.createPacket([G]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new n2(gd,E2,[]);OF(this.dtls.sessionId,"sendCertificateRequest",W);let G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerHelloDone(){let W=new r2,G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}},mY=T1("werift-dtls : packages/dtls/flight/server/flight6.ts"),zn=class extends XJ{constructor(W,G,X){super(W,G,6);this.cipher=X}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let G=(()=>{switch(W.msg_type){case 11:return eq.deSerialize(W.fragment);case 15:return d2.deSerialize(W.fragment);case 16:return o2.deSerialize(W.fragment);case 20:return $O.deSerialize(W.fragment)}})();if(G){let X=JJ[G.msgType];if(!X)return;X({dtls:this.dtls,cipher:this.cipher})(G)}}async exec(){if(this.dtls.flight===6){mY(this.dtls.sessionId,"flight6 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=6;let W=[this.sendChangeCipherSpec(),this.sendFinished()];this.dtls.lastMessage=W,await this.transmit(W)}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=GJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},JJ={};JJ[16]=({cipher:W,dtls:G})=>(X)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:X.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=S2(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);mY(G.sessionId,"extendedMasterSecret",G.options.extendedMasterSecret,G.remoteExtendedMasterSecret);let Z=Buffer.concat(G.sortedHandshakeCache.map((V)=>V.serialize()));W.masterSecret=G.options.extendedMasterSecret&&G.remoteExtendedMasterSecret?k2(Y,Z):x2(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=f2(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),mY(G.sessionId,"setup cipher",W.cipher.summary)};JJ[11]=({cipher:W,dtls:G})=>(X)=>{mY(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};JJ[15]=({cipher:W,dtls:G})=>(X)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");mY(G.sessionId,"certificate_verify",X.algorithm)};JJ[20]=({dtls:W})=>(G)=>{mY(W.sessionId,"finished",G)};var $Y=T1("werift-dtls : packages/dtls/src/server.ts : log"),In=class extends qS{constructor(W){super(W,c4.SERVER);this.onHandleHandshakes=this.handleHandshakes,$Y(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{$Y(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 1:{if(this.connected)this.renegotiation();let X=h2.deSerialize(G.fragment);if(X.cookie.length===0)$Y(this.dtls.sessionId,"send flight2"),Hn(this.transport,this.dtls,this.cipher,this.srtp)(X);else if(this.dtls.cookie&&X.cookie.equals(this.dtls.cookie))$Y(this.dtls.sessionId,"send flight4"),await new An(this.transport,this.dtls,this.cipher,this.srtp).exec(G,this.options.certificateRequest);else $Y("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:X.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new zn(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(G)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(G);let X=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),$Y(this.dtls.sessionId,"dtls connected")}break}}},YK=554869826,wn=8,jn=1398035790,n6=20,HS=24,AS=1,zS=2,On=6,Kn=50;var IS=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(IS||{}),wS=((W)=>{return W[W.BINDING=1]="BINDING",W[W.SHARED_SECRET=2]="SHARED_SECRET",W[W.ALLOCATE=3]="ALLOCATE",W[W.REFRESH=4]="REFRESH",W[W.SEND=6]="SEND",W[W.DATA=7]="DATA",W[W.CREATE_PERMISSION=8]="CREATE_PERMISSION",W[W.CHANNEL_BIND=9]="CHANNEL_BIND",W})(wS||{});function vQ(W){return OS(W).toString("hex").substring(0,W)}function KS(){return OS(12)}var KF=class{queue=[];wait=new f0;put(W){if(this.queue.push(W),this.queue.length===1)this.wait.execute(W)}get(){let W=this.queue.shift();if(!W)return new Promise((G)=>{this.wait.subscribe((X)=>{this.queue.shift(),G(X)})});return W}},kO=(W)=>{let G,X,Y=new Promise((V,Q)=>{G=V,X=Q});Y.then(()=>{Z.execute(void 0),Z.complete()}).catch((V)=>{Z.execute(V??Error()),Z.complete()});let Z=new f0;return W(G,X,Z).catch(()=>{}),{awaitable:Y,resolve:G,reject:X}};function xY(W){let[G]=W,X=sQ.default.isV4Format(G)?AS:zS,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(X,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,sQ.default.toBuffer(G)])}function Cn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let G=W.readUInt8(2),X=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[G*100+X,Y]}function kY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let G=W.readUInt8(1),X=W.readUInt16BE(2),Y=W.slice(4);switch(G){case AS:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[sQ.default.toString(Y),X];case zS:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[sQ.default.toString(Y),X];default:throw Error("STUN address has unknown protocol")}}var ZK=Buffer.alloc(6);ZK.writeUInt16BE(YK>>16,0);ZK.writeUInt32BE(YK,2);function CS(W,G){let X=[...ZK,...G],Y=W.slice(0,2);for(let Z=2;Z<W.length;Z++){let V=W[Z]^X[Z-2],Q=Buffer.alloc(1);Q.writeUIntBE(V,0,1),Y=Buffer.concat([Y,Q])}return Y}function gq(W,G){return kY(CS(W,G))}function Dn(W){let G=Buffer.alloc(4);G.writeUInt16BE(0,0),G.writeUInt8(Math.floor(W[0]/100),2),G.writeUInt8(W[0]%100,3);let X=Buffer.from(W[1],"utf8");return Buffer.concat([G,X])}function uq(W,G){return CS(xY(W),G)}var gQ=(W)=>{let G=Buffer.alloc(4);return G.writeUInt32BE(W,0),G},uQ=(W)=>W.readUInt32BE(0),Mn=(W)=>{let G=Buffer.alloc(4);return G.writeUInt16BE(W,0),G},Tn=(W)=>W.readUInt16BE(0),CF=(W)=>{return new nj(W.toString()).toBuffer()},DF=(W)=>{let G=new nj(W);return BigInt(G.toString())},NO=(W)=>Buffer.from(W,"utf8"),qO=(W)=>W.toString("utf8"),HO=(W)=>W,AO=(W)=>W,Pn=(W)=>Buffer.from([]),Rn=(W)=>null,DS=[[1,"MAPPED-ADDRESS",xY,kY],[3,"CHANGE-REQUEST",gQ,uQ],[4,"SOURCE-ADDRESS",xY,kY],[5,"CHANGED-ADDRESS",xY,kY],[6,"USERNAME",NO,qO],[8,"MESSAGE-INTEGRITY",HO,AO],[9,"ERROR-CODE",Dn,Cn],[12,"CHANNEL-NUMBER",Mn,Tn],[13,"LIFETIME",gQ,uQ],[18,"XOR-PEER-ADDRESS",uq,gq],[19,"DATA",HO,AO],[20,"REALM",NO,qO],[21,"NONCE",HO,AO],[22,"XOR-RELAYED-ADDRESS",uq,gq],[25,"REQUESTED-TRANSPORT",gQ,uQ],[32,"XOR-MAPPED-ADDRESS",uq,gq],[36,"PRIORITY",gQ,uQ],[37,"USE-CANDIDATE",Pn,Rn],[32802,"SOFTWARE",NO,qO],[32808,"FINGERPRINT",gQ,uQ],[32809,"ICE-CONTROLLED",CF,DF],[32810,"ICE-CONTROLLING",CF,DF],[32811,"RESPONSE-ORIGIN",xY,kY],[32812,"OTHER-ADDRESS",xY,kY]],MS=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,G){let X=this.attributes.find((Y)=>Y[0]===W);if(X)X[1]=G;else this.attributes.push([W,G]);return this}getAttributeValue(W){let G=this.attributes.find((X)=>X[0]===W);if(!G)return;return G[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},MF=DS.reduce((W,G)=>{return W[G[0]]=G,W},{}),Ln=DS.reduce((W,G)=>{return W[G[1]]=G,W},{});function VK(W,G){if(W.length<n6)return;let X=W.readUint16BE(2);if(W.length!==n6+X)return;let Y=W.readUint16BE(0),Z=Buffer.from(W.slice(n6-12,n6)),V=new MS;for(let J=n6;J<=W.length-4;){let U=W.readUInt16BE(J),N=W.readUInt16BE(J+2),q=W.slice(J+4,J+4+N),A=4*Math.floor((N+3)/4)-N;if(Object.keys(MF).includes(U.toString())){let[,I,,w]=MF[U];if(w.name===gq.name)V.setAttribute(I,w(q,Z));else V.setAttribute(I,w(q));if(I==="FINGERPRINT"){let C=TS(W.slice(0,J));if(V.getAttributeValue("FINGERPRINT")!==C)return}else if(I==="MESSAGE-INTEGRITY"){if(G){let C=Bn(W.slice(0,J),G),D=V.getAttributeValue("MESSAGE-INTEGRITY");if(!C.equals(D))return}}}J+=4+N+A}let Q=V.getAttributes();return V.clear(),new m7(Y&16111,Y&272,Z,Q)}var m7=class extends MS{constructor(W,G,X=KS(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=G,this.transactionId=X}toJSON(){return this.json}get json(){return{messageMethod:wS[this.messageMethod],messageClass:IS[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let X of this.attributesKeys){let Y=this.getAttributeValue(X),[Z,,V]=Ln[X],Q=V.name===uq.name?V(Y,this.transactionId):V(Y),J=Q.length,U=4*Math.floor((J+3)/4)-J,N=Buffer.alloc(4);N.writeUInt16BE(Z,0),N.writeUInt16BE(J,2),W=Buffer.concat([W,N,Q,Buffer.alloc(U,0)])}let G=Buffer.alloc(8);return G.writeUInt16BE(this.messageMethod|this.messageClass,0),G.writeUInt16BE(W.length,2),G.writeUInt32BE(YK,4),Buffer.concat([G,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let G=QK(this.bytes,this.bytes.length-n6+HS);return Buffer.from(jS("sha1",W).update(G).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",TS(this.bytes))}},QK=(W,G)=>{let X=Buffer.alloc(W.length);return W.copy(X,0,0,2),X.writeUInt16BE(G,2),W.copy(X,4,4),X};function TS(W){let G=QK(W,W.length-n6+wn);return(Pd(G)^jn)>>>0}function Bn(W,G){let X=QK(W,W.length-n6+HS);return Buffer.from(jS("sha1",G).update(X).digest("hex"),"hex")}function TF(W){let G=W%4;if(G===0)return 0;else return 4-G}var PS=class extends Error{response;addr},RS=class extends PS{constructor(W,G){super();this.response=W,this.addr=G}get str(){let W="STUN transaction failed",G=this.response.getAttributeValue("ERROR-CODE");if(G){let[X,Y]=G;W+=` (${X} - ${Y})`}return W}},En=class extends PS{get str(){return"STUN transaction timed out"}},zO=T1("werift-ice:packages/ice/src/stun/transaction.ts"),JK=class{constructor(W,G,X,Y){this.request=W,this.addr=G,this.protocol=X,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:On)}timeoutDelay=Kn;ended=!1;tries=0;triesMax;onResponse=new f0;responseReceived=(W,G)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,G),this.onResponse.complete();else this.onResponse.error(new RS(W,G))};run=async()=>{try{return this.retry().catch((G)=>{zO("retry failed",G)}),await this.onResponse.asPromise()}catch(W){throw W}finally{this.cancel()}};retry=async()=>{while(this.tries<this.triesMax&&!this.ended){if(this.protocol.sendStun(this.request,this.addr).catch((W)=>{zO("send stun failed",W)}),await new Promise((W)=>setTimeout(W,this.timeoutDelay)),this.ended)break;this.timeoutDelay*=2,this.tries++}if(this.tries>=this.triesMax)zO(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new En)};cancel(){this.ended=!0}},PF=T1("werift-ice : packages/ice/src/stun/protocol.ts"),RF=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new f0;onDataReceived=new f0;constructor(){}connectionMade=async(G,X,Y)=>{if(G)this.transport=await PO.init("udp4",{portRange:X,interfaceAddresses:Y});else this.transport=await PO.init("udp6",{portRange:X,interfaceAddresses:Y});this.transport.onData=(Z,V)=>{this.datagramReceived(Z,V)}};datagramReceived(G,X){try{let Y=VK(G);if(!Y){if(this.localCandidate)this.onDataReceived.execute(G);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,X);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){PF("datagramReceived error",Y)}}getExtraInfo(){let{address:G,port:X}=this.transport.address;return[G,X]}async sendStun(G,X){if(this.transport.closed)return;let Y=G.bytes;await this.transport.send(Y,X).catch(()=>{PF("sendStun failed",X,G)})}async sendData(G,X){if(this.transport.closed)return;await this.transport.send(G,X)}async request(G,X,Y,Z){if(this.transactionsKeys.includes(G.transactionIdHex))throw Error("already request ed");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let V=new JK(G,X,this,Z);this.transactions[G.transactionIdHex]=V;try{return await V.run()}catch(Q){throw Q}finally{delete this.transactions[G.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((G)=>{G.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},i9=T1("werift-ice:packages/ice/src/turn/protocol.ts"),Sn=500,xn=600,kn=285212672,_n=class W{constructor(G){this.turn=G,G.onData.subscribe((X,Y)=>{this.handleStunMessage(X,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new $d;onRequestReceived=new f0;onDataReceived=new f0;handleStunMessage=(G,X)=>{try{let Y=VK(G);if(!Y){this.onDataReceived.execute(G);return}if(Y.messageClass===256||Y.messageClass===272){let Z=this.turn.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){i9("datagramReceived error",Y)}};async request(G,X,Y){if(this.turn.transactions[G.transactionIdHex])throw Error("exist");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let Z=new JK(G,X,this);this.turn.transactions[G.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.turn.transactions[G.transactionIdHex]}}async connectionMade(){}async sendData(G,X){await this.turn.sendData(G,X)}async sendStun(G,X){await this.turn.sendData(G.bytes,X)}async close(){return this.disposer.dispose(),this.turn.close()}},yn=class W{constructor(G,X,Y,Z,V,Q={}){this.server=G,this.username=X,this.password=Y,this.lifetime=Z,this.transport=V,this.options=Q,this.channelRefreshTime=this.options.channelRefreshTime??Sn}static type="turn";type=W.type;onData=new f0;onRequestReceived=new f0;onDataReceived=new f0;integrityKey;nonce;realm;relayedAddress;mappedAddress;localCandidate;transactions={};refreshHandle;channelNumber=16384;channelByAddr={};addrByChannel={};channelRefreshTime;channelBinding;channelRefreshAt=0;tcpBuffer=Buffer.alloc(0);permissionByAddr={};creatingPermission=Promise.resolve();async connectionMade(){this.transport.onData=(Z,V)=>{this.dataReceived(Z,V)};let G=new m7(3,0);G.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",kn);let[X]=await this.requestWithRetry(G,this.server).catch((Z)=>{throw i9("connect error",Z),Z});this.relayedAddress=X.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=X.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=X.getAttributeValue("LIFETIME");i9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(G){let[X,Y]=a1.Unpack("!HH",G.slice(0,4)),Z=this.addrByChannel[X];if(Z){let V=G.subarray(4,4+Y);this.onData.execute(V,Z)}}handleSTUNMessage(G,X){try{let Y=VK(G);if(!Y)throw Error("not stun message");if(Y.messageClass===256||Y.messageClass===272){let Z=this.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onData.execute(G,X);if(Y.getAttributeValue("DATA")){let Z=Y.getAttributeValue("DATA");this.onData.execute(Z,X)}}catch(Y){i9("parse error",G.toString())}}dataReceived(G,X){let Y=(Z,V)=>{if(Z.length>=4&&BF(Z))this.handleChannelData(Z);else this.handleSTUNMessage(Z,V)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,G]);while(this.tcpBuffer.length>=4){let[,Z]=r9(this.tcpBuffer.subarray(0,4),[2,2]);Z+=TF(Z);let V=BF(this.tcpBuffer)?4+Z:20+Z;if(this.tcpBuffer.length<V)break;Y(this.tcpBuffer.subarray(0,V),X),this.tcpBuffer=this.tcpBuffer.subarray(V)}}else Y(G,X)}async send(G,X){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=TF(G.length);await this.transport.send(Y>0?Buffer.concat([G,Buffer.alloc(Y)]):G,X)}else await this.transport.send(G,X)}async createPermission(G){let X=new m7(8,0);X.setAttribute("XOR-PEER-ADDRESS",G).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(X,this.server).catch((Y)=>{throw Y})}refresh=(G)=>{this.refreshHandle=kO(async(X,Y,Z)=>{let V=!0;Z.once(()=>{V=!1});while(V){let Q=0.8333333333333334*G*1000;i9("refresh delay",Q,{exp:G}),await Fn(Q);let J=new m7(4,0);J.setAttribute("LIFETIME",G);try{let[U]=await this.requestWithRetry(J,this.server);G=U.getAttributeValue("LIFETIME"),i9("refresh",{exp:G})}catch(U){i9("refresh error",U)}}})};async request(G,X){if(this.transactions[G.transactionIdHex])throw Error("exist");if(this.integrityKey)G.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new JK(G,X,this);this.transactions[G.transactionIdHex]=Y;try{return await Y.run()}catch(Z){throw Z}finally{delete this.transactions[G.transactionIdHex]}}async requestWithRetry(G,X){let Y,Z;try{[Y,Z]=await this.request(G,X)}catch(V){if(V instanceof RS==!1)throw i9("requestWithRetry error",V),V;this.server=V.addr;let[Q]=V.response.getAttributeValue("ERROR-CODE"),J=V.response.getAttributeValue("NONCE"),U=V.response.getAttributeValue("REALM");if((Q===401&&U||Q===438&&this.realm)&&J){if(i9("retry with nonce",Q),this.nonce=J,Q===401)this.realm=U;this.integrityKey=gn(this.username,this.realm,this.password),G.transactionId=KS(),[Y,Z]=await this.request(G,this.server)}else throw V}return[Y,Z]}async sendData(G,X){let Y=await this.getChannel(X).catch((V)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(X);let V=new m7(6,16).setAttribute("DATA",G).setAttribute("XOR-PEER-ADDRESS",X);await this.sendStun(V,this.server);return}let Z=a1.Pack("!HH",[Y.number,G.length]);await this.send(Buffer.concat([Buffer.from(Z),G]),this.server)}async getPermission(G){if(await this.creatingPermission,!this.permissionByAddr[G.join(":")])this.creatingPermission=this.createPermission(G),this.permissionByAddr[G.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw i9("createPermission error",Y),Y})}async getChannel(G){if(this.channelBinding)await this.channelBinding;let X=this.channelByAddr[G.join(":")];if(!X)this.channelByAddr[G.join(":")]={number:this.channelNumber++,address:G},X=this.channelByAddr[G.join(":")],this.addrByChannel[X.number]=G,this.channelBinding=this.channelBind(X.number,G),await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelRefreshAt=lQ(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,i9("channelBind",X);else if(this.channelRefreshAt<lQ(Date.now()/1000))this.channelBinding=this.channelBind(X.number,G),this.channelRefreshAt=lQ(Date.now()/1000)+this.channelRefreshTime,await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelBinding=void 0,i9("channelBind refresh",X);return X}async channelBind(G,X){let Y=new m7(9,0);Y.setAttribute("CHANNEL-NUMBER",G).setAttribute("XOR-PEER-ADDRESS",X);let[Z]=await this.requestWithRetry(Y,this.server);if(Z.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(G,X){await this.send(G.bytes,X)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function vn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){Y??=xn,Q??="udp";let J=Q==="udp"?await PO.init("udp4",{portRange:Z,interfaceAddresses:V}):await xd.init(W),U=new yn(W,G,X,Y,J);return await U.connectionMade(),U}async function LF({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){let J=await vn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q});return new _n(J)}function gn(W,G,X){return $n("md5").update(Buffer.from([W,G,X].join(":"))).digest()}function BF(W){return(W[0]&192)==64}var DG=class W{constructor(G,X,Y,Z,V,Q,J,U,N,q,A,H){this.foundation=G,this.component=X,this.transport=Y,this.priority=Z,this.host=V,this.port=Q,this.type=J,this.relatedAddress=U,this.relatedPort=N,this.tcptype=q,this.generation=A,this.ufrag=H}static fromSdp(G){let X=G.split(" ");if(X.length<8)throw Error("SDP does not have enough properties");let Y={foundation:X[0],component:Number(X[1]),transport:X[2],priority:Number(X[3]),host:X[4],port:Number(X[5]),type:X[7]};for(let A=8,H=X.length-1;A<H;A+=2)if(X[A]==="raddr")Y.related_address=X[A+1];else if(X[A]==="rport")Y.related_port=Number(X[A+1]);else if(X[A]==="tcptype")Y.tcptype=X[A+1];else if(X[A]==="generation")Y.generation=Number(X[A+1]);else if(X[A]==="ufrag")Y.ufrag=X[A+1];let{foundation:Z,component:V,transport:Q,priority:J,host:U,port:N,type:q}=Y;return new W(Z,V,Q,J,U,N,q,Y.related_address,Y.related_port,Y.tcptype,Y.generation,Y.ufrag)}canPairWith(G){let X=EF(this.host),Y=EF(G.host);return this.component===G.component&&this.transport.toLowerCase()===G.transport.toLowerCase()&&X===Y}toSdp(){let G=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)G+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)G+=` rport ${this.relatedPort}`;if(this.tcptype)G+=` tcptype ${this.tcptype}`;if(this.generation!=null)G+=` generation ${this.generation}`;if(this.ufrag!=null)G+=` ufrag ${this.ufrag}`;return G}};function _O(W,G,X){let Y=`${W}|${G}|${X}`;return un("md5").update(Y,"ascii").digest("hex").slice(7)}function hq(W,G=65535){let Y=0;if(W==="host")Y=126;else if(W==="prflx")Y=110;else if(W==="srflx")Y=100;else Y=0;return 16777216*Y+256*G+255}var bn=class{cache=new Map;mdnsInstance=LS.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((G,X)=>{let Y=()=>{this.mdnsInstance.removeListener("response",V),clearTimeout(Z)},Z=setTimeout(()=>{Y(),X(Error("No mDNS response"))},1e4),V=(Q)=>{let J=Q.answers?.[0];if(J?.type!=="A")return;if(J.name!==W)return;Y(),G(J.data)};this.mdnsInstance.on("response",V),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},fn=T1("werift-ice : packages/ice/src/ice.ts : log"),FF=class{constructor(W,G,X){this.protocol=W,this.remoteCandidate=G,this.iceControlling=X}id=mn().toString();handle;nominated=!1;remoteNominated=!1;_state=0;get state(){return this._state}packetsSent=0;packetsReceived=0;bytesSent=0;bytesReceived=0;rtt;totalRoundTripTime=0;roundTripTimeMeasurements=0;toJSON(){return this.json}get json(){return{protocol:this.protocol.type,localCandidate:this.localCandidate.toSdp(),remoteCandidate:this.remoteCandidate.toSdp()}}updateState(W){this._state=W}get localCandidate(){if(!this.protocol.localCandidate)throw Error("localCandidate not exist");return this.protocol.localCandidate}get remoteAddr(){return[this.remoteCandidate.host,this.remoteCandidate.port]}get component(){return this.localCandidate.component}get priority(){return vO(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},SF=1,$q=2,cn=5,xF=6;var pn={useIpv4:!0,useIpv6:!0};function kF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function ln(W,G){return W.sort((X,Y)=>vO(X.localCandidate,X.remoteCandidate,G)-vO(Y.localCandidate,Y.remoteCandidate,G)).reverse()}function vO(W,G,X){let Y=X&&W.priority||G.priority,Z=X&&G.priority||W.priority;return 1*Math.min(Y,Z)+2*Math.max(Y,Z)+(Y>Z?1:0)}async function dn(W,G){let X=new m7(1,0);try{let[Y]=await W.request(X,G),Z=W.localCandidate;if(!Z)throw Error("not exist");return new DG(_O("srflx","udp",Z.host),Z.component,Z.transport,hq("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",Z.host,Z.port)}catch(Y){fn("error serverReflexiveCandidate",Y)}}function _F(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var on=T1("werift-ice : packages/ice/src/utils.ts");function nn(W){return iq(W.family)===4&&W.address?.startsWith("169.254.")||iq(W.family)===6&&W.address?.startsWith("fe80::")}function yF(W,{useLinkLocalAddress:G}={}){let X=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],Z=BS.networkInterfaces();on(Z);let V=Object.keys(Z).map((Q)=>{for(let U of[...X,...Y])if(Q.startsWith(U))return{nic:Q,addresses:[]};let J=Z[Q].filter((U)=>iq(U.family)===W&&!ES.default.isLoopback(U.address)&&(G?!0:!nn(U)));return{nic:Q,addresses:J.map((U)=>U.address)}}).filter((Q)=>!!Q);return V.sort((Q,J)=>Q.nic.localeCompare(J.nic)),Object.values(V).flatMap((Q)=>Q.addresses)}function rn(W,G,X={}){let Y=[];if(W)Y.push(...yF(4,X));if(G)Y.push(...yF(6,X));return Y}var e1=T1("werift-ice : packages/ice/src/ice.ts : log"),an=class{constructor(W,G){this._iceControlling=W,this.options={...pn,...G};let{stunServer:X,turnServer:Y}=this.options;this.stunServer=_F(X)??["stun.l.google.com",19302],this.turnServer=_F(Y),this.restart(),e1("new Connection",this.options)}localUsername=vQ(4);localPassword=vQ(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new Rq(hn(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new KF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new f0;stateChanged=new f0;onIceCandidate=new f0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let G of this.checkList)G.iceControlling=W}async restart(){if(this.generation++,this.localUsername=vQ(4),this.localPassword=vQ(22),this.options.localPasswordPrefix)this.localPassword=this.options.localPasswordPrefix+this.localPassword.slice(this.options.localPasswordPrefix.length);this.userHistory[this.localUsername]=this.localPassword,this.remoteUsername="",this.remotePassword="",this.localCandidates=[],this._remoteCandidates=[],this.remoteCandidatesEnd=!1,this.localCandidatesEnd=!1,this.state="new",this.lookup?.close?.(),this.lookup=void 0,this.nominated=void 0,this.nominating=!1,this.checkList=[],this.checkListDone=!1,this.checkListState=new KF,this.earlyChecks=[],this.earlyChecksDone=!1,this.localCandidatesStart=!1;for(let W of this.protocols)if(W.localCandidate)W.localCandidate.generation=this.generation,W.localCandidate.ufrag=this.localUsername;this.queryConsentHandle?.resolve?.(),this.queryConsentHandle=void 0}resetNominatedPair(){e1("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:G,password:X}){e1("setRemoteParams",{iceLite:W,usernameFragment:G,password:X}),this.remoteIsLite=W,this.remoteUsername=G,this.remotePassword=X}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=rn(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:G}=this.options;if(G){let Y=W.filter((Z)=>Object.values(G).includes(Z));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let X=this.getCandidatePromises(W,5);await Promise.allSettled(X),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((G,X,Y)=>{if(G.messageMethod!==1){this.respondError(G,X,W,[400,"Bad Request"]);return}let Z=G.getAttributeValue("USERNAME"),{remoteUsername:V}=vF(Z),Q=this.userHistory[V]??this.localPassword,{iceControlling:J}=this;if(J&&G.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=G.getAttributeValue("ICE-CONTROLLING")){this.respondError(G,X,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!J&&G.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<G.getAttributeValue("ICE-CONTROLLED"))this.respondError(G,X,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(G,X,W))return;let U=new m7(1,256,G.transactionId);if(U.setAttribute("XOR-MAPPED-ADDRESS",X).addMessageIntegrity(Buffer.from(Q,"utf8")).addFingerprint(),W.sendStun(U,X).catch((N)=>{e1("sendStun error",N)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([G,X,W]);else this.checkIncoming(G,X,W)}),W.onDataReceived.subscribe((G)=>{try{let X=this.nominated;if(X&&X.protocol===W)X.packetsReceived++,X.bytesReceived+=G.length;this.onData.execute(G)}catch(X){e1("dataReceived",X)}})}getCandidatePromises(W,G=5){let X=[];W=W.filter((U)=>{if(this.protocols.find((N)=>N.localIp===U))return!1;return!0});let Y=W.map(async(U)=>{let N=new RF;this.ensureProtocol(N);try{await N.connectionMade($F(U),this.options.portRange,this.options.interfaceAddresses),N.localIp=U,this.protocols.push(N),e1("protocol",N.localIp);let q=[U,N.getExtraInfo()[1]];return N.localCandidate=new DG(_O("host","udp",q[0]),1,"udp",hq("host"),q[0],q[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(N),this.appendLocalCandidate(N.localCandidate),N}catch(q){e1("error protocol STUN",q)}});X.push(...Y.map((U)=>U.then((N)=>N?.localCandidate)));let{stunServer:Z,turnServer:V}=this;if(Z){let U=Y.map(async(N)=>{let q=await N;if(!q)return;return new Promise(async(H,I)=>{let w=setTimeout(I,G*1000);if(q.localCandidate?.host&&$F(q.localCandidate?.host)){let C=await dn(q,Z).catch((D)=>{e1("error",D)});if(C)this.appendLocalCandidate(C);clearTimeout(w),H(C)}else clearTimeout(w),H()}).catch((H)=>{e1("query STUN server",H)})});X.push(...U)}let{turnUsername:Q,turnPassword:J}=this.options;if(V&&Q&&J){let U=(async()=>{let N=await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:this.options.turnTransport==="tcp"?"tcp":"udp"}).catch(async(H)=>{if(this.options.turnTransport!=="tcp")return await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});else throw H});this.ensureProtocol(N),this.protocols.push(N);let q=N.turn.relayedAddress,A=N.turn.mappedAddress;return e1("turn candidateAddress",q),N.localCandidate=new DG(_O("relay","udp",q[0]),1,"udp",hq("relay"),q[0],q[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(N.localCandidate),N.localCandidate})().catch((N)=>{e1("query TURN server",N)});if(this.options.forceTurn)X=[];X.push(U)}return X}async connect(){if(e1("start connect ice"),!this.localCandidatesEnd){if(!this.localCandidatesStart)throw Error("Local candidates gathering was not performed")}if(!this.remoteUsername||!this.remotePassword)throw Error("Remote username or password is missing");for(let G of this.remoteCandidates)this.pairRemoteCandidate(G);this.sortCheckList(),this.unfreezeInitial(),e1("earlyChecks",this.localPassword,this.earlyChecks.length);for(let G of this.earlyChecks)this.checkIncoming(...G);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await yO.setTimeout(20)}let W=$q;while(this.checkList.length>0&&W===$q)W=await this.checkListState.get(),e1("checkListState",W);for(let G of this.checkList)G.handle?.resolve?.();if(W!==SF)throw Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[W]=this.checkList;if(!W)return;if(W.state===0)W.updateState(1);let G=new Set(W.localCandidate.foundation);for(let X of this.checkList)if(X.component===W.component&&!G.has(X.localCandidate.foundation)&&X.state===0)X.updateState(1),G.add(X.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((G)=>{if(this.options.forceTurn&&G.protocol.type===RF.type)return!1;return!0}).find((G)=>G.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((G)=>G.state===0);if(W)return W.handle=this.checkStart(W),!0}if(!this.remoteCandidatesEnd)return!this.checkListDone;return!1}queryConsent=()=>{if(this.queryConsentHandle)this.queryConsentHandle.resolve();this.queryConsentHandle=kO(async(W,G,X)=>{let Y=0,Z=!1,V=new AbortController;X.once(()=>{Z=!0,Y+=xF,V.abort(),this.queryConsentHandle=void 0});let{localUsername:Q,remoteUsername:J,iceControlling:U}=this;try{while(this.state!=="closed"&&!Z){await yO.setTimeout(cn*(0.8+0.4*Math.random())*1000,void 0,{signal:V.signal});let N=this.nominated;if(!N||Z)break;let q=this.buildRequest({nominate:!1,localUsername:Q,remoteUsername:J,iceControlling:U});try{if(await N.protocol.request(q,N.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),Y=0,this.state==="disconnected")this.setState("connected")}catch(A){if(N.id===this.nominated?.id){e1("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=xF){e1("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch(N){}})};async close(){if(this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone)this.checkListState.put(new Promise((W)=>{W($q)}));this.nominated=void 0;for(let W of this.protocols)if(W.close)await W.close();this.protocols=[],this.localCandidates=[],this.lookup?.close?.(),this.lookup=void 0}setState(W){this.state=W,this.stateChanged.execute(W)}async addRemoteCandidate(W){if(!W){this.remoteCandidatesEnd=!0;return}if(W.host.includes(".local"))try{if(!this.lookup)this.lookup=new bn;let G=await this.lookup.lookup(W.host);W.host=G}catch(G){return}try{kF(W)}catch(G){return}e1("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let G=this.nominated;if(G)await G.protocol.sendData(W,G.remoteAddr),G.packetsSent++,G.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((X,Y)=>X.priority-Y.priority),[G]=W;return G}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let G of W){try{kF(G)}catch(X){continue}this._remoteCandidates.push(G)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){ln(this.checkList,this.iceControlling)}findPair(W,G){return this.checkList.find((Y)=>bq.default(Y.protocol,W)&&bq.default(Y.remoteCandidate,G))}switchRole(W){e1("switch role",W),this.iceControlling=W,this.sortCheckList()}checkComplete(W){if(W.handle=void 0,W.state===3){if(W.nominated&&(W.remoteCandidate.generation!=null?W.remoteCandidate.generation===this.generation:!0)&&this.nominated==null){e1("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let G of this.checkList)if(G.component===W.component&&[1,0].includes(G.state))G.updateState(4)}if(this.nominated){if(!this.checkListDone)e1("ICE completed"),this.checkListState.put(new Promise((G)=>G(SF))),this.checkListDone=!0;return}e1("not completed",W.toJSON());for(let G of this.checkList)if(G.localCandidate.foundation===W.localCandidate.foundation&&G.state===0)G.updateState(1)}{let G=[3,4];if(this.checkList.find(({state:X})=>!G.includes(X)))return}if(!this.iceControlling){if(this.checkList.find(({state:X})=>X===3))return}if(!this.checkListDone)e1("ICE failed"),this.checkListState.put(new Promise((G)=>{G($q)}))}checkStart=(W)=>kO(async(G)=>{e1("check start",W.toJSON()),W.updateState(2);let X={},{remotePassword:Y,remoteUsername:Z,generation:V}=this,Q=W.localCandidate.ufrag??this.localUsername,J=this.iceControlling&&!this.remoteIsLite,U=this.buildRequest({nominate:J,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling}),N=performance.now();try{let[q,A]=await W.protocol.request(U,W.remoteAddr,Buffer.from(Y,"utf8"),4),I=(performance.now()-N)/1000;W.rtt=I,W.totalRoundTripTime+=I,W.roundTripTimeMeasurements++,e1("response received",U.toJSON(),q.toJSON(),A,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V,rtt:I}),X.response=q,X.addr=A}catch(q){let A=q;if(e1("failure case",U.toJSON(),A.response?JSON.stringify(A.response.toJSON(),null,2):q,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V},W.remoteAddr),A.response?.getAttributeValue("ERROR-CODE")[0]===487){if(U.attributesKeys.includes("ICE-CONTROLLED"))this.switchRole(!0);else if(U.attributesKeys.includes("ICE-CONTROLLING"))this.switchRole(!1);await this.checkStart(W).awaitable,G();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){e1("retry 401",W.toJSON()),await this.checkStart(W).awaitable,G();return}else{e1("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),G();return}}if(!bq.default(X.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),G();return}if(J||W.remoteNominated)W.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let q=this.buildRequest({nominate:!0,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling});try{await W.protocol.request(q,W.remoteAddr,Buffer.from(this.remotePassword,"utf8"))}catch(A){W.updateState(4),this.checkComplete(W);return}W.nominated=!0}W.updateState(3),this.checkComplete(W),G()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,G,X){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:Z}=vF(Y),V,[Q,J]=G;for(let N of this.remoteCandidates)if(N.host===Q&&N.port===J){V=N;break}if(!V)V=new DG(vQ(10),1,"udp",W.getAttributeValue("PRIORITY"),Q,J,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(V);let U=this.findPair(X,V);if(!U)U=new FF(X,V,this.iceControlling),U.updateState(1),this.addPair(U);if(U.localCandidate.ufrag=Z,e1("Triggered Checks",W.toJSON(),U.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(U.state))U.handle=this.checkStart(U);if(W.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling){if(U.remoteNominated=!0,U.state===3)U.nominated=!0,this.checkComplete(U)}}tryPair(W,G){if(W.localCandidate?.canPairWith(G)&&!this.findPair(W,G)){let X=new FF(W,G,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(X))return;X.updateState(1),this.addPair(X)}}pairLocalProtocol(W){for(let G of this.remoteCandidates)this.tryPair(W,G)}pairRemoteCandidate=(W)=>{for(let G of this.protocols)this.tryPair(G,W)};buildRequest({nominate:W,remoteUsername:G,localUsername:X,iceControlling:Y}){let Z=sn({remoteUsername:G,localUsername:X}),V=new m7(1,0);if(V.setAttribute("USERNAME",Z).setAttribute("PRIORITY",hq("prflx")),Y){if(V.setAttribute("ICE-CONTROLLING",this.tieBreaker),W)V.setAttribute("USE-CANDIDATE",null)}else V.setAttribute("ICE-CONTROLLED",this.tieBreaker);return V}respondError(W,G,X,Y){let Z=new m7(W.messageMethod,272,W.transactionId);Z.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),X.sendStun(Z,G).catch((V)=>{e1("sendStun error",V)})}},sn=({remoteUsername:W,localUsername:G})=>{return`${W}:${G}`},vF=(W)=>{let[G,X]=W.split(":");return{remoteUsername:G,localUsername:X}};function gF(W){return W.map((G,X)=>[X,G])}function b4(W,G){let X=W.split(G);return[X[0],X.slice(1).join(G)]}var UK=class extends tn{addEventListener=(W,G)=>{this.addListener(W,G)};removeEventListener=(W,G)=>{this.removeListener(W,G)}},en=T1("werift:packages/webrtc/src/dataChannel.ts");function Wi(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var $S=class extends UK{constructor(W,G,X=!0){super();if(this.sctp=W,this.parameters=G,this.sendOpen=X,this.id=this.parameters.id,G.negotiated){if(this.id==null||this.id<0||this.id>65534)throw Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else if(X)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new f0;stateChanged=new f0;onMessage=new f0;error=new f0;bufferedAmountLow=new f0;onopen;onclose;onclosing;onmessage;onerror;isCreatedByRemote=!1;id;readyState="connecting";bufferedAmount=0;_bufferedAmountLowThreshold=0;messagesSent=0;bytesSent=0;messagesReceived=0;bytesReceived=0;get ordered(){return this.parameters.ordered}get maxRetransmits(){return this.parameters.maxRetransmits}get maxPacketLifeTime(){return this.parameters.maxPacketLifeTime}get label(){return this.parameters.label}get protocol(){return this.parameters.protocol}get negotiated(){return this.parameters.negotiated}get bufferedAmountLowThreshold(){return this._bufferedAmountLowThreshold}set bufferedAmountLowThreshold(W){if(W<0||W>4294967295)throw Error("bufferedAmountLowThreshold must be in range 0 - 4294967295");this._bufferedAmountLowThreshold=W}setId(W){this.id=W}setReadyState(W){if(W!==this.readyState){switch(this.readyState=W,this.stateChange.execute(W),this.stateChanged.execute(W),W){case"open":if(this.onopen)this.onopen();this.emit("open");break;case"closed":if(this.onclose)this.onclose();this.emit("close");break;case"closing":if(this.onclosing)this.onclosing();break}en("change state",W)}}addBufferedAmount(W){let G=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,G)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let G=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=G}close(){this.sctp.dataChannelClose(this)}},FS=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var wH=()=>({type:"nack"}),UJ=()=>({type:"nack",parameter:"pli"}),jH=()=>({type:"goog-remb"}),Gi=()=>({type:"transport-cc"}),$G=class{payloadType;mimeType;clockRate;channels;rtcpFeedback=[];parameters;direction="all";constructor(W){Object.assign(this,W)}get name(){return this.mimeType.split("/")[1]}get contentType(){return this.mimeType.split("/")[0]}get str(){let W=`${this.name}/${this.clockRate}`;if(this.channels===2)W+="/2";return W}},Xi=class{id;uri;constructor(W){Object.assign(this,W)}};var Yi=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Zi=class{ssrc;constructor(W={}){Object.assign(this,W)}},Vi=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},SS=class{rid;direction;constructor(W){Object.assign(this,W)}},Qi=(W={})=>new $G({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[wH(),UJ(),jH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),xS=(W={})=>new $G({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[wH(),UJ(),jH()],...W}),Ji=(W={})=>new $G({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[wH(),UJ(),jH()],...W}),Ui=(W={})=>new $G({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[wH(),UJ(),jH()],...W}),kS=(W={})=>new $G({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),_S=(W={})=>new $G({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),yS=[Ui(),Ji(),xS(),Qi(),kS(),_S()].map((W)=>W.mimeType),nH0=yS.filter((W)=>W.toLowerCase().startsWith("video/")),iH0=yS.filter((W)=>W.toLowerCase().startsWith("audio/"));var uF=2,hF=3,Ai=0,Sq=50,bF=51,mF=53,zi=56,Ii=57,wi="0.0.0.0",fF=9,gO={auto:"actpass",client:"active",server:"passive"},cF=Object.keys(gO).reduce((W,G)=>{let X=gO[G];return W[X]=G,W},{}),ji=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],vS=["cname","msid","mslabel","label"],pF={SRTP_AES128_CM_HMAC_SHA1_80:IH,SRTP_AEAD_AES_128_GCM:QJ},mq=["sendonly","sendrecv"],Oi=["sendrecv","recvonly"],Ki=class extends Map{constructor(W){super();if(W)for(let G of W)this.set(G.id,G)}};function Z8(W,...G){let X=G.filter((Y)=>Y!==void 0);return`${W}_${X.join("_")}`}function FG(){return performance.now()}var Ci=class{constructor(W,G,X,Y,Z){if(this.kind=W,this.receiver=X,this.sender=Y,this._direction=Z,G)this.setDtlsTransport(G)}id=Hi().toString();onTrack=new f0;mid;mLineIndex;usedForSender=!1;_currentDirection;offerDirection;_codecs=[];set codecs(W){this._codecs=W}get codecs(){return this._codecs}headerExtensions=[];options={};stopping=!1;stopped=!1;get dtlsTransport(){return this.receiver.dtlsTransport}get direction(){return this._direction}setDirection(W){if(this._direction=W,mq.includes(this._currentDirection??""))this.usedForSender=!0}get currentDirection(){return this._currentDirection}setCurrentDirection(W){this._currentDirection=W}setDtlsTransport(W){this.receiver.setDtlsTransport(W),this.sender.setDtlsTransport(W)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(W){if(this.receiver.addTrack(W))this.onTrack.execute(W,this)}stop(){if(this.stopping)return;this.stopping=!0}getPayloadType(W){return this.codecs.find((G)=>G.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let Z={type:"codec",id:Z8("codec",Y.payloadType,X),timestamp:W,payloadType:Y.payloadType,transportId:X,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};G.push(Z)}return G}},Di="inactive",gS="sendonly",uS="recvonly",hS="sendrecv",wO=[Di,gS,uS,hS],uO=class extends UK{uuid=bS().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new f0;onReceiveRtcp=new f0;onSourceChanged=new f0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((G)=>{this.muted=!1,this.header=G.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=(W)=>{if(this.remote)throw Error("this is remoteTrack");if(this.stopped)return;let G=Buffer.isBuffer(W)?t6.deSerialize(W):W;G.header.payloadType=this.codec?.payloadType??G.header.payloadType,this.onReceiveRtp.execute(G)}},Mi=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=bS().toString()}addTrack(W){W.streamId=this.id,this.tracks.push(W)}getTracks(){return this.tracks}getAudioTracks(){return this.tracks.filter((W)=>W.kind==="audio")}getVideoTracks(){return this.tracks.filter((W)=>W.kind==="video")}},Ti=T1("werift:packages/webrtc/src/utils.ts");function mS(W,G){let X=(V)=>V.toUpperCase(),Y=(V)=>V.match(/(.{2})/g).join(":"),Z=qi(G).update(W).digest("hex");return Y(X(Z))}var Pi={sha1:"sha1","sha-1":"sha1",sha224:"sha224","sha-224":"sha224",sha256:"sha256","sha-256":"sha256",sha384:"sha384","sha-384":"sha384",sha512:"sha512","sha-512":"sha512"};function fS(W){return Pi[W.trim().toLowerCase()]}function hO(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function Ri(W){let G=W[0];return G>19&&G<64}var cS=(W,G)=>wO[wO.indexOf(W)&wO.indexOf(G)];function Li(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var pS=Date.now,Bi=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,Ei=()=>{return Bi+process.hrtime.bigint()/1000n},QH=()=>Date.now()/1000,$i=()=>{let G=(Fq.timeOrigin+Fq.now()-Date.UTC(1900,0,1))/1000,[X,Y]=G.toString().split(".").map(Number);return E8([4,4],[X,Y]).readBigUInt64BE()},lS=(W)=>{let G=E8([8],[W]),[,X,Y]=r9(G,[2,2,2,2]);return E8([2,2],[X,Y]).readUInt32BE()};function Fi(W){let G=(J)=>{if(!J)return;let[U,N]=J.split(":");return[U,Number.parseInt(N)]},X=G(W.find(({urls:J})=>J.includes("stun:"))?.urls.slice(5)),Y=G(W.find(({urls:J})=>J.includes("turn:"))?.urls.slice(5)),{credential:Z,username:V}=W.find(({urls:J})=>J.includes("turn:"))||{},Q={stunServer:X,turnServer:Y,turnUsername:V,turnPassword:Z};return Ti("iceOptions",Q),Q}var GA0=aq.createSelfSignedCertificateWithKey;var Si=(W,G)=>{if(!W||typeof W!=="object")if(G!==null&&typeof G==="object")return G;else return W;if(!G||typeof G!=="object"){if(G==null)return W;return G}for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];if(Y!=null)W[X]=Y}return W},xi=T1("werift:packages/webrtc/src/media/receiver/nack.ts"),lF=150,ki=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new f0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,G){if(this._lost[W]=G,this.nackLoop||this.closed)return;this.nackLoop=setInterval(async()=>{try{if(await this.sendNack(),!Object.keys(this._lost).length)clearInterval(this.nackLoop),this.nackLoop=void 0}catch(X){xi("failed to send nack",X)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:G,ssrc:X}=W.header;if(this.mediaSourceSsrc=X,this.newEstSeqNum===0){this.newEstSeqNum=G;return}if(this.getLost(G)){this.removeLost(G);return}if(G===M9(this.newEstSeqNum,1))this.newEstSeqNum=G;else if(G>M9(this.newEstSeqNum,1)){for(let Y=M9(this.newEstSeqNum,1);Y<G;Y=M9(Y,1))this.setLost(Y,1);this.newEstSeqNum=G,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>lF)this._lost=Object.entries(this._lost).slice(-lF).reduce((W,[G,X])=>{return W[G]=X,W},{})}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach((W)=>{if(this._lost[W]++>this.retryCount)return this.removeLost(W),W})}sendNack=()=>new Promise((W,G)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let X=new YH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new uY({feedback:X});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(G),this.updateRetryCount(),this.onPacketLost.execute(X)}})},yi=T1("werift:packages/webrtc/media/receiver/receiverTwcc"),vi=class{constructor(W,G,X){this.dtlsTransport=W,this.rtcpSsrc=G,this.mediaSourceSsrc=X,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:Ei()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await _i(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((q,A)=>q.tsn-A.tsn),G=W[0].tsn,X=W.slice(-1)[0].tsn,Y=[],Z=W[0].tsn,V=M9(X-G,1),Q,J,U=[];for(let q=G;q<=X;q++){let A=this.extensionInfo[q]?.timestamp;if(A){if(!this.lastTimestamp)this.lastTimestamp=A;if(!Q)Q=this.lastTimestamp;let H=A-this.lastTimestamp;this.lastTimestamp=A;let I=new yq({delta:Number(H)});if(I.parseDelta(),U.push(I),J!=null&&J.status!==I.type)Y.push(new dQ({packetStatus:J.status,runLength:q-J.minTSN})),J={minTSN:q,status:I.type};if(q===X)if(J!=null)Y.push(new dQ({packetStatus:J.status,runLength:q-J.minTSN+1}));else Y.push(new dQ({packetStatus:I.type,runLength:1}));if(J==null)J={minTSN:q,status:I.type}}}if(!Q)return;let N=new uY({feedback:new ZH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:Z,packetStatusCount:V,referenceTime:Ld(Math.floor(Number(Q/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:U,packetChunks:Y})});this.dtlsTransport.sendRtcp([N]).catch((q)=>{yi(q)}),this.extensionInfo={},this.fbPktCount=Rd(this.fbPktCount,1)}},gi=class{base_seq;max_seq;cycles=0;packets_received=0;clockRate;jitter_q4=0;last_arrival;last_timestamp;expected_prior=0;received_prior=0;constructor(W){this.clockRate=W}add(W,G=Date.now()/1000){let X=this.max_seq==null||M2(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(X){let Y=lQ(G*this.clockRate);if(this.max_seq!=null&&W.header.sequenceNumber<this.max_seq)this.cycles+=65536;if(this.max_seq=W.header.sequenceNumber,W.header.timestamp!==this.last_timestamp&&this.packets_received>1){let Z=Math.abs(Y-(this.last_arrival??0)-(W.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=Z-(this.jitter_q4+8>>4)}this.last_arrival=Y,this.last_timestamp=W.header.timestamp}}get fraction_lost(){let W=this.packets_expected-this.expected_prior;this.expected_prior=this.packets_expected;let G=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let X=W-G;if(W==0||X<=0)return 0;else return Math.floor((X<<8)/W)}get jitter(){return this.jitter_q4>>4}get packets_expected(){return this.cycles+(this.max_seq??0)-(this.base_seq??0)+1}get packets_lost(){let W=this.packets_expected-this.packets_received;return W<0?0:W}},a5=T1("werift:packages/webrtc/src/transport/dtls.ts"),dF=class W{constructor(G,X,Y,Z=[]){this.config=G,this.iceTransport=X,this.localCertificate=Y,this.srtpProfiles=Z,this.localCertificate??=W.localCertificate}id=bi().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new f0;onRtcp=new f0;onRtp=new f0;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new mO(this.localCertificate?this.localCertificate.getFingerprints():[],this.role)}static async SetupCertificate(){if(this.localCertificate)return this.localCertificate;if(this.localCertificatePromise)return this.localCertificatePromise;return this.localCertificatePromise=(async()=>{let{certPem:G,keyPem:X,signatureHash:Y}=await aq.createSelfSignedCertificateWithKey({signature:p4.ecdsa_3,hash:rq.sha256_4},a6.secp256r1_23);return this.localCertificate=new dS(X,G,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(G){let X=fi([...this.remoteParameters?.fingerprints??[],...G.fingerprints]),Y=G.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:G.role;this.remoteParameters=new mO(X,Y)}async start(){if(this.state!=="new")throw Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");if(this.role==="auto")if(this.iceTransport.role==="controlling")this.role="server";else this.role="client";this.setState("connecting"),await new Promise(async(G,X)=>{if(this.role==="server")this.dtls=new In({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new jF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0});if(this.dtls.onData.subscribe((Y)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;this.dataReceiver(Y)}),this.dtls.onClose.subscribe(()=>{if(this.state!=="failed")this.setState("closed")}),this.dtls.onConnect.once(G),this.dtls.onError.once((Y)=>{this.setState("failed"),a5("dtls failed",Y),X(Y)}),this.dtls instanceof jF)await mi(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),a5("dtls connect failed",Y),X(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(G){throw this.setState("failed"),this.dtls?.close(),G}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),a5("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let G=this.dtls?.remoteCertificate;if(!G)throw Error("remote certificate not available");let X=this.remoteParameters.fingerprints.flatMap(({algorithm:J,value:U})=>{let N=fS(J);if(!N)return[];let q=hO(U);if(!q)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:N,normalizedValue:q}]});if(X.length===0)throw Error("no supported remote fingerprint algorithms");let Y=pi(X),Z=X.filter(({normalizedAlgorithm:J})=>J===Y),V=Z.reduce((J,{normalizedAlgorithm:U})=>{if(!J.has(U))J.set(U,hO(mS(G,U)));return J},new Map);if(!Z.some(({normalizedAlgorithm:J,normalizedValue:U})=>V.get(J)===U))throw Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw Error();let G=this.dtls.srtp.srtpProfile;if(!G)throw Error("need srtpProfile");a5("selected SRTP Profile",G);let{localKey:X,localSalt:Y,remoteKey:Z,remoteSalt:V}=this.dtls.extractSessionKeys(Oo(G),Ko(G)),Q={keys:{localMasterKey:X,localMasterSalt:Y,remoteMasterKey:Z,remoteMasterSalt:V},profile:G};this.srtp=new Yn(Q),this.srtcp=new Gn(Q)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((G)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!Mo(G))return;if(this.bytesReceived+=G.length,this.packetsReceived++,So(G)){let X;try{X=this.srtcp.decrypt(G)}catch(Z){if(Z instanceof bY){a5("dropping invalid SRTCP packet",Z);return}throw Z}let Y;try{Y=Fo.deSerialize(X)}catch(Z){a5("dropping malformed SRTCP packet",Z);return}for(let Z of Y)try{this.onRtcp.execute(Z)}catch(V){a5("RTCP error",V)}}else{let X;try{X=this.srtp.decrypt(G)}catch(Z){if(Z instanceof bY){a5("dropping invalid SRTP packet",Z);return}throw Z}let Y;try{Y=t6.deSerialize(X)}catch(Z){a5("dropping malformed SRTP packet",Z);return}try{this.onRtp.execute(Y)}catch(Z){a5("RTP error",Z)}}})}sendData=async(G)=>{if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return;if(!this.dtls)throw Error("dtls not established");await this.dtls.send(G)};async sendRtp(G,X){try{let Y=this.srtp.encrypt(G,X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;return this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{}),Y.length}catch(Y){return a5("failed to send",Y),0}}async sendRtcp(G){let X=Buffer.concat(G.map((Z)=>Z.serialize())),Y=this.srtcp.encrypt(X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{})}setState(G){if(G!=this.state)this.state=G,this.onStateChange.execute(G)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let G=FG(),X=[],Z={type:"transport",id:Z8("transport",this.id),timestamp:G,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?Z8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?Z8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?Z8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(X.push(Z),this.localCertificate){let Q=this.localCertificate.getFingerprints();if(Q.length>0){let J={type:"certificate",id:Z8("certificate","local"),timestamp:G,fingerprint:Q[0].value,fingerprintAlgorithm:Q[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};X.push(J)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let Q={type:"certificate",id:Z8("certificate","remote"),timestamp:G,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};X.push(Q)}let V=await this.iceTransport.getStats();return X.push(...V),X}};var dS=class{constructor(W,G,X){this.certPem=G,this.signatureHash=X;let Y=tQ.Certificate.fromPEM(Buffer.from(G));this.publicKey=Y.publicKey.toPEM(),this.privateKey=tQ.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new bO("sha-256",mS(tQ.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},bO=class{constructor(W,G){this.algorithm=W,this.value=G}},mO=class{constructor(W=[],G){this.fingerprints=W,this.role=G}},fi=(W)=>{let G=new Set;return W.filter(({algorithm:X,value:Y})=>{let Z=`${fS(X)??X.trim().toLowerCase()}:${hO(Y)}`;if(G.has(Z))return!1;return G.add(Z),!0})},ci=["sha512","sha384","sha256","sha224","sha1"],pi=(W)=>{return ci.find((G)=>W.some(({normalizedAlgorithm:X})=>X===G))??W[0].normalizedAlgorithm},li=class{constructor(W){this.ice=W,W.onData.subscribe((G)=>{if(Ri(G)){if(this.onData)this.onData(G)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},oF=(W)=>new li(W),nF=T1("werift:packages/webrtc/src/transport/ice.ts"),oi=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((G)=>{this.setState(G)}),this.iceGather.onIceCandidate=(G)=>{this.onIceCandidate.execute(G)}}id=di().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new f0;onIceCandidate=new f0;onNegotiationNeeded=new f0;get role(){if(this.connection.iceControlling)return"controlling";else return"controlled"}get gatheringState(){return this.iceGather.gatheringState}get localCandidates(){return this.iceGather.localCandidates}get localParameters(){return this.iceGather.localParameters}setState(W){if(W!==this.state)this.state=W,this.onStateChange.execute(W)}gather(){return this.iceGather.gather()}addRemoteCandidate=(W)=>{if(!this.connection.remoteCandidatesEnd)if(!W)return this.connection.addRemoteCandidate(void 0);else return this.connection.addRemoteCandidate(ii(W))};setRemoteParams(W,G=!1){if(G)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)nF("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else nF("restart",W),this.restart();this.connection.setRemoteParams(W)}restart(){this.connection.restart(),this.setState("new"),this.iceGather.gatheringState="new",this.waitStart=void 0,this.onNegotiationNeeded.execute()}async start(){if(this.state==="closed")throw Error("RTCIceTransport is closed");if(!this.connection.remotePassword||!this.connection.remoteUsername)throw Error("remoteParams missing");if(this.waitStart)await this.waitStart.asPromise();this.waitStart=new f0,this.setState("checking");try{await this.connection.connect()}catch(W){throw this.setState("failed"),W}this.waitStart.execute(),this.waitStart.complete(),this.waitStart=void 0}async stop(){if(this.state!=="closed")this.setState("closed"),await this.connection.close();this.onStateChange.complete(),this.onIceCandidate.complete(),this.onNegotiationNeeded.complete()}async getStats(){let W=FG(),G=[];for(let Y of this.localCandidates){let Z={type:"local-candidate",id:Z8("local-candidate",Y.foundation),timestamp:W,transportId:Z8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};G.push(Z)}for(let Y of this.connection.remoteCandidates){let Z=eQ(Y),V={type:"remote-candidate",id:Z8("remote-candidate",Z.foundation),timestamp:W,transportId:Z8("transport",this.id),address:Z.ip,port:Z.port,protocol:Z.protocol,candidateType:Z.type,priority:Z.priority,foundation:Z.foundation};G.push(V)}let X=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of X){let Z={type:"candidate-pair",id:Z8("candidate-pair",Y.foundation),timestamp:W,transportId:Z8("transport",this.id),localCandidateId:Z8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:Z8("remote-candidate",Y.remoteCandidate.foundation),state:Y.state,nominated:Y.nominated,packetsSent:Y.packetsSent,packetsReceived:Y.packetsReceived,bytesSent:Y.bytesSent,bytesReceived:Y.bytesReceived,currentRoundTripTime:Y.rtt};G.push(Z)}return G}};var ni=class{constructor(W={}){this.options=W,this.connection=new an(!1,this.options),this.connection.onIceCandidate.subscribe((G)=>{this.onIceCandidate(eQ(G))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new f0;async gather(){if(this.gatheringState==="new")this.setState("gathering"),await this.connection.gatherCandidates(),this.onIceCandidate(void 0),this.setState("complete")}get localCandidates(){return this.connection.localCandidates.map(eQ)}get localParameters(){return new nS({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(W){if(W!==this.gatheringState)this.gatheringState=W,this.onGatheringStateChange.execute(W)}};function eQ(W){let G=new oS(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return G.relatedAddress=W.relatedAddress,G.relatedPort=W.relatedPort,G.tcpType=W.tcptype,G}function ii(W){return new DG(W.foundation,W.component,W.protocol,W.priority,W.ip,W.port,W.type,W.relatedAddress,W.relatedPort,W.tcpType,W.generation,W.ufrag)}var ri=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let G=DG.fromSdp(W);return eQ(G).toJSON()}static isThis(W){if(typeof W?.candidate==="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},oS=class{constructor(W,G,X,Y,Z,V,Q,J,U){this.component=W,this.foundation=G,this.ip=X,this.port=Y,this.priority=Z,this.protocol=V,this.type=Q,this.generation=J,this.ufrag=U}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new ri({candidate:Yx(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let G=Zx(W.candidate);return G.sdpMLineIndex=W.sdpMLineIndex??void 0,G.sdpMid=W.sdpMid??void 0,G}catch(G){}}},nS=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},c7=class W{constructor(G=0,X=Buffer.from("")){this.flags=G,this._body=X}get body(){return this._body}set body(G){this._body=G}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let G=Buffer.alloc(4);return G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(this.body.length+4,2),Buffer.concat([G,this.body,...[...Array(qJ(this.body.length))].map(()=>Buffer.from("\x00"))])}},NK=class extends c7{constructor(W=0,G){super(W,G);if(this.flags=W,G)this.initiateTag=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4),this.outboundStreams=G.readUInt16BE(8),this.inboundStreams=G.readUInt16BE(10),this.initialTsn=G.readUInt32BE(12),this.params=eS(G.slice(16));else this.initiateTag=0,this.advertisedRwnd=0,this.outboundStreams=0,this.inboundStreams=0,this.initialTsn=0,this.params=[]}initiateTag;advertisedRwnd;outboundStreams;inboundStreams;initialTsn;params;get body(){let W=Buffer.alloc(16);return W.writeUInt32BE(this.initiateTag,0),W.writeUInt32BE(this.advertisedRwnd,4),W.writeUInt16BE(this.outboundStreams,8),W.writeUInt16BE(this.inboundStreams,10),W.writeUInt32BE(this.initialTsn,12),Buffer.concat([W,tS(this.params)])}},fq=class W extends NK{static type=1;get type(){return W.type}},fO=class W extends NK{static type=2;get type(){return W.type}},ti=class W extends NK{static type=130;get type(){return W.type}},cq=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0);let Y=4;while(Y<X.length)this.streams.push([X.readUInt16BE(Y),X.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(G){}get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([G,...this.streams.map(([X,Y])=>{let Z=Buffer.alloc(4);return Z.writeUInt16BE(X,0),Z.writeUInt16BE(Y,2),Z})])}},pq=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.tsn=X.readUInt32BE(0),this.streamId=X.readUInt16BE(4),this.streamSeqNum=X.readUInt16BE(6),this.protocol=X.readUInt32BE(8),this.userData=X.slice(12)}static type=0;get type(){return W.type}tsn=0;streamId=0;streamSeqNum=0;protocol=0;userData=Buffer.from("");abandoned=!1;acked=!1;misses=0;retransmit=!1;sentCount=0;bookSize=0;expiry;maxRetransmits;sentTime;get bytes(){let G=16+this.userData.length,X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.tsn,4),X.writeUInt16BE(this.streamId,8),X.writeUInt16BE(this.streamSeqNum,10),X.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([X,this.userData]);if(G%4)Y=Buffer.concat([Y,...[...Array(qJ(G))].map(()=>Buffer.from("\x00"))]);return Y}},cO=class W extends c7{static type=10;get type(){return W.type}},pO=class W extends c7{static type=11;get type(){return W.type}},NJ=class extends c7{constructor(W=0,G=void 0){super(W,G);if(this.flags=W,G)this.params=eS(G)}params=[];get body(){return tS(this.params)}},lO=class W extends NJ{static type=6;get type(){return W.type}},lq=class W extends NJ{static type=9;static CODE={InvalidStreamIdentifier:1,MissingMandatoryParameter:2,StaleCookieError:3,OutofResource:4,UnresolvableAddress:5,UnrecognizedChunkType:6,InvalidMandatoryParameter:7,UnrecognizedParameters:8,NoUserData:9,CookieReceivedWhileShuttingDown:10,RestartofanAssociationwithNewAddresses:11,UserInitiatedAbort:12,ProtocolViolation:13};get type(){return W.type}get descriptions(){return this.params.map(([G,X])=>{return{name:(Object.entries(W.CODE).find(([,Z])=>Z===G)||[])[0],body:X}})}},dO=class W extends NJ{static type=4;get type(){return W.type}},iS=class W extends NJ{static type=5;get type(){return W.type}},oO=class W extends NJ{static type=130;get type(){return W.type}},nO=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4);let Y=X.readUInt16BE(8),Z=X.readUInt16BE(10),V=12;[...Array(Y)].forEach(()=>{this.gaps.push([X.readUInt16BE(V),X.readUInt16BE(V+2)]),V+=4}),[...Array(Z)].forEach(()=>{this.duplicates.push(X.readUInt32BE(V)),V+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let G=16+4*(this.gaps.length+this.duplicates.length),X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.cumulativeTsn,4),X.writeUInt32BE(this.advertisedRwnd,8),X.writeUInt16BE(this.gaps.length,12),X.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([X,...this.gaps.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt16BE(Z[0],0),V.writeUInt16BE(Z[1],2),V})]);return Y=Buffer.concat([Y,...this.duplicates.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt32BE(Z,0),V})]),Y}},rS=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.cumulativeTsn=X.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),G}},aS=class W extends c7{static type=8;get type(){return W.type}},sS=class W extends c7{static type=14;get type(){return W.type}},ei=[pq,fq,fO,nO,dO,iS,lO,rS,aS,lq,cO,pO,sS,oO,cq],Wr=ei.reduce((W,G)=>{return W[G.type]=G,W},{});function qJ(W){let G=W%4;return G?4-G:0}function tS(W){let G=Buffer.from(""),X=Buffer.from("");return W.forEach(([Y,Z])=>{let V=Z.length+4,Q=Buffer.alloc(4);Q.writeUInt16BE(Y,0),Q.writeUInt16BE(V,2),G=Buffer.concat([G,X,Q,Z]),X=Buffer.concat([...Array(qJ(V))].map(()=>Buffer.from("\x00")))}),G}function eS(W){let G=[],X=0;while(X<=W.length-4){let Y=W.readUInt16BE(X),Z=W.readUInt16BE(X+2);G.push([Y,W.slice(X+4,X+Z)]),X+=Z+qJ(Z)}return G}function Gr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let G=W.readUInt16BE(0),X=W.readUInt16BE(2),Y=W.readUInt32BE(4),Z=W.readUInt32LE(8),V=D2(Buffer.concat([W.slice(0,8),Buffer.from("\x00\x00\x00\x00"),W.slice(12)]));if(Z!==V)throw Error("SCTP packet has invalid checksum");let Q=[],J=12;while(J+4<=W.length){let U=W.readUInt8(J),N=W.readUInt8(J+1),q=W.readUInt16BE(J+2),A=W.slice(J+4,J+q),H=Wr[U.toString()];if(H)Q.push(new H(N,A));else throw Error("unknown");J+=q+qJ(q)}return[G,X,Y,Q]}function Xr(W,G,X,Y){let Z=Buffer.alloc(8);Z.writeUInt16BE(W,0),Z.writeUInt16BE(G,2),Z.writeUInt32BE(X,4);let V=Y.bytes,Q=D2(Buffer.concat([Z,Buffer.from("\x00\x00\x00\x00"),V])),J=Buffer.alloc(4);return J.writeUInt32LE(Q,0),Buffer.concat([Z,J,V])}function Yr(W){return W.map((G,X)=>[X,G])}function Zr(W){return W.reduce((G,X)=>{return G[X]=new f0,G},{})}var iO=class W{constructor(G,X,Y,Z){this.requestSequence=G,this.responseSequence=X,this.lastTsn=Y,this.streams=Z}static type=13;get type(){return W.type}get bytes(){let G=Buffer.from(a1.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([G,...this.streams.map((X)=>Buffer.from(a1.Pack("!H",[X])))])}static parse(G){let[X,Y,Z]=a1.Unpack("!LLL",G),V=[];for(let Q=12;Q<G.length;Q+=2)V.push(a1.Unpack("!H",G.slice(Q))[0]);return new W(X,Y,Z,V)}},Wx=class W{constructor(G,X){this.requestSequence=G,this.newStreams=X}static type=17;get type(){return W.type}get bytes(){return Buffer.from(a1.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(G){let[X,Y]=a1.Unpack("!LHH",G);return new W(X,Y)}},xq={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},dq=class W{constructor(G,X){this.responseSequence=G,this.result=X}static type=16;get type(){return W.type}get bytes(){return Buffer.from(a1.Pack("!LL",[this.responseSequence,this.result]))}static parse(G){let[X,Y]=a1.Unpack("!LL",G);return new W(X,Y)}},rF={13:iO,16:dq,17:Wx},r1=T1("werift/sctp/sctp"),Vr=24,Qr=60,aF=65535,s5=1200,fQ=1,Gx=2,rO=4,sF=10,Jr=8,tF=0.125,eF=0.25,W2=3,Ur=1,Nr=60,JH=4294967296,qr=200,Hr=30,G2=135,X2=7,Y2=32776,Z2=49152,Ar=["new","closed","connected","connecting"],zr=class W{constructor(G,X=5000){this.transport=G,this.port=X,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new f0;stateChanged=Zr(Ar);onReconfigStreams=new f0;onReceive=new f0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=si(16);localPartialReliability=!0;localPort;localVerificationTag=DO();remoteExtensions=[];remotePartialReliability=!0;remotePort;remoteVerificationTag=0;advertisedRwnd=1048576;peerAdvertisedRwnd=this.advertisedRwnd;get peerRwnd(){return Math.max(0,this.peerAdvertisedRwnd-this.flightSize)}inboundStreams={};_inboundStreamsCount=0;_inboundStreamsMax=aF;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*s5;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=aF;localTsn=Number(DO());lastSackedTsn=KG(this.localTsn);advancedPeerAckTsn=KG(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=W2;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Hr;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(G,X=5000){let Y=new W(G,X);return Y.isServer=!1,Y}static server(G,X=5000){let Y=new W(G,X);return Y.isServer=!0,Y}async handleData(G){if(this.isStopped)return;let X,[,,Y,Z]=Gr(G);if(Z.filter((Q)=>Q.type===fq.type).length>0){if(Z.length!=1)throw Error();X=0}else X=this.localVerificationTag;if(Y!==X)return;this.sackHasNewDataInPacket=!1;for(let Q of Z)await this.receiveChunk(Q);if(this.sackNeeded){if(this.sackHasNewDataInPacket)this.sackPacketCount++;if(this.sackPacketCount>=2)this.sackImmediate=!0;await this.scheduleSack()}}async scheduleSack(){if(this.isStopped)return;if(!this.sackNeeded)return;if(this.sackImmediate){if(this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;await this.sendSack();return}if(this.sackTimeout)return;this.sackTimeout=setTimeout(()=>{this.sackTimeout=void 0,this.sendSack().catch((G)=>{r1("send delayed sack failed",G.message)})},qr)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let G=[],X;[...this.sackMisOrdered].sort().forEach((Z)=>{let V=(Z-this.lastReceivedTsn)%JH;if(Z===X)G[G.length-1][1]=V;else G.push([V,V]);X=_Y(Z)});let Y=new nO(0,void 0);Y.cumulativeTsn=this.lastReceivedTsn,Y.advertisedRwnd=Math.max(0,this.advertisedRwnd),Y.duplicates=[...this.sackDuplicates],Y.gaps=G,await this.sendChunk(Y).catch((Z)=>{r1("send sack failed",Z.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(G){switch(G.type){case pq.type:this.receiveDataChunk(G);break;case fq.type:{if(!this.isServer)return;let X=G;r1("receive init",X),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new fO;Y.initiateTag=this.localVerificationTag,Y.advertisedRwnd=this.advertisedRwnd,Y.outboundStreams=this._outboundStreamsCount,Y.inboundStreams=this._inboundStreamsCount,Y.initialTsn=this.localTsn,this.setExtensions(Y.params);let Z=Date.now()/1000,V=Buffer.from(a1.Pack("!L",[Z]));V=Buffer.concat([V,iF("sha1",this.hmacKey).update(V).digest()]),Y.params.push([X2,V]),r1("send initAck",Y),await this.sendChunk(Y).catch((Q)=>{r1("send initAck failed",Q.message)})}break;case fO.type:{if(this.associationState!=2)return;let X=G;this.timer1Cancel(),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new cO;for(let[Z,V]of X.params)if(Z===X2){Y.body=V;break}await this.sendChunk(Y).catch((Z)=>{r1("send echo failed",Z.message)}),this.timer1Start(Y),this.setState(3)}break;case nO.type:await this.receiveSackChunk(G);break;case dO.type:{let X=new iS;X.params=G.params,await this.sendChunk(X).catch((Y)=>{r1("send heartbeat ack failed",Y.message)})}break;case lO.type:this.setState(1);break;case rS.type:{this.timer2Cancel(),this.setState(7);let X=new aS;await this.sendChunk(X).catch((Y)=>{r1("send shutdown ack failed",Y.message)}),this.t2Start(X),this.setState(6)}break;case lq.type:r1("ErrorChunk",G.descriptions);break;case cO.type:{if(!this.isServer)return;let Y=G.body,Z=iF("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=Vr||!Y.slice(4).equals(Z)){r1("x State cookie is invalid");return}let V=Date.now()/1000,Q=a1.Unpack("!L",Y)[0];if(Q<V-Qr||Q>V){let U=new lq(0,void 0);U.params.push([lq.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(U).catch((N)=>{r1("send errorChunk failed",N.message)});return}let J=new pO;await this.sendChunk(J).catch((U)=>{r1("send cookieAck failed",U.message)}),this.setState(4)}break;case pO.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case sS.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case oO.type:{if(this.associationState!=4)return;let X=G;for(let[Y,Z]of X.params){let V=rF[Y];if(V)await this.receiveReconfigParam(V.parse(Z))}}break;case cq.type:this.receiveForwardTsnChunk(G);break}}getExtensions(G){for(let[X,Y]of G)if(X===Z2)this.remotePartialReliability=!0;else if(X===Y2)this.remoteExtensions=[...Y]}async receiveReconfigParam(G){switch(r1("receiveReconfigParam",rF[G.type]),G.type){case iO.type:{let X=G,Y=new dq(X.requestSequence,xq.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y),await Promise.all(X.streams.map(async(Z)=>{if(delete this.inboundStreams[Z],this.outboundStreamSeq[Z]){if(!this.reconfigQueue.includes(Z))this.reconfigQueue.push(Z)}})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(X.streams)}break;case dq.type:{let X=G;if(X.result!==xq.ReconfigResultSuccessPerformed)r1("OutgoingSSNResetRequestParam failed",Object.keys(xq).find((Y)=>xq[Y]===X.result));else if(X.responseSequence===this.reconfigRequest?.requestSequence){let Y=this.reconfigRequest.streams.map((Z)=>{return delete this.outboundStreamSeq[Z],Z});if(this.onReconfigStreams.execute(Y),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=W2,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Wx.type:{let X=G;this._inboundStreamsCount+=X.newStreams;let Y=new dq(X.requestSequence,1);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(G){if(this.sackNeeded=!0,this.markReceived(G.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(G.flags&fQ)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let X=this.getInboundStream(G.streamId);X.addChunk(G),this.advertisedRwnd-=G.userData.length;for(let Y of X.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(G){if(m4(this.lastSackedTsn,G.cumulativeTsn))return;let X=Date.now()/1000;this.lastSackedTsn=G.cumulativeTsn;let Y=this.flightSize>=this.cwnd,Z=0,V=0;while(this.sentQueue.length>0&&mQ(this.lastSackedTsn,this.sentQueue[0].tsn)){let J=this.sentQueue.shift();if(Z++,!J?.acked)V+=J.bookSize,this.flightSizeDecrease(J);if(Z===1&&J.sentCount===1)this.updateRto(X-J.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let Q=!1;if(G.gaps.length>0){let J=new Set,U;G.gaps.forEach((q)=>{for(let A=q[0];A<q[1]+1;A++)U=(G.cumulativeTsn+A)%JH,J.add(U)});let N=G.cumulativeTsn;for(let q of this.sentQueue){if(m4(q.tsn,U))break;if(J.has(q.tsn)&&!q.acked)V+=q.bookSize,q.acked=!0,this.flightSizeDecrease(q),N=q.tsn}for(let q of this.sentQueue){if(m4(q.tsn,N))break;if(!J.has(q.tsn)){if(q.misses++,q.misses===3){if(q.misses=0,!this.maybeAbandon(q))q.retransmit=!0;q.acked=!1,this.flightSizeDecrease(q),Q=!0}}}}if(this.fastRecoveryExit===void 0){if(Z&&Y){if(this.cwnd<=this.ssthresh)this.cwnd+=Math.min(V,s5);else if(this.partialBytesAcked+=V,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=s5}if(Q)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*s5),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(mQ(G.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(Z>0)this.timer3Restart();this.peerAdvertisedRwnd=G.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(G){if(this.sackNeeded=!0,this.sackImmediate=!0,mQ(this.lastReceivedTsn,G.cumulativeTsn))return;let X=(Y)=>m4(Y,this.lastReceivedTsn);this.lastReceivedTsn=G.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let[Y,Z]of G.streams){let V=this.getInboundStream(Y);V.streamSequenceNumber=M9(Z,1);for(let Q of V.popMessages())this.advertisedRwnd+=Q[2].length,this.receive(...Q)}Object.values(this.inboundStreams).forEach((Y)=>{this.advertisedRwnd+=Y.pruneChunks(this.lastReceivedTsn)})}updateRto(G){if(!this.srtt)this.rttvar=G/2,this.srtt=G;else this.rttvar=(1-eF)*this.rttvar+eF*Math.abs(this.srtt-G),this.srtt=(1-tF)*this.srtt+tF*G;this.rto=Math.max(Ur,Math.min(this.srtt+4*this.rttvar,Nr))}receive(G,X,Y){this.onReceive.execute(G,X,Y)}getInboundStream(G){if(!this.inboundStreams[G])this.inboundStreams[G]=new Ir;return this.inboundStreams[G]}markReceived(G){if(mQ(this.lastReceivedTsn,G)||this.sackMisOrdered.has(G))return this.sackDuplicates.push(G),!0;this.sackMisOrdered.add(G);for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let X=(Y)=>m4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X)),!1}send=async(G,X,Y,{expiry:Z,maxRetransmits:V,ordered:Q}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let J=Q?this.outboundStreamSeq[G]||0:0,U=Math.ceil(Y.length/s5),N=0,q=[];for(let A=0;A<U;A++){let H=new pq(0,void 0);if(H.flags=0,!Q)H.flags=rO;if(A===0)H.flags|=Gx;if(A===U-1)H.flags|=fQ;H.tsn=this.localTsn,H.streamId=G,H.streamSeqNum=J,H.protocol=X,H.userData=Y.slice(N,N+s5),H.bookSize=H.userData.length,H.expiry=Z,H.maxRetransmits=V,N+=s5,this.localTsn=_Y(this.localTsn),q.push(H)}if(q.forEach((A)=>{this.outboundQueue.push(A)}),Q)this.outboundStreamSeq[G]=M9(J,1);await this.transmit();while(this.outboundQueue.length)await this.flush.asPromise()};async transmit(){if(this.isStopped)return;if(this.transmitting){this.transmitRequested=!0;return}this.transmitting=!0;try{do this.transmitRequested=!1,await this.transmitOnce();while(this.transmitRequested)}finally{this.transmitting=!1}}async transmitOnce(){if(this.isStopped)return;if(this.forwardTsnChunk){if(await this.sendChunk(this.forwardTsnChunk).catch((Z)=>{r1("send forwardTsn failed",Z.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let G=this.fastRecoveryExit!=null?2*s5:4*s5,X=Math.min(this.flightSize+G,this.cwnd),Y=!0;for(let Z of this.sentQueue){if(Z.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=X)break;if(this.flightSizeIncrease(Z),Z.misses=0,Z.retransmit=!1,Z.sentCount++,await this.sendChunk(Z).catch((V)=>{r1("send data failed",V.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<X&&this.peerRwnd>0){let Z=this.outboundQueue.shift();if(!Z)break;if(Z.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(Z);break}if(this.sentQueue.push(Z),this.flightSizeIncrease(Z),Z.sentCount++,Z.sentTime=Date.now()/1000,await this.sendChunk(Z).catch((V)=>{r1("send data outboundQueue failed",V.message)}),!this.timer3Handle)this.timer3Start()}if(!this.outboundQueue.length)this.outboundQueue=[];this.flush.execute()}async transmitReconfigRequest(){if(this.reconfigQueue.length>0&&this.associationState===4&&!this.reconfigRequest){let G=[...new Set(this.reconfigQueue)],X=G.slice(0,G2);this.reconfigQueue=G.slice(G2);let Y=new iO(this.reconfigRequestSeq,this.reconfigResponseSeq,KG(this.localTsn),X);this.reconfigRequestSeq=_Y(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(G){r1("sendReconfigParam",G);let X=new oO;X.params.push([G.type,G.bytes]),await this.sendChunk(X).catch((Y)=>{r1("send reconfig failed",Y.message)})}async sendResetRequest(G){r1("sendResetRequest",G);let X=new pq(0,void 0);if(X.streamId=G,this.outboundQueue.push(X),!this.timer3Handle)await this.transmit()}flightSizeIncrease(G){this.flightSize+=G.bookSize}flightSizeDecrease(G){this.flightSize=Math.max(0,this.flightSize-G.bookSize)}timer1Start(G){if(this.timer1Handle)throw Error();this.timer1Chunk=G,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}timer1Expired=()=>{if(this.isStopped)return;if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Jr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((G)=>{r1("send timer1 chunk failed",G.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}};timer1Cancel(){if(this.timer1Handle)clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0}t2Start(G){if(this.timer2Handle)throw Error();this.timer2Chunk=G,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}timer2Expired=()=>{if(this.isStopped)return;if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>sF)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((G)=>{r1("send timer2Chunk failed",G.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}};timer2Cancel(){if(this.timer2Handle)clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0}timer3Start(){if(this.isStopped)return;if(this.timer3Handle)throw Error();this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Restart(){if(this.isStopped)return;this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Expired=()=>{if(this.isStopped)return;this.timer3Handle=void 0,this.sentQueue.forEach((G)=>{if(!this.maybeAbandon(G))G.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*s5),this.cwnd=s5,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;r1("timerReconfigHandleStart",{rto:this.rto}),this.timerReconfigFailures=0,this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}timerReconfigHandleExpired=async()=>{if(this.isStopped)return;if(this.timerReconfigFailures++,this.rto=Math.ceil(this.rto*1.5),this.timerReconfigFailures>sF)r1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(r1("timerReconfigHandleExpired",this.timerReconfigFailures,this.rto),await this.sendReconfigParam(this.reconfigRequest),this.isStopped)return;this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}};timerReconfigCancel(){if(this.timerReconfigHandle)r1("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0}heartbeatStart(){if(this.timerHeartbeatHandle||this.associationState!==4)return;this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1000)}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){if(this.timerHeartbeatHandle)clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState!==4)return;if(this.flightSize===0&&this.outboundQueue.length===0){let G=new dO;G.params.push([1,Buffer.from(a1.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(G).catch((X)=>{r1("send heartbeat failed",X.message)})}this.heartbeatStart()};setHeartbeatInterval(G){if(G<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=G,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(m4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let G=0,X={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,G++,!(Y.flags&rO))X[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(G)this.forwardTsnChunk=new cq(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(X).map(([Y,Z])=>[Number(Y),Z])}maybeAbandon(G){if(G.abandoned)return!0;if(!(!!G.maxRetransmits&&G.maxRetransmits<G.sentCount||!!G.expiry&&G.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((Z)=>Z.type===G.type);for(let Z=Y;Z>=0;Z--){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&fQ)break}for(let Z=Y;Z<this.sentQueue.length;Z++){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&fQ)break}return!0}static getCapabilities(){return new wr(65536)}setRemotePort(G){this.remotePort=G}async start(G){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),G)this.setRemotePort(G);if(!this.isServer)await this.init()}}async init(){let G=new fq;G.initiateTag=this.localVerificationTag,G.advertisedRwnd=this.advertisedRwnd,G.outboundStreams=this._outboundStreamsCount,G.inboundStreams=this._inboundStreamsMax,G.initialTsn=this.localTsn,this.setExtensions(G.params),r1("send init",G);try{await this.sendChunk(G),this.timer1Start(G),this.setState(2)}catch(X){r1("send init failed",X.message)}}setExtensions(G){let X=[];if(this.localPartialReliability)G.push([Z2,Buffer.from("")]),X.push(cq.type);X.push(ti.type),G.push([Y2,Buffer.from(X)])}async sendChunk(G){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let X=Xr(this.localPort,this.remotePort,this.remoteVerificationTag,G);await this.transport.send(X)}setState(G){if(G!=this.associationState)this.associationState=G;if(G===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(G===1){if(this.isClosed=!0,this.timer1Cancel(),this.timer2Cancel(),this.timer3Cancel(),this.timerReconfigCancel(),this.heartbeatCancel(),this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;this.setConnectionState("closed"),this.removeAllListeners()}}setConnectionState(G){this.state=G,r1("setConnectionState",G),this.stateChanged[G].execute()}async stop(){if(this.isStopped){this.setState(1);return}if(this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;if(this.associationState!==1)await this.abort();this.setState(1),clearTimeout(this.timer1Handle),clearTimeout(this.timer2Handle),clearTimeout(this.timer3Handle),clearTimeout(this.timerReconfigHandle),clearTimeout(this.timerHeartbeatHandle),clearTimeout(this.sackTimeout)}async abort(){let G=new lO;await this.sendChunk(G).catch((X)=>{r1("send abort failed",X.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((G)=>G.allUnsubscribe())}},Ir=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||m4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[G,X]of Yr(this.reassembly)){if(X.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(m4(X.tsn,W.tsn)){this.reassembly.splice(G,0,W);break}}}*popMessages(){let W=0,G,X,Y;while(W<this.reassembly.length){let Z=this.reassembly[W];if(G===void 0){if(Y=!(Z.flags&rO),!(Z.flags&Gx))if(Y)break;else{W++;continue}if(Y&&M2(Z.streamSeqNum,this.streamSequenceNumber))break;X=Z.tsn,G=W}else if(Z.tsn!==X)if(Y)break;else{G=void 0,W++;continue}if(Z.flags&fQ){let V=this.reassembly.slice(G,W+1).map((J)=>J.userData).reduce((J,U)=>{return J.push(U),J.push(Buffer.from("")),J},[]);V.pop();let Q=Buffer.concat(V);if(this.reassembly=[...this.reassembly.slice(0,G),...this.reassembly.slice(W+1)],Y&&Z.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=M9(this.streamSequenceNumber,1);W=G,yield[Z.streamId,Z.protocol,Q]}else W++;X=_Y(X)}}pruneChunks(W){let G=-1,X=0;for(let[Y,Z]of this.reassembly.entries())if(mQ(W,Z.tsn))G=Y,X+=Z.userData.length;else break;return this.reassembly=this.reassembly.slice(G+1),X}},wr=class{constructor(W){this.maxMessageSize=W}};function KG(W){return(W-1)%JH}function _Y(W){return(W+1)%JH}var FY=T1("werift:packages/webrtc/src/transport/sctp.ts"),cQ=65536,jr=class W{constructor(G=5000,X=cQ){this.port=G,this.maxMessageSize=X}dtlsTransport;sctp;onDataChannel=new f0;id=ai().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=cQ;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(G){if(this.dtlsTransport&&this.dtlsTransport.id===G.id)return;this.eventDisposer.forEach((X)=>X()),this.dtlsTransport=G,this.sctp=new zr(new Or(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((X)=>{X.forEach((Y)=>{let Z=this.dataChannels[Y];if(!Z)return;Z.setReadyState("closing"),Z.setReadyState("closed"),delete this.dataChannels[Y]})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{if(X.negotiated&&X.readyState!=="open")X.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{X.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="closed")this.sctp.setState(1)})].map((X)=>X.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(G){return Object.values(this.dataChannels).find((X)=>X.label===G)}datachannelReceive=async(G,X,Y)=>{if(X===Sq&&Y.length>0)switch(FY("DCEP",G,X,Y),Y[0]){case hF:{if(Y.length<12){FY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(G.toString())){let[,V,,Q,J,U]=a1.Unpack("!BBHLHH",Y),N=12,q=Y.slice(N,N+J).toString("utf8");N+=J;let A=Y.slice(N,N+U).toString("utf8");FY("DATA_CHANNEL_OPEN",{channelType:V,reliability:Q,streamId:G,label:q,protocol:A});let H=(V&3)===1?Q:void 0,I=(V&3)===2?Q:void 0,w=new FS({label:q,ordered:(V&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:G}),C=new $S(this,w,!1);C.isCreatedByRemote=!0,this.dataChannels[G]=C,this.onDataChannel.execute(C),C.setReadyState("open")}else FY("datachannel already opened","retransmit ack");let Z=this.dataChannels[G];this.dataChannelQueue.push([Z,Sq,Buffer.from(a1.Pack("!B",[uF]))]),await this.dataChannelFlush()}break;case uF:{FY("DATA_CHANNEL_ACK",G,X);let Z=this.dataChannels[G];if(!Z)throw Error("channel not found");Z.setReadyState("open")}break}else{let Z=this.dataChannels[G];if(Z){let V=(()=>{switch(X){case bF:return Y.toString("utf8");case zi:return"";case mF:return Y;case Ii:return Buffer.from([]);default:throw Error()}})();if(Z.messagesReceived++,Z.bytesReceived+=Y.length,Z.onMessage.execute(V),Z.emit("message",{data:V}),Z.onmessage)Z.onmessage({data:V})}}};dataChannelAddNegotiated(G){if(G.id==null)throw Error();if(this.dataChannels[G.id])throw Error();if(this.dataChannels[G.id]=G,this.sctp.associationState===4)G.setReadyState("open")}dataChannelOpen(G){if(G.id){if(this.dataChannels[G.id])throw Error(`Data channel with ID ${G.id} already registered`);this.dataChannels[G.id]=G}let X=Ai,Y=0,Z=0;if(!G.ordered)X=128;if(G.maxRetransmits)X=1,Z=G.maxRetransmits;else if(G.maxPacketLifeTime)X=2,Z=G.maxPacketLifeTime;let V=a1.Pack("!BBHLHH",[hF,X,Y,Z,G.label.length,G.protocol.length]),Q=Buffer.concat([Buffer.from(V),Buffer.from(G.label,"utf8"),Buffer.from(G.protocol,"utf8")]);this.dataChannelQueue.push([G,Sq,Q]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[G,X,Y]=this.dataChannelQueue.shift(),Z=G.id;if(Z===void 0){Z=this.dataChannelId;while(Object.keys(this.dataChannels).includes(Z.toString()))Z+=2;this.dataChannels[Z]=G,G.setId(Z)}if(X===Sq)await this.sctp.send(Z,X,Y,{ordered:!0});else{let V=G.maxPacketLifeTime?Date.now()+G.maxPacketLifeTime/1000:void 0;await this.sctp.send(Z,X,Y,{expiry:V,maxRetransmits:G.maxRetransmits,ordered:G.ordered}),G.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(G){if(this.remoteMaxMessageSize!==0&&G>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${G} > ${this.remoteMaxMessageSize}`)}datachannelSend=(G,X)=>{let Y=Buffer.isBuffer(X)?X:Buffer.from(X),Z=Wi(X);if(this.assertSendableMessageSize(Z),G.addBufferedAmount(Z),this.dataChannelQueue.push(typeof X==="string"?[G,bF,Y]:[G,mF,Y]),this.sctp.associationState!==4)FY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),Z};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(G=cQ){return new Xx(G)}setRemoteMaxMessageSize(G){this.remoteMaxMessageSize=G??cQ}setRemotePort(G){this.sctp.setRemotePort(G)}async start(G){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(G)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(G){if(!["closing","closed"].includes(G.readyState))if(G.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(G.id))this.sctp.reconfigQueue.push(G.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((X)=>X[0].id!==G.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((X)=>X!==G.id),G.id)delete this.dataChannels[G.id];G.setReadyState("closed")}}},Xx=class{constructor(W){this.maxMessageSize=W}},Or=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},oq=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(G){let[X,Y]=Kr(G),Z=new W;X.forEach((Q)=>{if(Q.startsWith("v="))Z.version=Number.parseInt(Q.slice(2),10);else if(Q.startsWith("o="))Z.origin=Q.slice(2);else if(Q.startsWith("s="))Z.name=Q.slice(2);else if(Q.startsWith("c="))Z.host=jO(Q.slice(2));else if(Q.startsWith("t="))Z.time=Q.slice(2);else if(Q.startsWith("a=")){let[J,U]=OO(Q);switch(J){case"fingerprint":{let[N,q]=U?.split(" ")||[];Z.dtlsFingerprints.push(new bO(N,q))}break;case"ice-lite":Z.iceLite=!0;break;case"ice-options":Z.iceOptions=U;break;case"ice-pwd":Z.icePassword=U;break;case"ice-ufrag":Z.iceUsernameFragment=U;break;case"group":KO(Z.group,U);break;case"msid-semantic":KO(Z.msidSemantic,U);break;case"setup":Z.dtlsRole=cF[U];break;case"extmap-allow-mixed":Z.extMapAllowMixed=!0;break}}});let V=Z.group.find((Q)=>Q.semantic==="BUNDLE");return Y.forEach((Q)=>{let U=Q[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!U)throw Error("m line not found");let N=U[1],q=U[4].split(" "),A=["audio","video"].includes(N)?q.map((w)=>Number(w)):void 0,H=new aO(N,Number.parseInt(U[2]),U[3],A||q);if(H.dtlsParams=new mO([...Z.dtlsFingerprints],Z.dtlsRole),H.iceParams=new nS({iceLite:Z.iceLite,usernameFragment:Z.iceUsernameFragment,password:Z.icePassword}),H.iceOptions=Z.iceOptions,Z.media.push(H),Q.slice(1).forEach((w)=>{if(w.startsWith("c="))H.host=jO(w.slice(2));else if(w.startsWith("a=")){let[C,D]=OO(w);switch(C){case"candidate":if(!D)throw Error();H.iceCandidates.push(Zx(D));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[x,h]=D.split(" ");if(x.includes("/"))[x]=x.split("/");H.rtp.headerExtensions.push(new Xi({id:Number.parseInt(x),uri:h}))}break;case"fingerprint":{if(!D)throw Error();let[x,h]=D.split(" ");H.dtlsParams?.fingerprints.push(new bO(x,h))}break;case"ice-options":H.iceOptions=D;break;case"ice-pwd":H.iceParams.password=D;break;case"ice-ufrag":H.iceParams.usernameFragment=D;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new Xx(Number.parseInt(D,10));break;case"mid":H.rtp.muxId=D;break;case"msid":H.msid=D;break;case"rtcp":{let[x,h]=b4(D," ");H.rtcpPort=Number.parseInt(x),H.rtcpHost=jO(h)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=cF[D];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=C;break;case"rtpmap":{let[x,h]=b4(D," "),[p,u,n]=h.split("/"),c;if(H.kind==="audio")c=n?Number.parseInt(n):1;let l=new $G({mimeType:H.kind+"/"+p,channels:c,clockRate:Number.parseInt(u),payloadType:Number.parseInt(x)});H.rtp.codecs.push(l)}break;case"sctpmap":{if(!D)throw Error();let[x,h]=b4(D," ");H.sctpMap[Number.parseInt(x)]=h,H.sctpPort=Number.parseInt(x)}break;case"sctp-port":if(!D)throw Error();H.sctpPort=Number.parseInt(D);break;case"ssrc":{let[x,h]=b4(D," "),p=Number.parseInt(x),[u,n]=b4(h,":"),c=H.ssrc.find((l)=>l.ssrc===p);if(!c)c=new tO({ssrc:p}),H.ssrc.push(c);if(vS.includes(u))c[u]=n}break;case"ssrc-group":KO(H.ssrcGroup,D);break;case"rid":{let[x,h]=b4(D," ");H.simulcastParameters.push(new SS({rid:x,direction:h}))}break}}}),!H.iceParams.usernameFragment||!H.iceParams.password){if(H.rtp.muxId&&V&&V.items.includes(H.rtp.muxId))for(let w=0;w<V.items.length;w++){if(!V.items.includes(w.toString()))continue;let C=Z.media[w];if(C.iceParams?.usernameFragment&&C.iceParams.password){H.iceParams={...C.iceParams};break}}}if(!H.dtlsParams.role)H.dtlsParams=void 0;let I=(w)=>H.rtp.codecs.find((C)=>C.payloadType===w);Q.slice(1).forEach((w)=>{if(w.startsWith("a=")){let[C,D]=OO(w);if(C==="fmtp"){let[x,h]=b4(D," "),p=I(Number(x));p.parameters=h}else if(C==="rtcp-fb"){let[x,h,p]=D.split(" ");H.rtp.codecs.forEach((u)=>{if(["*",u.payloadType.toString()].includes(x))u.rtcpFeedback.push(new Yi({type:h,parameter:p}))})}}})}),Z}webrtcTrackId(G){if(G.msid?.includes(" ")){let X=G.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(X[0])||Y.items.includes("*")))return X[1]}return}get string(){let G=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)G.push(`c=${sO(this.host)}`);if(G.push(`t=${this.time}`),this.group.forEach((Z)=>G.push(`a=group:${Z.str}`)),this.extMapAllowMixed)G.push("a=extmap-allow-mixed");this.msidSemantic.forEach((Z)=>G.push(`a=msid-semantic:${Z.str}`));let X=this.media.map((Z)=>Z.toString()).join("");return G.join(`\r
243
243
  `)+`\r
244
244
  `+X}toJSON(){return new Cr(this.string,this.type)}toSdp(){return{type:this.type,sdp:this.string}}},aO=class{constructor(W,G,X,Y){this.kind=W,this.port=G,this.profile=X,this.fmt=Y}host;direction;msid;rtcpPort;rtcpHost;rtcpMux=!1;ssrc=[];ssrcGroup=[];rtp={codecs:[],headerExtensions:[]};sctpCapabilities;sctpMap={};sctpPort;dtlsParams;iceParams;iceCandidates=[];iceCandidatesComplete=!1;iceOptions;simulcastParameters=[];toString(){let W=[];if(W.push(`m=${this.kind} ${this.port} ${this.profile} ${this.fmt.map((G)=>G.toString()).join(" ")}`),this.host)W.push(`c=${sO(this.host)}`);if(this.iceCandidates.forEach((G)=>{W.push(`a=candidate:${Yx(G)}`)}),this.iceCandidatesComplete)W.push("a=end-of-candidates");if(this.iceParams?.usernameFragment)W.push(`a=ice-ufrag:${this.iceParams.usernameFragment}`);if(this.iceParams?.password)W.push(`a=ice-pwd:${this.iceParams.password}`);if(this.iceParams?.iceLite)W.push("a=ice-lite");if(this.iceOptions)W.push(`a=ice-options:${this.iceOptions}`);if(this.dtlsParams)this.dtlsParams.fingerprints.forEach((G)=>{W.push(`a=fingerprint:${G.algorithm} ${G.value}`)}),W.push(`a=setup:${gO[this.dtlsParams.role]}`);if(this.direction)W.push(`a=${this.direction}`);if(this.rtp.muxId)W.push(`a=mid:${this.rtp.muxId}`);if(this.msid)W.push(`a=msid:${this.msid}`);if(this.rtcpPort&&this.rtcpHost){if(W.push(`a=rtcp:${this.rtcpPort} ${sO(this.rtcpHost)}`),this.rtcpMux)W.push("a=rtcp-mux")}if(this.ssrcGroup.forEach((G)=>{W.push(`a=ssrc-group:${G.str}`)}),this.ssrc.forEach((G)=>{vS.forEach((X)=>{let Y=G[X];if(Y!==void 0)W.push(`a=ssrc:${G.ssrc} ${X}:${Y}`)})}),this.rtp.codecs.forEach((G)=>{if(W.push(`a=rtpmap:${G.payloadType} ${G.str}`),G.rtcpFeedback.forEach((X)=>{let Y=X.type;if(X.parameter)Y+=` ${X.parameter}`;W.push(`a=rtcp-fb:${G.payloadType} ${Y}`)}),G.parameters)W.push(`a=fmtp:${G.payloadType} ${G.parameters}`)}),Object.keys(this.sctpMap).forEach((G)=>{let X=this.sctpMap[Number(G)];W.push(`a=sctpmap:${G} ${X}`)}),this.sctpPort)W.push(`a=sctp-port:${this.sctpPort}`);if(this.sctpCapabilities)W.push(`a=max-message-size:${this.sctpCapabilities.maxMessageSize}`);if(this.rtp.headerExtensions.forEach((G)=>W.push(`a=extmap:${G.id} ${G.uri}`)),this.simulcastParameters.length){this.simulcastParameters.forEach((Z)=>{W.push(`a=rid:${Z.rid} ${Z.direction}`)});let G="a=simulcast:",X=this.simulcastParameters.filter((Z)=>Z.direction==="recv");if(X.length)G+=`recv ${X.map((Z)=>Z.rid).join(";")} `;let Y=this.simulcastParameters.filter((Z)=>Z.direction==="send");if(Y.length)G+=`send ${Y.map((Z)=>Z.rid).join(";")}`;W.push(G)}return W.join(`\r
245
245
  `)+`\r
246
246
  `}},oQ=class{constructor(W,G){this.semantic=W,this.items=G}get str(){return`${this.semantic} ${this.items.join(" ")}`}};function jO(W){let G=W.match(/^IN (IP4|IP6) ([^ ]+)$/);if(!G)throw Error("exception");return G[2]}function sO(W){return`IN IP${hi(W)?4:6} ${W}`}function Yx(W){let G=`${W.foundation} ${W.component} ${W.protocol} ${W.priority} ${W.ip} ${W.port} typ ${W.type}`;if(W.relatedAddress!=null)G+=` raddr ${W.relatedAddress}`;if(W.relatedPort!=null)G+=` rport ${W.relatedPort}`;if(W.tcpType!=null)G+=` tcptype ${W.tcpType}`;if(W.generation!=null)G+=` generation ${W.generation}`;if(W.ufrag!=null)G+=` ufrag ${W.ufrag}`;return G}function Kr(W){let G=[],X=[],Y=W.split(`\r
247
247
  `);if(Y.length===1)Y=W.split(`
248
- `);return Y.forEach((Z)=>{if(Z.startsWith("m="))X.push([Z]);else if(X.length>0)X[X.length-1].push(Z);else G.push(Z)}),[G,X]}function OO(W){if(W.includes(":")){let G=b4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function KO(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new oQ(Y[0],Y.slice(1).map(X)))}function Zx(W){let G=DG.fromSdp(W);return eQ(G)}var Cr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function V2(W,G){let Y=new Rq(ui(64)).toString().slice(0,8),Z=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new oQ("WMS",["*"])),G.type=W}function UH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,Z]=b4(X,"=");if(ji.includes(Y))G[Y]=Number(Z);else G[Y]=Z}else if(X.includes(":")){let[Y,Z]=X.split(":");G[Y]=Number.isNaN(Number(Z))?Z:Number(Z)}else G[X]=void 0}),G}var tO=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},kq=T1("werift:packages/webrtc/src/media/rtpReceiver.ts"),Vx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new ki(this);audioRedHandler=new oo;type="receiver";uuid=Ni().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new f0;dtlsTransport;sdesMid;latestRid;latestRepairedRid;receiverTWCC;stopped=!1;remoteStreamId;remoteTrackId;rtcpRunning=!1;rtcpCancel=new AbortController;remoteStreams={};setDtlsTransport(W){this.dtlsTransport=W}get track(){return this.tracks[0]??new uO({kind:this.kind})}get nackEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type==="nack")}get twccEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===Gi().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===UJ().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new vi(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await IO(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let Z=0,V=0;if(this.lastSRtimestamp[X]){Z=this.lastSRtimestamp[X];let Q=QH()-this.receiveLastSRTimestamp[X];if(Q>0&&Q<65536)V=lQ(Q*65536)}return new GK({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:Z,dlsr:V})}),G=new rQ({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await IO(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){kq("sendRtcp failed",X),await IO(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let Z=this.remoteStreams[Y.ssrc];if(!Z)continue;let V={type:"inbound-rtp",id:Z8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?Z8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:Z.packets_received,packetsLost:Z.packets_lost,jitter:Z.jitter};if(G.push(V),this.lastSRtimestamp[Y.ssrc]){let Q={type:"remote-outbound-rtp",id:Z8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:V.codecId,localId:V.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(Q)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){kq("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;kq("sendRtcpPLI",{mediaSsrc:W});let G=new iQ({feedback:new GH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){kq(X)}}handleRtcpPacket(W){switch(W.type){case hY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=lS(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=QH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new gi(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let V=G[D9.transportWideCC];if(!V==null)throw Error("undefined");this.receiverTWCC.handleTWCC(V)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let V=this.ssrcByRtx[W.header.ssrc],Q=UH(Y.parameters??""),J=this.codecs[Q.apt];if(W.payload.length<2)return;W=no(W,J.payloadType,V),X=this.trackBySSRC[V]}let Z;if(Y.name.toLowerCase()==="red"){if(Z=XS.deSerialize(W.payload),!Object.keys(this.codecs).includes(Z.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(Z){if(X.kind==="audio"){let V=this.audioRedHandler.push(Z,W);for(let Q of V)X.onReceiveRtp.execute(Q.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},hQ=T1("werift:packages/webrtc/src/media/router.ts"),Dr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){hQ("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){hQ("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new uO({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;hQ("registerRtpReceiverByRid",G),W.addTrack(new uO({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=xo(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[D9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((Q)=>Q instanceof Vx).find((Q)=>Q.trackBySSRC[W.header.ssrc]),X)hQ("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){hQ("ssrcReceiver not found");return}let Z=G[D9.sdesMid];if(typeof Z==="string")X.sdesMid=Z;let V=G[D9.repairedRtpStreamId];if(typeof V==="string")X.latestRepairedRid=V};routeRtcp=(W)=>{let G=[];switch(W.type){case hY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case rQ.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case VH.type:{let X=W}break;case uY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case iQ.type:{let X=W;switch(X.feedback.count){case XH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},Mr=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return WH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return WH(G)}},SY=20,Tr=10,Pr=class{congestion=!1;onAvailableBitrate=new f0;onCongestion=new f0;onCongestionScore=new f0;congestionCounter=0;cumulativeResult=new Mr;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=pS()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<SY)this.congestionCounter++;else if(this.congestionScore<Tr)this.congestionScore++;if(this.congestionCounter>=SY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let Z=Y.sequenceNumber,V=this.sentInfos[Z];if(!V)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(V.size,V.sendingAtMs,Y.receivedAtMs)}if(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-SY){let Y=WH(SY/2)+1,Z=WH(SY/4)+1,V=Y-(Y-Z)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-V}if(this.congestionCounter<=-SY){if(this.congestionScore>1)this.congestionScore--,this.onCongestion.execute(!1);this.congestionCounter=0}if(this.congestionCounter<=0&&this.congestion)this.congestion=!1,this.onCongestion.execute(this.congestion)}}rtpPacketSent(W){Object.keys(W).map((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CO=T1("werift:packages/webrtc/src/media/rtpSender.ts"),N2=128,q2=0.85,Rr=class{constructor(W){if(this.trackOrKind=W,this.kind=typeof this.trackOrKind==="string"?this.trackOrKind:this.trackOrKind.kind,typeof W!=="string"){if(W.streamId)this.streamId=W.streamId;this.registerTrack(W)}}type="sender";kind;ssrc=a1.Unpack("!L",Q2(4))[0];rtxSsrc=a1.Unpack("!L",Q2(4))[0];streamId=J2().toString();trackId=J2().toString();onReady=new f0;onRtcp=new f0;onPictureLossIndication=new f0;onGenericNack=new f0;senderBWE=new Pr;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=z2();redRedundantPayloadType;_redDistance=2;redEncoder=new po(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=UH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),CO("replaceTrack","ssrc",W.ssrc,"rid",W.rid)}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.disposeTrack)this.disposeTrack();this.track=void 0}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await U2(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new hY({ssrc:this.ssrc,senderInfo:new GS({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=lS(this.ntpTimestamp),this.lastSentSRTimestamp=QH(),this.cname)W.push(new VH({chunks:[new e2({source:this.ssrc,items:[new WS({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CO("sendRtcp failed",G),await U2(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=M9(this.sequenceNumber,-W),X)this.seqOffset=M9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=yY(this.timestamp,-G),X)this.timestampOffset=M9(this.timestampOffset,1)}this.rtpCache=[],CO("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?t6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=yY(G.timestamp,this.timestampOffset),G.sequenceNumber=M9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=$i(),Z=[...G.extensions];G.extensions=this.headerExtensions.map((N)=>{let q=(()=>{switch(N.uri){case D9.sdesMid:if(this.mid)return ko(this.mid);return;case D9.sdesRTPStreamID:if(this.rtpStreamId)return _o(this.rtpStreamId);return;case D9.repairedRtpStreamId:if(this.repairedRtpStreamId)return yo(this.repairedRtpStreamId);return;case D9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=M9(this.dtlsTransport.transportSequenceNumber,1),vo(this.dtlsTransport.transportSequenceNumber);case D9.absSendTime:return go(Y)}})();if(q)return{id:N.id,payload:q}}).filter((N)=>N);for(let N of Z){let q=G.extensions.find((A)=>A.id===N.id);if(q)q.payload=N.payload;else G.extensions.push(N)}G.extensions=G.extensions.sort((N,q)=>N.id-q.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=yY(this.packetCount,1),this.rtpCache[G.sequenceNumber%N2]=W;let V=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:V,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),V=this.redEncoder.build().serialize();let Q=await this.dtlsTransport.sendRtp(V,G);this.runRtcp();let J=pS(),U={wideSeq:this.dtlsTransport.transportSequenceNumber,size:Q,sendingAtMs:J,sentAtMs:J};this.senderBWE.rtpPacketSent(U)}handleRtcpPacket(W){switch(W.type){case hY.type:case rQ.type:W.reports.filter((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=QH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=q2*this.rtt+(1-q2)*Y}}});break;case uY.type:{let G=W;switch(G.feedback.count){case ZH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case YH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let Z=this.rtpCache[Y%N2];if(Z&&Z.header.sequenceNumber!==Y)Z=void 0;if(Z){if(this.rtxPayloadType!=null)Z=io(Z,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=M9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(Z.payload,Z.header)}}),this.onGenericNack.execute(X)}break}}break;case iQ.type:{let G=W;switch(G.feedback.count){case XH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case GH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:Z8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?Z8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let Z={type:"media-source",id:Z8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(Z)}if(this.rtt!==void 0){let Z={type:"remote-inbound-rtp",id:Z8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(Z)}return G}},Br=T1("werift:packages/webrtc/src/transport/sctpManager.ts"),Er=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new f0;constructor(){}createSctpTransport(W){let G=new jr(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let Z=new FS({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),V=new $S(this.sctpTransport,Z);return this.dataChannelsOpened++,this.dataChannels.push(V),V.stateChange.subscribe((Q)=>{if(Q==="closed"){this.dataChannelsClosed++;let J=this.dataChannels.indexOf(V);if(J!==-1)this.dataChannels.splice(J,1)}}),V}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),Br("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=FG(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:Z8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},$r=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new aO(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new tO({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new SS(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new tO({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new oQ("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new aO("application",fF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=wi,W.port=fF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let Z=oq.parse(W);return this.validateDescription({description:Z,isLocal:G,signalingState:X}),Z.type=Y,Z}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new oq;V2("offer",X),(this.currentLocalDescription?.media??[]).forEach((Z,V)=>{let Q=Z.rtp.muxId;if(!Q)return;if(Z.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=V,X.media.push(this.createMediaDescriptionForSctp(G))}else{let J=W.find((U)=>U.mid===Q);if(!J){if(Z.direction==="inactive"){X.media.push(Z);return}throw Error("transceiver not found")}J.mLineIndex=V,X.media.push(this.createMediaDescriptionForTransceiver(J,J.direction))}});for(let Z of W.filter((V)=>!X.media.find((Q)=>Q.rtp.muxId===V.mid))){if(Z.mid==null)Z.mid=this.allocateMid(this.midSuffix?"av":"");let V=this.createMediaDescriptionForTransceiver(Z,Z.direction);if(Z.mLineIndex===void 0)Z.mLineIndex=X.media.length,X.media.push(V);else X.media[Z.mLineIndex]=V}if(G&&!X.media.find((Z)=>Z.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let Z=X.media.map((V)=>V.rtp.muxId).filter((V)=>V);if(Z.length){let V=new oQ("BUNDLE",Z);X.group.push(V)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new oq;V2("answer",Y);for(let Z of this._remoteDescription.media){let V,Q;if(["audio","video"].includes(Z.kind)){let J=W.find((U)=>U.mid===Z.rtp.muxId);if(!J)throw Error(`Transceiver with mid=${Z.rtp.muxId} not found`);Q=this.createMediaDescriptionForTransceiver(J,cS(J.direction,J.offerDirection)),V=J.dtlsTransport}else if(Z.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");Q=this.createMediaDescriptionForSctp(G),V=G.dtlsTransport}else throw Error("invalid kind");if(Q.dtlsParams)if(V.role==="auto")Q.dtlsParams.role="client";else Q.dtlsParams.role=V.role;if(Z.simulcastParameters&&Z.simulcastParameters.length>0)Q.simulcastParameters=Z.simulcastParameters.map((J)=>({...J,direction:J.direction==="send"?"recv":"send"}));Y.media.push(Q)}if(this.bundlePolicy!=="disable"){let Z=new oQ("BUNDLE",[]);for(let V of Y.media)if(V.rtp.muxId)Z.items.push(V.rtp.muxId);Y.group.push(Z)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((Q)=>[Q?.mLineIndex,Q])),Z=G.find((Q)=>Q?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((Q)=>["audio","video"].includes(Q.kind)).forEach((Q,J)=>{let N=(Y.get(J)??G[J])?.dtlsTransport??Z;if(!N)throw Error(`dtls transport not found for media index ${J}`);this.addTransportDescription(Q,N)});let V=W.media.find((Q)=>Q.kind==="application");if(X&&V)this.addTransportDescription(V,X.dtlsTransport);this.setLocalDescription(W)}},bQ=T1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),Fr=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;onIceCandidate=new f0;connectionStateChange=new f0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new dS(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((Z)=>Z.state!=="closed"),G=new ni({...Fi(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new oi(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new dF(this.config,X,this.certificate,Sr)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:Z,bundlePolicy:V}){if(V==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(Z)W.sdpMLineIndex=Z.mLineIndex,W.sdpMid=Z.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,G){let X=oS.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else bQ("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((Z)=>Y.includes(Z.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...Z){return W.filter((V)=>Z.includes(V.state)).length===W.length}function Y(...Z){return W.some((V)=>Z.includes(V.state))}if(this.connectionState==="closed")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;bQ("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)bQ("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{bQ("gatherCandidates failed",X)})}setConnectionState(W){bQ("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await dF.SetupCertificate();for(let W of this.dtlsTransports)W.localCertificate=this.certificate}async close(){this.setConnectionState("closed"),await Promise.allSettled([...this.dtlsTransports.map((W)=>W.stop())]),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),this.connectionStateChange.allUnsubscribe()}},Sr=[pF.SRTP_AEAD_AES_128_GCM,pF.SRTP_AES128_CM_HMAC_SHA1_80],t5=T1("werift:packages/webrtc/src/peerConnection.ts"),Qx=class extends UK{cname=Lr().toString();config=Jx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new Dr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;signalingStateChange=new f0;connectionStateChange=new f0;onDataChannel=new f0;onRemoteTransceiverAdded=new f0;onTransceiverAdded=new f0;onIceCandidate=new f0;onNegotiationneeded=new f0;onTrack=new f0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new $r({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new kr(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let Z={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",Z),this.ontrack)this.ontrack(Z)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new Er,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new Fr({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(Si(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of gF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((Z)=>Z.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((Z)=>{this.router.routeRtp(Z)}),X.onRtcp.subscribe((Z)=>{this.router.routeRtcp(Z)});let Y=X.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((Z)=>{if(!this.localDescription){t5("localDescription not found when ice candidate was gathered");return}if(!Z){if(this.sdpManager.setLocal(this._localDescription,this.transceiverManager.getTransceivers(),this.sctpTransport),this.onIceCandidate.execute(void 0),this.onicecandidate)this.onicecandidate({candidate:void 0});this.emit("icecandidate",{candidate:void 0});return}if(!this._localDescription){t5("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:Z,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((V)=>V?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[Z,V]of gF(X.media)){let Q=V.rtp.muxId;if(this.sdpManager.registerMid(Q),["audio","video"].includes(V.kind)){let J=this.transceiverManager.getTransceiverByMLineIndex(Z);if(J)J.mid=Q}if(V.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=Q}let Y=X.media.find((Z)=>Z.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let Z of this.transceiverManager.getTransceivers()){let V=cS(Z.direction,Z.offerDirection);Z.setCurrentDirection(V)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((Z)=>{t5("gatherCandidates failed",Z)}),X.type==="answer")this.connect().catch((Z)=>{t5("connect failed",Z),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(t5("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((Z)=>{throw t5("iceTransport.start failed",Z),Z}),Y())return;if(await G.start().catch((Z)=>{throw t5("dtlsTransport.start failed",Z),Z}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof oq)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((Q)=>Q.semantic==="BUNDLE"&&Q.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(Q,J)=>Q.kind===J.kind&&[void 0,J.rtp.muxId].includes(Q.mid),Z=G.media.map((Q,J)=>{let U;if(["audio","video"].includes(Q.kind)){let q=this.transceiverManager.getTransceivers().find((A)=>Y(A,Q));if(!q)q=this.addTransceiver(Q.kind,{direction:"recvonly"}),q.mid=Q.rtp.muxId,this.onRemoteTransceiverAdded.execute(q);else if(q.direction==="inactive"&&q.stopping){if(q.stopped=!0,W.type==="answer")q.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);U=q.dtlsTransport,this.transceiverManager.setRemoteRTP(q,Q,G.type,J)}else if(Q.kind==="application"){let q=this.sctpTransport;if(!q)q=this.createSctpTransport(),q.mid=Q.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);U=q.dtlsTransport,this.sctpManager.setRemoteSCTP(Q,J)}else throw Error("invalid media kind");let N=U.iceTransport;if(Q.iceParams){let q=!!this.sdpManager.inactiveRemoteMedia;if(N.setRemoteParams(Q.iceParams,q),Q.iceParams?.iceLite)N.connection.iceControlling=!0}if(Q.dtlsParams)U.setRemoteParams(Q.dtlsParams);if(Q.iceCandidates.forEach(N.addRemoteCandidate),Q.iceCandidatesComplete)N.addRemoteCandidate(void 0);if(G.type==="answer"&&Q.dtlsParams?.role)U.role=Q.dtlsParams.role==="client"?"server":"client";return N});Z=Z.filter((Q)=>!!Q);let V=this.transceiverManager.getTransceivers().filter((Q)=>G.media.find((J)=>Y(Q,J))==null);if(W.type==="answer")for(let Q of V)Q.stop(),Q.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.type==="answer")t5("caller start connect"),this.connect().catch((Q)=>{t5("connect failed",Q),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(t5("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=FG();return{type:"peer-connection",id:Z8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let Z=await this.sctpManager.getStats();if(Z)G.push(...Z)}return new Ki(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),t5("peerConnection closed")}},H2=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function Jx(){return{codecs:{audio:[kS(),_S()],video:[xS()]},headerExtensions:{audio:[],video:[]},iceTransportPolicy:"all",iceServers:[{urls:"stun:stun.l.google.com:19302"}],icePortRange:void 0,iceInterfaceAddresses:void 0,iceAdditionalHostAddresses:void 0,iceUseIpv4:!0,iceUseIpv6:!0,iceFilterStunResponse:void 0,iceFilterCandidatePair:void 0,icePasswordPrefix:void 0,iceUseLinkLocalAddress:void 0,dtls:{},bundlePolicy:"max-compat",debug:{},midSuffix:!1,forceTurnTCP:!1,maxMessageSize:cQ}}var KA0=Jx(),xr=T1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),kr=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new f0;onRemoteTransceiverAdded=new f0;onTrack=new f0;onNegotiationNeeded=new f0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,Z=X.direction||"sendrecv",V=new Rr(W),Q=new Vx(this.config,Y,V.ssrc),J=new Ci(Y,G,Q,V,Z);J.options=X,this.router.registerRtpSender(J.sender);let U=this.transceivers.findIndex((q)=>q.currentDirection==="inactive"&&!q.usedForSender),N=this.transceivers.find((q)=>q.currentDirection==="inactive"&&!q.usedForSender);if(U>-1&&N)this.replaceTransceiver(J,U),J.mLineIndex=N.mLineIndex,J.mid=N.mid,N.setCurrentDirection(void 0);else this.pushTransceiver(J);return this.onTransceiverAdded.execute(J),J}addTrack(W,G){if(this.getSenders().find((Z)=>Z.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mq.includes(Z.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mq.includes(Z.direction)===!1&&!Z.usedForSender);if(Y){switch(Y.sender.registerTrack(W),Y.direction){case"recvonly":Y.setDirection("sendrecv");break;case"inactive":Y.setDirection("sendonly");break}return Y}else return this.addTransceiver(W,void 0,{direction:"sendrecv"})}removeTrack(W){if(!this.getSenders().find(({ssrc:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(Oi.includes(W.direction))return!0;return!1}case"sendonly":{if(mq.includes(W.direction))return!0;return!1}case"sendrecv":{if([hS,uS,gS].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,Z)=>{if(Z.name.toLowerCase()==="rtx"){let V=UH(Z.parameters??""),Q=Y[V.apt];if(Q&&W.ssrc.length===2)Q.rtx=new Zi({ssrc:W.ssrc[1].ssrc});return Y}return Y[Z.payloadType]=new Vi({ssrc:W.ssrc[0]?.ssrc,payloadType:Z.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((J)=>{let U=this.config.codecs[G.kind]||[],N=H2(U,J);if(!N)return!1;if(N?.name.toLowerCase()==="rtx"){let A=UH(N.parameters??"").apt,H=G.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!H2(U,H)}return!0}),xr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((J)=>(this.config.headerExtensions[G.kind]||[]).find((U)=>U.uri===J.uri));let Z=G.direction??"inactive",V=Li(Z);if(["answer","pranswer"].includes(X))W.setCurrentDirection(V);else W.offerDirection=V;let Q=this.getLocalRtpParams(W);if(W.sender.prepareSend(Q),["recvonly","sendrecv"].includes(W.direction)){let J=this.getRemoteRtpParams(G,W);for(let U of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,U,J);W.receiver.prepareReceive(J),this.router.registerRtpReceiverBySsrc(W,J)}if(["sendonly","sendrecv"].includes(Z)){if(G.msid){let[J,U]=G.msid.split(" ");W.receiver.remoteStreamId=J,W.receiver.remoteTrackId=U}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new Mi({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let Z=await X.sender.getStats();if(Z)for(let V of Z)if(V.type==="outbound-rtp"||V.type==="media-source"){if(Y)G.push(V)}else G.push(V)}if(X.receiver){let Z=await X.receiver.getStats();if(Z)for(let V of Z)if(V.type==="inbound-rtp"||V.type==="remote-outbound-rtp"){if(Y)G.push(V)}else G.push(V)}if(Y){let Z=X.getCodecStats();if(Z)G.push(...Z)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class qK extends Qx{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var pY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_r={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yr=BigInt(0),Ux=BigInt(1),HK=BigInt(2);function vr(W){let G=pY.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=V5(q,X,G)*q%G,H=V5(A,X,G)*q%G,I=V5(H,HK,G)*N%G,w=V5(I,Z,G)*I%G,C=V5(w,V,G)*w%G,D=V5(C,J,G)*C%G,x=V5(D,U,G)*D%G,h=V5(x,J,G)*C%G,l=V5(h,X,G)*q%G,u=V5(l,Q,G)*w%G,n=V5(u,Y,G)*N%G,c=V5(n,HK,G);if(!OH.eql(OH.sqr(c),W))throw Error("Cannot find square root");return c}var OH=T5(pY.p,{sqrt:vr}),Hx=CY({...pY,Fp:OH,lowS:!0,endo:_r},jY),Nx={};function KH(W,...G){let X=Nx[W];if(X===void 0){let Y=jY(Nq(W));X=o9(Y,Y),Nx[W]=X}return jY(o9(X,...G))}var zK=(W)=>W.toBytes(!0).slice(1),lY=(()=>Hx.Point)(),IK=(W)=>W%HK===yr;function AK(W){let{Fn:G,BASE:X}=lY,Y=d6(G,W),Z=X.multiply(Y);return{scalar:IK(Z.y)?Y:G.neg(Y),bytes:zK(Z)}}function Ax(W){let G=OH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!IK(Z))Z=G.neg(Z);let V=lY.fromAffine({x:W,y:Z});return V.assertValidity(),V}var HJ=L4;function zx(...W){return lY.Fn.create(HJ(KH("BIP0340/challenge",...W)))}function qx(W){return AK(W).bytes}function gr(W,G,X=HG(32)){let{Fn:Y}=lY,Z=B8("message",W),{bytes:V,scalar:Q}=AK(G),J=B8("auxRand",X,32),U=Y.toBytes(Q^HJ(KH("BIP0340/aux",J))),N=KH("BIP0340/nonce",U,V,Z),{bytes:q,scalar:A}=AK(N),H=zx(q,V,Z),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!Ix(I,Z,V))throw Error("sign: Invalid signature produced");return I}function Ix(W,G,X){let{Fn:Y,BASE:Z}=lY,V=B8("signature",W,64),Q=B8("message",G),J=B8("publicKey",X,32);try{let U=Ax(HJ(J)),N=HJ(V.subarray(0,32));if(!RQ(N,Ux,pY.p))return!1;let q=HJ(V.subarray(32,64));if(!RQ(q,Ux,pY.n))return!1;let A=zx(Y.toBytes(N),zK(U),Q),H=Z.multiplyUnsafe(q).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!IK(w)||I!==N)return!1;return!0}catch(U){return!1}}var wx=(()=>{let X=(Z=HG(48))=>{return Iq(Z,pY.n)};Hx.utils.randomSecretKey;function Y(Z){let V=X(Z);return{secretKey:V,publicKey:qx(V)}}return{keygen:Y,getPublicKey:qx,sign:gr,verify:Ix,Point:lY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:KH,lift_x:Ax,pointToBytes:zK,numberToBytesBE:wY,bytesToNumberBE:L4,mod:Z5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var jx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),ur=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),hr=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(ur(X)!==W.id)return!1;return wx.verify(jx(W.sig),X,jx(W.pubkey))}catch{return!1}},br=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Ox({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=0,Y=0,Z=Bun.serve({port:W,fetch(V,Q){if(Q.upgrade(V))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:G.size,events:X,dropped:Y})},websocket:{open(V){G.set(V,new Map)},close(V){G.delete(V)},async message(V,Q){let J;try{J=JSON.parse(String(Q))}catch{return}if(!Array.isArray(J))return;let[U,N,q]=J;if(U==="REQ"&&typeof N==="string"&&q&&typeof q==="object"){G.get(V)?.set(N,q),V.send(JSON.stringify(["EOSE",N]));return}if(U==="CLOSE"&&typeof N==="string"){G.get(V)?.delete(N);return}if(U==="EVENT"&&N&&typeof N==="object"){if(!await hr(N)){Y++,V.send(JSON.stringify(["OK",N.id??"",!1,"invalid: bad signature"]));return}X++,V.send(JSON.stringify(["OK",N.id,!0,""]));for(let[A,H]of G)for(let[I,w]of H)if(br(w,N)){try{A.send(JSON.stringify(["EVENT",I,N]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${Z.port} (ephemeral, schnorr-verified)`),{port:Z.port,stats:()=>({connections:G.size,events:X,dropped:Y}),stop:()=>Z.stop(!0)}}var CH="6.15.0";function mr(W,G,X){let Y=G.split("|").map((V)=>V.trim());for(let V=0;V<Y.length;V++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let Z=Error(`invalid value for type ${G}`);throw Z.code="INVALID_ARGUMENT",Z.argument=`value.${X}`,Z.value=W,Z}async function p7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,Z,V)=>{return Y[G[V]]=Z,Y},{})}function Q8(W,G,X){for(let Y in G){let Z=G[Y],V=X?X[Y]:null;if(V)mr(Z,V,Y);Object.defineProperty(W,Y,{enumerable:!0,value:Z,writable:!1})}}function dY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>dY(X,G)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let Z=0;Z<W.length;Z++)Y+="0123456789abcdef"[W[Z]>>4],Y+="0123456789abcdef"[W[Z]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return dY(W.toJSON(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${dY(Y,G)}: ${dY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function DH(W,G){return W&&W.code===G}function AJ(W,G,X){let Y=W;{let V=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${dY(X)}`);for(let Q in X){if(Q==="shortMessage")continue;let J=X[Q];V.push(Q+"="+dY(J))}}if(V.push(`code=${G}`),V.push(`version=${CH}`),V.length)W+=" ("+V.join(", ")+")"}let Z;switch(G){case"INVALID_ARGUMENT":Z=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":Z=RangeError(W);break;default:Z=Error(W)}if(Q8(Z,{code:G}),X)Object.assign(Z,X);if(Z.shortMessage==null)Q8(Z,{shortMessage:Y});return Z}function t0(W,G,X,Y){if(!W)throw AJ(G,X,Y)}function s(W,G,X,Y){t0(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var fr=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function oY(W){t0(fr.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function l4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,Z="new";if(X)Y+=".",Z+=" "+X;t0(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:Z})}}function Cx(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),Z=2;for(let V=0;V<Y.length;V++)Y[V]=parseInt(W.substring(Z,Z+2),16),Z+=2;return Y}s(!1,"invalid BytesLike value",G||"value",W)}function R0(W,G){return Cx(W,G,!1)}function Y7(W,G){return Cx(W,G,!0)}function T9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function l7(W){return T9(W,!0)||W instanceof Uint8Array}var Kx="0123456789abcdef";function C0(W){let G=R0(W),X="0x";for(let Y=0;Y<G.length;Y++){let Z=G[Y];X+=Kx[(Z&240)>>4]+Kx[Z&15]}return X}function s1(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function d4(W){if(T9(W,!0))return(W.length-2)/2;return R0(W).length}function nY(W,G,X){let Y=R0(W);if(X!=null&&X>Y.length)t0(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function cr(W,G,X){let Y=R0(W);t0(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let Z=new Uint8Array(G);if(Z.fill(0),X)Z.set(Y,G-Y.length);else Z.set(Y,0);return C0(Z)}function N5(W,G){return cr(W,G,!0)}var wK=BigInt(0),SG=BigInt(1),iY=9007199254740991;function MH(W,G){let X=u1(W,"value"),Y=BigInt(i8(G,"width")),Z=SG<<Y-SG;if(X<wK){X=-X,t0(X<=Z,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let V=(SG<<Y)-SG;return(~X&V)+SG}else t0(X<Z,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function TH(W,G){let X=zJ(W,"value"),Y=BigInt(i8(G,"bits"));return X&(SG<<Y)-SG}function u1(W,G){switch(typeof W){case"bigint":return W;case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){s(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}s(!1,"invalid BigNumberish value",G||"value",W)}function zJ(W,G){let X=u1(W,G);return t0(X>=wK,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var Dx="0123456789abcdef";function rY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=Dx[X>>4],G+=Dx[X&15];return BigInt(G)}return u1(W)}function i8(W,G){switch(typeof W){case"bigint":return s(W>=-iY&&W<=iY,"overflow",G||"value",W),Number(W);case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return i8(BigInt(W),G)}catch(X){s(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}s(!1,"invalid numeric value",G||"value",W)}function Z7(W,G){let Y=zJ(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let Z=i8(G,"width");t0(Z*2>=Y.length,`value exceeds width (${Z} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<Z*2)Y="0"+Y}return"0x"+Y}function J8(W){let G=zJ(W,"value");if(G===wK)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let Z=0;Z<Y.length;Z++){let V=Z*2;Y[Z]=parseInt(X.substring(V,V+2),16)}return Y}function PH(W){let G=C0(l7(W)?W:J8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var LH="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",RH=null;function pr(W){if(RH==null){RH={};for(let X=0;X<LH.length;X++)RH[LH[X]]=BigInt(X)}let G=RH[W];return s(G!=null,"invalid base58 value","letter",W),G}var lr=BigInt(0),jK=BigInt(58);function BH(W){let G=R0(W),X=rY(G),Y="";while(X)Y=LH[Number(X%jK)]+Y,X/=jK;for(let Z=0;Z<G.length;Z++){if(G[Z])break;Y=LH[0]+Y}return Y}function EH(W){let G=lr;for(let X=0;X<W.length;X++)G*=jK,G+=pr(W[X]);return G}function dr(W,G,X,Y,Z){s(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Mx(W,G,X,Y,Z){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let V=0;for(let Q=G+1;Q<X.length;Q++){if(X[Q]>>6!==2)break;V++}return V}if(W==="OVERRUN")return X.length-G-1;return 0}function or(W,G,X,Y,Z){if(W==="OVERLONG")return s(typeof Z==="number","invalid bad code point for replacement","badCodepoint",Z),Y.push(Z),0;return Y.push(65533),Mx(W,G,X,Y,Z)}var Tx=Object.freeze({error:dr,ignore:Mx,replace:or});function P9(W,G){if(s(typeof W==="string","invalid string value","str",W),G!=null)oY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let Z=W.charCodeAt(Y);if(Z<128)X.push(Z);else if(Z<2048)X.push(Z>>6|192),X.push(Z&63|128);else if((Z&64512)==55296){Y++;let V=W.charCodeAt(Y);s(Y<W.length&&(V&64512)===56320,"invalid surrogate pair","str",W);let Q=65536+((Z&1023)<<10)+(V&1023);X.push(Q>>18|240),X.push(Q>>12&63|128),X.push(Q>>6&63|128),X.push(Q&63|128)}else X.push(Z>>12|224),X.push(Z>>6&63|128),X.push(Z&63|128)}return new Uint8Array(X)}function nr(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function Px(W,G,X){let Y=0;for(let Z=0;Z<X;Z++)Y=Y*256+W[G+Z];return Y}function Rx(W,G,X,Y){let Z=[];while(X<G+1+Y){let V=Lx(W,X);Z.push(V.result),X+=V.consumed,t0(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:Z}}function Lx(W,G){t0(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{t0(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let Z=Px(W,G+1,Y);return X(G+1+Y+Z),Rx(W,G,G+1+Y,Y+Z)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),Rx(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let Z=Px(W,G+1,Y);X(G+1+Y+Z);let V=C0(W.slice(G+1+Y,G+1+Y+Z));return{consumed:1+Y+Z,result:V}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let Z=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:Z}}return{consumed:1,result:nr(W[G])}}function WW(W){let G=R0(W,"data"),X=Lx(G,0);return s(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function Bx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function $x(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(V){Y=Y.concat($x(V))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let Z=Bx(Y.length);return Z.unshift(247+Z.length),Z.concat(Y)}let G=Array.prototype.slice.call(R0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=Bx(G.length);return X.unshift(183+X.length),X.concat(G)}var Ex="0123456789abcdef";function R5(W){let G="0x";for(let X of $x(W))G+=Ex[X>>4],G+=Ex[X&15];return G}function $H(W){let G=R0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OK,createHmac as Fx,pbkdf2Sync as Sx,randomBytes as xx}from"crypto";var kx=!1,_x=function(W,G,X){return Fx(W,G).update(X).digest()},yx=_x;function GW(W,G,X){let Y=R0(G,"key"),Z=R0(X,"data");return C0(yx(W,Y,Z))}GW._=_x;GW.lock=function(){kx=!0};GW.register=function(W){if(kx)throw Error("computeHmac is locked");yx=W};Object.freeze(GW);function R9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function IJ(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function FH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");R9(W.outputLen),R9(W.blockLen)}function o4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function SH(W,G){IJ(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var xH=BigInt(4294967295),vx=BigInt(32);function Xa(W,G=!1){if(G)return{h:Number(W&xH),l:Number(W>>vx&xH)};return{h:Number(W>>vx&xH)|0,l:Number(W&xH)|0}}function gx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let Z=0;Z<W.length;Z++){let{h:V,l:Q}=Xa(W[Z],G);[X[Z],Y[Z]]=[V,Q]}return[X,Y]}var ux=(W,G,X)=>W<<X|G>>>32-X,hx=(W,G,X)=>G<<X|W>>>32-X,bx=(W,G,X)=>G<<X-32|W>>>64-X,mx=(W,G,X)=>W<<X-32|G>>>64-X;import*as wJ from"crypto";var kH=wJ&&typeof wJ==="object"&&"webcrypto"in wJ?wJ.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var fx=(W)=>W instanceof Uint8Array;var aY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),sY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),V7=(W,G)=>W<<32-G|W>>>G,Ya=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Ya)throw Error("Non little-endian hardware is not supported");var Za=async()=>{};async function _H(W,G,X){let Y=Date.now();for(let Z=0;Z<W;Z++){X(Z);let V=Date.now()-Y;if(V>=0&&V<G)continue;await Za(),Y+=V}}function Va(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function d7(W){if(typeof W==="string")W=Va(W);if(!fx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function cx(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!fx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class xG{clone(){return this._cloneInto()}}var Qa={}.toString;function yH(W,G){if(G!==void 0&&Qa.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function tY(W){let G=(Y)=>W().update(d7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function px(W=32){if(kH&&typeof kH.getRandomValues==="function")return kH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[ox,nx,ix]=[[],[],[]],Ja=BigInt(0),jJ=BigInt(1),Ua=BigInt(2),Na=BigInt(7),qa=BigInt(256),Ha=BigInt(113);for(let W=0,G=jJ,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],ox.push(2*(5*Y+X)),nx.push((W+1)*(W+2)/2%64);let Z=Ja;for(let V=0;V<7;V++)if(G=(G<<jJ^(G>>Na)*Ha)%qa,G&Ua)Z^=jJ<<(jJ<<BigInt(V))-jJ;ix.push(Z)}var[Aa,za]=gx(ix,!0),lx=(W,G,X)=>X>32?bx(W,G,X):ux(W,G,X),dx=(W,G,X)=>X>32?mx(W,G,X):hx(W,G,X);function Ia(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let Q=0;Q<10;Q++)X[Q]=W[Q]^W[Q+10]^W[Q+20]^W[Q+30]^W[Q+40];for(let Q=0;Q<10;Q+=2){let J=(Q+8)%10,U=(Q+2)%10,N=X[U],q=X[U+1],A=lx(N,q,1)^X[J],H=dx(N,q,1)^X[J+1];for(let I=0;I<50;I+=10)W[Q+I]^=A,W[Q+I+1]^=H}let Z=W[2],V=W[3];for(let Q=0;Q<24;Q++){let J=nx[Q],U=lx(Z,V,J),N=dx(Z,V,J),q=ox[Q];Z=W[q],V=W[q+1],W[q]=U,W[q+1]=N}for(let Q=0;Q<50;Q+=10){for(let J=0;J<10;J++)X[J]=W[Q+J];for(let J=0;J<10;J++)W[Q+J]^=~X[(J+2)%10]&X[(J+4)%10]}W[0]^=Aa[Y],W[1]^=za[Y]}X.fill(0)}class KK extends xG{constructor(W,G,X,Y=!1,Z=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=Z,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,R9(X),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=aY(this.state)}keccak(){Ia(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){o4(this);let{blockLen:G,state:X}=this;W=d7(W);let Y=W.length;for(let Z=0;Z<Y;){let V=Math.min(G-this.pos,Y-Z);for(let Q=0;Q<V;Q++)X[this.pos++]^=W[Z++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){o4(this,!1),IJ(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,Z=W.length;Y<Z;){if(this.posOut>=X)this.keccak();let V=Math.min(X-this.posOut,Z-Y);W.set(G.subarray(this.posOut,this.posOut+V),Y),this.posOut+=V,Y+=V}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return R9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(SH(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:Z,enableXOF:V}=this;return W||(W=new KK(G,X,Y,V,Z)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=Z,W.suffix=X,W.outputLen=Y,W.enableXOF=V,W.destroyed=this.destroyed,W}}var wa=(W,G,X)=>tY(()=>new KK(G,W,X));var rx=wa(1,136,32);var ax=!1,sx=function(W){return rx(W)},tx=sx;function X8(W){let G=R0(W,"data");return C0(tx(G))}X8._=sx;X8.lock=function(){ax=!0};X8.register=function(W){if(ax)throw TypeError("keccak256 is locked");tx=W};Object.freeze(X8);function ja(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,N=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+N,J,Y)}class OJ extends xG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=sY(this.buffer)}update(W){o4(this);let{view:G,buffer:X,blockLen:Y}=this;W=d7(W);let Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=sY(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){o4(this),SH(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,this.buffer.subarray(V).fill(0),this.padOffset>Y-V)this.process(X,0),V=0;for(let q=V;q<Y;q++)G[q]=0;ja(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=sY(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,N=this.get();if(U>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<U;q++)Q.setUint32(4*q,N[q],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.length=Y,W.pos=Q,W.finished=Z,W.destroyed=V,Y%G)W.buffer.set(X);return W}}var Oa=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Wk=Uint8Array.from({length:16},(W,G)=>G),Ka=Wk.map((W)=>(9*W+5)%16),CK=[Wk],DK=[Ka];for(let W=0;W<4;W++)for(let G of[CK,DK])G.push(G[W].map((X)=>Oa[X]));var Gk=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((W)=>new Uint8Array(W)),Ca=CK.map((W,G)=>W.map((X)=>Gk[G][X])),Da=DK.map((W,G)=>W.map((X)=>Gk[G][X])),Ma=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Ta=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),vH=(W,G)=>W<<G|W>>>32-G;function ex(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var gH=new Uint32Array(16);class Xk extends OJ{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:W,h1:G,h2:X,h3:Y,h4:Z}=this;return[W,G,X,Y,Z]}set(W,G,X,Y,Z){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=Z|0}process(W,G){for(let H=0;H<16;H++,G+=4)gH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,Z=this.h1|0,V=Z,Q=this.h2|0,J=Q,U=this.h3|0,N=U,q=this.h4|0,A=q;for(let H=0;H<5;H++){let I=4-H,w=Ma[H],C=Ta[H],D=CK[H],x=DK[H],h=Ca[H],l=Da[H];for(let u=0;u<16;u++){let n=vH(X+ex(H,Z,Q,U)+gH[D[u]]+w,h[u])+q|0;X=q,q=U,U=vH(Q,10)|0,Q=Z,Z=n}for(let u=0;u<16;u++){let n=vH(Y+ex(I,V,J,N)+gH[x[u]]+C,l[u])+A|0;Y=A,A=N,N=vH(J,10)|0,J=V,V=n}}this.set(this.h1+Q+N|0,this.h2+U+A|0,this.h3+q+Y|0,this.h4+X+V|0,this.h0+Z+J|0)}roundClean(){gH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Yk=tY(()=>new Xk);var Zk=!1,Vk=function(W){return Yk(W)},Qk=Vk;function XW(W){let G=R0(W,"data");return C0(Qk(G))}XW._=Vk;XW.lock=function(){Zk=!0};XW.register=function(W){if(Zk)throw TypeError("ripemd160 is locked");Qk=W};Object.freeze(XW);var Jk=!1,Uk=function(W,G,X,Y,Z){return Sx(W,G,X,Y,Z)},Nk=Uk;function L5(W,G,X,Y,Z){let V=R0(W,"password"),Q=R0(G,"salt");return C0(Nk(V,Q,X,Y,Z))}L5._=Uk;L5.lock=function(){Jk=!0};L5.register=function(W){if(Jk)throw Error("pbkdf2 is locked");Nk=W};Object.freeze(L5);var qk=!1,Hk=function(W){return new Uint8Array(xx(W))},Ak=Hk;function B5(W){return Ak(W)}B5._=Hk;B5.lock=function(){qk=!0};B5.register=function(W){if(qk)throw Error("randomBytes is locked");Ak=W};Object.freeze(B5);var Pa=(W,G,X)=>W&G^~W&X,Ra=(W,G,X)=>W&G^W&X^G&X,La=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),YW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ZW=new Uint32Array(64);class zk extends OJ{constructor(){super(64,32,8,!1);this.A=YW[0]|0,this.B=YW[1]|0,this.C=YW[2]|0,this.D=YW[3]|0,this.E=YW[4]|0,this.F=YW[5]|0,this.G=YW[6]|0,this.H=YW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let q=0;q<16;q++,G+=4)ZW[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=ZW[q-15],H=ZW[q-2],I=V7(A,7)^V7(A,18)^A>>>3,w=V7(H,17)^V7(H,19)^H>>>10;ZW[q]=w+ZW[q-7]+I+ZW[q-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:N}=this;for(let q=0;q<64;q++){let A=V7(Q,6)^V7(Q,11)^V7(Q,25),H=N+A+Pa(Q,J,U)+La[q]+ZW[q]|0,w=(V7(X,2)^V7(X,13)^V7(X,22))+Ra(X,Y,Z)|0;N=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,N=N+this.H|0,this.set(X,Y,Z,V,Q,J,U,N)}roundClean(){ZW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var KJ=tY(()=>new zk);class MK extends xG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,FH(W);let X=d7(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),Z.fill(0)}update(W){return o4(this),this.iHash.update(W),this}digestInto(W){o4(this),IJ(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var CJ=(W,G,X)=>new MK(W,G).update(X).digest();CJ.create=(W,G)=>new MK(W,G);function Ba(W,G,X,Y){FH(W);let Z=yH({dkLen:32,asyncTick:10},Y),{c:V,dkLen:Q,asyncTick:J}=Z;if(R9(V),R9(Q),R9(J),V<1)throw Error("PBKDF2: iterations (c) should be >= 1");let U=d7(G),N=d7(X),q=new Uint8Array(Q),A=CJ.create(W,U),H=A._cloneInto().update(N);return{c:V,dkLen:Q,asyncTick:J,DK:q,PRF:A,PRFSalt:H}}function Ea(W,G,X,Y,Z){if(W.destroy(),G.destroy(),Y)Y.destroy();return Z.fill(0),X}function TK(W,G,X,Y){let{c:Z,dkLen:V,DK:Q,PRF:J,PRFSalt:U}=Ba(W,G,X,Y),N,q=new Uint8Array(4),A=sY(q),H=new Uint8Array(J.outputLen);for(let I=1,w=0;w<V;I++,w+=J.outputLen){let C=Q.subarray(w,w+J.outputLen);A.setInt32(0,I,!1),(N=U._cloneInto(N)).update(q).digestInto(H),C.set(H.subarray(0,C.length));for(let D=1;D<Z;D++){J._cloneInto(N).update(H).digestInto(H);for(let x=0;x<C.length;x++)C[x]^=H[x]}}return Ea(J,U,Q,N,H)}var o1=(W,G)=>W<<G|W>>>32-G;function Ik(W,G,X,Y,Z,V){let Q=W[G++]^X[Y++],J=W[G++]^X[Y++],U=W[G++]^X[Y++],N=W[G++]^X[Y++],q=W[G++]^X[Y++],A=W[G++]^X[Y++],H=W[G++]^X[Y++],I=W[G++]^X[Y++],w=W[G++]^X[Y++],C=W[G++]^X[Y++],D=W[G++]^X[Y++],x=W[G++]^X[Y++],h=W[G++]^X[Y++],l=W[G++]^X[Y++],u=W[G++]^X[Y++],n=W[G++]^X[Y++],c=Q,p=J,W0=U,m=N,Y0=q,U0=A,y=H,o=I,B=w,R=C,_=D,S=x,v=h,P=l,E=u,b=n;for(let k=0;k<8;k+=2)Y0^=o1(c+v|0,7),B^=o1(Y0+c|0,9),v^=o1(B+Y0|0,13),c^=o1(v+B|0,18),R^=o1(U0+p|0,7),P^=o1(R+U0|0,9),p^=o1(P+R|0,13),U0^=o1(p+P|0,18),E^=o1(_+y|0,7),W0^=o1(E+_|0,9),y^=o1(W0+E|0,13),_^=o1(y+W0|0,18),m^=o1(b+S|0,7),o^=o1(m+b|0,9),S^=o1(o+m|0,13),b^=o1(S+o|0,18),p^=o1(c+m|0,7),W0^=o1(p+c|0,9),m^=o1(W0+p|0,13),c^=o1(m+W0|0,18),y^=o1(U0+Y0|0,7),o^=o1(y+U0|0,9),Y0^=o1(o+y|0,13),U0^=o1(Y0+o|0,18),S^=o1(_+R|0,7),B^=o1(S+_|0,9),R^=o1(B+S|0,13),_^=o1(R+B|0,18),v^=o1(b+E|0,7),P^=o1(v+b|0,9),E^=o1(P+v|0,13),b^=o1(E+P|0,18);Z[V++]=Q+c|0,Z[V++]=J+p|0,Z[V++]=U+W0|0,Z[V++]=N+m|0,Z[V++]=q+Y0|0,Z[V++]=A+U0|0,Z[V++]=H+y|0,Z[V++]=I+o|0,Z[V++]=w+B|0,Z[V++]=C+R|0,Z[V++]=D+_|0,Z[V++]=x+S|0,Z[V++]=h+v|0,Z[V++]=l+P|0,Z[V++]=u+E|0,Z[V++]=n+b|0}function eY(W,G,X,Y,Z){let V=Y+0,Q=Y+16*Z;for(let J=0;J<16;J++)X[Q+J]=W[G+(2*Z-1)*16+J];for(let J=0;J<Z;J++,V+=16,G+=16){if(Ik(X,Q,W,G,X,V),J>0)Q+=16;Ik(X,V,W,G+=16,X,Q)}}function wk(W,G,X){let Y=yH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{N:Z,r:V,p:Q,dkLen:J,asyncTick:U,maxmem:N,onProgress:q}=Y;if(R9(Z),R9(V),R9(Q),R9(J),R9(U),R9(N),q!==void 0&&typeof q!=="function")throw Error("progressCb should be function");let A=128*V,H=A/4;if(Z<=1||(Z&Z-1)!==0||Z>=2**(A/8)||Z>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(Q<0||Q>137438953440/A)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(J<0||J>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let I=A*(Z+Q);if(I>N)throw Error(`Scrypt: parameters too large, ${I} (128 * r * (N + p)) > ${N} (maxmem)`);let w=TK(KJ,W,G,{c:1,dkLen:A*Q}),C=aY(w),D=aY(new Uint8Array(A*Z)),x=aY(new Uint8Array(A)),h=()=>{};if(q){let l=2*Z*Q,u=Math.max(Math.floor(l/1e4),1),n=0;h=()=>{if(n++,q&&(!(n%u)||n===l))q(n/l)}}return{N:Z,r:V,p:Q,dkLen:J,blockSize32:H,V:D,B32:C,B:w,tmp:x,blockMixCb:h,asyncTick:U}}function jk(W,G,X,Y,Z){let V=TK(KJ,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),Z.fill(0),V}function Ok(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:N,B:q,tmp:A,blockMixCb:H}=wk(W,G,X);for(let I=0;I<V;I++){let w=J*I;for(let C=0;C<J;C++)U[C]=N[w+C];for(let C=0,D=0;C<Y-1;C++)eY(U,D,U,D+=J,Z),H();eY(U,(Y-1)*J,N,w,Z),H();for(let C=0;C<Y;C++){let D=N[w+J-16]%Y;for(let x=0;x<J;x++)A[x]=N[w+x]^U[D*J+x];eY(A,0,N,w,Z),H()}}return jk(W,Q,q,U,A)}async function Kk(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:N,B:q,tmp:A,blockMixCb:H,asyncTick:I}=wk(W,G,X);for(let w=0;w<V;w++){let C=J*w;for(let x=0;x<J;x++)U[x]=N[C+x];let D=0;await _H(Y-1,I,()=>{eY(U,D,U,D+=J,Z),H()}),eY(U,(Y-1)*J,N,C,Z),H(),await _H(Y,I,()=>{let x=N[C+J-16]%Y;for(let h=0;h<J;h++)A[h]=N[C+h]^U[x*J+h];eY(A,0,N,C,Z),H()})}return jk(W,Q,q,U,A)}var Ck=!1,Dk=!1,Mk=async function(W,G,X,Y,Z,V,Q){return await Kk(W,G,{N:X,r:Y,p:Z,dkLen:V,onProgress:Q})},Tk=function(W,G,X,Y,Z,V){return Ok(W,G,{N:X,r:Y,p:Z,dkLen:V})},Pk=Mk,Rk=Tk;async function VW(W,G,X,Y,Z,V,Q){let J=R0(W,"passwd"),U=R0(G,"salt");return C0(await Pk(J,U,X,Y,Z,V,Q))}VW._=Mk;VW.lock=function(){Dk=!0};VW.register=function(W){if(Dk)throw Error("scrypt is locked");Pk=W};Object.freeze(VW);function QW(W,G,X,Y,Z,V){let Q=R0(W,"passwd"),J=R0(G,"salt");return C0(Rk(Q,J,X,Y,Z,V))}QW._=Tk;QW.lock=function(){Ck=!0};QW.register=function(W){if(Ck)throw Error("scryptSync is locked");Rk=W};Object.freeze(QW);var Lk=function(W){return OK("sha256").update(W).digest()},Bk=function(W){return OK("sha512").update(W).digest()},Ek=Lk,$k=Bk,Fk=!1,Sk=!1;function L9(W){let G=R0(W,"data");return C0(Ek(G))}L9._=Lk;L9.lock=function(){Fk=!0};L9.register=function(W){if(Fk)throw Error("sha256 is locked");Ek=W};Object.freeze(L9);function uH(W){let G=R0(W,"data");return C0($k(G))}uH._=Bk;uH.lock=function(){Sk=!0};uH.register=function(W){if(Sk)throw Error("sha512 is locked");$k=W};Object.freeze(L9);var BK={};NA(BK,{validateObject:()=>UW,utf8ToBytes:()=>ka,numberToVarBytesBE:()=>Sa,numberToHexUnpadded:()=>_k,numberToBytesLE:()=>fH,numberToBytesBE:()=>JW,hexToNumber:()=>RK,hexToBytes:()=>_G,equalBytes:()=>xa,ensureBytes:()=>q5,createHmacDrbg:()=>LK,concatBytes:()=>WZ,bytesToNumberLE:()=>mH,bytesToNumberBE:()=>n4,bytesToHex:()=>kG,bitSet:()=>va,bitMask:()=>DJ,bitLen:()=>_a,bitGet:()=>ya});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var kk=BigInt(0),hH=BigInt(1),$a=BigInt(2),bH=(W)=>W instanceof Uint8Array,Fa=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function kG(W){if(!bH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=Fa[W[X]];return G}function _k(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function RK(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function _G(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let Z=Y*2,V=W.slice(Z,Z+2),Q=Number.parseInt(V,16);if(Number.isNaN(Q)||Q<0)throw Error("Invalid byte sequence");X[Y]=Q}return X}function n4(W){return RK(kG(W))}function mH(W){if(!bH(W))throw Error("Uint8Array expected");return RK(kG(Uint8Array.from(W).reverse()))}function JW(W,G){return _G(W.toString(16).padStart(G*2,"0"))}function fH(W,G){return JW(W,G).reverse()}function Sa(W){return _G(_k(W))}function q5(W,G,X){let Y;if(typeof G==="string")try{Y=_G(G)}catch(V){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${V}`)}else if(bH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(`${W} expected ${X} bytes, got ${Z}`);return Y}function WZ(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!bH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function xa(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function ka(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function _a(W){let G;for(G=0;W>kk;W>>=hH,G+=1);return G}function ya(W,G){return W>>BigInt(G)&hH}var va=(W,G,X)=>{return W|(X?hH:kk)<<BigInt(G)},DJ=(W)=>($a<<BigInt(W-1))-hH,PK=(W)=>new Uint8Array(W),xk=(W)=>Uint8Array.from(W);function LK(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=PK(W),Z=PK(W),V=0,Q=()=>{Y.fill(1),Z.fill(0),V=0},J=(...A)=>X(Z,Y,...A),U=(A=PK())=>{if(Z=J(xk([0]),A),Y=J(),A.length===0)return;Z=J(xk([1]),A),Y=J()},N=()=>{if(V++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<G){Y=J();let I=Y.slice();H.push(I),A+=Y.length}return WZ(...H)};return(A,H)=>{Q(),U(A);let I=void 0;while(!(I=H(N())))U();return Q(),I}}var ga={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function UW(W,G,X={}){let Y=(Z,V,Q)=>{let J=ga[V];if(typeof J!=="function")throw Error(`Invalid validator "${V}", expected function`);let U=W[Z];if(Q&&U===void 0)return;if(!J(U,W))throw Error(`Invalid param ${String(Z)}=${U} (${typeof U}), expected ${V}`)};for(let[Z,V]of Object.entries(G))Y(Z,V,!1);for(let[Z,V]of Object.entries(X))Y(Z,V,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var l8=BigInt(0),$8=BigInt(1),yG=BigInt(2),ua=BigInt(3),EK=BigInt(4),yk=BigInt(5),vk=BigInt(8),ha=BigInt(9),ba=BigInt(16);function B9(W,G){let X=W%G;return X>=l8?X:G+X}function ma(W,G,X){if(X<=l8||G<l8)throw Error("Expected power/modulo > 0");if(X===$8)return l8;let Y=$8;while(G>l8){if(G&$8)Y=Y*W%X;W=W*W%X,G>>=$8}return Y}function H5(W,G,X){let Y=W;while(G-- >l8)Y*=Y,Y%=X;return Y}function cH(W,G){if(W===l8||G<=l8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=B9(W,G),Y=G,Z=l8,V=$8,Q=$8,J=l8;while(X!==l8){let N=Y/X,q=Y%X,A=Z-Q*N,H=V-J*N;Y=X,X=q,Z=Q,V=J,Q=A,J=H}if(Y!==$8)throw Error("invert: does not exist");return B9(Z,G)}function fa(W){let G=(W-$8)/yG,X,Y,Z;for(X=W-$8,Y=0;X%yG===l8;X/=yG,Y++);for(Z=yG;Z<W&&ma(Z,G,W)!==W-$8;Z++);if(Y===1){let Q=(W+$8)/EK;return function(U,N){let q=U.pow(N,Q);if(!U.eql(U.sqr(q),N))throw Error("Cannot find square root");return q}}let V=(X+$8)/yG;return function(J,U){if(J.pow(U,G)===J.neg(J.ONE))throw Error("Cannot find square root");let N=Y,q=J.pow(J.mul(J.ONE,Z),X),A=J.pow(U,V),H=J.pow(U,X);while(!J.eql(H,J.ONE)){if(J.eql(H,J.ZERO))return J.ZERO;let I=1;for(let C=J.sqr(H);I<N;I++){if(J.eql(C,J.ONE))break;C=J.sqr(C)}let w=J.pow(q,$8<<BigInt(N-I-1));q=J.sqr(w),A=J.mul(A,w),H=J.mul(H,q),N=I}return A}}function ca(W){if(W%EK===ua){let G=(W+$8)/EK;return function(Y,Z){let V=Y.pow(Z,G);if(!Y.eql(Y.sqr(V),Z))throw Error("Cannot find square root");return V}}if(W%vk===yk){let G=(W-yk)/vk;return function(Y,Z){let V=Y.mul(Z,yG),Q=Y.pow(V,G),J=Y.mul(Z,Q),U=Y.mul(Y.mul(J,yG),Q),N=Y.mul(J,Y.sub(U,Y.ONE));if(!Y.eql(Y.sqr(N),Z))throw Error("Cannot find square root");return N}}if(W%ba===ha);return fa(W)}var pa=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $K(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=pa.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return UW(W,X)}function la(W,G,X){if(X<l8)throw Error("Expected power > 0");if(X===l8)return W.ONE;if(X===$8)return G;let Y=W.ONE,Z=G;while(X>l8){if(X&$8)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=$8}return Y}function da(W,G){let X=Array(G.length),Y=G.reduce((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=V,W.mul(V,Q)},W.ONE),Z=W.inv(Y);return G.reduceRight((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=W.mul(V,X[J]),W.mul(V,Q)},Z),X}function FK(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function gk(W,G,X=!1,Y={}){if(W<=l8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:Z,nByteLength:V}=FK(W,G);if(V>2048)throw Error("Field lengths over 2048 bytes are not supported");let Q=ca(W),J=Object.freeze({ORDER:W,BITS:Z,BYTES:V,MASK:DJ(Z),ZERO:l8,ONE:$8,create:(U)=>B9(U,W),isValid:(U)=>{if(typeof U!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof U}`);return l8<=U&&U<W},is0:(U)=>U===l8,isOdd:(U)=>(U&$8)===$8,neg:(U)=>B9(-U,W),eql:(U,N)=>U===N,sqr:(U)=>B9(U*U,W),add:(U,N)=>B9(U+N,W),sub:(U,N)=>B9(U-N,W),mul:(U,N)=>B9(U*N,W),pow:(U,N)=>la(J,U,N),div:(U,N)=>B9(U*cH(N,W),W),sqrN:(U)=>U*U,addN:(U,N)=>U+N,subN:(U,N)=>U-N,mulN:(U,N)=>U*N,inv:(U)=>cH(U,W),sqrt:Y.sqrt||((U)=>Q(J,U)),invertBatch:(U)=>da(J,U),cmov:(U,N,q)=>q?N:U,toBytes:(U)=>X?fH(U,V):JW(U,V),fromBytes:(U)=>{if(U.length!==V)throw Error(`Fp.fromBytes: expected ${V}, got ${U.length}`);return X?mH(U):n4(U)}});return Object.freeze(J)}function uk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function SK(W){let G=uk(W);return G+Math.ceil(G/2)}function hk(W,G,X=!1){let Y=W.length,Z=uk(G),V=SK(G);if(Y<16||Y<V||Y>1024)throw Error(`expected ${V}-1024 bytes of input, got ${Y}`);let Q=X?n4(W):mH(W),J=B9(Q,G-$8)+$8;return X?fH(J,Z):JW(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var na=BigInt(0),xK=BigInt(1);function bk(W,G){let X=(Z,V)=>{let Q=V.negate();return Z?Q:V},Y=(Z)=>{let V=Math.ceil(G/Z)+1,Q=2**(Z-1);return{windows:V,windowSize:Q}};return{constTimeNegate:X,unsafeLadder(Z,V){let Q=W.ZERO,J=Z;while(V>na){if(V&xK)Q=Q.add(J);J=J.double(),V>>=xK}return Q},precomputeWindow(Z,V){let{windows:Q,windowSize:J}=Y(V),U=[],N=Z,q=N;for(let A=0;A<Q;A++){q=N,U.push(q);for(let H=1;H<J;H++)q=q.add(N),U.push(q);N=q.double()}return U},wNAF(Z,V,Q){let{windows:J,windowSize:U}=Y(Z),N=W.ZERO,q=W.BASE,A=BigInt(2**Z-1),H=2**Z,I=BigInt(Z);for(let w=0;w<J;w++){let C=w*U,D=Number(Q&A);if(Q>>=I,D>U)D-=H,Q+=xK;let x=C,h=C+Math.abs(D)-1,l=w%2!==0,u=D<0;if(D===0)q=q.add(X(l,V[x]));else N=N.add(X(u,V[h]))}return{p:N,f:q}},wNAFCached(Z,V,Q,J){let U=Z._WINDOW_SIZE||1,N=V.get(Z);if(!N){if(N=this.precomputeWindow(Z,U),U!==1)V.set(Z,J(N))}return this.wNAF(U,N,Q)}}}function kK(W){return $K(W.Fp),UW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...FK(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ia(W){let G=kK(W);UW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:Z}=G;if(X){if(!Y.eql(Z,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:ra,hexToBytes:aa}=BK,vG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=vG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:ra(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=vG,X=typeof W==="string"?aa(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:Z,l:V}=vG._parseInt(X.subarray(2)),{d:Q,l:J}=vG._parseInt(V);if(J.length)throw new G("Invalid signature: left bytes after parsing");return{r:Z,s:Q}},hexFromSig(W){let G=(N)=>Number.parseInt(N[0],16)&8?"00"+N:N,X=(N)=>{let q=N.toString(16);return q.length&1?`0${q}`:q},Y=G(X(W.s)),Z=G(X(W.r)),V=Y.length/2,Q=Z.length/2,J=X(V),U=X(Q);return`30${X(Q+V+4)}02${U}${Z}02${J}${Y}`}},i4=BigInt(0),E5=BigInt(1),Wj0=BigInt(2),mk=BigInt(3),Gj0=BigInt(4);function sa(W){let G=ia(W),{Fp:X}=G,Y=G.toBytes||((w,C,D)=>{let x=C.toAffine();return WZ(Uint8Array.from([4]),X.toBytes(x.x),X.toBytes(x.y))}),Z=G.fromBytes||((w)=>{let C=w.subarray(1),D=X.fromBytes(C.subarray(0,X.BYTES)),x=X.fromBytes(C.subarray(X.BYTES,2*X.BYTES));return{x:D,y:x}});function V(w){let{a:C,b:D}=G,x=X.sqr(w),h=X.mul(x,w);return X.add(X.add(h,X.mul(w,C)),D)}if(!X.eql(X.sqr(G.Gy),V(G.Gx)))throw Error("bad generator point: equation left != right");function Q(w){return typeof w==="bigint"&&i4<w&&w<G.n}function J(w){if(!Q(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function U(w){let{allowedPrivateKeyLengths:C,nByteLength:D,wrapPrivateKey:x,n:h}=G;if(C&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=kG(w);if(typeof w!=="string"||!C.includes(w.length))throw Error("Invalid key");w=w.padStart(D*2,"0")}let l;try{l=typeof w==="bigint"?w:n4(q5("private key",w,D))}catch(u){throw Error(`private key must be ${D} bytes, hex or bigint, not ${typeof w}`)}if(x)l=B9(l,h);return J(l),l}let N=new Map;function q(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,C,D){if(this.px=w,this.py=C,this.pz=D,w==null||!X.isValid(w))throw Error("x required");if(C==null||!X.isValid(C))throw Error("y required");if(D==null||!X.isValid(D))throw Error("z required")}static fromAffine(w){let{x:C,y:D}=w||{};if(!w||!X.isValid(C)||!X.isValid(D))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let x=(h)=>X.eql(h,X.ZERO);if(x(C)&&x(D))return A.ZERO;return new A(C,D,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let C=X.invertBatch(w.map((D)=>D.pz));return w.map((D,x)=>D.toAffine(C[x])).map(A.fromAffine)}static fromHex(w){let C=A.fromAffine(Z(q5("pointHex",w)));return C.assertValidity(),C}static fromPrivateKey(w){return A.BASE.multiply(U(w))}_setWindowSize(w){this._WINDOW_SIZE=w,N.delete(this)}assertValidity(){if(this.is0()){if(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:C}=this.toAffine();if(!X.isValid(w)||!X.isValid(C))throw Error("bad point: x or y not FE");let D=X.sqr(C),x=V(w);if(!X.eql(D,x))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){q(w);let{px:C,py:D,pz:x}=this,{px:h,py:l,pz:u}=w,n=X.eql(X.mul(C,u),X.mul(h,x)),c=X.eql(X.mul(D,u),X.mul(l,x));return n&&c}negate(){return new A(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:C}=G,D=X.mul(C,mk),{px:x,py:h,pz:l}=this,u=X.ZERO,n=X.ZERO,c=X.ZERO,p=X.mul(x,x),W0=X.mul(h,h),m=X.mul(l,l),Y0=X.mul(x,h);return Y0=X.add(Y0,Y0),c=X.mul(x,l),c=X.add(c,c),u=X.mul(w,c),n=X.mul(D,m),n=X.add(u,n),u=X.sub(W0,n),n=X.add(W0,n),n=X.mul(u,n),u=X.mul(Y0,u),c=X.mul(D,c),m=X.mul(w,m),Y0=X.sub(p,m),Y0=X.mul(w,Y0),Y0=X.add(Y0,c),c=X.add(p,p),p=X.add(c,p),p=X.add(p,m),p=X.mul(p,Y0),n=X.add(n,p),m=X.mul(h,l),m=X.add(m,m),p=X.mul(m,Y0),u=X.sub(u,p),c=X.mul(m,W0),c=X.add(c,c),c=X.add(c,c),new A(u,n,c)}add(w){q(w);let{px:C,py:D,pz:x}=this,{px:h,py:l,pz:u}=w,n=X.ZERO,c=X.ZERO,p=X.ZERO,W0=G.a,m=X.mul(G.b,mk),Y0=X.mul(C,h),U0=X.mul(D,l),y=X.mul(x,u),o=X.add(C,D),B=X.add(h,l);o=X.mul(o,B),B=X.add(Y0,U0),o=X.sub(o,B),B=X.add(C,x);let R=X.add(h,u);return B=X.mul(B,R),R=X.add(Y0,y),B=X.sub(B,R),R=X.add(D,x),n=X.add(l,u),R=X.mul(R,n),n=X.add(U0,y),R=X.sub(R,n),p=X.mul(W0,B),n=X.mul(m,y),p=X.add(n,p),n=X.sub(U0,p),p=X.add(U0,p),c=X.mul(n,p),U0=X.add(Y0,Y0),U0=X.add(U0,Y0),y=X.mul(W0,y),B=X.mul(m,B),U0=X.add(U0,y),y=X.sub(Y0,y),y=X.mul(W0,y),B=X.add(B,y),Y0=X.mul(U0,B),c=X.add(c,Y0),Y0=X.mul(R,B),n=X.mul(o,n),n=X.sub(n,Y0),Y0=X.mul(o,U0),p=X.mul(R,p),p=X.add(p,Y0),new A(n,c,p)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,N,w,(C)=>{let D=X.invertBatch(C.map((x)=>x.pz));return C.map((x,h)=>x.toAffine(D[h])).map(A.fromAffine)})}multiplyUnsafe(w){let C=A.ZERO;if(w===i4)return C;if(J(w),w===E5)return this;let{endo:D}=G;if(!D)return I.unsafeLadder(this,w);let{k1neg:x,k1:h,k2neg:l,k2:u}=D.splitScalar(w),n=C,c=C,p=this;while(h>i4||u>i4){if(h&E5)n=n.add(p);if(u&E5)c=c.add(p);p=p.double(),h>>=E5,u>>=E5}if(x)n=n.negate();if(l)c=c.negate();return c=new A(X.mul(c.px,D.beta),c.py,c.pz),n.add(c)}multiply(w){J(w);let C=w,D,x,{endo:h}=G;if(h){let{k1neg:l,k1:u,k2neg:n,k2:c}=h.splitScalar(C),{p,f:W0}=this.wNAF(u),{p:m,f:Y0}=this.wNAF(c);p=I.constTimeNegate(l,p),m=I.constTimeNegate(n,m),m=new A(X.mul(m.px,h.beta),m.py,m.pz),D=p.add(m),x=W0.add(Y0)}else{let{p:l,f:u}=this.wNAF(C);D=l,x=u}return A.normalizeZ([D,x])[0]}multiplyAndAddUnsafe(w,C,D){let x=A.BASE,h=(u,n)=>n===i4||n===E5||!u.equals(x)?u.multiplyUnsafe(n):u.multiply(n),l=h(this,C).add(h(w,D));return l.is0()?void 0:l}toAffine(w){let{px:C,py:D,pz:x}=this,h=this.is0();if(w==null)w=h?X.ONE:X.inv(x);let l=X.mul(C,w),u=X.mul(D,w),n=X.mul(x,w);if(h)return{x:X.ZERO,y:X.ZERO};if(!X.eql(n,X.ONE))throw Error("invZ was invalid");return{x:l,y:u}}isTorsionFree(){let{h:w,isTorsionFree:C}=G;if(w===E5)return!0;if(C)return C(A,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:C}=G;if(w===E5)return this;if(C)return C(A,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return kG(this.toRawBytes(w))}}A.BASE=new A(G.Gx,G.Gy,X.ONE),A.ZERO=new A(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,I=bk(A,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:A,normPrivateKeyToScalar:U,weierstrassEquation:V,isWithinCurveOrder:Q}}function ta(W){let G=kK(W);return UW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function fk(W){let G=ta(W),{Fp:X,n:Y}=G,Z=X.BYTES+1,V=2*X.BYTES+1;function Q(R){return i4<R&&R<X.ORDER}function J(R){return B9(R,Y)}function U(R){return cH(R,Y)}let{ProjectivePoint:N,normPrivateKeyToScalar:q,weierstrassEquation:A,isWithinCurveOrder:H}=sa({...G,toBytes(R,_,S){let v=_.toAffine(),P=X.toBytes(v.x),E=WZ;if(S)return E(Uint8Array.from([_.hasEvenY()?2:3]),P);else return E(Uint8Array.from([4]),P,X.toBytes(v.y))},fromBytes(R){let _=R.length,S=R[0],v=R.subarray(1);if(_===Z&&(S===2||S===3)){let P=n4(v);if(!Q(P))throw Error("Point is not on curve");let E=A(P),b=X.sqrt(E),k=(b&E5)===E5;if((S&1)===1!==k)b=X.neg(b);return{x:P,y:b}}else if(_===V&&S===4){let P=X.fromBytes(v.subarray(0,X.BYTES)),E=X.fromBytes(v.subarray(X.BYTES,2*X.BYTES));return{x:P,y:E}}else throw Error(`Point of length ${_} was invalid. Expected ${Z} compressed bytes or ${V} uncompressed bytes`)}}),I=(R)=>kG(JW(R,G.nByteLength));function w(R){let _=Y>>E5;return R>_}function C(R){return w(R)?J(-R):R}let D=(R,_,S)=>n4(R.slice(_,S));class x{constructor(R,_,S){this.r=R,this.s=_,this.recovery=S,this.assertValidity()}static fromCompact(R){let _=G.nByteLength;return R=q5("compactSignature",R,_*2),new x(D(R,0,_),D(R,_,2*_))}static fromDER(R){let{r:_,s:S}=vG.toSig(q5("DER",R));return new x(_,S)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(R){return new x(this.r,this.s,R)}recoverPublicKey(R){let{r:_,s:S,recovery:v}=this,P=p(q5("msgHash",R));if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");let E=v===2||v===3?_+G.n:_;if(E>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let b=(v&1)===0?"02":"03",k=N.fromHex(b+I(E)),f=U(E),e=J(-P*f),N0=J(S*f),Q0=N.BASE.multiplyAndAddUnsafe(k,e,N0);if(!Q0)throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,J(-this.s),this.recovery):this}toDERRawBytes(){return _G(this.toDERHex())}toDERHex(){return vG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return _G(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let h={isValidPrivateKey(R){try{return q(R),!0}catch(_){return!1}},normPrivateKeyToScalar:q,randomPrivateKey:()=>{let R=SK(G.n);return hk(G.randomBytes(R),G.n)},precompute(R=8,_=N.BASE){return _._setWindowSize(R),_.multiply(BigInt(3)),_}};function l(R,_=!0){return N.fromPrivateKey(R).toRawBytes(_)}function u(R){let _=R instanceof Uint8Array,S=typeof R==="string",v=(_||S)&&R.length;if(_)return v===Z||v===V;if(S)return v===2*Z||v===2*V;if(R instanceof N)return!0;return!1}function n(R,_,S=!0){if(u(R))throw Error("first arg must be private key");if(!u(_))throw Error("second arg must be public key");return N.fromHex(_).multiply(q(R)).toRawBytes(S)}let c=G.bits2int||function(R){let _=n4(R),S=R.length*8-G.nBitLength;return S>0?_>>BigInt(S):_},p=G.bits2int_modN||function(R){return J(c(R))},W0=DJ(G.nBitLength);function m(R){if(typeof R!=="bigint")throw Error("bigint expected");if(!(i4<=R&&R<W0))throw Error(`bigint expected < 2^${G.nBitLength}`);return JW(R,G.nByteLength)}function Y0(R,_,S=U0){if(["recovered","canonical"].some((x0)=>(x0 in S)))throw Error("sign() legacy options not supported");let{hash:v,randomBytes:P}=G,{lowS:E,prehash:b,extraEntropy:k}=S;if(E==null)E=!0;if(R=q5("msgHash",R),b)R=q5("prehashed msgHash",v(R));let f=p(R),e=q(_),N0=[m(e),m(f)];if(k!=null){let x0=k===!0?P(X.BYTES):k;N0.push(q5("extraEntropy",x0))}let Q0=WZ(...N0),$0=f;function D0(x0){let q1=c(x0);if(!H(q1))return;let U1=U(q1),J0=N.BASE.multiply(q1).toAffine(),B0=J(J0.x);if(B0===i4)return;let h0=J(U1*J($0+B0*e));if(h0===i4)return;let Y1=(J0.x===B0?0:2)|Number(J0.y&E5),w8=h0;if(E&&w(h0))w8=C(h0),Y1^=1;return new x(B0,w8,Y1)}return{seed:Q0,k2sig:D0}}let U0={lowS:G.lowS,prehash:!1},y={lowS:G.lowS,prehash:!1};function o(R,_,S=U0){let{seed:v,k2sig:P}=Y0(R,_,S),E=G;return LK(E.hash.outputLen,E.nByteLength,E.hmac)(v,P)}N.BASE._setWindowSize(8);function B(R,_,S,v=y){let P=R;if(_=q5("msgHash",_),S=q5("publicKey",S),"strict"in v)throw Error("options.strict was renamed to lowS");let{lowS:E,prehash:b}=v,k=void 0,f;try{if(typeof P==="string"||P instanceof Uint8Array)try{k=x.fromDER(P)}catch(J0){if(!(J0 instanceof vG.Err))throw J0;k=x.fromCompact(P)}else if(typeof P==="object"&&typeof P.r==="bigint"&&typeof P.s==="bigint"){let{r:J0,s:B0}=P;k=new x(J0,B0)}else throw Error("PARSE");f=N.fromHex(S)}catch(J0){if(J0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(E&&k.hasHighS())return!1;if(b)_=G.hash(_);let{r:e,s:N0}=k,Q0=p(_),$0=U(N0),D0=J(Q0*$0),x0=J(e*$0),q1=N.BASE.multiplyAndAddUnsafe(f,D0,x0)?.toAffine();if(!q1)return!1;return J(q1.x)===e}return{CURVE:G,getPublicKey:l,getSharedSecret:n,sign:o,verify:B,ProjectivePoint:N,Signature:x,utils:h}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ea(W){return{hash:W,hmac:(G,...X)=>CJ(W,G,cx(...X)),randomBytes:px}}function ck(W,G){let X=(Y)=>fk({...W,...ea(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dk=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),pk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ws=BigInt(1),_K=BigInt(2),lk=(W,G)=>(W+G/_K)/G;function Gs(W){let G=dk,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=H5(q,X,G)*q%G,H=H5(A,X,G)*q%G,I=H5(H,_K,G)*N%G,w=H5(I,Z,G)*I%G,C=H5(w,V,G)*w%G,D=H5(C,J,G)*C%G,x=H5(D,U,G)*D%G,h=H5(x,J,G)*C%G,l=H5(h,X,G)*q%G,u=H5(l,Q,G)*w%G,n=H5(u,Y,G)*N%G,c=H5(n,_K,G);if(!yK.eql(yK.sqr(c),W))throw Error("Cannot find square root");return c}var yK=gk(dk,void 0,void 0,{sqrt:Gs}),r4=ck({a:BigInt(0),b:BigInt(7),Fp:yK,n:pk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=pk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-Ws*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),Z=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),V=X,Q=BigInt("0x100000000000000000000000000000000"),J=lk(V*W,G),U=lk(-Y*W,G),N=B9(W-J*X-U*Z,G),q=B9(-J*Y-U*V,G),A=N>Q,H=q>Q;if(A)N=G-N;if(H)q=G-q;if(N>Q||q>Q)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}}},KJ),qj0=BigInt(0);var Hj0=r4.ProjectivePoint;var vK="0x0000000000000000000000000000000000000000";var pH="0x0000000000000000000000000000000000000000000000000000000000000000";var gK=`\x19Ethereum Signed Message:
248
+ `);return Y.forEach((Z)=>{if(Z.startsWith("m="))X.push([Z]);else if(X.length>0)X[X.length-1].push(Z);else G.push(Z)}),[G,X]}function OO(W){if(W.includes(":")){let G=b4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function KO(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new oQ(Y[0],Y.slice(1).map(X)))}function Zx(W){let G=DG.fromSdp(W);return eQ(G)}var Cr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function V2(W,G){let Y=new Rq(ui(64)).toString().slice(0,8),Z=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new oQ("WMS",["*"])),G.type=W}function UH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,Z]=b4(X,"=");if(ji.includes(Y))G[Y]=Number(Z);else G[Y]=Z}else if(X.includes(":")){let[Y,Z]=X.split(":");G[Y]=Number.isNaN(Number(Z))?Z:Number(Z)}else G[X]=void 0}),G}var tO=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},kq=T1("werift:packages/webrtc/src/media/rtpReceiver.ts"),Vx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new ki(this);audioRedHandler=new oo;type="receiver";uuid=Ni().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new f0;dtlsTransport;sdesMid;latestRid;latestRepairedRid;receiverTWCC;stopped=!1;remoteStreamId;remoteTrackId;rtcpRunning=!1;rtcpCancel=new AbortController;remoteStreams={};setDtlsTransport(W){this.dtlsTransport=W}get track(){return this.tracks[0]??new uO({kind:this.kind})}get nackEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type==="nack")}get twccEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===Gi().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===UJ().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new vi(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await IO(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let Z=0,V=0;if(this.lastSRtimestamp[X]){Z=this.lastSRtimestamp[X];let Q=QH()-this.receiveLastSRTimestamp[X];if(Q>0&&Q<65536)V=lQ(Q*65536)}return new GK({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:Z,dlsr:V})}),G=new rQ({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await IO(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){kq("sendRtcp failed",X),await IO(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let Z=this.remoteStreams[Y.ssrc];if(!Z)continue;let V={type:"inbound-rtp",id:Z8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?Z8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:Z.packets_received,packetsLost:Z.packets_lost,jitter:Z.jitter};if(G.push(V),this.lastSRtimestamp[Y.ssrc]){let Q={type:"remote-outbound-rtp",id:Z8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:V.codecId,localId:V.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(Q)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){kq("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;kq("sendRtcpPLI",{mediaSsrc:W});let G=new iQ({feedback:new GH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){kq(X)}}handleRtcpPacket(W){switch(W.type){case hY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=lS(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=QH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new gi(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let V=G[D9.transportWideCC];if(!V==null)throw Error("undefined");this.receiverTWCC.handleTWCC(V)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let V=this.ssrcByRtx[W.header.ssrc],Q=UH(Y.parameters??""),J=this.codecs[Q.apt];if(W.payload.length<2)return;W=no(W,J.payloadType,V),X=this.trackBySSRC[V]}let Z;if(Y.name.toLowerCase()==="red"){if(Z=XS.deSerialize(W.payload),!Object.keys(this.codecs).includes(Z.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(Z){if(X.kind==="audio"){let V=this.audioRedHandler.push(Z,W);for(let Q of V)X.onReceiveRtp.execute(Q.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},hQ=T1("werift:packages/webrtc/src/media/router.ts"),Dr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){hQ("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){hQ("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new uO({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;hQ("registerRtpReceiverByRid",G),W.addTrack(new uO({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=xo(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[D9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((Q)=>Q instanceof Vx).find((Q)=>Q.trackBySSRC[W.header.ssrc]),X)hQ("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){hQ("ssrcReceiver not found");return}let Z=G[D9.sdesMid];if(typeof Z==="string")X.sdesMid=Z;let V=G[D9.repairedRtpStreamId];if(typeof V==="string")X.latestRepairedRid=V};routeRtcp=(W)=>{let G=[];switch(W.type){case hY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case rQ.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case VH.type:{let X=W}break;case uY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case iQ.type:{let X=W;switch(X.feedback.count){case XH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},Mr=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return WH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return WH(G)}},SY=20,Tr=10,Pr=class{congestion=!1;onAvailableBitrate=new f0;onCongestion=new f0;onCongestionScore=new f0;congestionCounter=0;cumulativeResult=new Mr;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=pS()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<SY)this.congestionCounter++;else if(this.congestionScore<Tr)this.congestionScore++;if(this.congestionCounter>=SY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let Z=Y.sequenceNumber,V=this.sentInfos[Z];if(!V)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(V.size,V.sendingAtMs,Y.receivedAtMs)}if(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-SY){let Y=WH(SY/2)+1,Z=WH(SY/4)+1,V=Y-(Y-Z)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-V}if(this.congestionCounter<=-SY){if(this.congestionScore>1)this.congestionScore--,this.onCongestion.execute(!1);this.congestionCounter=0}if(this.congestionCounter<=0&&this.congestion)this.congestion=!1,this.onCongestion.execute(this.congestion)}}rtpPacketSent(W){Object.keys(W).map((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CO=T1("werift:packages/webrtc/src/media/rtpSender.ts"),N2=128,q2=0.85,Rr=class{constructor(W){if(this.trackOrKind=W,this.kind=typeof this.trackOrKind==="string"?this.trackOrKind:this.trackOrKind.kind,typeof W!=="string"){if(W.streamId)this.streamId=W.streamId;this.registerTrack(W)}}type="sender";kind;ssrc=a1.Unpack("!L",Q2(4))[0];rtxSsrc=a1.Unpack("!L",Q2(4))[0];streamId=J2().toString();trackId=J2().toString();onReady=new f0;onRtcp=new f0;onPictureLossIndication=new f0;onGenericNack=new f0;senderBWE=new Pr;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=z2();redRedundantPayloadType;_redDistance=2;redEncoder=new po(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=UH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),CO("replaceTrack","ssrc",W.ssrc,"rid",W.rid)}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.disposeTrack)this.disposeTrack();this.track=void 0}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await U2(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new hY({ssrc:this.ssrc,senderInfo:new GS({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=lS(this.ntpTimestamp),this.lastSentSRTimestamp=QH(),this.cname)W.push(new VH({chunks:[new e2({source:this.ssrc,items:[new WS({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CO("sendRtcp failed",G),await U2(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=M9(this.sequenceNumber,-W),X)this.seqOffset=M9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=yY(this.timestamp,-G),X)this.timestampOffset=M9(this.timestampOffset,1)}this.rtpCache=[],CO("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?t6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=yY(G.timestamp,this.timestampOffset),G.sequenceNumber=M9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=$i(),Z=[...G.extensions];G.extensions=this.headerExtensions.map((N)=>{let q=(()=>{switch(N.uri){case D9.sdesMid:if(this.mid)return ko(this.mid);return;case D9.sdesRTPStreamID:if(this.rtpStreamId)return _o(this.rtpStreamId);return;case D9.repairedRtpStreamId:if(this.repairedRtpStreamId)return yo(this.repairedRtpStreamId);return;case D9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=M9(this.dtlsTransport.transportSequenceNumber,1),vo(this.dtlsTransport.transportSequenceNumber);case D9.absSendTime:return go(Y)}})();if(q)return{id:N.id,payload:q}}).filter((N)=>N);for(let N of Z){let q=G.extensions.find((A)=>A.id===N.id);if(q)q.payload=N.payload;else G.extensions.push(N)}G.extensions=G.extensions.sort((N,q)=>N.id-q.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=yY(this.packetCount,1),this.rtpCache[G.sequenceNumber%N2]=W;let V=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:V,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),V=this.redEncoder.build().serialize();let Q=await this.dtlsTransport.sendRtp(V,G);this.runRtcp();let J=pS(),U={wideSeq:this.dtlsTransport.transportSequenceNumber,size:Q,sendingAtMs:J,sentAtMs:J};this.senderBWE.rtpPacketSent(U)}handleRtcpPacket(W){switch(W.type){case hY.type:case rQ.type:W.reports.filter((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=QH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=q2*this.rtt+(1-q2)*Y}}});break;case uY.type:{let G=W;switch(G.feedback.count){case ZH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case YH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let Z=this.rtpCache[Y%N2];if(Z&&Z.header.sequenceNumber!==Y)Z=void 0;if(Z){if(this.rtxPayloadType!=null)Z=io(Z,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=M9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(Z.payload,Z.header)}}),this.onGenericNack.execute(X)}break}}break;case iQ.type:{let G=W;switch(G.feedback.count){case XH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case GH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:Z8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?Z8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let Z={type:"media-source",id:Z8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(Z)}if(this.rtt!==void 0){let Z={type:"remote-inbound-rtp",id:Z8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(Z)}return G}},Br=T1("werift:packages/webrtc/src/transport/sctpManager.ts"),Er=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new f0;constructor(){}createSctpTransport(W){let G=new jr(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let Z=new FS({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),V=new $S(this.sctpTransport,Z);return this.dataChannelsOpened++,this.dataChannels.push(V),V.stateChange.subscribe((Q)=>{if(Q==="closed"){this.dataChannelsClosed++;let J=this.dataChannels.indexOf(V);if(J!==-1)this.dataChannels.splice(J,1)}}),V}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),Br("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=FG(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:Z8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},$r=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new aO(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new tO({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new SS(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new tO({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new oQ("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new aO("application",fF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=wi,W.port=fF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let Z=oq.parse(W);return this.validateDescription({description:Z,isLocal:G,signalingState:X}),Z.type=Y,Z}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new oq;V2("offer",X),(this.currentLocalDescription?.media??[]).forEach((Z,V)=>{let Q=Z.rtp.muxId;if(!Q)return;if(Z.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=V,X.media.push(this.createMediaDescriptionForSctp(G))}else{let J=W.find((U)=>U.mid===Q);if(!J){if(Z.direction==="inactive"){X.media.push(Z);return}throw Error("transceiver not found")}J.mLineIndex=V,X.media.push(this.createMediaDescriptionForTransceiver(J,J.direction))}});for(let Z of W.filter((V)=>!X.media.find((Q)=>Q.rtp.muxId===V.mid))){if(Z.mid==null)Z.mid=this.allocateMid(this.midSuffix?"av":"");let V=this.createMediaDescriptionForTransceiver(Z,Z.direction);if(Z.mLineIndex===void 0)Z.mLineIndex=X.media.length,X.media.push(V);else X.media[Z.mLineIndex]=V}if(G&&!X.media.find((Z)=>Z.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let Z=X.media.map((V)=>V.rtp.muxId).filter((V)=>V);if(Z.length){let V=new oQ("BUNDLE",Z);X.group.push(V)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new oq;V2("answer",Y);for(let Z of this._remoteDescription.media){let V,Q;if(["audio","video"].includes(Z.kind)){let J=W.find((U)=>U.mid===Z.rtp.muxId);if(!J)throw Error(`Transceiver with mid=${Z.rtp.muxId} not found`);Q=this.createMediaDescriptionForTransceiver(J,cS(J.direction,J.offerDirection)),V=J.dtlsTransport}else if(Z.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");Q=this.createMediaDescriptionForSctp(G),V=G.dtlsTransport}else throw Error("invalid kind");if(Q.dtlsParams)if(V.role==="auto")Q.dtlsParams.role="client";else Q.dtlsParams.role=V.role;if(Z.simulcastParameters&&Z.simulcastParameters.length>0)Q.simulcastParameters=Z.simulcastParameters.map((J)=>({...J,direction:J.direction==="send"?"recv":"send"}));Y.media.push(Q)}if(this.bundlePolicy!=="disable"){let Z=new oQ("BUNDLE",[]);for(let V of Y.media)if(V.rtp.muxId)Z.items.push(V.rtp.muxId);Y.group.push(Z)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((Q)=>[Q?.mLineIndex,Q])),Z=G.find((Q)=>Q?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((Q)=>["audio","video"].includes(Q.kind)).forEach((Q,J)=>{let N=(Y.get(J)??G[J])?.dtlsTransport??Z;if(!N)throw Error(`dtls transport not found for media index ${J}`);this.addTransportDescription(Q,N)});let V=W.media.find((Q)=>Q.kind==="application");if(X&&V)this.addTransportDescription(V,X.dtlsTransport);this.setLocalDescription(W)}},bQ=T1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),Fr=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;onIceCandidate=new f0;connectionStateChange=new f0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new dS(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((Z)=>Z.state!=="closed"),G=new ni({...Fi(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new oi(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new dF(this.config,X,this.certificate,Sr)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:Z,bundlePolicy:V}){if(V==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(Z)W.sdpMLineIndex=Z.mLineIndex,W.sdpMid=Z.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,G){let X=oS.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else bQ("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((Z)=>Y.includes(Z.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...Z){return W.filter((V)=>Z.includes(V.state)).length===W.length}function Y(...Z){return W.some((V)=>Z.includes(V.state))}if(this.connectionState==="closed")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;bQ("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)bQ("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{bQ("gatherCandidates failed",X)})}setConnectionState(W){bQ("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await dF.SetupCertificate();for(let W of this.dtlsTransports)W.localCertificate=this.certificate}async close(){this.setConnectionState("closed"),await Promise.allSettled([...this.dtlsTransports.map((W)=>W.stop())]),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),this.connectionStateChange.allUnsubscribe()}},Sr=[pF.SRTP_AEAD_AES_128_GCM,pF.SRTP_AES128_CM_HMAC_SHA1_80],t5=T1("werift:packages/webrtc/src/peerConnection.ts"),Qx=class extends UK{cname=Lr().toString();config=Jx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new Dr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;signalingStateChange=new f0;connectionStateChange=new f0;onDataChannel=new f0;onRemoteTransceiverAdded=new f0;onTransceiverAdded=new f0;onIceCandidate=new f0;onNegotiationneeded=new f0;onTrack=new f0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new $r({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new kr(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let Z={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",Z),this.ontrack)this.ontrack(Z)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new Er,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new Fr({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(Si(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of gF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((Z)=>Z.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((Z)=>{this.router.routeRtp(Z)}),X.onRtcp.subscribe((Z)=>{this.router.routeRtcp(Z)});let Y=X.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((Z)=>{if(!this.localDescription){t5("localDescription not found when ice candidate was gathered");return}if(!Z){if(this.sdpManager.setLocal(this._localDescription,this.transceiverManager.getTransceivers(),this.sctpTransport),this.onIceCandidate.execute(void 0),this.onicecandidate)this.onicecandidate({candidate:void 0});this.emit("icecandidate",{candidate:void 0});return}if(!this._localDescription){t5("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:Z,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((V)=>V?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[Z,V]of gF(X.media)){let Q=V.rtp.muxId;if(this.sdpManager.registerMid(Q),["audio","video"].includes(V.kind)){let J=this.transceiverManager.getTransceiverByMLineIndex(Z);if(J)J.mid=Q}if(V.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=Q}let Y=X.media.find((Z)=>Z.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let Z of this.transceiverManager.getTransceivers()){let V=cS(Z.direction,Z.offerDirection);Z.setCurrentDirection(V)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((Z)=>{t5("gatherCandidates failed",Z)}),X.type==="answer")this.connect().catch((Z)=>{t5("connect failed",Z),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(t5("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((Z)=>{throw t5("iceTransport.start failed",Z),Z}),Y())return;if(await G.start().catch((Z)=>{throw t5("dtlsTransport.start failed",Z),Z}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof oq)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((Q)=>Q.semantic==="BUNDLE"&&Q.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(Q,J)=>Q.kind===J.kind&&[void 0,J.rtp.muxId].includes(Q.mid),Z=G.media.map((Q,J)=>{let U;if(["audio","video"].includes(Q.kind)){let q=this.transceiverManager.getTransceivers().find((A)=>Y(A,Q));if(!q)q=this.addTransceiver(Q.kind,{direction:"recvonly"}),q.mid=Q.rtp.muxId,this.onRemoteTransceiverAdded.execute(q);else if(q.direction==="inactive"&&q.stopping){if(q.stopped=!0,W.type==="answer")q.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);U=q.dtlsTransport,this.transceiverManager.setRemoteRTP(q,Q,G.type,J)}else if(Q.kind==="application"){let q=this.sctpTransport;if(!q)q=this.createSctpTransport(),q.mid=Q.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);U=q.dtlsTransport,this.sctpManager.setRemoteSCTP(Q,J)}else throw Error("invalid media kind");let N=U.iceTransport;if(Q.iceParams){let q=!!this.sdpManager.inactiveRemoteMedia;if(N.setRemoteParams(Q.iceParams,q),Q.iceParams?.iceLite)N.connection.iceControlling=!0}if(Q.dtlsParams)U.setRemoteParams(Q.dtlsParams);if(Q.iceCandidates.forEach(N.addRemoteCandidate),Q.iceCandidatesComplete)N.addRemoteCandidate(void 0);if(G.type==="answer"&&Q.dtlsParams?.role)U.role=Q.dtlsParams.role==="client"?"server":"client";return N});Z=Z.filter((Q)=>!!Q);let V=this.transceiverManager.getTransceivers().filter((Q)=>G.media.find((J)=>Y(Q,J))==null);if(W.type==="answer")for(let Q of V)Q.stop(),Q.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.type==="answer")t5("caller start connect"),this.connect().catch((Q)=>{t5("connect failed",Q),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(t5("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=FG();return{type:"peer-connection",id:Z8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let Z=await this.sctpManager.getStats();if(Z)G.push(...Z)}return new Ki(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),t5("peerConnection closed")}},H2=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function Jx(){return{codecs:{audio:[kS(),_S()],video:[xS()]},headerExtensions:{audio:[],video:[]},iceTransportPolicy:"all",iceServers:[{urls:"stun:stun.l.google.com:19302"}],icePortRange:void 0,iceInterfaceAddresses:void 0,iceAdditionalHostAddresses:void 0,iceUseIpv4:!0,iceUseIpv6:!0,iceFilterStunResponse:void 0,iceFilterCandidatePair:void 0,icePasswordPrefix:void 0,iceUseLinkLocalAddress:void 0,dtls:{},bundlePolicy:"max-compat",debug:{},midSuffix:!1,forceTurnTCP:!1,maxMessageSize:cQ}}var KA0=Jx(),xr=T1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),kr=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new f0;onRemoteTransceiverAdded=new f0;onTrack=new f0;onNegotiationNeeded=new f0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,Z=X.direction||"sendrecv",V=new Rr(W),Q=new Vx(this.config,Y,V.ssrc),J=new Ci(Y,G,Q,V,Z);J.options=X,this.router.registerRtpSender(J.sender);let U=this.transceivers.findIndex((q)=>q.currentDirection==="inactive"&&!q.usedForSender),N=this.transceivers.find((q)=>q.currentDirection==="inactive"&&!q.usedForSender);if(U>-1&&N)this.replaceTransceiver(J,U),J.mLineIndex=N.mLineIndex,J.mid=N.mid,N.setCurrentDirection(void 0);else this.pushTransceiver(J);return this.onTransceiverAdded.execute(J),J}addTrack(W,G){if(this.getSenders().find((Z)=>Z.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mq.includes(Z.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mq.includes(Z.direction)===!1&&!Z.usedForSender);if(Y){switch(Y.sender.registerTrack(W),Y.direction){case"recvonly":Y.setDirection("sendrecv");break;case"inactive":Y.setDirection("sendonly");break}return Y}else return this.addTransceiver(W,void 0,{direction:"sendrecv"})}removeTrack(W){if(!this.getSenders().find(({ssrc:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(Oi.includes(W.direction))return!0;return!1}case"sendonly":{if(mq.includes(W.direction))return!0;return!1}case"sendrecv":{if([hS,uS,gS].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,Z)=>{if(Z.name.toLowerCase()==="rtx"){let V=UH(Z.parameters??""),Q=Y[V.apt];if(Q&&W.ssrc.length===2)Q.rtx=new Zi({ssrc:W.ssrc[1].ssrc});return Y}return Y[Z.payloadType]=new Vi({ssrc:W.ssrc[0]?.ssrc,payloadType:Z.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((J)=>{let U=this.config.codecs[G.kind]||[],N=H2(U,J);if(!N)return!1;if(N?.name.toLowerCase()==="rtx"){let A=UH(N.parameters??"").apt,H=G.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!H2(U,H)}return!0}),xr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((J)=>(this.config.headerExtensions[G.kind]||[]).find((U)=>U.uri===J.uri));let Z=G.direction??"inactive",V=Li(Z);if(["answer","pranswer"].includes(X))W.setCurrentDirection(V);else W.offerDirection=V;let Q=this.getLocalRtpParams(W);if(W.sender.prepareSend(Q),["recvonly","sendrecv"].includes(W.direction)){let J=this.getRemoteRtpParams(G,W);for(let U of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,U,J);W.receiver.prepareReceive(J),this.router.registerRtpReceiverBySsrc(W,J)}if(["sendonly","sendrecv"].includes(Z)){if(G.msid){let[J,U]=G.msid.split(" ");W.receiver.remoteStreamId=J,W.receiver.remoteTrackId=U}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new Mi({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let Z=await X.sender.getStats();if(Z)for(let V of Z)if(V.type==="outbound-rtp"||V.type==="media-source"){if(Y)G.push(V)}else G.push(V)}if(X.receiver){let Z=await X.receiver.getStats();if(Z)for(let V of Z)if(V.type==="inbound-rtp"||V.type==="remote-outbound-rtp"){if(Y)G.push(V)}else G.push(V)}if(Y){let Z=X.getCodecStats();if(Z)G.push(...Z)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class qK extends Qx{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var pY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_r={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yr=BigInt(0),Ux=BigInt(1),HK=BigInt(2);function vr(W){let G=pY.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=V5(q,X,G)*q%G,H=V5(A,X,G)*q%G,I=V5(H,HK,G)*N%G,w=V5(I,Z,G)*I%G,C=V5(w,V,G)*w%G,D=V5(C,J,G)*C%G,x=V5(D,U,G)*D%G,h=V5(x,J,G)*C%G,p=V5(h,X,G)*q%G,u=V5(p,Q,G)*w%G,n=V5(u,Y,G)*N%G,c=V5(n,HK,G);if(!OH.eql(OH.sqr(c),W))throw Error("Cannot find square root");return c}var OH=T5(pY.p,{sqrt:vr}),Hx=CY({...pY,Fp:OH,lowS:!0,endo:_r},jY),Nx={};function KH(W,...G){let X=Nx[W];if(X===void 0){let Y=jY(Nq(W));X=o9(Y,Y),Nx[W]=X}return jY(o9(X,...G))}var zK=(W)=>W.toBytes(!0).slice(1),lY=(()=>Hx.Point)(),IK=(W)=>W%HK===yr;function AK(W){let{Fn:G,BASE:X}=lY,Y=d6(G,W),Z=X.multiply(Y);return{scalar:IK(Z.y)?Y:G.neg(Y),bytes:zK(Z)}}function Ax(W){let G=OH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!IK(Z))Z=G.neg(Z);let V=lY.fromAffine({x:W,y:Z});return V.assertValidity(),V}var HJ=L4;function zx(...W){return lY.Fn.create(HJ(KH("BIP0340/challenge",...W)))}function qx(W){return AK(W).bytes}function gr(W,G,X=HG(32)){let{Fn:Y}=lY,Z=B8("message",W),{bytes:V,scalar:Q}=AK(G),J=B8("auxRand",X,32),U=Y.toBytes(Q^HJ(KH("BIP0340/aux",J))),N=KH("BIP0340/nonce",U,V,Z),{bytes:q,scalar:A}=AK(N),H=zx(q,V,Z),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!Ix(I,Z,V))throw Error("sign: Invalid signature produced");return I}function Ix(W,G,X){let{Fn:Y,BASE:Z}=lY,V=B8("signature",W,64),Q=B8("message",G),J=B8("publicKey",X,32);try{let U=Ax(HJ(J)),N=HJ(V.subarray(0,32));if(!RQ(N,Ux,pY.p))return!1;let q=HJ(V.subarray(32,64));if(!RQ(q,Ux,pY.n))return!1;let A=zx(Y.toBytes(N),zK(U),Q),H=Z.multiplyUnsafe(q).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!IK(w)||I!==N)return!1;return!0}catch(U){return!1}}var wx=(()=>{let X=(Z=HG(48))=>{return Iq(Z,pY.n)};Hx.utils.randomSecretKey;function Y(Z){let V=X(Z);return{secretKey:V,publicKey:qx(V)}}return{keygen:Y,getPublicKey:qx,sign:gr,verify:Ix,Point:lY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:KH,lift_x:Ax,pointToBytes:zK,numberToBytesBE:wY,bytesToNumberBE:L4,mod:Z5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var jx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),ur=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),hr=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(ur(X)!==W.id)return!1;return wx.verify(jx(W.sig),X,jx(W.pubkey))}catch{return!1}},br=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Ox({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=0,Y=0,Z=Bun.serve({port:W,fetch(V,Q){if(Q.upgrade(V))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:G.size,events:X,dropped:Y})},websocket:{open(V){G.set(V,new Map)},close(V){G.delete(V)},async message(V,Q){let J;try{J=JSON.parse(String(Q))}catch{return}if(!Array.isArray(J))return;let[U,N,q]=J;if(U==="REQ"&&typeof N==="string"&&q&&typeof q==="object"){G.get(V)?.set(N,q),V.send(JSON.stringify(["EOSE",N]));return}if(U==="CLOSE"&&typeof N==="string"){G.get(V)?.delete(N);return}if(U==="EVENT"&&N&&typeof N==="object"){if(!await hr(N)){Y++,V.send(JSON.stringify(["OK",N.id??"",!1,"invalid: bad signature"]));return}X++,V.send(JSON.stringify(["OK",N.id,!0,""]));for(let[A,H]of G)for(let[I,w]of H)if(br(w,N)){try{A.send(JSON.stringify(["EVENT",I,N]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${Z.port} (ephemeral, schnorr-verified)`),{port:Z.port,stats:()=>({connections:G.size,events:X,dropped:Y}),stop:()=>Z.stop(!0)}}var CH="6.15.0";function mr(W,G,X){let Y=G.split("|").map((V)=>V.trim());for(let V=0;V<Y.length;V++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let Z=Error(`invalid value for type ${G}`);throw Z.code="INVALID_ARGUMENT",Z.argument=`value.${X}`,Z.value=W,Z}async function p7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,Z,V)=>{return Y[G[V]]=Z,Y},{})}function Q8(W,G,X){for(let Y in G){let Z=G[Y],V=X?X[Y]:null;if(V)mr(Z,V,Y);Object.defineProperty(W,Y,{enumerable:!0,value:Z,writable:!1})}}function dY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>dY(X,G)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let Z=0;Z<W.length;Z++)Y+="0123456789abcdef"[W[Z]>>4],Y+="0123456789abcdef"[W[Z]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return dY(W.toJSON(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${dY(Y,G)}: ${dY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function DH(W,G){return W&&W.code===G}function AJ(W,G,X){let Y=W;{let V=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${dY(X)}`);for(let Q in X){if(Q==="shortMessage")continue;let J=X[Q];V.push(Q+"="+dY(J))}}if(V.push(`code=${G}`),V.push(`version=${CH}`),V.length)W+=" ("+V.join(", ")+")"}let Z;switch(G){case"INVALID_ARGUMENT":Z=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":Z=RangeError(W);break;default:Z=Error(W)}if(Q8(Z,{code:G}),X)Object.assign(Z,X);if(Z.shortMessage==null)Q8(Z,{shortMessage:Y});return Z}function t0(W,G,X,Y){if(!W)throw AJ(G,X,Y)}function s(W,G,X,Y){t0(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var fr=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function oY(W){t0(fr.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function l4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,Z="new";if(X)Y+=".",Z+=" "+X;t0(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:Z})}}function Cx(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),Z=2;for(let V=0;V<Y.length;V++)Y[V]=parseInt(W.substring(Z,Z+2),16),Z+=2;return Y}s(!1,"invalid BytesLike value",G||"value",W)}function R0(W,G){return Cx(W,G,!1)}function Y7(W,G){return Cx(W,G,!0)}function T9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function l7(W){return T9(W,!0)||W instanceof Uint8Array}var Kx="0123456789abcdef";function C0(W){let G=R0(W),X="0x";for(let Y=0;Y<G.length;Y++){let Z=G[Y];X+=Kx[(Z&240)>>4]+Kx[Z&15]}return X}function s1(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function d4(W){if(T9(W,!0))return(W.length-2)/2;return R0(W).length}function nY(W,G,X){let Y=R0(W);if(X!=null&&X>Y.length)t0(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function cr(W,G,X){let Y=R0(W);t0(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let Z=new Uint8Array(G);if(Z.fill(0),X)Z.set(Y,G-Y.length);else Z.set(Y,0);return C0(Z)}function N5(W,G){return cr(W,G,!0)}var wK=BigInt(0),SG=BigInt(1),iY=9007199254740991;function MH(W,G){let X=u1(W,"value"),Y=BigInt(i8(G,"width")),Z=SG<<Y-SG;if(X<wK){X=-X,t0(X<=Z,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let V=(SG<<Y)-SG;return(~X&V)+SG}else t0(X<Z,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function TH(W,G){let X=zJ(W,"value"),Y=BigInt(i8(G,"bits"));return X&(SG<<Y)-SG}function u1(W,G){switch(typeof W){case"bigint":return W;case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){s(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}s(!1,"invalid BigNumberish value",G||"value",W)}function zJ(W,G){let X=u1(W,G);return t0(X>=wK,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var Dx="0123456789abcdef";function rY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=Dx[X>>4],G+=Dx[X&15];return BigInt(G)}return u1(W)}function i8(W,G){switch(typeof W){case"bigint":return s(W>=-iY&&W<=iY,"overflow",G||"value",W),Number(W);case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return i8(BigInt(W),G)}catch(X){s(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}s(!1,"invalid numeric value",G||"value",W)}function Z7(W,G){let Y=zJ(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let Z=i8(G,"width");t0(Z*2>=Y.length,`value exceeds width (${Z} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<Z*2)Y="0"+Y}return"0x"+Y}function J8(W){let G=zJ(W,"value");if(G===wK)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let Z=0;Z<Y.length;Z++){let V=Z*2;Y[Z]=parseInt(X.substring(V,V+2),16)}return Y}function PH(W){let G=C0(l7(W)?W:J8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var LH="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",RH=null;function pr(W){if(RH==null){RH={};for(let X=0;X<LH.length;X++)RH[LH[X]]=BigInt(X)}let G=RH[W];return s(G!=null,"invalid base58 value","letter",W),G}var lr=BigInt(0),jK=BigInt(58);function BH(W){let G=R0(W),X=rY(G),Y="";while(X)Y=LH[Number(X%jK)]+Y,X/=jK;for(let Z=0;Z<G.length;Z++){if(G[Z])break;Y=LH[0]+Y}return Y}function EH(W){let G=lr;for(let X=0;X<W.length;X++)G*=jK,G+=pr(W[X]);return G}function dr(W,G,X,Y,Z){s(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Mx(W,G,X,Y,Z){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let V=0;for(let Q=G+1;Q<X.length;Q++){if(X[Q]>>6!==2)break;V++}return V}if(W==="OVERRUN")return X.length-G-1;return 0}function or(W,G,X,Y,Z){if(W==="OVERLONG")return s(typeof Z==="number","invalid bad code point for replacement","badCodepoint",Z),Y.push(Z),0;return Y.push(65533),Mx(W,G,X,Y,Z)}var Tx=Object.freeze({error:dr,ignore:Mx,replace:or});function P9(W,G){if(s(typeof W==="string","invalid string value","str",W),G!=null)oY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let Z=W.charCodeAt(Y);if(Z<128)X.push(Z);else if(Z<2048)X.push(Z>>6|192),X.push(Z&63|128);else if((Z&64512)==55296){Y++;let V=W.charCodeAt(Y);s(Y<W.length&&(V&64512)===56320,"invalid surrogate pair","str",W);let Q=65536+((Z&1023)<<10)+(V&1023);X.push(Q>>18|240),X.push(Q>>12&63|128),X.push(Q>>6&63|128),X.push(Q&63|128)}else X.push(Z>>12|224),X.push(Z>>6&63|128),X.push(Z&63|128)}return new Uint8Array(X)}function nr(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function Px(W,G,X){let Y=0;for(let Z=0;Z<X;Z++)Y=Y*256+W[G+Z];return Y}function Rx(W,G,X,Y){let Z=[];while(X<G+1+Y){let V=Lx(W,X);Z.push(V.result),X+=V.consumed,t0(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:Z}}function Lx(W,G){t0(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{t0(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let Z=Px(W,G+1,Y);return X(G+1+Y+Z),Rx(W,G,G+1+Y,Y+Z)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),Rx(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let Z=Px(W,G+1,Y);X(G+1+Y+Z);let V=C0(W.slice(G+1+Y,G+1+Y+Z));return{consumed:1+Y+Z,result:V}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let Z=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:Z}}return{consumed:1,result:nr(W[G])}}function WW(W){let G=R0(W,"data"),X=Lx(G,0);return s(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function Bx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function $x(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(V){Y=Y.concat($x(V))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let Z=Bx(Y.length);return Z.unshift(247+Z.length),Z.concat(Y)}let G=Array.prototype.slice.call(R0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=Bx(G.length);return X.unshift(183+X.length),X.concat(G)}var Ex="0123456789abcdef";function R5(W){let G="0x";for(let X of $x(W))G+=Ex[X>>4],G+=Ex[X&15];return G}function $H(W){let G=R0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OK,createHmac as Fx,pbkdf2Sync as Sx,randomBytes as xx}from"crypto";var kx=!1,_x=function(W,G,X){return Fx(W,G).update(X).digest()},yx=_x;function GW(W,G,X){let Y=R0(G,"key"),Z=R0(X,"data");return C0(yx(W,Y,Z))}GW._=_x;GW.lock=function(){kx=!0};GW.register=function(W){if(kx)throw Error("computeHmac is locked");yx=W};Object.freeze(GW);function R9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function IJ(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function FH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");R9(W.outputLen),R9(W.blockLen)}function o4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function SH(W,G){IJ(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var xH=BigInt(4294967295),vx=BigInt(32);function Xa(W,G=!1){if(G)return{h:Number(W&xH),l:Number(W>>vx&xH)};return{h:Number(W>>vx&xH)|0,l:Number(W&xH)|0}}function gx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let Z=0;Z<W.length;Z++){let{h:V,l:Q}=Xa(W[Z],G);[X[Z],Y[Z]]=[V,Q]}return[X,Y]}var ux=(W,G,X)=>W<<X|G>>>32-X,hx=(W,G,X)=>G<<X|W>>>32-X,bx=(W,G,X)=>G<<X-32|W>>>64-X,mx=(W,G,X)=>W<<X-32|G>>>64-X;import*as wJ from"crypto";var kH=wJ&&typeof wJ==="object"&&"webcrypto"in wJ?wJ.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var fx=(W)=>W instanceof Uint8Array;var aY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),sY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),V7=(W,G)=>W<<32-G|W>>>G,Ya=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Ya)throw Error("Non little-endian hardware is not supported");var Za=async()=>{};async function _H(W,G,X){let Y=Date.now();for(let Z=0;Z<W;Z++){X(Z);let V=Date.now()-Y;if(V>=0&&V<G)continue;await Za(),Y+=V}}function Va(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function d7(W){if(typeof W==="string")W=Va(W);if(!fx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function cx(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!fx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class xG{clone(){return this._cloneInto()}}var Qa={}.toString;function yH(W,G){if(G!==void 0&&Qa.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function tY(W){let G=(Y)=>W().update(d7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function px(W=32){if(kH&&typeof kH.getRandomValues==="function")return kH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[ox,nx,ix]=[[],[],[]],Ja=BigInt(0),jJ=BigInt(1),Ua=BigInt(2),Na=BigInt(7),qa=BigInt(256),Ha=BigInt(113);for(let W=0,G=jJ,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],ox.push(2*(5*Y+X)),nx.push((W+1)*(W+2)/2%64);let Z=Ja;for(let V=0;V<7;V++)if(G=(G<<jJ^(G>>Na)*Ha)%qa,G&Ua)Z^=jJ<<(jJ<<BigInt(V))-jJ;ix.push(Z)}var[Aa,za]=gx(ix,!0),lx=(W,G,X)=>X>32?bx(W,G,X):ux(W,G,X),dx=(W,G,X)=>X>32?mx(W,G,X):hx(W,G,X);function Ia(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let Q=0;Q<10;Q++)X[Q]=W[Q]^W[Q+10]^W[Q+20]^W[Q+30]^W[Q+40];for(let Q=0;Q<10;Q+=2){let J=(Q+8)%10,U=(Q+2)%10,N=X[U],q=X[U+1],A=lx(N,q,1)^X[J],H=dx(N,q,1)^X[J+1];for(let I=0;I<50;I+=10)W[Q+I]^=A,W[Q+I+1]^=H}let Z=W[2],V=W[3];for(let Q=0;Q<24;Q++){let J=nx[Q],U=lx(Z,V,J),N=dx(Z,V,J),q=ox[Q];Z=W[q],V=W[q+1],W[q]=U,W[q+1]=N}for(let Q=0;Q<50;Q+=10){for(let J=0;J<10;J++)X[J]=W[Q+J];for(let J=0;J<10;J++)W[Q+J]^=~X[(J+2)%10]&X[(J+4)%10]}W[0]^=Aa[Y],W[1]^=za[Y]}X.fill(0)}class KK extends xG{constructor(W,G,X,Y=!1,Z=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=Z,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,R9(X),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=aY(this.state)}keccak(){Ia(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){o4(this);let{blockLen:G,state:X}=this;W=d7(W);let Y=W.length;for(let Z=0;Z<Y;){let V=Math.min(G-this.pos,Y-Z);for(let Q=0;Q<V;Q++)X[this.pos++]^=W[Z++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){o4(this,!1),IJ(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,Z=W.length;Y<Z;){if(this.posOut>=X)this.keccak();let V=Math.min(X-this.posOut,Z-Y);W.set(G.subarray(this.posOut,this.posOut+V),Y),this.posOut+=V,Y+=V}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return R9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(SH(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:Z,enableXOF:V}=this;return W||(W=new KK(G,X,Y,V,Z)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=Z,W.suffix=X,W.outputLen=Y,W.enableXOF=V,W.destroyed=this.destroyed,W}}var wa=(W,G,X)=>tY(()=>new KK(G,W,X));var rx=wa(1,136,32);var ax=!1,sx=function(W){return rx(W)},tx=sx;function X8(W){let G=R0(W,"data");return C0(tx(G))}X8._=sx;X8.lock=function(){ax=!0};X8.register=function(W){if(ax)throw TypeError("keccak256 is locked");tx=W};Object.freeze(X8);function ja(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,N=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+N,J,Y)}class OJ extends xG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=sY(this.buffer)}update(W){o4(this);let{view:G,buffer:X,blockLen:Y}=this;W=d7(W);let Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=sY(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){o4(this),SH(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,this.buffer.subarray(V).fill(0),this.padOffset>Y-V)this.process(X,0),V=0;for(let q=V;q<Y;q++)G[q]=0;ja(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=sY(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,N=this.get();if(U>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<U;q++)Q.setUint32(4*q,N[q],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.length=Y,W.pos=Q,W.finished=Z,W.destroyed=V,Y%G)W.buffer.set(X);return W}}var Oa=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Wk=Uint8Array.from({length:16},(W,G)=>G),Ka=Wk.map((W)=>(9*W+5)%16),CK=[Wk],DK=[Ka];for(let W=0;W<4;W++)for(let G of[CK,DK])G.push(G[W].map((X)=>Oa[X]));var Gk=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((W)=>new Uint8Array(W)),Ca=CK.map((W,G)=>W.map((X)=>Gk[G][X])),Da=DK.map((W,G)=>W.map((X)=>Gk[G][X])),Ma=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Ta=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),vH=(W,G)=>W<<G|W>>>32-G;function ex(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var gH=new Uint32Array(16);class Xk extends OJ{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:W,h1:G,h2:X,h3:Y,h4:Z}=this;return[W,G,X,Y,Z]}set(W,G,X,Y,Z){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=Z|0}process(W,G){for(let H=0;H<16;H++,G+=4)gH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,Z=this.h1|0,V=Z,Q=this.h2|0,J=Q,U=this.h3|0,N=U,q=this.h4|0,A=q;for(let H=0;H<5;H++){let I=4-H,w=Ma[H],C=Ta[H],D=CK[H],x=DK[H],h=Ca[H],p=Da[H];for(let u=0;u<16;u++){let n=vH(X+ex(H,Z,Q,U)+gH[D[u]]+w,h[u])+q|0;X=q,q=U,U=vH(Q,10)|0,Q=Z,Z=n}for(let u=0;u<16;u++){let n=vH(Y+ex(I,V,J,N)+gH[x[u]]+C,p[u])+A|0;Y=A,A=N,N=vH(J,10)|0,J=V,V=n}}this.set(this.h1+Q+N|0,this.h2+U+A|0,this.h3+q+Y|0,this.h4+X+V|0,this.h0+Z+J|0)}roundClean(){gH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Yk=tY(()=>new Xk);var Zk=!1,Vk=function(W){return Yk(W)},Qk=Vk;function XW(W){let G=R0(W,"data");return C0(Qk(G))}XW._=Vk;XW.lock=function(){Zk=!0};XW.register=function(W){if(Zk)throw TypeError("ripemd160 is locked");Qk=W};Object.freeze(XW);var Jk=!1,Uk=function(W,G,X,Y,Z){return Sx(W,G,X,Y,Z)},Nk=Uk;function L5(W,G,X,Y,Z){let V=R0(W,"password"),Q=R0(G,"salt");return C0(Nk(V,Q,X,Y,Z))}L5._=Uk;L5.lock=function(){Jk=!0};L5.register=function(W){if(Jk)throw Error("pbkdf2 is locked");Nk=W};Object.freeze(L5);var qk=!1,Hk=function(W){return new Uint8Array(xx(W))},Ak=Hk;function B5(W){return Ak(W)}B5._=Hk;B5.lock=function(){qk=!0};B5.register=function(W){if(qk)throw Error("randomBytes is locked");Ak=W};Object.freeze(B5);var Pa=(W,G,X)=>W&G^~W&X,Ra=(W,G,X)=>W&G^W&X^G&X,La=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),YW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ZW=new Uint32Array(64);class zk extends OJ{constructor(){super(64,32,8,!1);this.A=YW[0]|0,this.B=YW[1]|0,this.C=YW[2]|0,this.D=YW[3]|0,this.E=YW[4]|0,this.F=YW[5]|0,this.G=YW[6]|0,this.H=YW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let q=0;q<16;q++,G+=4)ZW[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=ZW[q-15],H=ZW[q-2],I=V7(A,7)^V7(A,18)^A>>>3,w=V7(H,17)^V7(H,19)^H>>>10;ZW[q]=w+ZW[q-7]+I+ZW[q-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:N}=this;for(let q=0;q<64;q++){let A=V7(Q,6)^V7(Q,11)^V7(Q,25),H=N+A+Pa(Q,J,U)+La[q]+ZW[q]|0,w=(V7(X,2)^V7(X,13)^V7(X,22))+Ra(X,Y,Z)|0;N=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,N=N+this.H|0,this.set(X,Y,Z,V,Q,J,U,N)}roundClean(){ZW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var KJ=tY(()=>new zk);class MK extends xG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,FH(W);let X=d7(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),Z.fill(0)}update(W){return o4(this),this.iHash.update(W),this}digestInto(W){o4(this),IJ(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var CJ=(W,G,X)=>new MK(W,G).update(X).digest();CJ.create=(W,G)=>new MK(W,G);function Ba(W,G,X,Y){FH(W);let Z=yH({dkLen:32,asyncTick:10},Y),{c:V,dkLen:Q,asyncTick:J}=Z;if(R9(V),R9(Q),R9(J),V<1)throw Error("PBKDF2: iterations (c) should be >= 1");let U=d7(G),N=d7(X),q=new Uint8Array(Q),A=CJ.create(W,U),H=A._cloneInto().update(N);return{c:V,dkLen:Q,asyncTick:J,DK:q,PRF:A,PRFSalt:H}}function Ea(W,G,X,Y,Z){if(W.destroy(),G.destroy(),Y)Y.destroy();return Z.fill(0),X}function TK(W,G,X,Y){let{c:Z,dkLen:V,DK:Q,PRF:J,PRFSalt:U}=Ba(W,G,X,Y),N,q=new Uint8Array(4),A=sY(q),H=new Uint8Array(J.outputLen);for(let I=1,w=0;w<V;I++,w+=J.outputLen){let C=Q.subarray(w,w+J.outputLen);A.setInt32(0,I,!1),(N=U._cloneInto(N)).update(q).digestInto(H),C.set(H.subarray(0,C.length));for(let D=1;D<Z;D++){J._cloneInto(N).update(H).digestInto(H);for(let x=0;x<C.length;x++)C[x]^=H[x]}}return Ea(J,U,Q,N,H)}var o1=(W,G)=>W<<G|W>>>32-G;function Ik(W,G,X,Y,Z,V){let Q=W[G++]^X[Y++],J=W[G++]^X[Y++],U=W[G++]^X[Y++],N=W[G++]^X[Y++],q=W[G++]^X[Y++],A=W[G++]^X[Y++],H=W[G++]^X[Y++],I=W[G++]^X[Y++],w=W[G++]^X[Y++],C=W[G++]^X[Y++],D=W[G++]^X[Y++],x=W[G++]^X[Y++],h=W[G++]^X[Y++],p=W[G++]^X[Y++],u=W[G++]^X[Y++],n=W[G++]^X[Y++],c=Q,l=J,W0=U,m=N,Y0=q,U0=A,y=H,o=I,B=w,R=C,_=D,S=x,v=h,P=p,E=u,b=n;for(let k=0;k<8;k+=2)Y0^=o1(c+v|0,7),B^=o1(Y0+c|0,9),v^=o1(B+Y0|0,13),c^=o1(v+B|0,18),R^=o1(U0+l|0,7),P^=o1(R+U0|0,9),l^=o1(P+R|0,13),U0^=o1(l+P|0,18),E^=o1(_+y|0,7),W0^=o1(E+_|0,9),y^=o1(W0+E|0,13),_^=o1(y+W0|0,18),m^=o1(b+S|0,7),o^=o1(m+b|0,9),S^=o1(o+m|0,13),b^=o1(S+o|0,18),l^=o1(c+m|0,7),W0^=o1(l+c|0,9),m^=o1(W0+l|0,13),c^=o1(m+W0|0,18),y^=o1(U0+Y0|0,7),o^=o1(y+U0|0,9),Y0^=o1(o+y|0,13),U0^=o1(Y0+o|0,18),S^=o1(_+R|0,7),B^=o1(S+_|0,9),R^=o1(B+S|0,13),_^=o1(R+B|0,18),v^=o1(b+E|0,7),P^=o1(v+b|0,9),E^=o1(P+v|0,13),b^=o1(E+P|0,18);Z[V++]=Q+c|0,Z[V++]=J+l|0,Z[V++]=U+W0|0,Z[V++]=N+m|0,Z[V++]=q+Y0|0,Z[V++]=A+U0|0,Z[V++]=H+y|0,Z[V++]=I+o|0,Z[V++]=w+B|0,Z[V++]=C+R|0,Z[V++]=D+_|0,Z[V++]=x+S|0,Z[V++]=h+v|0,Z[V++]=p+P|0,Z[V++]=u+E|0,Z[V++]=n+b|0}function eY(W,G,X,Y,Z){let V=Y+0,Q=Y+16*Z;for(let J=0;J<16;J++)X[Q+J]=W[G+(2*Z-1)*16+J];for(let J=0;J<Z;J++,V+=16,G+=16){if(Ik(X,Q,W,G,X,V),J>0)Q+=16;Ik(X,V,W,G+=16,X,Q)}}function wk(W,G,X){let Y=yH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{N:Z,r:V,p:Q,dkLen:J,asyncTick:U,maxmem:N,onProgress:q}=Y;if(R9(Z),R9(V),R9(Q),R9(J),R9(U),R9(N),q!==void 0&&typeof q!=="function")throw Error("progressCb should be function");let A=128*V,H=A/4;if(Z<=1||(Z&Z-1)!==0||Z>=2**(A/8)||Z>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(Q<0||Q>137438953440/A)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(J<0||J>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let I=A*(Z+Q);if(I>N)throw Error(`Scrypt: parameters too large, ${I} (128 * r * (N + p)) > ${N} (maxmem)`);let w=TK(KJ,W,G,{c:1,dkLen:A*Q}),C=aY(w),D=aY(new Uint8Array(A*Z)),x=aY(new Uint8Array(A)),h=()=>{};if(q){let p=2*Z*Q,u=Math.max(Math.floor(p/1e4),1),n=0;h=()=>{if(n++,q&&(!(n%u)||n===p))q(n/p)}}return{N:Z,r:V,p:Q,dkLen:J,blockSize32:H,V:D,B32:C,B:w,tmp:x,blockMixCb:h,asyncTick:U}}function jk(W,G,X,Y,Z){let V=TK(KJ,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),Z.fill(0),V}function Ok(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:N,B:q,tmp:A,blockMixCb:H}=wk(W,G,X);for(let I=0;I<V;I++){let w=J*I;for(let C=0;C<J;C++)U[C]=N[w+C];for(let C=0,D=0;C<Y-1;C++)eY(U,D,U,D+=J,Z),H();eY(U,(Y-1)*J,N,w,Z),H();for(let C=0;C<Y;C++){let D=N[w+J-16]%Y;for(let x=0;x<J;x++)A[x]=N[w+x]^U[D*J+x];eY(A,0,N,w,Z),H()}}return jk(W,Q,q,U,A)}async function Kk(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:N,B:q,tmp:A,blockMixCb:H,asyncTick:I}=wk(W,G,X);for(let w=0;w<V;w++){let C=J*w;for(let x=0;x<J;x++)U[x]=N[C+x];let D=0;await _H(Y-1,I,()=>{eY(U,D,U,D+=J,Z),H()}),eY(U,(Y-1)*J,N,C,Z),H(),await _H(Y,I,()=>{let x=N[C+J-16]%Y;for(let h=0;h<J;h++)A[h]=N[C+h]^U[x*J+h];eY(A,0,N,C,Z),H()})}return jk(W,Q,q,U,A)}var Ck=!1,Dk=!1,Mk=async function(W,G,X,Y,Z,V,Q){return await Kk(W,G,{N:X,r:Y,p:Z,dkLen:V,onProgress:Q})},Tk=function(W,G,X,Y,Z,V){return Ok(W,G,{N:X,r:Y,p:Z,dkLen:V})},Pk=Mk,Rk=Tk;async function VW(W,G,X,Y,Z,V,Q){let J=R0(W,"passwd"),U=R0(G,"salt");return C0(await Pk(J,U,X,Y,Z,V,Q))}VW._=Mk;VW.lock=function(){Dk=!0};VW.register=function(W){if(Dk)throw Error("scrypt is locked");Pk=W};Object.freeze(VW);function QW(W,G,X,Y,Z,V){let Q=R0(W,"passwd"),J=R0(G,"salt");return C0(Rk(Q,J,X,Y,Z,V))}QW._=Tk;QW.lock=function(){Ck=!0};QW.register=function(W){if(Ck)throw Error("scryptSync is locked");Rk=W};Object.freeze(QW);var Lk=function(W){return OK("sha256").update(W).digest()},Bk=function(W){return OK("sha512").update(W).digest()},Ek=Lk,$k=Bk,Fk=!1,Sk=!1;function L9(W){let G=R0(W,"data");return C0(Ek(G))}L9._=Lk;L9.lock=function(){Fk=!0};L9.register=function(W){if(Fk)throw Error("sha256 is locked");Ek=W};Object.freeze(L9);function uH(W){let G=R0(W,"data");return C0($k(G))}uH._=Bk;uH.lock=function(){Sk=!0};uH.register=function(W){if(Sk)throw Error("sha512 is locked");$k=W};Object.freeze(L9);var BK={};NA(BK,{validateObject:()=>UW,utf8ToBytes:()=>ka,numberToVarBytesBE:()=>Sa,numberToHexUnpadded:()=>_k,numberToBytesLE:()=>fH,numberToBytesBE:()=>JW,hexToNumber:()=>RK,hexToBytes:()=>_G,equalBytes:()=>xa,ensureBytes:()=>q5,createHmacDrbg:()=>LK,concatBytes:()=>WZ,bytesToNumberLE:()=>mH,bytesToNumberBE:()=>n4,bytesToHex:()=>kG,bitSet:()=>va,bitMask:()=>DJ,bitLen:()=>_a,bitGet:()=>ya});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var kk=BigInt(0),hH=BigInt(1),$a=BigInt(2),bH=(W)=>W instanceof Uint8Array,Fa=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function kG(W){if(!bH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=Fa[W[X]];return G}function _k(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function RK(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function _G(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let Z=Y*2,V=W.slice(Z,Z+2),Q=Number.parseInt(V,16);if(Number.isNaN(Q)||Q<0)throw Error("Invalid byte sequence");X[Y]=Q}return X}function n4(W){return RK(kG(W))}function mH(W){if(!bH(W))throw Error("Uint8Array expected");return RK(kG(Uint8Array.from(W).reverse()))}function JW(W,G){return _G(W.toString(16).padStart(G*2,"0"))}function fH(W,G){return JW(W,G).reverse()}function Sa(W){return _G(_k(W))}function q5(W,G,X){let Y;if(typeof G==="string")try{Y=_G(G)}catch(V){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${V}`)}else if(bH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(`${W} expected ${X} bytes, got ${Z}`);return Y}function WZ(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!bH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function xa(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function ka(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function _a(W){let G;for(G=0;W>kk;W>>=hH,G+=1);return G}function ya(W,G){return W>>BigInt(G)&hH}var va=(W,G,X)=>{return W|(X?hH:kk)<<BigInt(G)},DJ=(W)=>($a<<BigInt(W-1))-hH,PK=(W)=>new Uint8Array(W),xk=(W)=>Uint8Array.from(W);function LK(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=PK(W),Z=PK(W),V=0,Q=()=>{Y.fill(1),Z.fill(0),V=0},J=(...A)=>X(Z,Y,...A),U=(A=PK())=>{if(Z=J(xk([0]),A),Y=J(),A.length===0)return;Z=J(xk([1]),A),Y=J()},N=()=>{if(V++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<G){Y=J();let I=Y.slice();H.push(I),A+=Y.length}return WZ(...H)};return(A,H)=>{Q(),U(A);let I=void 0;while(!(I=H(N())))U();return Q(),I}}var ga={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function UW(W,G,X={}){let Y=(Z,V,Q)=>{let J=ga[V];if(typeof J!=="function")throw Error(`Invalid validator "${V}", expected function`);let U=W[Z];if(Q&&U===void 0)return;if(!J(U,W))throw Error(`Invalid param ${String(Z)}=${U} (${typeof U}), expected ${V}`)};for(let[Z,V]of Object.entries(G))Y(Z,V,!1);for(let[Z,V]of Object.entries(X))Y(Z,V,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var l8=BigInt(0),$8=BigInt(1),yG=BigInt(2),ua=BigInt(3),EK=BigInt(4),yk=BigInt(5),vk=BigInt(8),ha=BigInt(9),ba=BigInt(16);function B9(W,G){let X=W%G;return X>=l8?X:G+X}function ma(W,G,X){if(X<=l8||G<l8)throw Error("Expected power/modulo > 0");if(X===$8)return l8;let Y=$8;while(G>l8){if(G&$8)Y=Y*W%X;W=W*W%X,G>>=$8}return Y}function H5(W,G,X){let Y=W;while(G-- >l8)Y*=Y,Y%=X;return Y}function cH(W,G){if(W===l8||G<=l8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=B9(W,G),Y=G,Z=l8,V=$8,Q=$8,J=l8;while(X!==l8){let N=Y/X,q=Y%X,A=Z-Q*N,H=V-J*N;Y=X,X=q,Z=Q,V=J,Q=A,J=H}if(Y!==$8)throw Error("invert: does not exist");return B9(Z,G)}function fa(W){let G=(W-$8)/yG,X,Y,Z;for(X=W-$8,Y=0;X%yG===l8;X/=yG,Y++);for(Z=yG;Z<W&&ma(Z,G,W)!==W-$8;Z++);if(Y===1){let Q=(W+$8)/EK;return function(U,N){let q=U.pow(N,Q);if(!U.eql(U.sqr(q),N))throw Error("Cannot find square root");return q}}let V=(X+$8)/yG;return function(J,U){if(J.pow(U,G)===J.neg(J.ONE))throw Error("Cannot find square root");let N=Y,q=J.pow(J.mul(J.ONE,Z),X),A=J.pow(U,V),H=J.pow(U,X);while(!J.eql(H,J.ONE)){if(J.eql(H,J.ZERO))return J.ZERO;let I=1;for(let C=J.sqr(H);I<N;I++){if(J.eql(C,J.ONE))break;C=J.sqr(C)}let w=J.pow(q,$8<<BigInt(N-I-1));q=J.sqr(w),A=J.mul(A,w),H=J.mul(H,q),N=I}return A}}function ca(W){if(W%EK===ua){let G=(W+$8)/EK;return function(Y,Z){let V=Y.pow(Z,G);if(!Y.eql(Y.sqr(V),Z))throw Error("Cannot find square root");return V}}if(W%vk===yk){let G=(W-yk)/vk;return function(Y,Z){let V=Y.mul(Z,yG),Q=Y.pow(V,G),J=Y.mul(Z,Q),U=Y.mul(Y.mul(J,yG),Q),N=Y.mul(J,Y.sub(U,Y.ONE));if(!Y.eql(Y.sqr(N),Z))throw Error("Cannot find square root");return N}}if(W%ba===ha);return fa(W)}var pa=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $K(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=pa.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return UW(W,X)}function la(W,G,X){if(X<l8)throw Error("Expected power > 0");if(X===l8)return W.ONE;if(X===$8)return G;let Y=W.ONE,Z=G;while(X>l8){if(X&$8)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=$8}return Y}function da(W,G){let X=Array(G.length),Y=G.reduce((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=V,W.mul(V,Q)},W.ONE),Z=W.inv(Y);return G.reduceRight((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=W.mul(V,X[J]),W.mul(V,Q)},Z),X}function FK(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function gk(W,G,X=!1,Y={}){if(W<=l8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:Z,nByteLength:V}=FK(W,G);if(V>2048)throw Error("Field lengths over 2048 bytes are not supported");let Q=ca(W),J=Object.freeze({ORDER:W,BITS:Z,BYTES:V,MASK:DJ(Z),ZERO:l8,ONE:$8,create:(U)=>B9(U,W),isValid:(U)=>{if(typeof U!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof U}`);return l8<=U&&U<W},is0:(U)=>U===l8,isOdd:(U)=>(U&$8)===$8,neg:(U)=>B9(-U,W),eql:(U,N)=>U===N,sqr:(U)=>B9(U*U,W),add:(U,N)=>B9(U+N,W),sub:(U,N)=>B9(U-N,W),mul:(U,N)=>B9(U*N,W),pow:(U,N)=>la(J,U,N),div:(U,N)=>B9(U*cH(N,W),W),sqrN:(U)=>U*U,addN:(U,N)=>U+N,subN:(U,N)=>U-N,mulN:(U,N)=>U*N,inv:(U)=>cH(U,W),sqrt:Y.sqrt||((U)=>Q(J,U)),invertBatch:(U)=>da(J,U),cmov:(U,N,q)=>q?N:U,toBytes:(U)=>X?fH(U,V):JW(U,V),fromBytes:(U)=>{if(U.length!==V)throw Error(`Fp.fromBytes: expected ${V}, got ${U.length}`);return X?mH(U):n4(U)}});return Object.freeze(J)}function uk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function SK(W){let G=uk(W);return G+Math.ceil(G/2)}function hk(W,G,X=!1){let Y=W.length,Z=uk(G),V=SK(G);if(Y<16||Y<V||Y>1024)throw Error(`expected ${V}-1024 bytes of input, got ${Y}`);let Q=X?n4(W):mH(W),J=B9(Q,G-$8)+$8;return X?fH(J,Z):JW(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var na=BigInt(0),xK=BigInt(1);function bk(W,G){let X=(Z,V)=>{let Q=V.negate();return Z?Q:V},Y=(Z)=>{let V=Math.ceil(G/Z)+1,Q=2**(Z-1);return{windows:V,windowSize:Q}};return{constTimeNegate:X,unsafeLadder(Z,V){let Q=W.ZERO,J=Z;while(V>na){if(V&xK)Q=Q.add(J);J=J.double(),V>>=xK}return Q},precomputeWindow(Z,V){let{windows:Q,windowSize:J}=Y(V),U=[],N=Z,q=N;for(let A=0;A<Q;A++){q=N,U.push(q);for(let H=1;H<J;H++)q=q.add(N),U.push(q);N=q.double()}return U},wNAF(Z,V,Q){let{windows:J,windowSize:U}=Y(Z),N=W.ZERO,q=W.BASE,A=BigInt(2**Z-1),H=2**Z,I=BigInt(Z);for(let w=0;w<J;w++){let C=w*U,D=Number(Q&A);if(Q>>=I,D>U)D-=H,Q+=xK;let x=C,h=C+Math.abs(D)-1,p=w%2!==0,u=D<0;if(D===0)q=q.add(X(p,V[x]));else N=N.add(X(u,V[h]))}return{p:N,f:q}},wNAFCached(Z,V,Q,J){let U=Z._WINDOW_SIZE||1,N=V.get(Z);if(!N){if(N=this.precomputeWindow(Z,U),U!==1)V.set(Z,J(N))}return this.wNAF(U,N,Q)}}}function kK(W){return $K(W.Fp),UW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...FK(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ia(W){let G=kK(W);UW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:Z}=G;if(X){if(!Y.eql(Z,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:ra,hexToBytes:aa}=BK,vG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=vG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:ra(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=vG,X=typeof W==="string"?aa(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:Z,l:V}=vG._parseInt(X.subarray(2)),{d:Q,l:J}=vG._parseInt(V);if(J.length)throw new G("Invalid signature: left bytes after parsing");return{r:Z,s:Q}},hexFromSig(W){let G=(N)=>Number.parseInt(N[0],16)&8?"00"+N:N,X=(N)=>{let q=N.toString(16);return q.length&1?`0${q}`:q},Y=G(X(W.s)),Z=G(X(W.r)),V=Y.length/2,Q=Z.length/2,J=X(V),U=X(Q);return`30${X(Q+V+4)}02${U}${Z}02${J}${Y}`}},i4=BigInt(0),E5=BigInt(1),Wj0=BigInt(2),mk=BigInt(3),Gj0=BigInt(4);function sa(W){let G=ia(W),{Fp:X}=G,Y=G.toBytes||((w,C,D)=>{let x=C.toAffine();return WZ(Uint8Array.from([4]),X.toBytes(x.x),X.toBytes(x.y))}),Z=G.fromBytes||((w)=>{let C=w.subarray(1),D=X.fromBytes(C.subarray(0,X.BYTES)),x=X.fromBytes(C.subarray(X.BYTES,2*X.BYTES));return{x:D,y:x}});function V(w){let{a:C,b:D}=G,x=X.sqr(w),h=X.mul(x,w);return X.add(X.add(h,X.mul(w,C)),D)}if(!X.eql(X.sqr(G.Gy),V(G.Gx)))throw Error("bad generator point: equation left != right");function Q(w){return typeof w==="bigint"&&i4<w&&w<G.n}function J(w){if(!Q(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function U(w){let{allowedPrivateKeyLengths:C,nByteLength:D,wrapPrivateKey:x,n:h}=G;if(C&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=kG(w);if(typeof w!=="string"||!C.includes(w.length))throw Error("Invalid key");w=w.padStart(D*2,"0")}let p;try{p=typeof w==="bigint"?w:n4(q5("private key",w,D))}catch(u){throw Error(`private key must be ${D} bytes, hex or bigint, not ${typeof w}`)}if(x)p=B9(p,h);return J(p),p}let N=new Map;function q(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,C,D){if(this.px=w,this.py=C,this.pz=D,w==null||!X.isValid(w))throw Error("x required");if(C==null||!X.isValid(C))throw Error("y required");if(D==null||!X.isValid(D))throw Error("z required")}static fromAffine(w){let{x:C,y:D}=w||{};if(!w||!X.isValid(C)||!X.isValid(D))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let x=(h)=>X.eql(h,X.ZERO);if(x(C)&&x(D))return A.ZERO;return new A(C,D,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let C=X.invertBatch(w.map((D)=>D.pz));return w.map((D,x)=>D.toAffine(C[x])).map(A.fromAffine)}static fromHex(w){let C=A.fromAffine(Z(q5("pointHex",w)));return C.assertValidity(),C}static fromPrivateKey(w){return A.BASE.multiply(U(w))}_setWindowSize(w){this._WINDOW_SIZE=w,N.delete(this)}assertValidity(){if(this.is0()){if(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:C}=this.toAffine();if(!X.isValid(w)||!X.isValid(C))throw Error("bad point: x or y not FE");let D=X.sqr(C),x=V(w);if(!X.eql(D,x))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){q(w);let{px:C,py:D,pz:x}=this,{px:h,py:p,pz:u}=w,n=X.eql(X.mul(C,u),X.mul(h,x)),c=X.eql(X.mul(D,u),X.mul(p,x));return n&&c}negate(){return new A(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:C}=G,D=X.mul(C,mk),{px:x,py:h,pz:p}=this,u=X.ZERO,n=X.ZERO,c=X.ZERO,l=X.mul(x,x),W0=X.mul(h,h),m=X.mul(p,p),Y0=X.mul(x,h);return Y0=X.add(Y0,Y0),c=X.mul(x,p),c=X.add(c,c),u=X.mul(w,c),n=X.mul(D,m),n=X.add(u,n),u=X.sub(W0,n),n=X.add(W0,n),n=X.mul(u,n),u=X.mul(Y0,u),c=X.mul(D,c),m=X.mul(w,m),Y0=X.sub(l,m),Y0=X.mul(w,Y0),Y0=X.add(Y0,c),c=X.add(l,l),l=X.add(c,l),l=X.add(l,m),l=X.mul(l,Y0),n=X.add(n,l),m=X.mul(h,p),m=X.add(m,m),l=X.mul(m,Y0),u=X.sub(u,l),c=X.mul(m,W0),c=X.add(c,c),c=X.add(c,c),new A(u,n,c)}add(w){q(w);let{px:C,py:D,pz:x}=this,{px:h,py:p,pz:u}=w,n=X.ZERO,c=X.ZERO,l=X.ZERO,W0=G.a,m=X.mul(G.b,mk),Y0=X.mul(C,h),U0=X.mul(D,p),y=X.mul(x,u),o=X.add(C,D),B=X.add(h,p);o=X.mul(o,B),B=X.add(Y0,U0),o=X.sub(o,B),B=X.add(C,x);let R=X.add(h,u);return B=X.mul(B,R),R=X.add(Y0,y),B=X.sub(B,R),R=X.add(D,x),n=X.add(p,u),R=X.mul(R,n),n=X.add(U0,y),R=X.sub(R,n),l=X.mul(W0,B),n=X.mul(m,y),l=X.add(n,l),n=X.sub(U0,l),l=X.add(U0,l),c=X.mul(n,l),U0=X.add(Y0,Y0),U0=X.add(U0,Y0),y=X.mul(W0,y),B=X.mul(m,B),U0=X.add(U0,y),y=X.sub(Y0,y),y=X.mul(W0,y),B=X.add(B,y),Y0=X.mul(U0,B),c=X.add(c,Y0),Y0=X.mul(R,B),n=X.mul(o,n),n=X.sub(n,Y0),Y0=X.mul(o,U0),l=X.mul(R,l),l=X.add(l,Y0),new A(n,c,l)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,N,w,(C)=>{let D=X.invertBatch(C.map((x)=>x.pz));return C.map((x,h)=>x.toAffine(D[h])).map(A.fromAffine)})}multiplyUnsafe(w){let C=A.ZERO;if(w===i4)return C;if(J(w),w===E5)return this;let{endo:D}=G;if(!D)return I.unsafeLadder(this,w);let{k1neg:x,k1:h,k2neg:p,k2:u}=D.splitScalar(w),n=C,c=C,l=this;while(h>i4||u>i4){if(h&E5)n=n.add(l);if(u&E5)c=c.add(l);l=l.double(),h>>=E5,u>>=E5}if(x)n=n.negate();if(p)c=c.negate();return c=new A(X.mul(c.px,D.beta),c.py,c.pz),n.add(c)}multiply(w){J(w);let C=w,D,x,{endo:h}=G;if(h){let{k1neg:p,k1:u,k2neg:n,k2:c}=h.splitScalar(C),{p:l,f:W0}=this.wNAF(u),{p:m,f:Y0}=this.wNAF(c);l=I.constTimeNegate(p,l),m=I.constTimeNegate(n,m),m=new A(X.mul(m.px,h.beta),m.py,m.pz),D=l.add(m),x=W0.add(Y0)}else{let{p,f:u}=this.wNAF(C);D=p,x=u}return A.normalizeZ([D,x])[0]}multiplyAndAddUnsafe(w,C,D){let x=A.BASE,h=(u,n)=>n===i4||n===E5||!u.equals(x)?u.multiplyUnsafe(n):u.multiply(n),p=h(this,C).add(h(w,D));return p.is0()?void 0:p}toAffine(w){let{px:C,py:D,pz:x}=this,h=this.is0();if(w==null)w=h?X.ONE:X.inv(x);let p=X.mul(C,w),u=X.mul(D,w),n=X.mul(x,w);if(h)return{x:X.ZERO,y:X.ZERO};if(!X.eql(n,X.ONE))throw Error("invZ was invalid");return{x:p,y:u}}isTorsionFree(){let{h:w,isTorsionFree:C}=G;if(w===E5)return!0;if(C)return C(A,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:C}=G;if(w===E5)return this;if(C)return C(A,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return kG(this.toRawBytes(w))}}A.BASE=new A(G.Gx,G.Gy,X.ONE),A.ZERO=new A(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,I=bk(A,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:A,normPrivateKeyToScalar:U,weierstrassEquation:V,isWithinCurveOrder:Q}}function ta(W){let G=kK(W);return UW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function fk(W){let G=ta(W),{Fp:X,n:Y}=G,Z=X.BYTES+1,V=2*X.BYTES+1;function Q(R){return i4<R&&R<X.ORDER}function J(R){return B9(R,Y)}function U(R){return cH(R,Y)}let{ProjectivePoint:N,normPrivateKeyToScalar:q,weierstrassEquation:A,isWithinCurveOrder:H}=sa({...G,toBytes(R,_,S){let v=_.toAffine(),P=X.toBytes(v.x),E=WZ;if(S)return E(Uint8Array.from([_.hasEvenY()?2:3]),P);else return E(Uint8Array.from([4]),P,X.toBytes(v.y))},fromBytes(R){let _=R.length,S=R[0],v=R.subarray(1);if(_===Z&&(S===2||S===3)){let P=n4(v);if(!Q(P))throw Error("Point is not on curve");let E=A(P),b=X.sqrt(E),k=(b&E5)===E5;if((S&1)===1!==k)b=X.neg(b);return{x:P,y:b}}else if(_===V&&S===4){let P=X.fromBytes(v.subarray(0,X.BYTES)),E=X.fromBytes(v.subarray(X.BYTES,2*X.BYTES));return{x:P,y:E}}else throw Error(`Point of length ${_} was invalid. Expected ${Z} compressed bytes or ${V} uncompressed bytes`)}}),I=(R)=>kG(JW(R,G.nByteLength));function w(R){let _=Y>>E5;return R>_}function C(R){return w(R)?J(-R):R}let D=(R,_,S)=>n4(R.slice(_,S));class x{constructor(R,_,S){this.r=R,this.s=_,this.recovery=S,this.assertValidity()}static fromCompact(R){let _=G.nByteLength;return R=q5("compactSignature",R,_*2),new x(D(R,0,_),D(R,_,2*_))}static fromDER(R){let{r:_,s:S}=vG.toSig(q5("DER",R));return new x(_,S)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(R){return new x(this.r,this.s,R)}recoverPublicKey(R){let{r:_,s:S,recovery:v}=this,P=l(q5("msgHash",R));if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");let E=v===2||v===3?_+G.n:_;if(E>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let b=(v&1)===0?"02":"03",k=N.fromHex(b+I(E)),f=U(E),e=J(-P*f),N0=J(S*f),Q0=N.BASE.multiplyAndAddUnsafe(k,e,N0);if(!Q0)throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,J(-this.s),this.recovery):this}toDERRawBytes(){return _G(this.toDERHex())}toDERHex(){return vG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return _G(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let h={isValidPrivateKey(R){try{return q(R),!0}catch(_){return!1}},normPrivateKeyToScalar:q,randomPrivateKey:()=>{let R=SK(G.n);return hk(G.randomBytes(R),G.n)},precompute(R=8,_=N.BASE){return _._setWindowSize(R),_.multiply(BigInt(3)),_}};function p(R,_=!0){return N.fromPrivateKey(R).toRawBytes(_)}function u(R){let _=R instanceof Uint8Array,S=typeof R==="string",v=(_||S)&&R.length;if(_)return v===Z||v===V;if(S)return v===2*Z||v===2*V;if(R instanceof N)return!0;return!1}function n(R,_,S=!0){if(u(R))throw Error("first arg must be private key");if(!u(_))throw Error("second arg must be public key");return N.fromHex(_).multiply(q(R)).toRawBytes(S)}let c=G.bits2int||function(R){let _=n4(R),S=R.length*8-G.nBitLength;return S>0?_>>BigInt(S):_},l=G.bits2int_modN||function(R){return J(c(R))},W0=DJ(G.nBitLength);function m(R){if(typeof R!=="bigint")throw Error("bigint expected");if(!(i4<=R&&R<W0))throw Error(`bigint expected < 2^${G.nBitLength}`);return JW(R,G.nByteLength)}function Y0(R,_,S=U0){if(["recovered","canonical"].some((x0)=>(x0 in S)))throw Error("sign() legacy options not supported");let{hash:v,randomBytes:P}=G,{lowS:E,prehash:b,extraEntropy:k}=S;if(E==null)E=!0;if(R=q5("msgHash",R),b)R=q5("prehashed msgHash",v(R));let f=l(R),e=q(_),N0=[m(e),m(f)];if(k!=null){let x0=k===!0?P(X.BYTES):k;N0.push(q5("extraEntropy",x0))}let Q0=WZ(...N0),$0=f;function D0(x0){let q1=c(x0);if(!H(q1))return;let U1=U(q1),J0=N.BASE.multiply(q1).toAffine(),B0=J(J0.x);if(B0===i4)return;let h0=J(U1*J($0+B0*e));if(h0===i4)return;let Y1=(J0.x===B0?0:2)|Number(J0.y&E5),w8=h0;if(E&&w(h0))w8=C(h0),Y1^=1;return new x(B0,w8,Y1)}return{seed:Q0,k2sig:D0}}let U0={lowS:G.lowS,prehash:!1},y={lowS:G.lowS,prehash:!1};function o(R,_,S=U0){let{seed:v,k2sig:P}=Y0(R,_,S),E=G;return LK(E.hash.outputLen,E.nByteLength,E.hmac)(v,P)}N.BASE._setWindowSize(8);function B(R,_,S,v=y){let P=R;if(_=q5("msgHash",_),S=q5("publicKey",S),"strict"in v)throw Error("options.strict was renamed to lowS");let{lowS:E,prehash:b}=v,k=void 0,f;try{if(typeof P==="string"||P instanceof Uint8Array)try{k=x.fromDER(P)}catch(J0){if(!(J0 instanceof vG.Err))throw J0;k=x.fromCompact(P)}else if(typeof P==="object"&&typeof P.r==="bigint"&&typeof P.s==="bigint"){let{r:J0,s:B0}=P;k=new x(J0,B0)}else throw Error("PARSE");f=N.fromHex(S)}catch(J0){if(J0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(E&&k.hasHighS())return!1;if(b)_=G.hash(_);let{r:e,s:N0}=k,Q0=l(_),$0=U(N0),D0=J(Q0*$0),x0=J(e*$0),q1=N.BASE.multiplyAndAddUnsafe(f,D0,x0)?.toAffine();if(!q1)return!1;return J(q1.x)===e}return{CURVE:G,getPublicKey:p,getSharedSecret:n,sign:o,verify:B,ProjectivePoint:N,Signature:x,utils:h}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ea(W){return{hash:W,hmac:(G,...X)=>CJ(W,G,cx(...X)),randomBytes:px}}function ck(W,G){let X=(Y)=>fk({...W,...ea(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dk=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),pk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ws=BigInt(1),_K=BigInt(2),lk=(W,G)=>(W+G/_K)/G;function Gs(W){let G=dk,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=H5(q,X,G)*q%G,H=H5(A,X,G)*q%G,I=H5(H,_K,G)*N%G,w=H5(I,Z,G)*I%G,C=H5(w,V,G)*w%G,D=H5(C,J,G)*C%G,x=H5(D,U,G)*D%G,h=H5(x,J,G)*C%G,p=H5(h,X,G)*q%G,u=H5(p,Q,G)*w%G,n=H5(u,Y,G)*N%G,c=H5(n,_K,G);if(!yK.eql(yK.sqr(c),W))throw Error("Cannot find square root");return c}var yK=gk(dk,void 0,void 0,{sqrt:Gs}),r4=ck({a:BigInt(0),b:BigInt(7),Fp:yK,n:pk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=pk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-Ws*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),Z=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),V=X,Q=BigInt("0x100000000000000000000000000000000"),J=lk(V*W,G),U=lk(-Y*W,G),N=B9(W-J*X-U*Z,G),q=B9(-J*Y-U*V,G),A=N>Q,H=q>Q;if(A)N=G-N;if(H)q=G-q;if(N>Q||q>Q)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}}},KJ),qj0=BigInt(0);var Hj0=r4.ProjectivePoint;var vK="0x0000000000000000000000000000000000000000";var pH="0x0000000000000000000000000000000000000000000000000000000000000000";var gK=`\x19Ethereum Signed Message:
249
249
  `;var ok=BigInt(0),nk=BigInt(1),ik=BigInt(2),rk=BigInt(27),ak=BigInt(28),lH=BigInt(35),GZ={};function sk(W){return N5(J8(W),32)}class K8{#W;#G;#X;#Y;get r(){return this.#W}set r(W){s(d4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return s(parseInt(this.#G.substring(0,3))<8,"non-canonical s; use ._s","s",this.#G),this.#G}set s(W){s(d4(W)===32,"invalid s","value",W),this.#G=C0(W)}get _s(){return this.#G}isValid(){return parseInt(this.#G.substring(0,3))<8}get v(){return this.#X}set v(W){let G=i8(W,"value");s(G===27||G===28,"invalid v","v",W),this.#X=G}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return K8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=R0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return s1([this.r,this.yParityAndS])}get serialized(){return s1([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,G,X,Y){l4(W,GZ,"Signature"),this.#W=G,this.#G=X,this.#X=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let W=new K8(GZ,this.r,this._s,this.v);if(this.networkV)W.#Y=this.networkV;return W}toJSON(){let W=this.networkV;return{_type:"signature",networkV:W!=null?W.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId(W){let G=u1(W,"v");if(G==rk||G==ak)return ok;return s(G>=lH,"invalid EIP-155 v","v",W),(G-lH)/ik}static getChainIdV(W,G){return u1(W)*ik+BigInt(35+G-27)}static getNormalizedV(W){let G=u1(W);if(G===ok||G===rk)return 27;if(G===nk||G===ak)return 28;return s(G>=lH,"invalid v","v",W),G&nk?27:28}static from(W){function G(U,N){s(U,N,"signature",W)}if(W==null)return new K8(GZ,pH,pH,27);if(typeof W==="string"){let U=R0(W,"signature");if(U.length===64){let N=C0(U.slice(0,32)),q=U.slice(32,64),A=q[0]&128?28:27;return q[0]&=127,new K8(GZ,N,C0(q),A)}if(U.length===65){let N=C0(U.slice(0,32)),q=C0(U.slice(32,64)),A=K8.getNormalizedV(U[64]);return new K8(GZ,N,q,A)}G(!1,"invalid raw signature length")}if(W instanceof K8)return W.clone();let X=W.r;G(X!=null,"missing r");let Y=sk(X),Z=function(U,N){if(U!=null)return sk(U);if(N!=null){G(T9(N,32),"invalid yParityAndS");let q=R0(N);return q[0]&=127,C0(q)}G(!1,"missing s")}(W.s,W.yParityAndS),{networkV:V,v:Q}=function(U,N,q){if(U!=null){let A=u1(U);return{networkV:A>=lH?A:void 0,v:K8.getNormalizedV(A)}}if(N!=null)return G(T9(N,32),"invalid yParityAndS"),{v:R0(N)[0]&128?28:27};if(q!=null){switch(i8(q,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}G(!1,"invalid yParity")}G(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),J=new K8(GZ,Y,Z,Q);if(V)J.#Y=V;return G(W.yParity==null||i8(W.yParity,"sig.yParity")===J.yParity,"yParity mismatch"),G(W.yParityAndS==null||W.yParityAndS===J.yParityAndS,"yParityAndS mismatch"),J}}class d8{#W;constructor(W){s(d4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return d8.computePublicKey(this.#W)}get compressedPublicKey(){return d8.computePublicKey(this.#W,!0)}sign(W){s(d4(W)===32,"invalid digest length","digest",W);let G=r4.sign(Y7(W),Y7(this.#W),{lowS:!0});return K8.from({r:Z7(G.r,32),s:Z7(G.s,32),v:G.recovery?28:27})}computeSharedSecret(W){let G=d8.computePublicKey(W);return C0(r4.getSharedSecret(Y7(this.#W),R0(G),!1))}static computePublicKey(W,G){let X=R0(W,"key");if(X.length===32){let Z=r4.getPublicKey(X,!!G);return C0(Z)}if(X.length===64){let Z=new Uint8Array(65);Z[0]=4,Z.set(X,1),X=Z}let Y=r4.ProjectivePoint.fromHex(X);return C0(Y.toRawBytes(G))}static recoverPublicKey(W,G){s(d4(W)===32,"invalid digest length","digest",W);let X=K8.from(G),Y=r4.Signature.fromCompact(Y7(s1([X.r,X.s])));Y=Y.addRecoveryBit(X.yParity);let Z=Y.recoverPublicKey(Y7(W));return s(Z!=null,"invalid signature for digest","signature",G),"0x"+Z.toHex(!1)}static addPoints(W,G,X){let Y=r4.ProjectivePoint.fromHex(d8.computePublicKey(W).substring(2)),Z=r4.ProjectivePoint.fromHex(d8.computePublicKey(G).substring(2));return"0x"+Y.add(Z).toHex(!!X)}}var Xs=BigInt(0),Ys=BigInt(36);function tk(W){W=W.toLowerCase();let G=W.substring(2).split(""),X=new Uint8Array(40);for(let Z=0;Z<40;Z++)X[Z]=G[Z].charCodeAt(0);let Y=R0(X8(X));for(let Z=0;Z<40;Z+=2){if(Y[Z>>1]>>4>=8)G[Z]=G[Z].toUpperCase();if((Y[Z>>1]&15)>=8)G[Z+1]=G[Z+1].toUpperCase()}return"0x"+G.join("")}var uK={};for(let W=0;W<10;W++)uK[String(W)]=String(W);for(let W=0;W<26;W++)uK[String.fromCharCode(65+W)]=String(10+W);var ek=15;function Zs(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let G=W.split("").map((Y)=>{return uK[Y]}).join("");while(G.length>=ek){let Y=G.substring(0,ek);G=parseInt(Y,10)%97+G.substring(Y.length)}let X=String(98-parseInt(G,10)%97);while(X.length<2)X="0"+X;return X}var Vs=function(){let W={};for(let G=0;G<36;G++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[G];W[X]=BigInt(G)}return W}();function Qs(W){W=W.toLowerCase();let G=Xs;for(let X=0;X<W.length;X++)G=G*Ys+Vs[W[X]];return G}function f1(W){if(s(typeof W==="string","invalid address","address",W),W.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!W.startsWith("0x"))W="0x"+W;let G=tk(W);return s(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||G===W,"bad address checksum","address",W),G}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){s(W.substring(2,4)===Zs(W),"bad icap checksum","address",W);let G=Qs(W.substring(4)).toString(16);while(G.length<40)G="0"+G;return tk("0x"+G)}s(!1,"invalid address","address",W)}function bK(W){return W&&typeof W.getAddress==="function"}async function hK(W,G){let X=await G;if(X==null||X==="0x0000000000000000000000000000000000000000")t0(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),s(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return f1(X)}function a4(W,G){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return f1(W);return t0(G!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),hK(W,G.resolveName(W))}else if(bK(W))return hK(W,W.getAddress());else if(W&&typeof W.then==="function")return hK(W,W);s(!1,"unsupported addressable value","target",W)}function mK(W,G){return{address:f1(W),storageKeys:G.map((X,Y)=>{return s(T9(X,32),"invalid slot",`storageKeys[${Y}]`,X),X.toLowerCase()})}}function gG(W){if(Array.isArray(W))return W.map((X,Y)=>{if(Array.isArray(X))return s(X.length===2,"invalid slot set",`value[${Y}]`,X),mK(X[0],X[1]);return s(X!=null&&typeof X==="object","invalid address-slot set","value",W),mK(X.address,X.storageKeys)});s(W!=null&&typeof W==="object","invalid access list","value",W);let G=Object.keys(W).map((X)=>{let Y=W[X].reduce((Z,V)=>{return Z[V]=!0,Z},{});return mK(X,Object.keys(Y).sort())});return G.sort((X,Y)=>X.address.localeCompare(Y.address)),G}function W_(W){return{address:f1(W.address),nonce:u1(W.nonce!=null?W.nonce:0),chainId:u1(W.chainId!=null?W.chainId:0),signature:K8.from(W.signature)}}function s4(W){let G;if(typeof W==="string")G=d8.computePublicKey(W,!1);else G=W.publicKey;return f1(X8("0x"+G.substring(4)).substring(26))}function MJ(W,G){return s4(d8.recoverPublicKey(W,G))}var r8=BigInt(0),Ns=BigInt(2),qs=BigInt(27),Hs=BigInt(28),As=BigInt(35),zs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),fK=131072;function Is(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return R0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return R0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return R0(W.blobToKZGCommitment(C0(Y)));s(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,Z)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return R0(W.computeBlobProof(C0(Y),C0(Z)));if("computeBlobKzgProof"in W&&typeof W.computeBlobKzgProof==="function")return W.computeBlobKzgProof(Y,Z);if("computeBlobKZGProof"in W&&typeof W.computeBlobKZGProof==="function")return R0(W.computeBlobKZGProof(C0(Y),C0(Z)));s(!1,"unsupported KZG library","kzg",W)}}}function G_(W,G){let X=W.toString(16);while(X.length<2)X="0"+X;return X+=L9(G).substring(4),"0x"+X}function XZ(W){if(W==="0x")return null;return f1(W)}function dH(W,G){try{return gG(W)}catch(X){s(!1,X.message,G,W)}}function ws(W,G){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let X=[];for(let Y=0;Y<W.length;Y++){let Z=W[Y];if(!Array.isArray(Z))throw Error(`authorization[${Y}]: invalid array`);if(Z.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!Z[1])throw Error(`authorization[${Y}]: null address`);X.push({address:XZ(Z[1]),nonce:Y8(Z[2],"nonce"),chainId:Y8(Z[0],"chainId"),signature:K8.from({yParity:uG(Z[3],"yParity"),r:N5(Z[4],32),s:N5(Z[5],32)})})}return X}catch(X){s(!1,X.message,G,W)}}function uG(W,G){if(W==="0x")return 0;return i8(W,G)}function Y8(W,G){if(W==="0x")return r8;let X=u1(W,G);return s(X<=zs,"value exceeds uint size",G,X),X}function h1(W,G){let X=u1(W,"value"),Y=J8(X);return s(Y.length<=32,"value too large",`tx.${G}`,X),Y}function oH(W){return gG(W).map((G)=>[G.address,G.storageKeys])}function js(W){return W.map((G)=>{return[h1(G.chainId,"chainId"),G.address,h1(G.nonce,"nonce"),h1(G.signature.yParity,"yParity"),J8(G.signature.r),J8(G.signature.s)]})}function Os(W,G){s(Array.isArray(W),`invalid ${G}`,"value",W);for(let X=0;X<W.length;X++)s(T9(W[X],32),"invalid ${ param } hash",`value[${X}]`,W[X]);return W}function Ks(W){let G=WW(W);s(Array.isArray(G)&&(G.length===9||G.length===6),"invalid field count for legacy transaction","data",W);let X={type:0,nonce:uG(G[0],"nonce"),gasPrice:Y8(G[1],"gasPrice"),gasLimit:Y8(G[2],"gasLimit"),to:XZ(G[3]),value:Y8(G[4],"value"),data:C0(G[5]),chainId:r8};if(G.length===6)return X;let Y=Y8(G[6],"v"),Z=Y8(G[7],"r"),V=Y8(G[8],"s");if(Z===r8&&V===r8)X.chainId=Y;else{let Q=(Y-As)/Ns;if(Q<r8)Q=r8;X.chainId=Q,s(Q!==r8||(Y===qs||Y===Hs),"non-canonical legacy v","v",G[6]),X.signature=K8.from({r:N5(G[7],32),s:N5(G[8],32),v:Y})}return X}function Cs(W,G){let X=[h1(W.nonce,"nonce"),h1(W.gasPrice||0,"gasPrice"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data],Y=r8;if(W.chainId!=r8)Y=u1(W.chainId,"tx.chainId"),s(!G||G.networkV==null||G.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",G);else if(W.signature){let V=W.signature.legacyChainId;if(V!=null)Y=V}if(!G){if(Y!==r8)X.push(J8(Y)),X.push("0x"),X.push("0x");return R5(X)}let Z=BigInt(27+G.yParity);if(Y!==r8)Z=K8.getChainIdV(Y,G.v);else if(BigInt(G.v)!==Z)s(!1,"tx.chainId/sig.v mismatch","sig",G);return X.push(J8(Z)),X.push(J8(G.r)),X.push(J8(G.s)),R5(X)}function nH(W,G){let X;try{if(X=uG(G[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch(Q){s(!1,"invalid yParity","yParity",G[0])}let Y=N5(G[1],32),Z=N5(G[2],32),V=K8.from({r:Y,s:Z,yParity:X});W.signature=V}function Ds(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===9||G.length===12),"invalid field count for transaction type: 2","data",C0(W));let X={type:2,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList")};if(G.length===9)return X;return nH(X,G.slice(9)),X}function Ms(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(h1(G.yParity,"yParity")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x02",R5(X)])}function Ts(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===8||G.length===11),"invalid field count for transaction type: 1","data",C0(W));let X={type:1,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),gasPrice:Y8(G[2],"gasPrice"),gasLimit:Y8(G[3],"gasLimit"),to:XZ(G[4]),value:Y8(G[5],"value"),data:C0(G[6]),accessList:dH(G[7],"accessList")};if(G.length===8)return X;return nH(X,G.slice(8)),X}function Ps(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.gasPrice||0,"gasPrice"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(h1(G.yParity,"recoveryParam")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x01",R5(X)])}function Rs(W){let G=WW(R0(W).slice(1)),X="3",Y=null;if(G.length===4&&Array.isArray(G[0])){X="3 (network format)";let V=G[1],Q=G[2],J=G[3];s(Array.isArray(V),"invalid network format: blobs not an array","fields[1]",V),s(Array.isArray(Q),"invalid network format: commitments not an array","fields[2]",Q),s(Array.isArray(J),"invalid network format: proofs not an array","fields[3]",J),s(V.length===Q.length,"invalid network format: blobs/commitments length mismatch","fields",G),s(V.length===J.length,"invalid network format: blobs/proofs length mismatch","fields",G),Y=[];for(let U=0;U<G[1].length;U++)Y.push({data:V[U],commitment:Q[U],proof:J[U]});G=G[0]}s(Array.isArray(G)&&(G.length===11||G.length===14),`invalid field count for transaction type: ${X}`,"data",C0(W));let Z={type:3,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),maxFeePerBlobGas:Y8(G[9],"maxFeePerBlobGas"),blobVersionedHashes:G[10]};if(Y)Z.blobs=Y;s(Z.to!=null,`invalid address for transaction type: ${X}`,"data",W),s(Array.isArray(Z.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",W);for(let V=0;V<Z.blobVersionedHashes.length;V++)s(T9(Z.blobVersionedHashes[V],32),`invalid blobVersionedHash at index ${V}: must be length 32`,"data",W);if(G.length===11)return Z;return nH(Z,G.slice(11)),Z}function Ls(W,G,X){let Y=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||vK,h1(W.value,"value"),W.data,oH(W.accessList||[]),h1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),Os(W.blobVersionedHashes||[],"blobVersionedHashes")];if(G){if(Y.push(h1(G.yParity,"yParity")),Y.push(J8(G.r)),Y.push(J8(G.s)),X)return s1(["0x03",R5([Y,X.map((Z)=>Z.data),X.map((Z)=>Z.commitment),X.map((Z)=>Z.proof)])])}return s1(["0x03",R5(Y)])}function Bs(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===10||G.length===13),"invalid field count for transaction type: 4","data",C0(W));let X={type:4,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),authorizationList:ws(G[9],"authorizationList")};if(G.length===10)return X;return nH(X,G.slice(10)),X}function Es(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[]),js(W.authorizationList||[])];if(G)X.push(h1(G.yParity,"yParity")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x04",R5(X)])}class a9{#W;#G;#X;#Y;#U;#N;#q;#H;#A;#z;#I;#w;#J;#V;#Z;#Q;#j;get type(){return this.#W}set type(W){switch(W){case null:this.#W=null;break;case 0:case"legacy":this.#W=0;break;case 1:case"berlin":case"eip-2930":this.#W=1;break;case 2:case"london":case"eip-1559":this.#W=2;break;case 3:case"cancun":case"eip-4844":this.#W=3;break;case 4:case"pectra":case"eip-7702":this.#W=4;break;default:s(!1,"unsupported transaction type","type",W)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let W=this.#G;if(W==null&&this.type===3)return vK;return W}set to(W){this.#G=W==null?null:f1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=i8(W,"value")}get gasLimit(){return this.#U}set gasLimit(W){this.#U=u1(W)}get gasPrice(){let W=this.#N;if(W==null&&(this.type===0||this.type===1))return r8;return W}set gasPrice(W){this.#N=W==null?null:u1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#q;if(W==null){if(this.type===2||this.type===3)return r8;return null}return W}set maxPriorityFeePerGas(W){this.#q=W==null?null:u1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return r8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:u1(W,"maxFeePerGas")}get data(){return this.#X}set data(W){this.#X=C0(W)}get value(){return this.#A}set value(W){this.#A=u1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=u1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:K8.from(W)}get accessList(){let W=this.#w||null;if(W==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return W}set accessList(W){this.#w=W==null?null:gG(W)}get authorizationList(){let W=this.#j||null;if(W==null){if(this.type===4)return[]}return W}set authorizationList(W){this.#j=W==null?null:W.map((G)=>W_(G))}get maxFeePerBlobGas(){let W=this.#J;if(W==null&&this.type===3)return r8;return W}set maxFeePerBlobGas(W){this.#J=W==null?null:u1(W,"maxFeePerBlobGas")}get blobVersionedHashes(){let W=this.#V;if(W==null&&this.type===3)return[];return W}set blobVersionedHashes(W){if(W!=null){s(Array.isArray(W),"blobVersionedHashes must be an Array","value",W),W=W.slice();for(let G=0;G<W.length;G++)s(T9(W[G],32),"invalid blobVersionedHash",`value[${G}]`,W[G])}this.#V=W}get blobs(){if(this.#Q==null)return null;return this.#Q.map((W)=>Object.assign({},W))}set blobs(W){if(W==null){this.#Q=null;return}let G=[],X=[];for(let Y=0;Y<W.length;Y++){let Z=W[Y];if(l7(Z)){t0(this.#Z,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let V=R0(Z);if(s(V.length<=fK,"blob is too large",`blobs[${Y}]`,Z),V.length!==fK){let U=new Uint8Array(fK);U.set(V),V=U}let Q=this.#Z.blobToKzgCommitment(V),J=C0(this.#Z.computeBlobKzgProof(V,Q));G.push({data:C0(V),commitment:C0(Q),proof:J}),X.push(G_(1,Q))}else{let V=C0(Z.commitment);G.push({data:C0(Z.data),commitment:V,proof:C0(Z.proof)}),X.push(G_(1,V))}}this.#Q=G,this.#V=X}get kzg(){return this.#Z}set kzg(W){if(W==null)this.#Z=null;else this.#Z=Is(W)}constructor(){this.#W=null,this.#G=null,this.#Y=0,this.#U=r8,this.#N=null,this.#q=null,this.#H=null,this.#X="0x",this.#A=r8,this.#z=r8,this.#I=null,this.#w=null,this.#J=null,this.#V=null,this.#Z=null,this.#Q=null,this.#j=null}get hash(){if(this.signature==null)return null;return X8(this.#O(!0,!1))}get unsignedHash(){return X8(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return MJ(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return d8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#O(W,G){t0(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=W?this.signature:null;switch(this.inferType()){case 0:return Cs(this,X);case 1:return Ps(this,X);case 2:return Ms(this,X);case 3:return Ls(this,X,G?this.blobs:null);case 4:return Es(this,X)}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#O(!0,!0)}get unsignedSerialized(){return this.#O(!1,!1)}inferType(){let W=this.inferTypes();if(W.indexOf(2)>=0)return 2;return W.pop()}inferTypes(){let W=this.gasPrice!=null,G=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,Y=this.#J!=null||this.#V;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)t0(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});t0(!G||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),t0(this.type!==0||!X,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let Z=[];if(this.type!=null)Z.push(this.type);else if(this.authorizationList&&this.authorizationList.length)Z.push(4);else if(G)Z.push(2);else if(W){if(Z.push(1),!X)Z.push(0)}else if(X)Z.push(1),Z.push(2);else if(Y&&this.to)Z.push(3);else Z.push(0),Z.push(1),Z.push(2),Z.push(3);return Z.sort(),Z}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return a9.from(this)}toJSON(){let W=(G)=>{if(G==null)return null;return G.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:W(this.gasLimit),gasPrice:W(this.gasPrice),maxPriorityFeePerGas:W(this.maxPriorityFeePerGas),maxFeePerGas:W(this.maxFeePerGas),value:W(this.value),chainId:W(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(W){if(W==null)return new a9;if(typeof W==="string"){let X=R0(W);if(X[0]>=127)return a9.from(Ks(X));switch(X[0]){case 1:return a9.from(Ts(X));case 2:return a9.from(Ds(X));case 3:return a9.from(Rs(X));case 4:return a9.from(Bs(X))}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let G=new a9;if(W.type!=null)G.type=W.type;if(W.to!=null)G.to=W.to;if(W.nonce!=null)G.nonce=W.nonce;if(W.gasLimit!=null)G.gasLimit=W.gasLimit;if(W.gasPrice!=null)G.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)G.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)G.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)G.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)G.data=W.data;if(W.value!=null)G.value=W.value;if(W.chainId!=null)G.chainId=W.chainId;if(W.signature!=null)G.signature=K8.from(W.signature);if(W.accessList!=null)G.accessList=W.accessList;if(W.authorizationList!=null)G.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)G.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)G.kzg=W.kzg;if(W.blobs!=null)G.blobs=W.blobs;if(W.hash!=null)s(G.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),s(G.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)s(G.isSigned(),"unsigned transaction cannot define '.from'","tx",W),s(G.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return G}}function iH(W){return s(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),X8(s1(["0x05",R5([W.chainId!=null?J8(W.chainId):"0x",f1(W.address),W.nonce!=null?J8(W.nonce):"0x"])]))}function t4(W){return X8(P9(W))}function TJ(W){if(typeof W==="string")W=P9(W);return X8(s1([P9(gK),P9(String(W.length)),W]))}function rH(W,G){let X=TJ(W);return MJ(X,G)}var V_=new Uint8Array(32);V_.fill(0);var $s=BigInt(-1),Q_=BigInt(0),J_=BigInt(1),Fs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Ss(W){let G=R0(W),X=G.length%32;if(X)return s1([G,V_.slice(X)]);return C0(G)}var xs=Z7(J_,32),ks=Z7(Q_,32),X_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cK=["name","version","chainId","verifyingContract","salt"];function Y_(W){return function(G){return s(typeof G==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,G),G}}var _s={name:Y_("name"),version:Y_("version"),chainId:function(W){let G=u1(W,"domain.chainId");if(s(G>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(G))return Number(G);return PH(G)},verifyingContract:function(W){try{return f1(W).toLowerCase()}catch(G){}s(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let G=R0(W,"domain.salt");return s(G.length===32,'invalid domain value "salt"',"domain.salt",W),C0(G)}};function pK(W){{let G=W.match(/^(u?)int(\d+)$/);if(G){let X=G[1]==="",Y=parseInt(G[2]);s(Y%8===0&&Y!==0&&Y<=256&&G[2]===String(Y),"invalid numeric width","type",W);let Z=TH(Fs,X?Y-1:Y),V=X?(Z+J_)*$s:Q_;return function(Q){let J=u1(Q,"value");return s(J>=V&&J<=Z,`value out-of-bounds for ${W}`,"value",J),Z7(X?MH(J,256):J,32)}}}{let G=W.match(/^bytes(\d+)$/);if(G){let X=parseInt(G[1]);return s(X!==0&&X<=32&&G[1]===String(X),"invalid bytes width","type",W),function(Y){let Z=R0(Y);return s(Z.length===X,`invalid length for ${W}`,"value",Y),Ss(Y)}}}switch(W){case"address":return function(G){return N5(f1(G),32)};case"bool":return function(G){return!G?ks:xs};case"bytes":return function(G){return X8(G)};case"string":return function(G){return t4(G)}}return null}function Z_(W,G){return`${W}(${G.map(({name:X,type:Y})=>Y+" "+X).join(",")})`}function aH(W){let G=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(G)return{base:G[1],index:G[2]+G[4],array:{base:G[1],prefix:G[1]+G[2],count:G[5]?parseInt(G[5]):-1}};return{base:W}}class E9{primaryType;#W;get types(){return JSON.parse(this.#W)}#G;#X;constructor(W){this.#G=new Map,this.#X=new Map;let G=new Map,X=new Map,Y=new Map,Z={};Object.keys(W).forEach((J)=>{Z[J]=W[J].map(({name:U,type:N})=>{let{base:q,index:A}=aH(N);if(q==="int"&&!W.int)q="int256";if(q==="uint"&&!W.uint)q="uint256";return{name:U,type:q+(A||"")}}),G.set(J,new Set),X.set(J,[]),Y.set(J,new Set)}),this.#W=JSON.stringify(Z);for(let J in Z){let U=new Set;for(let N of Z[J]){s(!U.has(N.name),`duplicate variable name ${JSON.stringify(N.name)} in ${JSON.stringify(J)}`,"types",W),U.add(N.name);let q=aH(N.type).base;if(s(q!==J,`circular type reference to ${JSON.stringify(q)}`,"types",W),pK(q))continue;s(X.has(q),`unknown type ${JSON.stringify(q)}`,"types",W),X.get(q).push(J),G.get(J).add(q)}}let V=Array.from(X.keys()).filter((J)=>X.get(J).length===0);s(V.length!==0,"missing primary type","types",W),s(V.length===1,`ambiguous primary types or unused types: ${V.map((J)=>JSON.stringify(J)).join(", ")}`,"types",W),Q8(this,{primaryType:V[0]});function Q(J,U){s(!U.has(J),`circular type reference to ${JSON.stringify(J)}`,"types",W),U.add(J);for(let N of G.get(J)){if(!X.has(N))continue;Q(N,U);for(let q of U)Y.get(q).add(N)}U.delete(J)}Q(this.primaryType,new Set);for(let[J,U]of Y){let N=Array.from(U);N.sort(),this.#G.set(J,Z_(J,Z[J])+N.map((q)=>Z_(q,Z[q])).join(""))}}getEncoder(W){let G=this.#X.get(W);if(!G)G=this.#Y(W),this.#X.set(W,G);return G}#Y(W){{let Y=pK(W);if(Y)return Y}let G=aH(W).array;if(G){let Y=G.prefix,Z=this.getEncoder(Y);return(V)=>{s(G.count===-1||G.count===V.length,`array length mismatch; expected length ${G.count}`,"value",V);let Q=V.map(Z);if(this.#G.has(Y))Q=Q.map(X8);return X8(s1(Q))}}let X=this.types[W];if(X){let Y=t4(this.#G.get(W));return(Z)=>{let V=X.map(({name:Q,type:J})=>{let U=this.getEncoder(J)(Z[Q]);if(this.#G.has(J))return X8(U);return U});return V.unshift(Y),s1(V)}}s(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let G=this.#G.get(W);return s(G,`unknown type: ${JSON.stringify(W)}`,"name",W),G}encodeData(W,G){return this.getEncoder(W)(G)}hashStruct(W,G){return X8(this.encodeData(W,G))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,G,X){if(pK(W))return X(W,G);let Y=aH(W).array;if(Y)return s(Y.count===-1||Y.count===G.length,`array length mismatch; expected length ${Y.count}`,"value",G),G.map((V)=>this._visit(Y.prefix,V,X));let Z=this.types[W];if(Z)return Z.reduce((V,{name:Q,type:J})=>{return V[Q]=this._visit(J,G[Q],X),V},{});s(!1,`unknown type: ${W}`,"type",W)}visit(W,G){return this._visit(this.primaryType,W,G)}static from(W){return new E9(W)}static getPrimaryType(W){return E9.from(W).primaryType}static hashStruct(W,G,X){return E9.from(G).hashStruct(W,X)}static hashDomain(W){let G=[];for(let X in W){if(W[X]==null)continue;let Y=X_[X];s(Y,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",W),G.push({name:X,type:Y})}return G.sort((X,Y)=>{return cK.indexOf(X.name)-cK.indexOf(Y.name)}),E9.hashStruct("EIP712Domain",{EIP712Domain:G},W)}static encode(W,G,X){return s1(["0x1901",E9.hashDomain(W),E9.from(G).hash(X)])}static hash(W,G,X){return X8(E9.encode(W,G,X))}static async resolveNames(W,G,X,Y){W=Object.assign({},W);for(let Q in W)if(W[Q]==null)delete W[Q];let Z={};if(W.verifyingContract&&!T9(W.verifyingContract,20))Z[W.verifyingContract]="0x";let V=E9.from(G);V.visit(X,(Q,J)=>{if(Q==="address"&&!T9(J,20))Z[J]="0x";return J});for(let Q in Z)Z[Q]=await Y(Q);if(W.verifyingContract&&Z[W.verifyingContract])W.verifyingContract=Z[W.verifyingContract];return X=V.visit(X,(Q,J)=>{if(Q==="address"&&Z[J])return Z[J];return J}),{domain:W,value:X}}static getPayload(W,G,X){E9.hashDomain(W);let Y={},Z=[];cK.forEach((J)=>{let U=W[J];if(U==null)return;Y[J]=_s[J](U),Z.push({name:J,type:X_[J]})});let V=E9.from(G);G=V.types;let Q=Object.assign({},G);return s(Q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",G),Q.EIP712Domain=Z,V.encode(X),{types:Q,domain:Y,primaryType:V.primaryType,message:V.visit(X,(J,U)=>{if(J.match(/^bytes(\d*)/))return C0(R0(U));if(J.match(/^u?int/))return u1(U).toString();switch(J){case"address":return U.toLowerCase();case"bool":return!!U;case"string":return s(typeof U==="string","invalid string","value",U),U}s(!1,"unsupported type","type",J)})}}}var U_=BigInt(0);function lK(W){if(W==null)return null;return W}function a8(W){if(W==null)return null;return W.toString()}function PJ(W){let G={};if(W.to)G.to=W.to;if(W.from)G.from=W.from;if(W.data)G.data=C0(W.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let Z of X){if(!(Z in W)||W[Z]==null)continue;G[Z]=u1(W[Z],`request.${Z}`)}let Y="type,nonce".split(/,/);for(let Z of Y){if(!(Z in W)||W[Z]==null)continue;G[Z]=i8(W[Z],`request.${Z}`)}if(W.accessList)G.accessList=gG(W.accessList);if(W.authorizationList)G.authorizationList=W.authorizationList.slice();if("blockTag"in W)G.blockTag=W.blockTag;if("enableCcipRead"in W)G.enableCcipRead=!!W.enableCcipRead;if("customData"in W)G.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)G.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)G.kzg=W.kzg;if("blobs"in W&&W.blobs)G.blobs=W.blobs.map((Z)=>{if(l7(Z))return C0(Z);return Object.assign({},Z)});return G}class N_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,G){this.#W=W.transactions.map((X)=>{if(typeof X!=="string")return new sH(X,G);return X}),Q8(this,{provider:G,hash:lK(W.hash),number:W.number,timestamp:W.timestamp,parentHash:W.parentHash,parentBeaconBlockRoot:W.parentBeaconBlockRoot,nonce:W.nonce,difficulty:W.difficulty,gasLimit:W.gasLimit,gasUsed:W.gasUsed,blobGasUsed:W.blobGasUsed,excessBlobGas:W.excessBlobGas,miner:W.miner,prevRandao:lK(W.prevRandao),extraData:W.extraData,baseFeePerGas:lK(W.baseFeePerGas),stateRoot:W.stateRoot,receiptsRoot:W.receiptsRoot})}get transactions(){return this.#W.map((W)=>{if(typeof W==="string")return W;return W.hash})}get prefetchedTransactions(){let W=this.#W.slice();if(W.length===0)return[];return t0(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:G,extraData:X,gasLimit:Y,gasUsed:Z,hash:V,miner:Q,prevRandao:J,nonce:U,number:N,parentHash:q,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,timestamp:w,transactions:C}=this;return{_type:"Block",baseFeePerGas:a8(W),difficulty:a8(G),extraData:X,gasLimit:a8(Y),gasUsed:a8(Z),blobGasUsed:a8(this.blobGasUsed),excessBlobGas:a8(this.excessBlobGas),hash:V,miner:Q,prevRandao:J,nonce:U,number:N,parentHash:q,timestamp:w,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,transactions:C}}[Symbol.iterator](){let W=0,G=this.transactions;return{next:()=>{if(W<this.length)return{value:G[W++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#W.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(W){let G=void 0;if(typeof W==="number")G=this.#W[W];else{let X=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==X)continue;G=Y;break}else{if(Y.hash!==X)continue;G=Y;break}}if(G==null)throw Error("no such tx");if(typeof G==="string")return await this.provider.getTransaction(G);else return G}getPrefetchedTransaction(W){let G=this.prefetchedTransactions;if(typeof W==="number")return G[W];W=W.toLowerCase();for(let X of G)if(X.hash===W)return X;s(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return gs(this)}}class dK{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,G){this.provider=G;let X=Object.freeze(W.topics.slice());Q8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:X,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:G,blockNumber:X,data:Y,index:Z,removed:V,topics:Q,transactionHash:J,transactionIndex:U}=this;return{_type:"log",address:W,blockHash:G,blockNumber:X,data:Y,index:Z,removed:V,topics:Q,transactionHash:J,transactionIndex:U}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return t0(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return us(this)}}class q_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,G){this.#W=Object.freeze(W.logs.map((Y)=>{return new dK(Y,G)}));let X=U_;if(W.effectiveGasPrice!=null)X=W.effectiveGasPrice;else if(W.gasPrice!=null)X=W.gasPrice;Q8(this,{provider:G,to:W.to,from:W.from,contractAddress:W.contractAddress,hash:W.hash,index:W.index,blockHash:W.blockHash,blockNumber:W.blockNumber,logsBloom:W.logsBloom,gasUsed:W.gasUsed,cumulativeGasUsed:W.cumulativeGasUsed,blobGasUsed:W.blobGasUsed,gasPrice:X,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:G,contractAddress:X,hash:Y,index:Z,blockHash:V,blockNumber:Q,logsBloom:J,logs:U,status:N,root:q}=this;return{_type:"TransactionReceipt",blockHash:V,blockNumber:Q,contractAddress:X,cumulativeGasUsed:a8(this.cumulativeGasUsed),from:G,gasPrice:a8(this.gasPrice),blobGasUsed:a8(this.blobGasUsed),blobGasPrice:a8(this.blobGasPrice),gasUsed:a8(this.gasUsed),hash:Y,index:Z,logs:U,logsBloom:J,root:q,status:N,to:W}}get length(){return this.logs.length}[Symbol.iterator](){let W=0;return{next:()=>{if(W<this.length)return{value:this.logs[W++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let W=await this.provider.getBlock(this.blockHash);if(W==null)throw Error("TODO");return W}async getTransaction(){let W=await this.provider.getTransaction(this.hash);if(W==null)throw Error("TODO");return W}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return A_(this)}reorderedEvent(W){return t0(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),H_(this,W)}}class sH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,G){this.provider=G,this.blockNumber=W.blockNumber!=null?W.blockNumber:null,this.blockHash=W.blockHash!=null?W.blockHash:null,this.hash=W.hash,this.index=W.index,this.type=W.type,this.from=W.from,this.to=W.to||null,this.gasLimit=W.gasLimit,this.nonce=W.nonce,this.data=W.data,this.value=W.value,this.gasPrice=W.gasPrice,this.maxPriorityFeePerGas=W.maxPriorityFeePerGas!=null?W.maxPriorityFeePerGas:null,this.maxFeePerGas=W.maxFeePerGas!=null?W.maxFeePerGas:null,this.maxFeePerBlobGas=W.maxFeePerBlobGas!=null?W.maxFeePerBlobGas:null,this.chainId=W.chainId,this.signature=W.signature,this.accessList=W.accessList!=null?W.accessList:null,this.blobVersionedHashes=W.blobVersionedHashes!=null?W.blobVersionedHashes:null,this.authorizationList=W.authorizationList!=null?W.authorizationList:null,this.#W=-1}toJSON(){let{blockNumber:W,blockHash:G,index:X,hash:Y,type:Z,to:V,from:Q,nonce:J,data:U,signature:N,accessList:q,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:q,blockNumber:W,blockHash:G,blobVersionedHashes:A,chainId:a8(this.chainId),data:U,from:Q,gasLimit:a8(this.gasLimit),gasPrice:a8(this.gasPrice),hash:Y,maxFeePerGas:a8(this.maxFeePerGas),maxPriorityFeePerGas:a8(this.maxPriorityFeePerGas),maxFeePerBlobGas:a8(this.maxFeePerBlobGas),nonce:J,signature:N,to:V,index:X,type:Z,value:a8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let X=await this.getTransaction();if(X)W=X.blockNumber}if(W==null)return null;let G=this.provider.getBlock(W);if(G==null)throw Error("TODO");return G}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:G,blockNumber:X}=await p7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(G==null||G.blockNumber==null)return 0;return X-G.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,G){let X=W==null?1:W,Y=G==null?0:G,Z=this.#W,V=-1,Q=Z===-1?!0:!1,J=async()=>{if(Q)return null;let{blockNumber:A,nonce:H}=await p7({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(H<this.nonce){Z=A;return}if(Q)return null;let I=await this.getTransaction();if(I&&I.blockNumber!=null)return;if(V===-1){if(V=Z-3,V<this.#W)V=this.#W}while(V<=A){if(Q)return null;let w=await this.provider.getBlock(V,!0);if(w==null)return;for(let C of w)if(C===this.hash)return;for(let C=0;C<w.length;C++){let D=await w.getTransaction(C);if(D.from===this.from&&D.nonce===this.nonce){if(Q)return null;let x=await this.provider.getTransactionReceipt(D.hash);if(x==null)return;if(A-x.blockNumber+1<X)return;let h="replaced";if(D.data===this.data&&D.to===this.to&&D.value===this.value)h="repriced";else if(D.data==="0x"&&D.from===D.to&&D.value===U_)h="cancelled";t0(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:h==="replaced"||h==="cancelled",reason:h,replacement:D.replaceableTransaction(Z),hash:D.hash,receipt:x})}}V++}return},U=(A)=>{if(A==null||A.status!==0)return A;t0(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:A.to,from:A.from,data:""},receipt:A})},N=await this.provider.getTransactionReceipt(this.hash);if(X===0)return U(N);if(N){if(X===1||await N.confirmations()>=X)return U(N)}else if(await J(),X===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((D)=>D())};if(I.push(()=>{Q=!0}),Y>0){let D=setTimeout(()=>{w(),H(AJ("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(D)})}let C=async(D)=>{if(await D.confirmations()>=X){w();try{A(U(D))}catch(x){H(x)}}};if(I.push(()=>{this.provider.off(this.hash,C)}),this.provider.on(this.hash,C),Z>=0){let D=async()=>{try{await J()}catch(x){if(DH(x,"TRANSACTION_REPLACED")){w(),H(x);return}}if(!Q)this.provider.once("block",D)};I.push(()=>{this.provider.off("block",D)}),this.provider.once("block",D)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),A_(this)}reorderedEvent(W){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),t0(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),H_(this,W)}replaceableTransaction(W){s(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let G=new sH(this,this.provider);return G.#W=W,G}}function gs(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function H_(W,G){return{orphan:"reorder-transaction",tx:W,other:G}}function A_(W){return{orphan:"drop-transaction",tx:W}}function us(W){return{orphan:"drop-log",log:{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,address:W.address,data:W.data,topics:Object.freeze(W.topics.slice()),index:W.index}}}function hG(W,G){if(W.provider)return W.provider;t0(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:G})}async function z_(W,G){let X=PJ(G);if(X.to!=null)X.to=a4(X.to,W);if(X.from!=null){let Y=X.from;X.from=Promise.all([W.getAddress(),a4(Y,W)]).then(([Z,V])=>{return s(Z.toLowerCase()===V.toLowerCase(),"transaction from mismatch","tx.from",V),Z})}else X.from=W.getAddress();return await p7(X)}class RJ{provider;constructor(W){Q8(this,{provider:W||null})}async getNonce(W){return hG(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await z_(this,W)}async populateTransaction(W){let G=hG(this,"populateTransaction"),X=await z_(this,W);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let Y=await this.provider.getNetwork();if(X.chainId!=null){let V=u1(X.chainId);s(V===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else X.chainId=Y.chainId;let Z=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||Z))s(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((X.type===0||X.type===1)&&Z)s(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let V=await G.getFeeData();if(t0(V.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=V.gasPrice}else{let V=await G.getFeeData();if(X.type==null)if(V.maxFeePerGas!=null&&V.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let Q=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=Q,X.maxPriorityFeePerGas=Q}else{if(X.maxFeePerGas==null)X.maxFeePerGas=V.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=V.maxPriorityFeePerGas}}else if(V.gasPrice!=null){if(t0(!Z,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=V.gasPrice;X.type=0}else t0(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=V.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=V.maxPriorityFeePerGas}}return await p7(X)}async populateAuthorization(W){let G=Object.assign({},W);if(G.chainId==null)G.chainId=(await hG(this,"getNetwork").getNetwork()).chainId;if(G.nonce==null)G.nonce=await this.getNonce();return G}async estimateGas(W){return hG(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return hG(this,"call").call(await this.populateCall(W))}async resolveName(W){return await hG(this,"resolveName").resolveName(W)}async sendTransaction(W){let G=hG(this,"sendTransaction"),X=await this.populateTransaction(W);delete X.from;let Y=a9.from(X);return await G.broadcastTransaction(await this.signTransaction(Y))}authorize(W){t0(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class LJ extends RJ{address;constructor(W,G){super(G);Q8(this,{address:W})}async getAddress(){return this.address}connect(W){return new LJ(this.address,W)}#W(W,G){t0(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:G})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,G,X){this.#W("typed-data","signTypedData")}}class bG extends RJ{address;#W;constructor(W,G){super(G);s(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let X=s4(this.signingKey.publicKey);Q8(this,{address:X})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new bG(this.#W,W)}async signTransaction(W){W=PJ(W);let{to:G,from:X}=await p7({to:W.to?a4(W.to,this):void 0,from:W.from?a4(W.from,this):void 0});if(G!=null)W.to=G;if(X!=null)W.from=X;if(W.from!=null)s(f1(W.from)===this.address,"transaction from address mismatch","tx.from",W.from),delete W.from;let Y=a9.from(W);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage(W){return this.signMessageSync(W)}signMessageSync(W){return this.signingKey.sign(TJ(W)).serialized}authorizeSync(W){s(typeof W.address==="string","invalid address for authorizeSync","auth.address",W);let G=this.signingKey.sign(iH(W));return Object.assign({},{address:f1(W.address),nonce:u1(W.nonce||0),chainId:u1(W.chainId||0)},{signature:G})}async authorize(W){return W=Object.assign({},W,{address:await a4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,G,X){let Y=await E9.resolveNames(W,G,X,async(Z)=>{t0(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:Z}});let V=await this.provider.resolveName(Z);return t0(V!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:Z}),V});return this.signingKey.sign(E9.hash(Y.domain,G,Y.value)).serialized}}var tH=" !#$%&'()*+,-./<=>?@[]^_`{|}~",hs=/^[a-z]*$/i;function I_(W,G){let X=97;return W.reduce((Y,Z)=>{if(Z===G)X++;else if(Z.match(hs))Y.push(String.fromCharCode(X)+Z);else X=97,Y.push(Z);return Y},[])}function bs(W,G){for(let Z=tH.length-1;Z>=0;Z--)W=W.split(tH[Z]).join(G.substring(2*Z,2*Z+2));let X=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(Z,V,Q,J)=>{if(Q)for(let U=parseInt(Q);U>=0;U--)X.push(";");else X.push(V.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return I_(I_(X,";"),":")}function w_(W){return s(W[0]==="0","unsupported auwl data","data",W),bs(W.substring(1+2*tH.length),W.substring(1,1+2*tH.length))}class oK{locale;constructor(W){Q8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class nK extends oK{#W;#G;constructor(W,G,X){super(W);this.#W=G,this.#G=X,this.#X=null}get _data(){return this.#W}_decodeWords(){return w_(this.#W)}#X;#Y(){if(this.#X==null){let W=this._decodeWords();if(t4(W.join(`
250
250
  `)+`
251
- `)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return s(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var ms="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",fs="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",iK=null;class e4 extends nK{constructor(){super("en",ms,fs)}static wordlist(){if(iK==null)iK=new e4;return iK}}function j_(W){return(1<<W)-1<<8-W&255}function cs(W){return(1<<W)-1&255}function rK(W,G){if(oY("NFKD"),G==null)G=e4.wordlist();let X=G.split(W);s(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),Z=0;for(let N=0;N<X.length;N++){let q=G.getWordIndex(X[N].normalize("NFKD"));s(q>=0,`invalid mnemonic word at index ${N}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(q&1<<10-A)Y[Z>>3]|=1<<7-Z%8;Z++}}let V=32*X.length/3,Q=X.length/3,J=j_(Q),U=R0(L9(Y.slice(0,V/8)))[0]&J;return s(U===(Y[Y.length-1]&J),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,V/8))}function aK(W,G){if(s(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=e4.wordlist();let X=[0],Y=11;for(let Q=0;Q<W.length;Q++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[Q],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[Q]>>8-Y,X.push(W[Q]&cs(8-Y)),Y+=3;let Z=W.length/4,V=parseInt(L9(W).substring(2,4),16)&j_(Z);return X[X.length-1]<<=Z,X[X.length-1]|=V>>8-Z,G.join(X.map((Q)=>G.getWord(Q)))}var sK={};class W6{phrase;password;wordlist;entropy;constructor(W,G,X,Y,Z){if(Y==null)Y="";if(Z==null)Z=e4.wordlist();l4(W,sK,"Mnemonic"),Q8(this,{phrase:X,password:Y,wordlist:Z,entropy:G})}computeSeed(){let W=P9("mnemonic"+this.password,"NFKD");return L5(P9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=rK(W,X);return W=aK(R0(Y),X),new W6(sK,Y,W,G,X)}static fromEntropy(W,G,X){let Y=R0(W,"entropy"),Z=aK(Y,X);return new W6(sK,C0(Y),Z,G,X)}static entropyToPhrase(W,G){let X=R0(W,"entropy");return aK(X,G)}static phraseToEntropy(W,G){return rK(W,G)}static isValidMnemonic(W,G){try{return rK(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var V9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},tK=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},WA,F5,o7,ps={16:10,24:12,32:14},ls=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],$5=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],eH=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ds=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],os=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],ns=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],is=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],rs=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],as=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],ss=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],ts=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],es=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],Wt=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Gt=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Xt=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function eK(W){let G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class GA{get key(){return V9(this,WA,"f").slice()}constructor(W){if(WA.set(this,void 0),F5.set(this,void 0),o7.set(this,void 0),!(this instanceof GA))throw Error("AES must be instanitated with `new`");tK(this,WA,new Uint8Array(W),"f");let G=ps[this.key.length];if(G==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");tK(this,o7,[],"f"),tK(this,F5,[],"f");for(let N=0;N<=G;N++)V9(this,o7,"f").push([0,0,0,0]),V9(this,F5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,Z=eK(this.key),V;for(let N=0;N<Y;N++)V=N>>2,V9(this,o7,"f")[V][N%4]=Z[N],V9(this,F5,"f")[G-V][N%4]=Z[N];let Q=0,J=Y,U;while(J<X){if(U=Z[Y-1],Z[0]^=$5[U>>16&255]<<24^$5[U>>8&255]<<16^$5[U&255]<<8^$5[U>>24&255]^ls[Q]<<24,Q+=1,Y!=8)for(let H=1;H<Y;H++)Z[H]^=Z[H-1];else{for(let H=1;H<Y/2;H++)Z[H]^=Z[H-1];U=Z[Y/2-1],Z[Y/2]^=$5[U&255]^$5[U>>8&255]<<8^$5[U>>16&255]<<16^$5[U>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)Z[H]^=Z[H-1]}let N=0,q,A;while(N<Y&&J<X)q=J>>2,A=J%4,V9(this,o7,"f")[q][A]=Z[N],V9(this,F5,"f")[G-q][A]=Z[N++],J++}for(let N=1;N<G;N++)for(let q=0;q<4;q++)U=V9(this,F5,"f")[N][q],V9(this,F5,"f")[N][q]=es[U>>24&255]^Wt[U>>16&255]^Gt[U>>8&255]^Xt[U&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=V9(this,o7,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=V9(this,o7,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=ds[Y[J]>>24&255]^os[Y[(J+1)%4]>>16&255]^ns[Y[(J+2)%4]>>8&255]^is[Y[(J+3)%4]&255]^V9(this,o7,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=V9(this,o7,"f")[G][Q],Z[4*Q]=($5[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=($5[Y[(Q+1)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=($5[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=($5[Y[(Q+3)%4]&255]^V)&255;return Z}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let G=V9(this,F5,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=V9(this,F5,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=rs[Y[J]>>24&255]^as[Y[(J+3)%4]>>16&255]^ss[Y[(J+2)%4]>>8&255]^ts[Y[(J+1)%4]&255]^V9(this,F5,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=V9(this,F5,"f")[G][Q],Z[4*Q]=(eH[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=(eH[Y[(Q+3)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=(eH[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=(eH[Y[(Q+1)%4]&255]^V)&255;return Z}}WA=new WeakMap,F5=new WeakMap,o7=new WeakMap;class BJ{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new GA(G)},name:{enumerable:!0,value:W}})}}var XA=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},YZ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},EJ,G6;class $J extends BJ{constructor(W,G){super("ECC",W,$J);if(EJ.set(this,void 0),G6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");XA(this,EJ,new Uint8Array(G),"f")}else XA(this,EJ,new Uint8Array(16),"f");XA(this,G6,this.iv,"f")}get iv(){return new Uint8Array(YZ(this,EJ,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)YZ(this,G6,"f")[Y]^=W[X+Y];XA(this,G6,this.aes.encrypt(YZ(this,G6,"f")),"f"),G.set(YZ(this,G6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let Z=0;Z<16;Z++)G[X+Z]=Y[Z]^YZ(this,G6,"f")[Z],YZ(this,G6,"f")[Z]=W[X+Z]}return G}}EJ=new WeakMap,G6=new WeakMap;var ZZ=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},S5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},FJ,mG,x5;class NW extends BJ{constructor(W,G){super("CTR",W,NW);if(FJ.set(this,void 0),mG.set(this,void 0),x5.set(this,void 0),ZZ(this,x5,new Uint8Array(16),"f"),S5(this,x5,"f").fill(0),ZZ(this,FJ,S5(this,x5,"f"),"f"),ZZ(this,mG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}get counter(){return new Uint8Array(S5(this,x5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let G=15;G>=0;--G)S5(this,x5,"f")[G]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");S5(this,x5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(S5(this,x5,"f")[W]===255)S5(this,x5,"f")[W]=0;else{S5(this,x5,"f")[W]++;break}}encrypt(W){var G,X;let Y=new Uint8Array(W);for(let Z=0;Z<Y.length;Z++){if(S5(this,mG,"f")===16)ZZ(this,FJ,this.aes.encrypt(S5(this,x5,"f")),"f"),ZZ(this,mG,0,"f"),this.increment();Y[Z]^=S5(this,FJ,"f")[ZZ(this,mG,(X=S5(this,mG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}FJ=new WeakMap,mG=new WeakMap,x5=new WeakMap;function WC(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function GC(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return Y7(W)}function VZ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function fG(W){if(typeof W==="string")return P9(W,"NFKC");return Y7(W)}function C8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);s(X!=null,"invalid path","path",G);let Y=X[1],Z=X[3],V=X[4]==="!",Q=W;for(let J of Y.toLowerCase().split(".")){if(Array.isArray(Q)){if(!J.match(/^[0-9]+$/))break;Q=Q[parseInt(J)]}else if(typeof Q==="object"){let U=null;for(let N in Q)if(N.toLowerCase()===J){U=Q[N];break}Q=U}else Q=null;if(Q==null)break}if(s(!V||Q!=null,"missing required value","path",Y),Z&&Q!=null){if(Z==="int"){if(typeof Q==="string"&&Q.match(/^-?[0-9]+$/))return parseInt(Q);else if(Number.isSafeInteger(Q))return Q}if(Z==="number"){if(typeof Q==="string"&&Q.match(/^-?[0-9.]*$/))return parseFloat(Q)}if(Z==="data"){if(typeof Q==="string")return GC(Q)}if(Z==="array"&&Array.isArray(Q))return Q;if(Z===typeof Q)return Q;s(!1,`wrong type found for ${Z} `,"path",Y)}return Q}var K_="m/44'/60'/0'/0/0";function ZA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function Yt(W,G,X){if(C8(W,"crypto.cipher:string")==="aes-128-ctr"){let Z=C8(W,"crypto.cipherparams.iv:data!"),V=new NW(G,Z);return C0(V.decrypt(X))}t0(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function YA(W,G){let X=R0(G),Y=C8(W,"crypto.ciphertext:data!"),Z=C0(X8(s1([X.slice(16,32),Y]))).substring(2);s(Z===C8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let V=Yt(W,X.slice(0,16),Y),Q=s4(V);if(W.address){let N=W.address.toLowerCase();if(!N.startsWith("0x"))N="0x"+N;s(f1(N)===Q,"keystore address/privateKey mismatch","address",W.address)}let J={address:Q,privateKey:V};if(C8(W,"x-ethers.version:string")==="0.1"){let N=X.slice(32,64),q=C8(W,"x-ethers.mnemonicCiphertext:data!"),A=C8(W,"x-ethers.mnemonicCounter:data!"),H=new NW(N,A);J.mnemonic={path:C8(W,"x-ethers.path:string")||K_,locale:C8(W,"x-ethers.locale:string")||"en",entropy:C0(R0(H.decrypt(q)))}}return J}function C_(W){let G=C8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=C8(W,"crypto.kdfparams.salt:data!"),Y=C8(W,"crypto.kdfparams.n:int!"),Z=C8(W,"crypto.kdfparams.r:int!"),V=C8(W,"crypto.kdfparams.p:int!");s(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),s(Z>0&&V>0,"invalid kdf","kdf",G);let Q=C8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dflen",Q),{name:"scrypt",salt:X,N:Y,r:Z,p:V,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=C8(W,"crypto.kdfparams.salt:data!"),Y=C8(W,"crypto.kdfparams.prf:string!"),Z=Y.split("-").pop();s(Z==="sha256"||Z==="sha512","invalid kdf.pdf","kdf.pdf",Y);let V=C8(W,"crypto.kdfparams.c:int!"),Q=C8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dklen",Q),{name:"pbkdf2",salt:X,count:V,dkLen:Q,algorithm:Z}}}s(!1,"unsupported key-derivation function","kdf",G)}function XC(W,G){let X=JSON.parse(W),Y=fG(G),Z=C_(X);if(Z.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=Z,C=L5(Y,A,H,I,w);return YA(X,C)}t0(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:Q,r:J,p:U,dkLen:N}=Z,q=QW(Y,V,Q,J,U,N);return YA(X,q)}function O_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function YC(W,G,X){let Y=JSON.parse(W),Z=fG(G),V=C_(Y);if(V.name==="pbkdf2"){if(X)X(0),await O_(0);let{salt:H,count:I,dkLen:w,algorithm:C}=V,D=L5(Z,H,I,w,C);if(X)X(1),await O_(0);return YA(Y,D)}t0(V.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:V});let{salt:Q,N:J,r:U,p:N,dkLen:q}=V,A=await VW(Z,Q,J,U,N,q,X);return YA(Y,A)}function D_(W){let G=W.salt!=null?R0(W.salt,"options.salt"):B5(32),X=131072,Y=8,Z=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)Z=W.scrypt.p}return s(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),s(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),s(typeof Z==="number"&&Z>0&&Number.isSafeInteger(Z),"invalid scrypt p parameter","options.p",Z),{name:"scrypt",dkLen:32,salt:G,N:X,r:Y,p:Z}}function M_(W,G,X,Y){let Z=R0(X.privateKey,"privateKey"),V=Y.iv!=null?R0(Y.iv,"options.iv"):B5(16);s(V.length===16,"invalid options.iv length","options.iv",Y.iv);let Q=Y.uuid!=null?R0(Y.uuid,"options.uuid"):B5(16);s(Q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let J=W.slice(0,16),U=W.slice(16,32),N=new NW(J,V),q=R0(N.encrypt(Z)),A=X8(s1([U,q])),H={address:X.address.substring(2).toLowerCase(),id:$H(Q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(V).substring(2)},ciphertext:C0(q).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${CH}`,w=X.mnemonic.path||K_,C=X.mnemonic.locale||"en",D=W.slice(32,64),x=R0(X.mnemonic.entropy,"account.mnemonic.entropy"),h=B5(16),l=new NW(D,h),u=R0(l.encrypt(x)),n=new Date,p="UTC--"+(n.getUTCFullYear()+"-"+VZ(n.getUTCMonth()+1,2)+"-"+VZ(n.getUTCDate(),2)+"T"+VZ(n.getUTCHours(),2)+"-"+VZ(n.getUTCMinutes(),2)+"-"+VZ(n.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:p,path:w,locale:C,mnemonicCounter:C0(h).substring(2),mnemonicCiphertext:C0(u).substring(2),version:"0.1"}}return JSON.stringify(H)}function SJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=QW(Y,Z.salt,Z.N,Z.r,Z.p,64);return M_(R0(V),Z,W,X)}async function xJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=await VW(Y,Z.salt,Z.N,Z.r,Z.p,64,X.progressCallback);return M_(R0(V),Z,W,X)}var kJ="m/44'/60'/0'/0/0",Zt=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),qW=2147483648,Vt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Qt="0123456789abcdef";function VA(W,G){let X="";while(W)X=Qt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZC(W){let G=R0(W),X=nY(L9(L9(G)),0,4),Y=s1([G,X]);return BH(Y)}var n7={};function T_(W,G,X,Y){let Z=new Uint8Array(37);if(W&qW)t0(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),Z.set(R0(Y),1);else Z.set(R0(X));for(let Q=24;Q>=0;Q-=8)Z[33+(Q>>3)]=W>>24-Q&255;let V=R0(GW("sha512",G,Z));return{IL:V.slice(0,32),IR:V.slice(32)}}function P_(W,G){let X=G.split("/");if(s(X.length>0,"invalid path","path",G),X[0]==="m")s(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",G),X.shift();let Y=W;for(let Z=0;Z<X.length;Z++){let V=X[Z];if(V.match(/^[0-9]+'$/)){let Q=parseInt(V.substring(0,V.length-1));s(Q<qW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(qW+Q)}else if(V.match(/^[0-9]+$/)){let Q=parseInt(V);s(Q<qW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(Q)}else s(!1,"invalid path component",`path[${Z}]`,V)}return Y}class Q9 extends bG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);l4(W,n7,"HDNodeWallet"),Q8(this,{publicKey:G.compressedPublicKey});let N=nY(XW(L9(this.publicKey)),0,4);Q8(this,{parentFingerprint:X,fingerprint:N,chainCode:Y,path:Z,index:V,depth:Q}),Q8(this,{mnemonic:J})}connect(W){return new Q9(n7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await xJ(this.#W(),W,{progressCallback:G})}encryptSync(W){return SJ(this.#W(),W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(s1(["0x0488ADE4",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,s1(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new cG(n7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=i8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~qW),G&qW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,this.privateKey),V=new d8(Z7((rY(Z)+BigInt(this.privateKey))%Vt,32));return new Q9(n7,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return P_(this,W)}static#G(W,G){s(l7(W),"invalid seed","seed","[REDACTED]");let X=R0(W,"seed");s(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=R0(GW("sha512",Zt,X)),Z=new d8(C0(Y.slice(0,32)));return new Q9(n7,Z,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=J8(EH(W));s(G.length===82||ZC(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),Z=parseInt(C0(G.slice(9,13)).substring(2),16),V=C0(G.slice(13,45)),Q=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let J=C0(Q);return new cG(n7,s4(J),J,Y,V,null,Z,X,null)}case"0x0488ade4":case"0x04358394 ":if(Q[0]!==0)break;return new Q9(n7,new d8(Q.slice(1)),Y,V,null,Z,X,null,null)}s(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=kJ;if(X==null)X=e4.wordlist();let Y=W6.fromEntropy(B5(16),W,X);return Q9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=kJ;return Q9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=kJ;if(Y==null)Y=e4.wordlist();let Z=W6.fromPhrase(W,G,Y);return Q9.#G(Z.computeSeed(),Z).derivePath(X)}static fromSeed(W){return Q9.#G(W,null)}}class cG extends LJ{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);l4(W,n7,"HDNodeVoidWallet"),Q8(this,{publicKey:X});let N=nY(XW(L9(X)),0,4);Q8(this,{publicKey:X,fingerprint:N,parentFingerprint:Y,chainCode:Z,path:V,index:Q,depth:J})}connect(W){return new cG(n7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(s1(["0x0488B21E",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=i8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~qW),G&qW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,null),V=d8.addPoints(Z,this.publicKey,!0),Q=s4(V);return new cG(n7,Q,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return P_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function JA(W,G){let X=JSON.parse(W),Y=fG(G),Z=f1(C8(X,"ethaddr:string!")),V=GC(C8(X,"encseed:string!"));s(V&&V.length%16===0,"invalid encseed","json",W);let Q=R0(L5(Y,Y,2000,32,"sha256")).slice(0,16),J=V.slice(0,16),U=V.slice(16),N=new $J(Q,J),q=WC(R0(N.decrypt(U))),A="";for(let H=0;H<q.length;H++)A+=String.fromCharCode(q[H]);return{address:Z,privateKey:t4(A)}}function R_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class X6 extends bG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new d8(W):W;super(X,G)}connect(W){return new X6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await xJ(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return SJ(G,W)}static#W(W){if(s(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=W6.fromEntropy(W.mnemonic.entropy),Y=Q9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new X6(W.privateKey);return s(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(ZA(W))Y=await YC(W,G,X);else if(QA(W)){if(X)X(0),await R_(0);if(Y=JA(W,G),X)X(1),await R_(0)}return X6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(ZA(W))X=XC(W,G);else if(QA(W))X=JA(W,G);else s(!1,"invalid JSON wallet","json","[ REDACTED ]");return X6.#W(X)}static createRandom(W){let G=Q9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=Q9.fromPhrase(W);if(G)return X.connect(G);return X}}function L_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?Q9.fromPhrase(X):new X6(X),Z=f1(Y.address),V=new Set([...G,Z].map((q)=>{try{return f1(q)}catch{return null}}).filter(Boolean)),Q=(q)=>{let A=(H)=>H&&typeof H==="object"&&!Array.isArray(H)?Object.keys(H).sort().reduce((I,w)=>(I[w]=A(H[w]),I),{}):Array.isArray(H)?H.map(A):H;return JSON.stringify(A(q))};return{address:Z,superAdmins:V,canonicalize:Q,signOps:async(q)=>{let A=[];for(let H of q){if(H?.signature&&H?.originEthAddress&&H?.originUser){A.push(H);continue}let I={...H,originUser:Z},w=await Y.signMessage(P9(Q(I)));A.push({...H,originUser:Z,originEthAddress:Z,signature:w})}return A},verifyOp:(q)=>{if(!q?.signature||!q?.originEthAddress||!q?.originUser)return{ok:!1,reason:"missing-fields"};let A;try{if(A=f1(q.originEthAddress),f1(q.originUser)!==A)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:H,originEthAddress:I,...w}=q;try{let C=rH(P9(Q(w)),H);if(f1(C)!==A)return{ok:!1,reason:"invalid-signature"};let{originUser:D,...x}=w;return{ok:!0,normalizedOriginEthAddress:A,payload:x}}catch(C){return{ok:!1,reason:"verify-error",error:C}}},isSuperAdmin:(q)=>{try{return V.has(f1(q))}catch{return!1}}}}var Nt=["guest","user","manager","admin","superadmin"];function B_(W,G,X,{intervalMs:Y=4000,settleMs:Z=15000,customRoles:V=null}={}){let Q=new Set([...Nt,...Object.keys(V??{})]),J=async(A,H,I=null)=>{let w=f1(A);if(!Q.has(H))throw Error(`Role '${H}' is not a defined role.`);let C=`user:${w}`,D=(await W.get(C)).result?.value||{};await W.put({...D,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},C)},U=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(C){console.error("\u274C GOVERNANCE: rule evaluation failed:",C.message);continue}for(let C of w){if(!C.id.startsWith("user:"))continue;if(G.isSuperAdmin(C.id.slice(5)))continue;if(H.offsetTimestamp&&(C.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(C.id,{role:I,current:C.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await J(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(C){console.error("\u274C GOVERNANCE: assignRole failed:",C.message)}}},N=null,q=setTimeout(()=>{N=setInterval(U,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${X.length} rule(s), every ${Y} ms.`)},Z);return{assignRole:J,stop:()=>{if(clearTimeout(q),N)clearInterval(N)}}}var QC=(W)=>W&&typeof W==="object"?structuredClone(W):W,VC=(W,G=16)=>{let X=null,Y=null;return(...Z)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...Z))}catch(V){Y.reject(V)}finally{Y=null}},G),Y.promise}},zt=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function It(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((Z)=>Y(Z.timestamp,X)>0):[...G],clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function wt(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let Z=W.nodes[G];W.nodes[G]={id:G,value:QC(X),edges:Z?.edges?[...Z.edges]:[],timestamp:Y}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let Z=W.nodes[G],V=W.nodes[X];if(Z&&V&&!Z.edges.includes(X))W.nodes[G]={...Z,edges:[...Z.edges,X],timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>N6.deflate(NZ(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=Y6(N6.inflate(X))}}}function jt(W,G){let X=At(W);if(X&&X!==".")Ht(X,{recursive:!0});let Y=new qt(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
251
+ `)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return s(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var ms="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",fs="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",iK=null;class e4 extends nK{constructor(){super("en",ms,fs)}static wordlist(){if(iK==null)iK=new e4;return iK}}function j_(W){return(1<<W)-1<<8-W&255}function cs(W){return(1<<W)-1&255}function rK(W,G){if(oY("NFKD"),G==null)G=e4.wordlist();let X=G.split(W);s(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),Z=0;for(let N=0;N<X.length;N++){let q=G.getWordIndex(X[N].normalize("NFKD"));s(q>=0,`invalid mnemonic word at index ${N}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(q&1<<10-A)Y[Z>>3]|=1<<7-Z%8;Z++}}let V=32*X.length/3,Q=X.length/3,J=j_(Q),U=R0(L9(Y.slice(0,V/8)))[0]&J;return s(U===(Y[Y.length-1]&J),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,V/8))}function aK(W,G){if(s(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=e4.wordlist();let X=[0],Y=11;for(let Q=0;Q<W.length;Q++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[Q],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[Q]>>8-Y,X.push(W[Q]&cs(8-Y)),Y+=3;let Z=W.length/4,V=parseInt(L9(W).substring(2,4),16)&j_(Z);return X[X.length-1]<<=Z,X[X.length-1]|=V>>8-Z,G.join(X.map((Q)=>G.getWord(Q)))}var sK={};class W6{phrase;password;wordlist;entropy;constructor(W,G,X,Y,Z){if(Y==null)Y="";if(Z==null)Z=e4.wordlist();l4(W,sK,"Mnemonic"),Q8(this,{phrase:X,password:Y,wordlist:Z,entropy:G})}computeSeed(){let W=P9("mnemonic"+this.password,"NFKD");return L5(P9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=rK(W,X);return W=aK(R0(Y),X),new W6(sK,Y,W,G,X)}static fromEntropy(W,G,X){let Y=R0(W,"entropy"),Z=aK(Y,X);return new W6(sK,C0(Y),Z,G,X)}static entropyToPhrase(W,G){let X=R0(W,"entropy");return aK(X,G)}static phraseToEntropy(W,G){return rK(W,G)}static isValidMnemonic(W,G){try{return rK(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var V9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},tK=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},WA,F5,o7,ps={16:10,24:12,32:14},ls=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],$5=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],eH=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ds=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],os=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],ns=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],is=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],rs=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],as=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],ss=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],ts=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],es=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],Wt=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Gt=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Xt=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function eK(W){let G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class GA{get key(){return V9(this,WA,"f").slice()}constructor(W){if(WA.set(this,void 0),F5.set(this,void 0),o7.set(this,void 0),!(this instanceof GA))throw Error("AES must be instanitated with `new`");tK(this,WA,new Uint8Array(W),"f");let G=ps[this.key.length];if(G==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");tK(this,o7,[],"f"),tK(this,F5,[],"f");for(let N=0;N<=G;N++)V9(this,o7,"f").push([0,0,0,0]),V9(this,F5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,Z=eK(this.key),V;for(let N=0;N<Y;N++)V=N>>2,V9(this,o7,"f")[V][N%4]=Z[N],V9(this,F5,"f")[G-V][N%4]=Z[N];let Q=0,J=Y,U;while(J<X){if(U=Z[Y-1],Z[0]^=$5[U>>16&255]<<24^$5[U>>8&255]<<16^$5[U&255]<<8^$5[U>>24&255]^ls[Q]<<24,Q+=1,Y!=8)for(let H=1;H<Y;H++)Z[H]^=Z[H-1];else{for(let H=1;H<Y/2;H++)Z[H]^=Z[H-1];U=Z[Y/2-1],Z[Y/2]^=$5[U&255]^$5[U>>8&255]<<8^$5[U>>16&255]<<16^$5[U>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)Z[H]^=Z[H-1]}let N=0,q,A;while(N<Y&&J<X)q=J>>2,A=J%4,V9(this,o7,"f")[q][A]=Z[N],V9(this,F5,"f")[G-q][A]=Z[N++],J++}for(let N=1;N<G;N++)for(let q=0;q<4;q++)U=V9(this,F5,"f")[N][q],V9(this,F5,"f")[N][q]=es[U>>24&255]^Wt[U>>16&255]^Gt[U>>8&255]^Xt[U&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=V9(this,o7,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=V9(this,o7,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=ds[Y[J]>>24&255]^os[Y[(J+1)%4]>>16&255]^ns[Y[(J+2)%4]>>8&255]^is[Y[(J+3)%4]&255]^V9(this,o7,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=V9(this,o7,"f")[G][Q],Z[4*Q]=($5[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=($5[Y[(Q+1)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=($5[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=($5[Y[(Q+3)%4]&255]^V)&255;return Z}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let G=V9(this,F5,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=V9(this,F5,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=rs[Y[J]>>24&255]^as[Y[(J+3)%4]>>16&255]^ss[Y[(J+2)%4]>>8&255]^ts[Y[(J+1)%4]&255]^V9(this,F5,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=V9(this,F5,"f")[G][Q],Z[4*Q]=(eH[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=(eH[Y[(Q+3)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=(eH[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=(eH[Y[(Q+1)%4]&255]^V)&255;return Z}}WA=new WeakMap,F5=new WeakMap,o7=new WeakMap;class BJ{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new GA(G)},name:{enumerable:!0,value:W}})}}var XA=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},YZ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},EJ,G6;class $J extends BJ{constructor(W,G){super("ECC",W,$J);if(EJ.set(this,void 0),G6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");XA(this,EJ,new Uint8Array(G),"f")}else XA(this,EJ,new Uint8Array(16),"f");XA(this,G6,this.iv,"f")}get iv(){return new Uint8Array(YZ(this,EJ,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)YZ(this,G6,"f")[Y]^=W[X+Y];XA(this,G6,this.aes.encrypt(YZ(this,G6,"f")),"f"),G.set(YZ(this,G6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let Z=0;Z<16;Z++)G[X+Z]=Y[Z]^YZ(this,G6,"f")[Z],YZ(this,G6,"f")[Z]=W[X+Z]}return G}}EJ=new WeakMap,G6=new WeakMap;var ZZ=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},S5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},FJ,mG,x5;class NW extends BJ{constructor(W,G){super("CTR",W,NW);if(FJ.set(this,void 0),mG.set(this,void 0),x5.set(this,void 0),ZZ(this,x5,new Uint8Array(16),"f"),S5(this,x5,"f").fill(0),ZZ(this,FJ,S5(this,x5,"f"),"f"),ZZ(this,mG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}get counter(){return new Uint8Array(S5(this,x5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let G=15;G>=0;--G)S5(this,x5,"f")[G]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");S5(this,x5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(S5(this,x5,"f")[W]===255)S5(this,x5,"f")[W]=0;else{S5(this,x5,"f")[W]++;break}}encrypt(W){var G,X;let Y=new Uint8Array(W);for(let Z=0;Z<Y.length;Z++){if(S5(this,mG,"f")===16)ZZ(this,FJ,this.aes.encrypt(S5(this,x5,"f")),"f"),ZZ(this,mG,0,"f"),this.increment();Y[Z]^=S5(this,FJ,"f")[ZZ(this,mG,(X=S5(this,mG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}FJ=new WeakMap,mG=new WeakMap,x5=new WeakMap;function WC(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function GC(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return Y7(W)}function VZ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function fG(W){if(typeof W==="string")return P9(W,"NFKC");return Y7(W)}function C8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);s(X!=null,"invalid path","path",G);let Y=X[1],Z=X[3],V=X[4]==="!",Q=W;for(let J of Y.toLowerCase().split(".")){if(Array.isArray(Q)){if(!J.match(/^[0-9]+$/))break;Q=Q[parseInt(J)]}else if(typeof Q==="object"){let U=null;for(let N in Q)if(N.toLowerCase()===J){U=Q[N];break}Q=U}else Q=null;if(Q==null)break}if(s(!V||Q!=null,"missing required value","path",Y),Z&&Q!=null){if(Z==="int"){if(typeof Q==="string"&&Q.match(/^-?[0-9]+$/))return parseInt(Q);else if(Number.isSafeInteger(Q))return Q}if(Z==="number"){if(typeof Q==="string"&&Q.match(/^-?[0-9.]*$/))return parseFloat(Q)}if(Z==="data"){if(typeof Q==="string")return GC(Q)}if(Z==="array"&&Array.isArray(Q))return Q;if(Z===typeof Q)return Q;s(!1,`wrong type found for ${Z} `,"path",Y)}return Q}var K_="m/44'/60'/0'/0/0";function ZA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function Yt(W,G,X){if(C8(W,"crypto.cipher:string")==="aes-128-ctr"){let Z=C8(W,"crypto.cipherparams.iv:data!"),V=new NW(G,Z);return C0(V.decrypt(X))}t0(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function YA(W,G){let X=R0(G),Y=C8(W,"crypto.ciphertext:data!"),Z=C0(X8(s1([X.slice(16,32),Y]))).substring(2);s(Z===C8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let V=Yt(W,X.slice(0,16),Y),Q=s4(V);if(W.address){let N=W.address.toLowerCase();if(!N.startsWith("0x"))N="0x"+N;s(f1(N)===Q,"keystore address/privateKey mismatch","address",W.address)}let J={address:Q,privateKey:V};if(C8(W,"x-ethers.version:string")==="0.1"){let N=X.slice(32,64),q=C8(W,"x-ethers.mnemonicCiphertext:data!"),A=C8(W,"x-ethers.mnemonicCounter:data!"),H=new NW(N,A);J.mnemonic={path:C8(W,"x-ethers.path:string")||K_,locale:C8(W,"x-ethers.locale:string")||"en",entropy:C0(R0(H.decrypt(q)))}}return J}function C_(W){let G=C8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=C8(W,"crypto.kdfparams.salt:data!"),Y=C8(W,"crypto.kdfparams.n:int!"),Z=C8(W,"crypto.kdfparams.r:int!"),V=C8(W,"crypto.kdfparams.p:int!");s(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),s(Z>0&&V>0,"invalid kdf","kdf",G);let Q=C8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dflen",Q),{name:"scrypt",salt:X,N:Y,r:Z,p:V,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=C8(W,"crypto.kdfparams.salt:data!"),Y=C8(W,"crypto.kdfparams.prf:string!"),Z=Y.split("-").pop();s(Z==="sha256"||Z==="sha512","invalid kdf.pdf","kdf.pdf",Y);let V=C8(W,"crypto.kdfparams.c:int!"),Q=C8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dklen",Q),{name:"pbkdf2",salt:X,count:V,dkLen:Q,algorithm:Z}}}s(!1,"unsupported key-derivation function","kdf",G)}function XC(W,G){let X=JSON.parse(W),Y=fG(G),Z=C_(X);if(Z.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=Z,C=L5(Y,A,H,I,w);return YA(X,C)}t0(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:Q,r:J,p:U,dkLen:N}=Z,q=QW(Y,V,Q,J,U,N);return YA(X,q)}function O_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function YC(W,G,X){let Y=JSON.parse(W),Z=fG(G),V=C_(Y);if(V.name==="pbkdf2"){if(X)X(0),await O_(0);let{salt:H,count:I,dkLen:w,algorithm:C}=V,D=L5(Z,H,I,w,C);if(X)X(1),await O_(0);return YA(Y,D)}t0(V.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:V});let{salt:Q,N:J,r:U,p:N,dkLen:q}=V,A=await VW(Z,Q,J,U,N,q,X);return YA(Y,A)}function D_(W){let G=W.salt!=null?R0(W.salt,"options.salt"):B5(32),X=131072,Y=8,Z=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)Z=W.scrypt.p}return s(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),s(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),s(typeof Z==="number"&&Z>0&&Number.isSafeInteger(Z),"invalid scrypt p parameter","options.p",Z),{name:"scrypt",dkLen:32,salt:G,N:X,r:Y,p:Z}}function M_(W,G,X,Y){let Z=R0(X.privateKey,"privateKey"),V=Y.iv!=null?R0(Y.iv,"options.iv"):B5(16);s(V.length===16,"invalid options.iv length","options.iv",Y.iv);let Q=Y.uuid!=null?R0(Y.uuid,"options.uuid"):B5(16);s(Q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let J=W.slice(0,16),U=W.slice(16,32),N=new NW(J,V),q=R0(N.encrypt(Z)),A=X8(s1([U,q])),H={address:X.address.substring(2).toLowerCase(),id:$H(Q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(V).substring(2)},ciphertext:C0(q).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${CH}`,w=X.mnemonic.path||K_,C=X.mnemonic.locale||"en",D=W.slice(32,64),x=R0(X.mnemonic.entropy,"account.mnemonic.entropy"),h=B5(16),p=new NW(D,h),u=R0(p.encrypt(x)),n=new Date,l="UTC--"+(n.getUTCFullYear()+"-"+VZ(n.getUTCMonth()+1,2)+"-"+VZ(n.getUTCDate(),2)+"T"+VZ(n.getUTCHours(),2)+"-"+VZ(n.getUTCMinutes(),2)+"-"+VZ(n.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:l,path:w,locale:C,mnemonicCounter:C0(h).substring(2),mnemonicCiphertext:C0(u).substring(2),version:"0.1"}}return JSON.stringify(H)}function SJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=QW(Y,Z.salt,Z.N,Z.r,Z.p,64);return M_(R0(V),Z,W,X)}async function xJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=await VW(Y,Z.salt,Z.N,Z.r,Z.p,64,X.progressCallback);return M_(R0(V),Z,W,X)}var kJ="m/44'/60'/0'/0/0",Zt=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),qW=2147483648,Vt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Qt="0123456789abcdef";function VA(W,G){let X="";while(W)X=Qt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZC(W){let G=R0(W),X=nY(L9(L9(G)),0,4),Y=s1([G,X]);return BH(Y)}var n7={};function T_(W,G,X,Y){let Z=new Uint8Array(37);if(W&qW)t0(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),Z.set(R0(Y),1);else Z.set(R0(X));for(let Q=24;Q>=0;Q-=8)Z[33+(Q>>3)]=W>>24-Q&255;let V=R0(GW("sha512",G,Z));return{IL:V.slice(0,32),IR:V.slice(32)}}function P_(W,G){let X=G.split("/");if(s(X.length>0,"invalid path","path",G),X[0]==="m")s(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",G),X.shift();let Y=W;for(let Z=0;Z<X.length;Z++){let V=X[Z];if(V.match(/^[0-9]+'$/)){let Q=parseInt(V.substring(0,V.length-1));s(Q<qW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(qW+Q)}else if(V.match(/^[0-9]+$/)){let Q=parseInt(V);s(Q<qW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(Q)}else s(!1,"invalid path component",`path[${Z}]`,V)}return Y}class Q9 extends bG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);l4(W,n7,"HDNodeWallet"),Q8(this,{publicKey:G.compressedPublicKey});let N=nY(XW(L9(this.publicKey)),0,4);Q8(this,{parentFingerprint:X,fingerprint:N,chainCode:Y,path:Z,index:V,depth:Q}),Q8(this,{mnemonic:J})}connect(W){return new Q9(n7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await xJ(this.#W(),W,{progressCallback:G})}encryptSync(W){return SJ(this.#W(),W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(s1(["0x0488ADE4",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,s1(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new cG(n7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=i8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~qW),G&qW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,this.privateKey),V=new d8(Z7((rY(Z)+BigInt(this.privateKey))%Vt,32));return new Q9(n7,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return P_(this,W)}static#G(W,G){s(l7(W),"invalid seed","seed","[REDACTED]");let X=R0(W,"seed");s(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=R0(GW("sha512",Zt,X)),Z=new d8(C0(Y.slice(0,32)));return new Q9(n7,Z,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=J8(EH(W));s(G.length===82||ZC(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),Z=parseInt(C0(G.slice(9,13)).substring(2),16),V=C0(G.slice(13,45)),Q=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let J=C0(Q);return new cG(n7,s4(J),J,Y,V,null,Z,X,null)}case"0x0488ade4":case"0x04358394 ":if(Q[0]!==0)break;return new Q9(n7,new d8(Q.slice(1)),Y,V,null,Z,X,null,null)}s(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=kJ;if(X==null)X=e4.wordlist();let Y=W6.fromEntropy(B5(16),W,X);return Q9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=kJ;return Q9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=kJ;if(Y==null)Y=e4.wordlist();let Z=W6.fromPhrase(W,G,Y);return Q9.#G(Z.computeSeed(),Z).derivePath(X)}static fromSeed(W){return Q9.#G(W,null)}}class cG extends LJ{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);l4(W,n7,"HDNodeVoidWallet"),Q8(this,{publicKey:X});let N=nY(XW(L9(X)),0,4);Q8(this,{publicKey:X,fingerprint:N,parentFingerprint:Y,chainCode:Z,path:V,index:Q,depth:J})}connect(W){return new cG(n7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(s1(["0x0488B21E",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=i8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~qW),G&qW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,null),V=d8.addPoints(Z,this.publicKey,!0),Q=s4(V);return new cG(n7,Q,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return P_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function JA(W,G){let X=JSON.parse(W),Y=fG(G),Z=f1(C8(X,"ethaddr:string!")),V=GC(C8(X,"encseed:string!"));s(V&&V.length%16===0,"invalid encseed","json",W);let Q=R0(L5(Y,Y,2000,32,"sha256")).slice(0,16),J=V.slice(0,16),U=V.slice(16),N=new $J(Q,J),q=WC(R0(N.decrypt(U))),A="";for(let H=0;H<q.length;H++)A+=String.fromCharCode(q[H]);return{address:Z,privateKey:t4(A)}}function R_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class X6 extends bG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new d8(W):W;super(X,G)}connect(W){return new X6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await xJ(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return SJ(G,W)}static#W(W){if(s(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=W6.fromEntropy(W.mnemonic.entropy),Y=Q9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new X6(W.privateKey);return s(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(ZA(W))Y=await YC(W,G,X);else if(QA(W)){if(X)X(0),await R_(0);if(Y=JA(W,G),X)X(1),await R_(0)}return X6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(ZA(W))X=XC(W,G);else if(QA(W))X=JA(W,G);else s(!1,"invalid JSON wallet","json","[ REDACTED ]");return X6.#W(X)}static createRandom(W){let G=Q9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=Q9.fromPhrase(W);if(G)return X.connect(G);return X}}function L_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?Q9.fromPhrase(X):new X6(X),Z=f1(Y.address),V=new Set([...G,Z].map((q)=>{try{return f1(q)}catch{return null}}).filter(Boolean)),Q=(q)=>{let A=(H)=>H&&typeof H==="object"&&!Array.isArray(H)?Object.keys(H).sort().reduce((I,w)=>(I[w]=A(H[w]),I),{}):Array.isArray(H)?H.map(A):H;return JSON.stringify(A(q))};return{address:Z,superAdmins:V,canonicalize:Q,signOps:async(q)=>{let A=[];for(let H of q){if(H?.signature&&H?.originEthAddress&&H?.originUser){A.push(H);continue}let I={...H,originUser:Z},w=await Y.signMessage(P9(Q(I)));A.push({...H,originUser:Z,originEthAddress:Z,signature:w})}return A},verifyOp:(q)=>{if(!q?.signature||!q?.originEthAddress||!q?.originUser)return{ok:!1,reason:"missing-fields"};let A;try{if(A=f1(q.originEthAddress),f1(q.originUser)!==A)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:H,originEthAddress:I,...w}=q;try{let C=rH(P9(Q(w)),H);if(f1(C)!==A)return{ok:!1,reason:"invalid-signature"};let{originUser:D,...x}=w;return{ok:!0,normalizedOriginEthAddress:A,payload:x}}catch(C){return{ok:!1,reason:"verify-error",error:C}}},isSuperAdmin:(q)=>{try{return V.has(f1(q))}catch{return!1}}}}var Nt=["guest","user","manager","admin","superadmin"];function B_(W,G,X,{intervalMs:Y=4000,settleMs:Z=15000,customRoles:V=null}={}){let Q=new Set([...Nt,...Object.keys(V??{})]),J=async(A,H,I=null)=>{let w=f1(A);if(!Q.has(H))throw Error(`Role '${H}' is not a defined role.`);let C=`user:${w}`,D=(await W.get(C)).result?.value||{};await W.put({...D,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},C)},U=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(C){console.error("\u274C GOVERNANCE: rule evaluation failed:",C.message);continue}for(let C of w){if(!C.id.startsWith("user:"))continue;if(G.isSuperAdmin(C.id.slice(5)))continue;if(H.offsetTimestamp&&(C.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(C.id,{role:I,current:C.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await J(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(C){console.error("\u274C GOVERNANCE: assignRole failed:",C.message)}}},N=null,q=setTimeout(()=>{N=setInterval(U,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${X.length} rule(s), every ${Y} ms.`)},Z);return{assignRole:J,stop:()=>{if(clearTimeout(q),N)clearInterval(N)}}}var QC=(W)=>W&&typeof W==="object"?structuredClone(W):W,VC=(W,G=16)=>{let X=null,Y=null;return(...Z)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...Z))}catch(V){Y.reject(V)}finally{Y=null}},G),Y.promise}},zt=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function It(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((Z)=>Y(Z.timestamp,X)>0):[...G],clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function wt(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let Z=W.nodes[G];W.nodes[G]={id:G,value:QC(X),edges:Z?.edges?[...Z.edges]:[],timestamp:Y}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let Z=W.nodes[G],V=W.nodes[X];if(Z&&V&&!Z.edges.includes(X))W.nodes[G]={...Z,edges:[...Z.edges,X],timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>N6.deflate(NZ(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=Y6(N6.inflate(X))}}}function jt(W,G){let X=At(W);if(X&&X!==".")Ht(X,{recursive:!0});let Y=new qt(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
252
252
  CREATE TABLE IF NOT EXISTS kv (
253
253
  key TEXT PRIMARY KEY,
254
254
  value BLOB NOT NULL
255
255
  )
256
- `);let Z=Y.prepare("SELECT value FROM kv WHERE key = ?"),V=Y.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)"),Q=Y.prepare("DELETE FROM kv WHERE key = ?"),J=G;return{getBlob(U){let N=Z.get(`${J}:${U}`);return N?new Uint8Array(N.value):null},getText(U){let N=Z.get(`${J}:${U}`);return N?Buffer.from(N.value).toString("utf8"):null},putBlob(U,N){V.run(`${J}:${U}`,Buffer.from(N))},putText(U,N){V.run(`${J}:${U}`,Buffer.from(N,"utf8"))},del(U){Q.run(`${J}:${U}`)},close(){Y.close()}}}async function Ot(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",G={},X=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:Z=200,oplogSize:V=1000,rtcPolyfill:Q=null,rtc:J=!0,room:U=null,sm:N=null,relay:q=null}=G,A=J?.constructor===Object?J:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((J0)=>J0.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((J0)=>J0.trim()).filter(Boolean):null),w=q??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),C=null;if(w)C=Ox(q?.constructor===Object?q:{}),I=[...I??[],`ws://127.0.0.1:${C.port}`];let D=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),x=U??process.argv.includes("--room"),h=N?.constructor===Object?N:null,l=h?.key??process.env.GDB_SM_KEY??null,u=h?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((J0)=>J0.trim()).filter(Boolean),n=null;if(l)n=L_(l,u),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${n.address}`);else if(h)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let c=wt(),p=vD(),W0=It(V),m=jt(X,W),Y0=[],U0=[],y=[],o=null,B=null,R=null,_={},S=()=>{let J0=m.getBlob("graph");if(J0?.byteLength)c.deserialize(J0),console.info(`\u2705 Graph loaded: ${c.getAllNodes().length} nodes`)},v=()=>{m.putBlob("graph",c.serialize())},P=()=>{let J0=m.getText("timestamp");if(J0){let B0=JSON.parse(J0);if(B0?.physical&&B0?.logical)o=B0,p.update(o)}},E=()=>{m.putText("timestamp",JSON.stringify(o??null))},b=()=>{let J0=m.getBlob("oplog");if(J0?.byteLength){let B0=Y6(N6.inflate(J0));if(Array.isArray(B0))W0.setEntries(B0),console.info(`\u2705 Oplog loaded: ${B0.length} ops`)}},k=()=>{m.putBlob("oplog",N6.deflate(NZ(W0.entries())))},f=(J0)=>{if(!J0)return;if(!o||p.compare(J0,o)>0)o=J0,E()},e=VC(()=>v(),Z),N0=VC(()=>k(),Z),Q0=()=>{let J0={...c.nodes};Y0.forEach((B0)=>B0(J0))},$0=zt(()=>Q0()),D0=async(J0)=>{if(!J0?.length||!B)return!1;try{return await B.send(J0),!0}catch(B0){return console.error("\u274C safeSend failed:",B0?.message),!1}},x0=async(J0)=>{let B0=await D0(J0);return setTimeout(()=>D0(J0),2500),B0},q1=async(J0)=>{let B0=!1,h0=null,Y1=(E0)=>{if(E0&&(!h0||p.compare(E0,h0)>0))h0=E0},w8=(E0)=>{try{if(E0 instanceof Uint8Array||E0 instanceof ArrayBuffer){let n0=Y6(E0);return Array.isArray(n0)?n0:[n0]}if(Array.isArray(E0))return E0;if(E0&&typeof E0==="object")return Y6(N6.inflate(new Uint8Array(Object.values(E0))))}catch(n0){console.error("\u274C decode failed",n0)}return null},x1={upsert(E0){let{resolved:n0,value:O1,timestamp:$1}=gD(c.get(E0.id),E0,p);if(!n0)return;c.upsert(E0.id,O1,$1),p.update($1),W0.add({type:"upsert",id:E0.id,timestamp:$1}),B0=!0,Y1($1)},remove(E0){let n0=c.get(E0.id);if(!n0||p.compare(n0.timestamp,E0.timestamp)>=0)return;delete c.nodes[E0.id],Object.values(c.nodes).forEach((O1)=>{O1.edges=(O1.edges??[]).filter(($1)=>$1!==E0.id)}),p.update(E0.timestamp),W0.add({type:"remove",id:E0.id,timestamp:E0.timestamp}),B0=!0,Y1(E0.timestamp)},link(E0){let n0=c.get(E0.sourceId),O1=c.get(E0.targetId);if(!n0||!O1||p.compare(n0.timestamp,E0.timestamp)>=0)return;c.link(E0.sourceId,E0.targetId,E0.timestamp),p.update(E0.timestamp),W0.add({type:"link",...E0}),B0=!0,Y1(E0.timestamp)},async sync({timestamp:E0}){let n0=W0.getOldest();if(E0==null||n0&&p.compare(E0,n0.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",c.getAllNodes().length,"nodes"),await x0([{type:"fullStateSync",graphData:c.serialize(),removals:W0.getDelta(null).filter((H8)=>H8.type==="remove"),timestamp:o}]);return}let $1=W0.getDelta(E0,p.compare);if(!$1.length)return;let U8=$1.map((H8)=>H8.type==="upsert"?{...H8,value:c.get(H8.id)?.value}:H8);console.info("\uD83D\uDE80 Sending DELTA sync:",U8.length,"ops"),await x0([{type:"deltaSync",operations:N6.deflate(NZ(U8)),timestamp:o}])},deltaSync({operations:E0}){let n0=w8(E0);if(!Array.isArray(n0))return;console.info("\uD83D\uDCE5 deltaSync:",n0.length,"ops");for(let O1 of n0)if(O1&&x1[O1.type])x1[O1.type](O1)},async fullStateSync({graphData:E0,removals:n0,timestamp:O1}){let $1=E0;if(!($1 instanceof Uint8Array))$1=$1&&typeof $1==="object"?new Uint8Array(Object.values($1)):null;if(!$1)return;let U8=Y6(N6.inflate($1)),H8=new Map;for(let K1 of W0.getDelta(null))if(K1.type==="remove")H8.set(K1.id,K1.timestamp);for(let[K1,j8]of Object.entries(U8)){let k5=c.nodes[K1]?.timestamp??H8.get(K1);if(!k5||p.compare(k5,j8.timestamp)<0)c.nodes[K1]=j8,W0.add({type:"upsert",id:K1,timestamp:j8.timestamp})}for(let K1 of n0??[]){let j8=c.nodes[K1.id];if(j8&&p.compare(j8.timestamp,K1.timestamp)<0)delete c.nodes[K1.id],W0.add({type:"remove",id:K1.id,timestamp:K1.timestamp})}let A8=new Set(Object.keys(U8));if(Object.keys(c.nodes).some((K1)=>!A8.has(K1)))await x0([{type:"fullStateSync",graphData:c.serialize(),removals:W0.getDelta(null).filter((K1)=>K1.type==="remove"),timestamp:o}]);if(B0=!0,console.info("\u2705 fullStateSync merged:",c.getAllNodes().length,"nodes"),O1)Y1(O1),p.update(O1)}};for(let E0 of J0)if(x1[E0.type])await x1[E0.type](E0);if(h0&&(!o||p.compare(h0,o)>0))f(h0);if(B0)await Promise.all([e(),N0()]),$0()},U1=VC(async()=>{let J0=y.splice(0);return J0.length?await D0(J0):!1},16);Object.assign(_,{use(J0){if(typeof J0==="function")U0.push(J0)},async put(J0,B0){let h0=p.now();f(h0),B0??=crypto.randomUUID(),c.upsert(B0,J0,h0),W0.add({type:"upsert",id:B0,timestamp:h0}),e(),N0();try{y.push({type:"upsert",id:B0,value:J0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}return B0},async get(J0){if(typeof J0!=="string")return{result:null};let B0=c.get(J0);if(!B0)return{result:null};return{result:{...B0,value:QC(B0.value)}}},map(...J0){let h0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},Y1=null,w8=!1;J0.forEach((n0)=>typeof n0==="function"?Y1=n0:n0&&typeof n0==="object"&&(w8=w8||("realtime"in n0),Object.assign(h0,n0))),Y1&&!w8&&(h0.realtime=!0);let x1=lA(c.nodes,h0),E0=null;if(Y1){if(x1.forEach((n0)=>Y1({id:n0.id,value:n0.value,edges:n0.edges,timestamp:n0.timestamp,action:"initial"})),h0.realtime){let n0=(O1)=>`${O1.id}:${O1.timestamp?.physical??0}:${O1.timestamp?.logical??0}:${(O1.edges??[]).join(",")}`;E0=(O1)=>{let $1=lA(O1,h0),U8=new Map(x1.map((A8)=>[A8.id,A8])),H8=new Map($1.map((A8)=>[A8.id,A8]));if($1.length!==x1.length||!$1.map(n0).every((A8,K1)=>A8===x1.map(n0)[K1])){for(let[A8,K1]of H8){let j8=U8.get(A8);if(!j8)Y1({id:A8,value:K1.value,edges:K1.edges,timestamp:K1.timestamp,action:"added"});else if(n0(K1)!==n0(j8))Y1({id:A8,value:K1.value,edges:K1.edges,timestamp:K1.timestamp,action:"updated"})}for(let[A8,K1]of U8)if(!H8.has(A8))Y1({id:A8,value:null,edges:K1.edges,timestamp:K1.timestamp,action:"removed"});x1=$1}},Y0.push(E0)}}return{results:x1,...h0.realtime&&Y1&&E0&&{unsubscribe:()=>{let n0=Y0.indexOf(E0);if(n0>=0)Y0.splice(n0,1)}}}},async link(J0,B0){if(!c.nodes[J0]||!c.nodes[B0])return;let h0=p.now();c.link(J0,B0,h0),W0.add({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),e(),N0(),f(h0);try{y.push({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async remove(J0){let B0=c.get(J0);if(!B0)return;let h0=p.now();delete c.nodes[J0],Object.values(c.nodes).forEach((Y1)=>{Y1.edges=(Y1.edges??[]).filter((w8)=>w8!==J0)}),W0.add({type:"remove",id:J0,timestamp:h0}),e(),N0(),f(h0);try{y.push({type:"remove",id:J0,value:B0.value,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async clear(){c.nodes={},W0.clear(),m.del("graph"),m.del("oplog"),Q0()},on(J0){return Y0.push(J0),()=>{let B0=Y0.indexOf(J0);if(B0>=0)Y0.splice(B0,1)}},close(){m.close()}});try{let J0=`graph-sync-room-${W}`,B0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...D&&{cells:!0},...D&&D!==!0&&{overlay:D},rtcPolyfill:Q??qK};if(R=Pz(B0,J0),B=R.channel("syncGraph"),console.info(`\u26A1 Transport: ${D?"cellular mesh":"full mesh"}`),n){let h0=B.send;B={...B,send:async(Y1)=>h0(await n.signOps(Y1))},_.sm=n}if(!D){let h0=!1;R.channel("c0").on("message",()=>{if(h0)return;h0=!0,console.warn("\u26A0\uFE0F This room speaks Cellular Mesh \u2014 restart with --cells / GDB_CELLS=1 (CLI) or rtc: { cells: true } (module), or browser writes will never reach this superpeer.")})}if(x)_.room=Pz(B0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");R.on("peer:join",(h0)=>{console.info("\u26A1 Peer connected:",h0);for(let Y1 of[0,1500,4000,9000])setTimeout(()=>D0([{type:"sync",timestamp:o}]),Y1)}),R.on("peer:leave",(h0)=>console.info("\u26A1 Peer disconnected:",h0)),B.on("message",async(h0)=>{let Y1;try{Y1=h0 instanceof Uint8Array||h0 instanceof ArrayBuffer?(()=>{let x1=Y6(h0);return Array.isArray(x1)?x1:[x1]})():Array.isArray(h0)?h0:[h0]}catch(x1){return console.error("\u274C decode failed:",x1)}let w8=new Map([...new Set(Y1.flatMap((x1)=>["id","sourceId","targetId"].map((E0)=>x1?.[E0]).filter(Boolean)))].map((x1)=>c.get(x1)?[x1,QC(c.get(x1))]:null).filter(Boolean));for(let x1 of U0)try{if(Y1=await x1(Y1,w8),!Y1?.length)return}catch(E0){console.error("\u274C Middleware error:",E0);return}await q1(Y1)}),console.info("\u2705 GenosRTC sync enabled")}catch(J0){console.warn("\u26A0\uFE0F GenosRTC not available:",J0.message)}if(S(),P(),b(),n){let J0=h?.governanceRules??null;if(!J0&&process.env.GDB_SM_RULES){let B0=process.env.GDB_SM_RULES.trim();try{if(B0.startsWith("["))J0=JSON.parse(B0);else if(B0.startsWith("{"))J0=[JSON.parse(B0)];else J0=(await import(new URL(B0,`file://${process.cwd()}/`).href)).default}catch(h0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",h0.message)}}if(Array.isArray(J0)&&J0.length)_.governance=B_(_,n,J0,{customRoles:h?.customRoles??null})}if(C)_.relay=C;return Object.defineProperties(_,{syncChannel:{get:()=>B},hybridClock:{get:()=>p},graph:{get:()=>({getAllNodes:()=>c.getAllNodes(),get:(J0)=>c.get(J0)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),_}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),G=(V)=>W.has(V?.code)||W.has(V?.errno),X=new Map,Y=null,Z=(V="UNKNOWN")=>{let Q=(X.get(V)??0)+1;if(X.set(V,Q),Q===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",V);Y??=setTimeout(()=>{Y=null;let J=[...X].filter(([,U])=>U>1).map(([U,N])=>`${U} \xD7${N}`).join(", ");if(J)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",J);X.clear()},60000)};process.on("uncaughtException",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal:",V?.message??V),process.exit(1)}),process.on("unhandledRejection",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal (rejection):",V?.message??V),process.exit(1)}),Ot().catch((V)=>{console.error("\u274C Fatal:",V.message),process.exit(1)})}export{Ot as gdbServer};
256
+ `);let Z=Y.prepare("SELECT value FROM kv WHERE key = ?"),V=Y.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)"),Q=Y.prepare("DELETE FROM kv WHERE key = ?"),J=G;return{getBlob(U){let N=Z.get(`${J}:${U}`);return N?new Uint8Array(N.value):null},getText(U){let N=Z.get(`${J}:${U}`);return N?Buffer.from(N.value).toString("utf8"):null},putBlob(U,N){V.run(`${J}:${U}`,Buffer.from(N))},putText(U,N){V.run(`${J}:${U}`,Buffer.from(N,"utf8"))},del(U){Q.run(`${J}:${U}`)},close(){Y.close()}}}async function Ot(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",G={},X=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:Z=200,oplogSize:V=1000,rtcPolyfill:Q=null,rtc:J=!0,room:U=null,sm:N=null,relay:q=null}=G,A=J?.constructor===Object?J:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((J0)=>J0.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((J0)=>J0.trim()).filter(Boolean):null),w=q??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),C=null;if(w)C=Ox(q?.constructor===Object?q:{}),I=[...I??[],`ws://127.0.0.1:${C.port}`];let D=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),x=U??process.argv.includes("--room"),h=N?.constructor===Object?N:null,p=h?.key??process.env.GDB_SM_KEY??null,u=h?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((J0)=>J0.trim()).filter(Boolean),n=null;if(p)n=L_(p,u),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${n.address}`);else if(h)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let c=wt(),l=vD(),W0=It(V),m=jt(X,W),Y0=[],U0=[],y=[],o=null,B=null,R=null,_={},S=()=>{let J0=m.getBlob("graph");if(J0?.byteLength)c.deserialize(J0),console.info(`\u2705 Graph loaded: ${c.getAllNodes().length} nodes`)},v=()=>{m.putBlob("graph",c.serialize())},P=()=>{let J0=m.getText("timestamp");if(J0){let B0=JSON.parse(J0);if(B0?.physical&&B0?.logical)o=B0,l.update(o)}},E=()=>{m.putText("timestamp",JSON.stringify(o??null))},b=()=>{let J0=m.getBlob("oplog");if(J0?.byteLength){let B0=Y6(N6.inflate(J0));if(Array.isArray(B0))W0.setEntries(B0),console.info(`\u2705 Oplog loaded: ${B0.length} ops`)}},k=()=>{m.putBlob("oplog",N6.deflate(NZ(W0.entries())))},f=(J0)=>{if(!J0)return;if(!o||l.compare(J0,o)>0)o=J0,E()},e=VC(()=>v(),Z),N0=VC(()=>k(),Z),Q0=()=>{let J0={...c.nodes};Y0.forEach((B0)=>B0(J0))},$0=zt(()=>Q0()),D0=async(J0)=>{if(!J0?.length||!B)return!1;try{return await B.send(J0),!0}catch(B0){return console.error("\u274C safeSend failed:",B0?.message),!1}},x0=async(J0)=>{let B0=await D0(J0);return setTimeout(()=>D0(J0),2500),B0},q1=async(J0)=>{let B0=!1,h0=null,Y1=(E0)=>{if(E0&&(!h0||l.compare(E0,h0)>0))h0=E0},w8=(E0)=>{try{if(E0 instanceof Uint8Array||E0 instanceof ArrayBuffer){let n0=Y6(E0);return Array.isArray(n0)?n0:[n0]}if(Array.isArray(E0))return E0;if(E0&&typeof E0==="object")return Y6(N6.inflate(new Uint8Array(Object.values(E0))))}catch(n0){console.error("\u274C decode failed",n0)}return null},x1={upsert(E0){let{resolved:n0,value:O1,timestamp:$1}=gD(c.get(E0.id),E0,l);if(!n0)return;c.upsert(E0.id,O1,$1),l.update($1),W0.add({type:"upsert",id:E0.id,timestamp:$1}),B0=!0,Y1($1)},remove(E0){let n0=c.get(E0.id);if(!n0||l.compare(n0.timestamp,E0.timestamp)>=0)return;delete c.nodes[E0.id],Object.values(c.nodes).forEach((O1)=>{O1.edges=(O1.edges??[]).filter(($1)=>$1!==E0.id)}),l.update(E0.timestamp),W0.add({type:"remove",id:E0.id,timestamp:E0.timestamp}),B0=!0,Y1(E0.timestamp)},link(E0){let n0=c.get(E0.sourceId),O1=c.get(E0.targetId);if(!n0||!O1||l.compare(n0.timestamp,E0.timestamp)>=0)return;c.link(E0.sourceId,E0.targetId,E0.timestamp),l.update(E0.timestamp),W0.add({type:"link",...E0}),B0=!0,Y1(E0.timestamp)},async sync({timestamp:E0}){let n0=W0.getOldest();if(E0==null||n0&&l.compare(E0,n0.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",c.getAllNodes().length,"nodes"),await x0([{type:"fullStateSync",graphData:c.serialize(),removals:W0.getDelta(null).filter((H8)=>H8.type==="remove"),timestamp:o}]);return}let $1=W0.getDelta(null);if(!$1.length)return;let U8=$1.map((H8)=>H8.type==="upsert"?{...H8,value:c.get(H8.id)?.value}:H8);console.info("\uD83D\uDE80 Sending DELTA sync:",U8.length,"ops"),await x0([{type:"deltaSync",operations:N6.deflate(NZ(U8)),timestamp:o}])},deltaSync({operations:E0}){let n0=w8(E0);if(!Array.isArray(n0))return;console.info("\uD83D\uDCE5 deltaSync:",n0.length,"ops");for(let O1 of n0)if(O1&&x1[O1.type])x1[O1.type](O1)},async fullStateSync({graphData:E0,removals:n0,timestamp:O1}){let $1=E0;if(!($1 instanceof Uint8Array))$1=$1&&typeof $1==="object"?new Uint8Array(Object.values($1)):null;if(!$1)return;let U8=Y6(N6.inflate($1)),H8=new Map;for(let K1 of W0.getDelta(null))if(K1.type==="remove")H8.set(K1.id,K1.timestamp);for(let[K1,j8]of Object.entries(U8)){let k5=c.nodes[K1]?.timestamp??H8.get(K1);if(!k5||l.compare(k5,j8.timestamp)<0)c.nodes[K1]=j8,W0.add({type:"upsert",id:K1,timestamp:j8.timestamp})}for(let K1 of n0??[]){let j8=c.nodes[K1.id];if(j8&&l.compare(j8.timestamp,K1.timestamp)<0)delete c.nodes[K1.id],W0.add({type:"remove",id:K1.id,timestamp:K1.timestamp})}let A8=new Set(Object.keys(U8));if(Object.keys(c.nodes).some((K1)=>!A8.has(K1)))await x0([{type:"fullStateSync",graphData:c.serialize(),removals:W0.getDelta(null).filter((K1)=>K1.type==="remove"),timestamp:o}]);if(B0=!0,console.info("\u2705 fullStateSync merged:",c.getAllNodes().length,"nodes"),O1)Y1(O1),l.update(O1)}};for(let E0 of J0)if(x1[E0.type])await x1[E0.type](E0);if(h0&&(!o||l.compare(h0,o)>0))f(h0);if(B0)await Promise.all([e(),N0()]),$0()},U1=VC(async()=>{let J0=y.splice(0);return J0.length?await D0(J0):!1},16);Object.assign(_,{use(J0){if(typeof J0==="function")U0.push(J0)},async put(J0,B0){let h0=l.now();f(h0),B0??=crypto.randomUUID(),c.upsert(B0,J0,h0),W0.add({type:"upsert",id:B0,timestamp:h0}),e(),N0();try{y.push({type:"upsert",id:B0,value:J0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}return B0},async get(J0){if(typeof J0!=="string")return{result:null};let B0=c.get(J0);if(!B0)return{result:null};return{result:{...B0,value:QC(B0.value)}}},map(...J0){let h0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},Y1=null,w8=!1;J0.forEach((n0)=>typeof n0==="function"?Y1=n0:n0&&typeof n0==="object"&&(w8=w8||("realtime"in n0),Object.assign(h0,n0))),Y1&&!w8&&(h0.realtime=!0);let x1=lA(c.nodes,h0),E0=null;if(Y1){if(x1.forEach((n0)=>Y1({id:n0.id,value:n0.value,edges:n0.edges,timestamp:n0.timestamp,action:"initial"})),h0.realtime){let n0=(O1)=>`${O1.id}:${O1.timestamp?.physical??0}:${O1.timestamp?.logical??0}:${(O1.edges??[]).join(",")}`;E0=(O1)=>{let $1=lA(O1,h0),U8=new Map(x1.map((A8)=>[A8.id,A8])),H8=new Map($1.map((A8)=>[A8.id,A8]));if($1.length!==x1.length||!$1.map(n0).every((A8,K1)=>A8===x1.map(n0)[K1])){for(let[A8,K1]of H8){let j8=U8.get(A8);if(!j8)Y1({id:A8,value:K1.value,edges:K1.edges,timestamp:K1.timestamp,action:"added"});else if(n0(K1)!==n0(j8))Y1({id:A8,value:K1.value,edges:K1.edges,timestamp:K1.timestamp,action:"updated"})}for(let[A8,K1]of U8)if(!H8.has(A8))Y1({id:A8,value:null,edges:K1.edges,timestamp:K1.timestamp,action:"removed"});x1=$1}},Y0.push(E0)}}return{results:x1,...h0.realtime&&Y1&&E0&&{unsubscribe:()=>{let n0=Y0.indexOf(E0);if(n0>=0)Y0.splice(n0,1)}}}},async link(J0,B0){if(!c.nodes[J0]||!c.nodes[B0])return;let h0=l.now();c.link(J0,B0,h0),W0.add({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),e(),N0(),f(h0);try{y.push({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async remove(J0){let B0=c.get(J0);if(!B0)return;let h0=l.now();delete c.nodes[J0],Object.values(c.nodes).forEach((Y1)=>{Y1.edges=(Y1.edges??[]).filter((w8)=>w8!==J0)}),W0.add({type:"remove",id:J0,timestamp:h0}),e(),N0(),f(h0);try{y.push({type:"remove",id:J0,value:B0.value,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async clear(){c.nodes={},W0.clear(),m.del("graph"),m.del("oplog"),Q0()},on(J0){return Y0.push(J0),()=>{let B0=Y0.indexOf(J0);if(B0>=0)Y0.splice(B0,1)}},close(){m.close()}});try{let J0=`graph-sync-room-${W}`,B0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...D&&{cells:!0},...D&&D!==!0&&{overlay:D},rtcPolyfill:Q??qK};if(R=Pz(B0,J0),B=R.channel("syncGraph"),console.info(`\u26A1 Transport: ${D?"cellular mesh":"full mesh"}`),n){let h0=B.send;B={...B,send:async(Y1)=>h0(await n.signOps(Y1))},_.sm=n}if(!D){let h0=!1;R.channel("c0").on("message",()=>{if(h0)return;h0=!0,console.warn("\u26A0\uFE0F This room speaks Cellular Mesh \u2014 restart with --cells / GDB_CELLS=1 (CLI) or rtc: { cells: true } (module), or browser writes will never reach this superpeer.")})}if(x)_.room=Pz(B0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");R.on("peer:join",(h0)=>{console.info("\u26A1 Peer connected:",h0);for(let Y1 of[0,1500,4000,9000])setTimeout(()=>D0([{type:"sync",timestamp:o}]),Y1)}),R.on("peer:leave",(h0)=>console.info("\u26A1 Peer disconnected:",h0)),B.on("message",async(h0)=>{let Y1;try{Y1=h0 instanceof Uint8Array||h0 instanceof ArrayBuffer?(()=>{let x1=Y6(h0);return Array.isArray(x1)?x1:[x1]})():Array.isArray(h0)?h0:[h0]}catch(x1){return console.error("\u274C decode failed:",x1)}let w8=new Map([...new Set(Y1.flatMap((x1)=>["id","sourceId","targetId"].map((E0)=>x1?.[E0]).filter(Boolean)))].map((x1)=>c.get(x1)?[x1,QC(c.get(x1))]:null).filter(Boolean));for(let x1 of U0)try{if(Y1=await x1(Y1,w8),!Y1?.length)return}catch(E0){console.error("\u274C Middleware error:",E0);return}await q1(Y1)}),console.info("\u2705 GenosRTC sync enabled")}catch(J0){console.warn("\u26A0\uFE0F GenosRTC not available:",J0.message)}if(S(),P(),b(),n){let J0=h?.governanceRules??null;if(!J0&&process.env.GDB_SM_RULES){let B0=process.env.GDB_SM_RULES.trim();try{if(B0.startsWith("["))J0=JSON.parse(B0);else if(B0.startsWith("{"))J0=[JSON.parse(B0)];else J0=(await import(new URL(B0,`file://${process.cwd()}/`).href)).default}catch(h0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",h0.message)}}if(Array.isArray(J0)&&J0.length)_.governance=B_(_,n,J0,{customRoles:h?.customRoles??null})}if(C)_.relay=C;return Object.defineProperties(_,{syncChannel:{get:()=>B},hybridClock:{get:()=>l},graph:{get:()=>({getAllNodes:()=>c.getAllNodes(),get:(J0)=>c.get(J0)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),_}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),G=(V)=>W.has(V?.code)||W.has(V?.errno),X=new Map,Y=null,Z=(V="UNKNOWN")=>{let Q=(X.get(V)??0)+1;if(X.set(V,Q),Q===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",V);Y??=setTimeout(()=>{Y=null;let J=[...X].filter(([,U])=>U>1).map(([U,N])=>`${U} \xD7${N}`).join(", ");if(J)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",J);X.clear()},60000)};process.on("uncaughtException",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal:",V?.message??V),process.exit(1)}),process.on("unhandledRejection",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal (rejection):",V?.message??V),process.exit(1)}),Ot().catch((V)=>{console.error("\u274C Fatal:",V.message),process.exit(1)})}export{Ot as gdbServer};