@urun-sh/core 0.1.41 → 0.1.43
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.
- package/dist/chunk-PWBUBR5C.mjs +7 -0
- package/dist/index.d.mts +24 -4
- package/dist/index.d.ts +24 -4
- package/dist/index.js +5 -134
- package/dist/index.mjs +1 -1
- package/dist/internal.d.mts +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.js +5 -134
- package/dist/internal.mjs +1 -1
- package/dist/{transport-CI8aVD2U.d.ts → transport-BWNRIdMX.d.mts} +4 -0
- package/dist/{transport-CI8aVD2U.d.mts → transport-BWNRIdMX.d.ts} +4 -0
- package/package.json +1 -1
- package/dist/chunk-4O3YOYT6.mjs +0 -7
- package/dist/chunk-FNR7JDXN.mjs +0 -1
- package/dist/lib-RR67JYGM.mjs +0 -130
package/dist/internal.js
CHANGED
|
@@ -1,136 +1,7 @@
|
|
|
1
|
-
"use strict";var kB=Object.create;var Gp=Object.defineProperty;var PB=Object.getOwnPropertyDescriptor;var BB=Object.getOwnPropertyNames;var NB=Object.getPrototypeOf,OB=Object.prototype.hasOwnProperty;var T=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(s){throw t=[s],s}};var ee=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},mf=(r,e)=>{for(var t in e)Gp(r,t,{get:e[t],enumerable:!0})},sE=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of BB(e))!OB.call(r,n)&&n!==t&&Gp(r,n,{get:()=>e[n],enumerable:!(s=PB(e,n))||s.enumerable});return r};var Xe=(r,e,t)=>(t=r!=null?kB(NB(r)):{},sE(e||!r||!r.__esModule?Gp(t,"default",{value:r,enumerable:!0}):t,r)),by=r=>sE(Gp({},"__esModule",{value:!0}),r);var vy=ee((jV,nE)=>{"use strict";var dd=1e3,ud=dd*60,fd=ud*60,Aa=fd*24,LB=Aa*7,DB=Aa*365.25;nE.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return MB(r);if(t==="number"&&isFinite(r))return e.long?jB(r):UB(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function MB(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var t=parseFloat(e[1]),s=(e[2]||"ms").toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return t*DB;case"weeks":case"week":case"w":return t*LB;case"days":case"day":case"d":return t*Aa;case"hours":case"hour":case"hrs":case"hr":case"h":return t*fd;case"minutes":case"minute":case"mins":case"min":case"m":return t*ud;case"seconds":case"second":case"secs":case"sec":case"s":return t*dd;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function UB(r){var e=Math.abs(r);return e>=Aa?Math.round(r/Aa)+"d":e>=fd?Math.round(r/fd)+"h":e>=ud?Math.round(r/ud)+"m":e>=dd?Math.round(r/dd)+"s":r+"ms"}function jB(r){var e=Math.abs(r);return e>=Aa?Xp(r,e,Aa,"day"):e>=fd?Xp(r,e,fd,"hour"):e>=ud?Xp(r,e,ud,"minute"):e>=dd?Xp(r,e,dd,"second"):r+" ms"}function Xp(r,e,t,s){var n=e>=t*1.5;return Math.round(r/t)+" "+s+(n?"s":"")}});var wy=ee((HV,iE)=>{"use strict";function HB(r){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=n,t.enabled=a,t.humanize=vy(),t.destroy=d,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let l=0;for(let h=0;h<u.length;h++)l=(l<<5)-l+u.charCodeAt(h),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(u){let l,h=null,x,v;function S(...C){if(!S.enabled)return;let D=S,re=Number(new Date),G=re-(l||re);D.diff=G,D.prev=l,D.curr=re,l=re,C[0]=t.coerce(C[0]),typeof C[0]!="string"&&C.unshift("%O");let te=0;C[0]=C[0].replace(/%([a-zA-Z%])/g,(se,Ie)=>{if(se==="%%")return"%";te++;let ve=t.formatters[Ie];if(typeof ve=="function"){let Y=C[te];se=ve.call(D,Y),C.splice(te,1),te--}return se}),t.formatArgs.call(D,C),(D.log||t.log).apply(D,C)}return S.namespace=u,S.useColors=t.useColors(),S.color=t.selectColor(u),S.extend=s,S.destroy=t.destroy,Object.defineProperty(S,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(x!==t.namespaces&&(x=t.namespaces,v=t.enabled(u)),v),set:C=>{h=C}}),typeof t.init=="function"&&t.init(S),S}function s(u,l){let h=t(this.namespace+(typeof l>"u"?":":l)+u);return h.log=this.log,h}function n(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let l=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let h of l)h[0]==="-"?t.skips.push(h.slice(1)):t.names.push(h)}function i(u,l){let h=0,x=0,v=-1,S=0;for(;h<u.length;)if(x<l.length&&(l[x]===u[h]||l[x]==="*"))l[x]==="*"?(v=x,S=h,x++):(h++,x++);else if(v!==-1)x=v+1,S++,h=S;else return!1;for(;x<l.length&&l[x]==="*";)x++;return x===l.length}function o(){let u=[...t.names,...t.skips.map(l=>"-"+l)].join(",");return t.enable(""),u}function a(u){for(let l of t.skips)if(i(u,l))return!1;for(let l of t.names)if(i(u,l))return!0;return!1}function c(u){return u instanceof Error?u.stack||u.message:u}function d(){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 t.enable(t.load()),t}iE.exports=HB});var oE=ee((os,Yp)=>{"use strict";os.formatArgs=qB;os.save=zB;os.load=VB;os.useColors=FB;os.storage=$B();os.destroy=(()=>{let r=!1;return()=>{r||(r=!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`."))}})();os.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 FB(){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 r;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&&(r=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(r[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function qB(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Yp.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,s=0;r[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(t++,n==="%c"&&(s=t))}),r.splice(s,0,e)}os.log=console.debug||console.log||(()=>{});function zB(r){try{r?os.storage.setItem("debug",r):os.storage.removeItem("debug")}catch{}}function VB(){let r;try{r=os.storage.getItem("debug")||os.storage.getItem("DEBUG")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function $B(){try{return localStorage}catch{}}Yp.exports=wy()(os);var{formatters:KB}=Yp.exports;KB.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Ey={};mf(Ey,{createSupportsColor:()=>_y,default:()=>QB});function Os(r,e=globalThis.Deno?globalThis.Deno.args:Jp.default.argv){let t=r.startsWith("-")?"":r.length===1?"-":"--",s=e.indexOf(t+r),n=e.indexOf("--");return s!==-1&&(n===-1||s<n)}function WB(){if(!("FORCE_COLOR"in Qt))return;if(Qt.FORCE_COLOR==="true")return 1;if(Qt.FORCE_COLOR==="false")return 0;if(Qt.FORCE_COLOR.length===0)return 1;let r=Math.min(Number.parseInt(Qt.FORCE_COLOR,10),3);if([0,1,2,3].includes(r))return r}function GB(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function XB(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let s=WB();s!==void 0&&(Qp=s);let n=t?Qp:s;if(n===0)return 0;if(t){if(Os("color=16m")||Os("color=full")||Os("color=truecolor"))return 3;if(Os("color=256"))return 2}if("TF_BUILD"in Qt&&"AGENT_NAME"in Qt)return 1;if(r&&!e&&n===void 0)return 0;let i=n||0;if(Qt.TERM==="dumb")return i;if(Jp.default.platform==="win32"){let o=aE.default.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in Qt)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(o=>o in Qt)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(o=>o in Qt)||Qt.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in Qt)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Qt.TEAMCITY_VERSION)?1:0;if(Qt.COLORTERM==="truecolor"||Qt.TERM==="xterm-kitty"||Qt.TERM==="xterm-ghostty"||Qt.TERM==="wezterm")return 3;if("TERM_PROGRAM"in Qt){let o=Number.parseInt((Qt.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Qt.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Qt.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Qt.TERM)||"COLORTERM"in Qt?1:i}function _y(r,e={}){let t=XB(r,{streamIsTTY:r&&r.isTTY,...e});return GB(t)}var Jp,aE,Sy,Qt,Qp,YB,QB,Cy=T(()=>{"use strict";Jp=Xe(require("process"),1),aE=Xe(require("os"),1),Sy=Xe(require("tty"),1);({env:Qt}=Jp.default);Os("no-color")||Os("no-colors")||Os("color=false")||Os("color=never")?Qp=0:(Os("color")||Os("colors")||Os("color=true")||Os("color=always"))&&(Qp=1);YB={stdout:_y({isTTY:Sy.default.isatty(1)}),stderr:_y({isTTY:Sy.default.isatty(2)})},QB=YB});var dE=ee((Sr,e0)=>{"use strict";var JB=require("tty"),Zp=require("util");Sr.init=iN;Sr.log=rN;Sr.formatArgs=eN;Sr.save=sN;Sr.load=nN;Sr.useColors=ZB;Sr.destroy=Zp.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Sr.colors=[6,2,3,4,5,1];try{let r=(Cy(),by(Ey));r&&(r.stderr||r).level>=2&&(Sr.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{}Sr.inspectOpts=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(n,i)=>i.toUpperCase()),s=process.env[e];return/^(yes|on|true|enabled)$/i.test(s)?s=!0:/^(no|off|false|disabled)$/i.test(s)?s=!1:s==="null"?s=null:s=Number(s),r[t]=s,r},{});function ZB(){return"colors"in Sr.inspectOpts?!!Sr.inspectOpts.colors:JB.isatty(process.stderr.fd)}function eN(r){let{namespace:e,useColors:t}=this;if(t){let s=this.color,n="\x1B[3"+(s<8?s:"8;5;"+s),i=` ${n};1m${e} \x1B[0m`;r[0]=i+r[0].split(`
|
|
1
|
+
"use strict";var _n=Object.create;var vt=Object.defineProperty;var vn=Object.getOwnPropertyDescriptor;var wn=Object.getOwnPropertyNames;var yn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var Sn=(s,e,t)=>()=>{if(t)throw t[0];try{return s&&(e=s(s=0)),e}catch(r){throw t=[r],r}};var C=(s,e)=>()=>{try{return e||s((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},fs=(s,e)=>{for(var t in e)vt(s,t,{get:e[t],enumerable:!0})},ms=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of wn(e))!bn.call(s,i)&&i!==t&&vt(s,i,{get:()=>e[i],enumerable:!(r=vn(e,i))||r.enumerable});return s};var we=(s,e,t)=>(t=s!=null?_n(yn(s)):{},ms(e||!s||!s.__esModule?vt(t,"default",{value:s,enumerable:!0}):t,s)),gs=s=>ms(vt({},"__esModule",{value:!0}),s);var vs=C((Qc,_s)=>{"use strict";var Pe=1e3,De=Pe*60,Le=De*60,ye=Le*24,Cn=ye*7,Rn=ye*365.25;_s.exports=function(s,e){e=e||{};var t=typeof s;if(t==="string"&&s.length>0)return Tn(s);if(t==="number"&&isFinite(s))return e.long?xn(s):En(s);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(s))};function Tn(s){if(s=String(s),!(s.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(s);if(e){var t=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return t*Rn;case"weeks":case"week":case"w":return t*Cn;case"days":case"day":case"d":return t*ye;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Le;case"minutes":case"minute":case"mins":case"min":case"m":return t*De;case"seconds":case"second":case"secs":case"sec":case"s":return t*Pe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function En(s){var e=Math.abs(s);return e>=ye?Math.round(s/ye)+"d":e>=Le?Math.round(s/Le)+"h":e>=De?Math.round(s/De)+"m":e>=Pe?Math.round(s/Pe)+"s":s+"ms"}function xn(s){var e=Math.abs(s);return e>=ye?wt(s,e,ye,"day"):e>=Le?wt(s,e,Le,"hour"):e>=De?wt(s,e,De,"minute"):e>=Pe?wt(s,e,Pe,"second"):s+" ms"}function wt(s,e,t,r){var i=e>=t*1.5;return Math.round(s/t)+" "+r+(i?"s":"")}});var lr=C((Yc,ws)=>{"use strict";function kn(s){t.debug=t,t.default=t,t.coerce=c,t.disable=a,t.enable=i,t.enabled=o,t.humanize=vs(),t.destroy=d,Object.keys(s).forEach(p=>{t[p]=s[p]}),t.names=[],t.skips=[],t.formatters={};function e(p){let l=0;for(let u=0;u<p.length;u++)l=(l<<5)-l+p.charCodeAt(u),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(p){let l,u=null,f,m;function h(...g){if(!h.enabled)return;let w=h,E=Number(new Date),P=E-(l||E);w.diff=P,w.prev=l,w.curr=E,l=E,g[0]=t.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let k=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(M,ke)=>{if(M==="%%")return"%";k++;let et=t.formatters[ke];if(typeof et=="function"){let fe=g[k];M=et.call(w,fe),g.splice(k,1),k--}return M}),t.formatArgs.call(w,g),(w.log||t.log).apply(w,g)}return h.namespace=p,h.useColors=t.useColors(),h.color=t.selectColor(p),h.extend=r,h.destroy=t.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>u!==null?u:(f!==t.namespaces&&(f=t.namespaces,m=t.enabled(p)),m),set:g=>{u=g}}),typeof t.init=="function"&&t.init(h),h}function r(p,l){let u=t(this.namespace+(typeof l>"u"?":":l)+p);return u.log=this.log,u}function i(p){t.save(p),t.namespaces=p,t.names=[],t.skips=[];let l=(typeof p=="string"?p:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let u of l)u[0]==="-"?t.skips.push(u.slice(1)):t.names.push(u)}function n(p,l){let u=0,f=0,m=-1,h=0;for(;u<p.length;)if(f<l.length&&(l[f]===p[u]||l[f]==="*"))l[f]==="*"?(m=f,h=u,f++):(u++,f++);else if(m!==-1)f=m+1,h++,u=h;else return!1;for(;f<l.length&&l[f]==="*";)f++;return f===l.length}function a(){let p=[...t.names,...t.skips.map(l=>"-"+l)].join(",");return t.enable(""),p}function o(p){for(let l of t.skips)if(n(p,l))return!1;for(let l of t.names)if(n(p,l))return!0;return!1}function c(p){return p instanceof Error?p.stack||p.message:p}function d(){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 t.enable(t.load()),t}ws.exports=kn});var ys=C((W,yt)=>{"use strict";W.formatArgs=Dn;W.save=Ln;W.load=Mn;W.useColors=Pn;W.storage=In();W.destroy=(()=>{let s=!1;return()=>{s||(s=!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`."))}})();W.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 Pn(){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 s;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&&(s=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(s[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Dn(s){if(s[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+s[0]+(this.useColors?"%c ":" ")+"+"+yt.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;s.splice(1,0,e,"color: inherit");let t=0,r=0;s[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(t++,i==="%c"&&(r=t))}),s.splice(r,0,e)}W.log=console.debug||console.log||(()=>{});function Ln(s){try{s?W.storage.setItem("debug",s):W.storage.removeItem("debug")}catch{}}function Mn(){let s;try{s=W.storage.getItem("debug")||W.storage.getItem("DEBUG")}catch{}return!s&&typeof process<"u"&&"env"in process&&(s=process.env.DEBUG),s}function In(){try{return localStorage}catch{}}yt.exports=lr()(W);var{formatters:On}=yt.exports;On.j=function(s){try{return JSON.stringify(s)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Ss={};fs(Ss,{createSupportsColor:()=>hr,default:()=>qn});function Q(s,e=globalThis.Deno?globalThis.Deno.args:St.default.argv){let t=s.startsWith("-")?"":s.length===1?"-":"--",r=e.indexOf(t+s),i=e.indexOf("--");return r!==-1&&(i===-1||r<i)}function Nn(){if(!("FORCE_COLOR"in I))return;if(I.FORCE_COLOR==="true")return 1;if(I.FORCE_COLOR==="false")return 0;if(I.FORCE_COLOR.length===0)return 1;let s=Math.min(Number.parseInt(I.FORCE_COLOR,10),3);if([0,1,2,3].includes(s))return s}function An(s){return s===0?!1:{level:s,hasBasic:!0,has256:s>=2,has16m:s>=3}}function Fn(s,{streamIsTTY:e,sniffFlags:t=!0}={}){let r=Nn();r!==void 0&&(bt=r);let i=t?bt:r;if(i===0)return 0;if(t){if(Q("color=16m")||Q("color=full")||Q("color=truecolor"))return 3;if(Q("color=256"))return 2}if("TF_BUILD"in I&&"AGENT_NAME"in I)return 1;if(s&&!e&&i===void 0)return 0;let n=i||0;if(I.TERM==="dumb")return n;if(St.default.platform==="win32"){let a=bs.default.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in I)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(a=>a in I)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(a=>a in I)||I.CI_NAME==="codeship"?1:n;if("TEAMCITY_VERSION"in I)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(I.TEAMCITY_VERSION)?1:0;if(I.COLORTERM==="truecolor"||I.TERM==="xterm-kitty"||I.TERM==="xterm-ghostty"||I.TERM==="wezterm")return 3;if("TERM_PROGRAM"in I){let a=Number.parseInt((I.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(I.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(I.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(I.TERM)||"COLORTERM"in I?1:n}function hr(s,e={}){let t=Fn(s,{streamIsTTY:s&&s.isTTY,...e});return An(t)}var St,bs,ur,I,bt,jn,qn,Cs=Sn(()=>{"use strict";St=we(require("process"),1),bs=we(require("os"),1),ur=we(require("tty"),1);({env:I}=St.default);Q("no-color")||Q("no-colors")||Q("color=false")||Q("color=never")?bt=0:(Q("color")||Q("colors")||Q("color=true")||Q("color=always"))&&(bt=1);jn={stdout:hr({isTTY:ur.default.isatty(1)}),stderr:hr({isTTY:ur.default.isatty(2)})},qn=jn});var Ts=C((F,Rt)=>{"use strict";var zn=require("tty"),Ct=require("util");F.init=Gn;F.log=Vn;F.formatArgs=Bn;F.save=Wn;F.load=Hn;F.useColors=$n;F.destroy=Ct.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");F.colors=[6,2,3,4,5,1];try{let s=(Cs(),gs(Ss));s&&(s.stderr||s).level>=2&&(F.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{}F.inspectOpts=Object.keys(process.env).filter(s=>/^debug_/i.test(s)).reduce((s,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(i,n)=>n.toUpperCase()),r=process.env[e];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),s[t]=r,s},{});function $n(){return"colors"in F.inspectOpts?!!F.inspectOpts.colors:zn.isatty(process.stderr.fd)}function Bn(s){let{namespace:e,useColors:t}=this;if(t){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),n=` ${i};1m${e} \x1B[0m`;s[0]=n+s[0].split(`
|
|
2
2
|
`).join(`
|
|
3
|
-
`+
|
|
4
|
-
`)}function
|
|
5
|
-
`).map(e=>e.trim()).join(" ")};cE.O=function(r){return this.inspectOpts.colors=this.useColors,Zp.inspect(r,this.inspectOpts)}});var gf=ee((FV,Ty)=>{"use strict";typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Ty.exports=oE():Ty.exports=dE()});var fE=ee(uE=>{"use strict";Object.defineProperty(uE,"__esModule",{value:!0})});var Yr=ee(t0=>{"use strict";Object.defineProperty(t0,"__esModule",{value:!0});t0.Logger=void 0;var ld=gf(),hd="media-client",Ay=class{_debug;_warn;_error;constructor(e){e?(this._debug=(0,ld.default)(`${hd}:${e}`),this._warn=(0,ld.default)(`${hd}:WARN:${e}`),this._error=(0,ld.default)(`${hd}:ERROR:${e}`)):(this._debug=(0,ld.default)(hd),this._warn=(0,ld.default)(`${hd}:WARN`),this._error=(0,ld.default)(`${hd}:ERROR`)),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}};t0.Logger=Ay});var SE=ee((VV,Iy)=>{"use strict";var pd=typeof Reflect=="object"?Reflect:null,lE=pd&&typeof pd.apply=="function"?pd.apply:function(e,t,s){return Function.prototype.apply.call(e,t,s)},r0;pd&&typeof pd.ownKeys=="function"?r0=pd.ownKeys:Object.getOwnPropertySymbols?r0=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:r0=function(e){return Object.getOwnPropertyNames(e)};function oN(r){console&&console.warn&&console.warn(r)}var pE=Number.isNaN||function(e){return e!==e};function Ht(){Ht.init.call(this)}Iy.exports=Ht;Iy.exports.once=uN;Ht.EventEmitter=Ht;Ht.prototype._events=void 0;Ht.prototype._eventsCount=0;Ht.prototype._maxListeners=void 0;var hE=10;function s0(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(Ht,"defaultMaxListeners",{enumerable:!0,get:function(){return hE},set:function(r){if(typeof r!="number"||r<0||pE(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");hE=r}});Ht.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Ht.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||pE(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function mE(r){return r._maxListeners===void 0?Ht.defaultMaxListeners:r._maxListeners}Ht.prototype.getMaxListeners=function(){return mE(this)};Ht.prototype.emit=function(e){for(var t=[],s=1;s<arguments.length;s++)t.push(arguments[s]);var n=e==="error",i=this._events;if(i!==void 0)n=n&&i.error===void 0;else if(!n)return!1;if(n){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=i[e];if(c===void 0)return!1;if(typeof c=="function")lE(c,this,t);else for(var d=c.length,u=vE(c,d),s=0;s<d;++s)lE(u[s],this,t);return!0};function gE(r,e,t,s){var n,i,o;if(s0(t),i=r._events,i===void 0?(i=r._events=Object.create(null),r._eventsCount=0):(i.newListener!==void 0&&(r.emit("newListener",e,t.listener?t.listener:t),i=r._events),o=i[e]),o===void 0)o=i[e]=t,++r._eventsCount;else if(typeof o=="function"?o=i[e]=s?[t,o]:[o,t]:s?o.unshift(t):o.push(t),n=mE(r),n>0&&o.length>n&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=r,a.type=e,a.count=o.length,oN(a)}return r}Ht.prototype.addListener=function(e,t){return gE(this,e,t,!1)};Ht.prototype.on=Ht.prototype.addListener;Ht.prototype.prependListener=function(e,t){return gE(this,e,t,!0)};function aN(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function xE(r,e,t){var s={fired:!1,wrapFn:void 0,target:r,type:e,listener:t},n=aN.bind(s);return n.listener=t,s.wrapFn=n,n}Ht.prototype.once=function(e,t){return s0(t),this.on(e,xE(this,e,t)),this};Ht.prototype.prependOnceListener=function(e,t){return s0(t),this.prependListener(e,xE(this,e,t)),this};Ht.prototype.removeListener=function(e,t){var s,n,i,o,a;if(s0(t),n=this._events,n===void 0)return this;if(s=n[e],s===void 0)return this;if(s===t||s.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,s.listener||t));else if(typeof s!="function"){for(i=-1,o=s.length-1;o>=0;o--)if(s[o]===t||s[o].listener===t){a=s[o].listener,i=o;break}if(i<0)return this;i===0?s.shift():cN(s,i),s.length===1&&(n[e]=s[0]),n.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this};Ht.prototype.off=Ht.prototype.removeListener;Ht.prototype.removeAllListeners=function(e){var t,s,n;if(s=this._events,s===void 0)return this;if(s.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):s[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete s[e]),this;if(arguments.length===0){var i=Object.keys(s),o;for(n=0;n<i.length;++n)o=i[n],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(t=s[e],typeof t=="function")this.removeListener(e,t);else if(t!==void 0)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this};function yE(r,e,t){var s=r._events;if(s===void 0)return[];var n=s[e];return n===void 0?[]:typeof n=="function"?t?[n.listener||n]:[n]:t?dN(n):vE(n,n.length)}Ht.prototype.listeners=function(e){return yE(this,e,!0)};Ht.prototype.rawListeners=function(e){return yE(this,e,!1)};Ht.listenerCount=function(r,e){return typeof r.listenerCount=="function"?r.listenerCount(e):bE.call(r,e)};Ht.prototype.listenerCount=bE;function bE(r){var e=this._events;if(e!==void 0){var t=e[r];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}Ht.prototype.eventNames=function(){return this._eventsCount>0?r0(this._events):[]};function vE(r,e){for(var t=new Array(e),s=0;s<e;++s)t[s]=r[s];return t}function cN(r,e){for(;e+1<r.length;e++)r[e]=r[e+1];r.pop()}function dN(r){for(var e=new Array(r.length),t=0;t<e.length;++t)e[t]=r[t].listener||r[t];return e}function uN(r,e){return new Promise(function(t,s){function n(o){r.removeListener(e,i),s(o)}function i(){typeof r.removeListener=="function"&&r.removeListener("error",n),t([].slice.call(arguments))}wE(r,e,i,{once:!0}),e!=="error"&&fN(r,n,{once:!0})})}function fN(r,e,t){typeof r.on=="function"&&wE(r,"error",e,t)}function wE(r,e,t,s){if(typeof r.on=="function")s.once?r.once(e,t):r.on(e,t);else if(typeof r.addEventListener=="function")r.addEventListener(e,function n(i){s.once&&r.removeEventListener(e,n),t(i)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof r)}});var as=ee(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});n0.EnhancedEventEmitter=void 0;var lN=SE(),hN=Yr(),pN=new hN.Logger("EnhancedEventEmitter"),Ry=class extends lN.EventEmitter{constructor(){super(),this.setMaxListeners(1/0)}close(){super.removeAllListeners()}emit(e,...t){return super.emit(e,...t)}safeEmit(e,...t){try{return super.emit(e,...t)}catch(s){pN.error("safeEmit() | event listener threw an error [eventName:%s]:%o",e,s);try{super.emit("listenererror",e,s)}catch{}return!!super.listenerCount(e)}}on(e,t){return super.on(e,t),this}off(e,t){return super.off(e,t),this}addListener(e,t){return super.on(e,t),this}prependListener(e,t){return super.prependListener(e,t),this}once(e,t){return super.once(e,t),this}prependOnceListener(e,t){return super.prependOnceListener(e,t),this}removeListener(e,t){return super.off(e,t),this}removeAllListeners(e){return super.removeAllListeners(e),this}listenerCount(e){return super.listenerCount(e)}listeners(e){return super.listeners(e)}rawListeners(e){return super.rawListeners(e)}};n0.EnhancedEventEmitter=Ry});var Ls=ee(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.InvalidStateError=md.UnsupportedError=void 0;var ky=class r extends Error{constructor(e){super(e),this.name="UnsupportedError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,r):this.stack=new Error(e).stack}};md.UnsupportedError=ky;var Py=class r extends Error{constructor(e){super(e),this.name="InvalidStateError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,r):this.stack=new Error(e).stack}};md.InvalidStateError=Py});var Ia=ee(xf=>{"use strict";Object.defineProperty(xf,"__esModule",{value:!0});xf.clone=mN;xf.generateRandomNumber=gN;xf.deepFreeze=_E;function mN(r){if(r!==void 0)return Number.isNaN(r)?NaN:typeof structuredClone=="function"?structuredClone(r):JSON.parse(JSON.stringify(r))}function gN(){return Math.round(Math.random()*1e7)}function _E(r){let e=Reflect.ownKeys(r);for(let t of e){let s=r[t];(s&&typeof s=="object"||typeof s=="function")&&_E(s)}return Object.freeze(r)}});var EE=ee(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});i0.Logger=void 0;var gd=gf(),xd="h264-profile-level-id",By=class{_debug;_warn;_error;constructor(e){e?(this._debug=(0,gd.default)(`${xd}:${e}`),this._warn=(0,gd.default)(`${xd}:WARN:${e}`),this._error=(0,gd.default)(`${xd}:ERROR:${e}`)):(this._debug=(0,gd.default)(xd),this._warn=(0,gd.default)(`${xd}:WARN`),this._error=(0,gd.default)(`${xd}:ERROR`)),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}};i0.Logger=By});var kE=ee(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.ProfileLevelId=Tr.Level=Tr.Profile=void 0;Tr.parseProfileLevelId=IE;Tr.profileLevelIdToString=RE;Tr.profileToString=vN;Tr.levelToString=wN;Tr.parseSdpProfileLevelId=Ra;Tr.isSameProfile=SN;Tr.isSameProfileAndLevel=_N;Tr.generateProfileLevelIdStringForAnswer=EN;Tr.supportedLevel=CN;var xN=EE(),rn=new xN.Logger,zt;(function(r){r[r.ConstrainedBaseline=1]="ConstrainedBaseline",r[r.Baseline=2]="Baseline",r[r.Main=3]="Main",r[r.ConstrainedHigh=4]="ConstrainedHigh",r[r.High=5]="High",r[r.PredictiveHigh444=6]="PredictiveHigh444"})(zt||(Tr.Profile=zt={}));var De;(function(r){r[r.L1_b=0]="L1_b",r[r.L1=10]="L1",r[r.L1_1=11]="L1_1",r[r.L1_2=12]="L1_2",r[r.L1_3=13]="L1_3",r[r.L2=20]="L2",r[r.L2_1=21]="L2_1",r[r.L2_2=22]="L2_2",r[r.L3=30]="L3",r[r.L3_1=31]="L3_1",r[r.L3_2=32]="L3_2",r[r.L4=40]="L4",r[r.L4_1=41]="L4_1",r[r.L4_2=42]="L4_2",r[r.L5=50]="L5",r[r.L5_1=51]="L5_1",r[r.L5_2=52]="L5_2"})(De||(Tr.Level=De={}));var yd=class{profile;level;constructor(e,t){this.profile=e,this.level=t}};Tr.ProfileLevelId=yd;var yN=new yd(zt.ConstrainedBaseline,De.L3_1),en=class{mask;masked_value;constructor(e){this.mask=~TE("x",e),this.masked_value=TE("1",e)}isMatch(e){return this.masked_value===(e&this.mask)}},tn=class{profile_idc;profile_iop;profile;constructor(e,t,s){this.profile_idc=e,this.profile_iop=t,this.profile=s}},bN=[new tn(66,new en("x1xx0000"),zt.ConstrainedBaseline),new tn(77,new en("1xxx0000"),zt.ConstrainedBaseline),new tn(88,new en("11xx0000"),zt.ConstrainedBaseline),new tn(66,new en("x0xx0000"),zt.Baseline),new tn(88,new en("10xx0000"),zt.Baseline),new tn(77,new en("0x0x0000"),zt.Main),new tn(100,new en("00000000"),zt.High),new tn(100,new en("00001100"),zt.ConstrainedHigh),new tn(244,new en("00000000"),zt.PredictiveHigh444)],CE=[{max_macroblocks_per_second:1485,max_macroblock_frame_size:99,level:De.L1},{max_macroblocks_per_second:1485,max_macroblock_frame_size:99,level:De.L1_b},{max_macroblocks_per_second:3e3,max_macroblock_frame_size:396,level:De.L1_1},{max_macroblocks_per_second:6e3,max_macroblock_frame_size:396,level:De.L1_2},{max_macroblocks_per_second:11880,max_macroblock_frame_size:396,level:De.L1_3},{max_macroblocks_per_second:11880,max_macroblock_frame_size:396,level:De.L2},{max_macroblocks_per_second:19800,max_macroblock_frame_size:792,level:De.L2_1},{max_macroblocks_per_second:20250,max_macroblock_frame_size:1620,level:De.L2_2},{max_macroblocks_per_second:40500,max_macroblock_frame_size:1620,level:De.L3},{max_macroblocks_per_second:108e3,max_macroblock_frame_size:3600,level:De.L3_1},{max_macroblocks_per_second:216e3,max_macroblock_frame_size:5120,level:De.L3_2},{max_macroblocks_per_second:245760,max_macroblock_frame_size:8192,level:De.L4},{max_macroblocks_per_second:245760,max_macroblock_frame_size:8192,level:De.L4_1},{max_macroblocks_per_second:522240,max_macroblock_frame_size:8704,level:De.L4_2},{max_macroblocks_per_second:589824,max_macroblock_frame_size:22080,level:De.L5},{max_macroblocks_per_second:983040,max_macroblock_frame_size:36864,level:De.L5_1},{max_macroblocks_per_second:2073600,max_macroblock_frame_size:36864,level:De.L5_2}];function IE(r){if(typeof r!="string"||r.length!==6)return;let t=parseInt(r,16);if(t===0)return;let s=t&255,n=t>>8&255,i=t>>16&255,o;switch(s){case De.L1_1:{o=(n&16)!==0?De.L1_b:De.L1_1;break}case De.L1:case De.L1_2:case De.L1_3:case De.L2:case De.L2_1:case De.L2_2:case De.L3:case De.L3_1:case De.L3_2:case De.L4:case De.L4_1:case De.L4_2:case De.L5:case De.L5_1:case De.L5_2:{o=s;break}default:{rn.warn(`parseProfileLevelId() | unrecognized level_idc [str:${r}, level_idc:${s}]`);return}}for(let a of bN)if(i===a.profile_idc&&a.profile_iop.isMatch(n))return rn.debug(`parseProfileLevelId() | result [str:${r}, profile:${a.profile}, level:${o}]`),new yd(a.profile,o);rn.warn(`parseProfileLevelId() | unrecognized profile_idc/profile_iop combination [str:${r}, profile_idc:${i}, profile_iop:${n}]`)}function RE(r){if(r.level==De.L1_b)switch(r.profile){case zt.ConstrainedBaseline:return"42f00b";case zt.Baseline:return"42100b";case zt.Main:return"4d100b";default:{rn.warn(`profileLevelIdToString() | Level 1_b not is allowed for profile ${r.profile}`);return}}let e;switch(r.profile){case zt.ConstrainedBaseline:{e="42e0";break}case zt.Baseline:{e="4200";break}case zt.Main:{e="4d00";break}case zt.ConstrainedHigh:{e="640c";break}case zt.High:{e="6400";break}case zt.PredictiveHigh444:{e="f400";break}default:{rn.warn(`profileLevelIdToString() | unrecognized profile ${r.profile}`);return}}let t=r.level.toString(16);return t.length===1&&(t=`0${t}`),`${e}${t}`}function vN(r){switch(r){case zt.ConstrainedBaseline:return"ConstrainedBaseline";case zt.Baseline:return"Baseline";case zt.Main:return"Main";case zt.ConstrainedHigh:return"ConstrainedHigh";case zt.High:return"High";case zt.PredictiveHigh444:return"PredictiveHigh444";default:{rn.warn(`profileToString() | unrecognized profile ${r}`);return}}}function wN(r){switch(r){case De.L1_b:return"1b";case De.L1:return"1";case De.L1_1:return"1.1";case De.L1_2:return"1.2";case De.L1_3:return"1.3";case De.L2:return"2";case De.L2_1:return"2.1";case De.L2_2:return"2.2";case De.L3:return"3";case De.L3_1:return"3.1";case De.L3_2:return"3.2";case De.L4:return"4";case De.L4_1:return"4.1";case De.L4_2:return"4.2";case De.L5:return"5";case De.L5_1:return"5.1";case De.L5_2:return"5.2";default:{rn.warn(`levelToString() | unrecognized level ${r}`);return}}}function Ra(r={}){let e=r["profile-level-id"];return e?IE(e):yN}function SN(r={},e={}){let t=Ra(r),s=Ra(e);return!!(t&&s&&t.profile===s.profile)}function _N(r={},e={}){let t=Ra(r),s=Ra(e);return!!(t&&s&&t.profile===s.profile&&t.level==s.level)}function EN(r={},e={}){if(!r["profile-level-id"]&&!e["profile-level-id"]){rn.warn("generateProfileLevelIdStringForAnswer() | profile-level-id missing in local and remote params");return}let t=Ra(r),s=Ra(e);if(!t)throw new TypeError("invalid local_profile_level_id");if(!s)throw new TypeError("invalid remote_profile_level_id");if(t.profile!==s.profile)throw new TypeError("H264 Profile mismatch");let n=AE(r)&&AE(e),i=t.level,o=s.level,a=AN(i,o),c=n?i:a;return rn.debug(`generateProfileLevelIdStringForAnswer() | result [profile:${t.profile}, level:${c}]`),RE(new yd(t.profile,c))}function CN(r,e){for(let s=CE.length-1;s>=0;--s){let n=CE[s];if(n.max_macroblock_frame_size*256<=r&&n.max_macroblocks_per_second<=e*n.max_macroblock_frame_size)return rn.debug(`supportedLevel() | result [max_frame_pixel_count:${r}, max_fps:${e}, level:${n.level}]`),n.level}rn.warn(`supportedLevel() | no level supported [max_frame_pixel_count:${r}, max_fps:${e}]`)}function TE(r,e){return+(e[0]===r)<<7|+(e[1]===r)<<6|+(e[2]===r)<<5|+(e[3]===r)<<4|+(e[4]===r)<<3|+(e[5]===r)<<2|+(e[6]===r)<<1|+(e[7]===r)<<0}function TN(r,e){return r===De.L1_b?e!==De.L1&&e!==De.L1_b:e===De.L1_b?r!==De.L1:r<e}function AN(r,e){return TN(r,e)?r:e}function AE(r={}){let e=r["level-asymmetry-allowed"];return e===!0||e===1||e==="1"}});var Rn=ee(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.validateAndNormalizeRtpCapabilities=BN;Qr.validateAndNormalizeRtpParameters=Oy;Qr.validateAndNormalizeSctpStreamParameters=NN;Qr.validateSctpCapabilities=ON;Qr.getExtendedRtpCapabilities=LN;Qr.getRecvRtpCapabilities=DN;Qr.getSendRtpCapabilities=MN;Qr.getSendingRtpParameters=UN;Qr.getSendingRemoteRtpParameters=jN;Qr.reduceCodecs=HN;Qr.generateProbatorRtpParameters=FN;Qr.canSend=qN;Qr.canReceive=zN;var PE=kE(),IN=Ia(),RN="probator",kN=1234,PN=127;function BN(r){if(typeof r!="object")throw new TypeError("caps is not an object");if(r.codecs&&!Array.isArray(r.codecs))throw new TypeError("caps.codecs is not an array");r.codecs||(r.codecs=[]);for(let e of r.codecs)VN(e);if(r.headerExtensions&&!Array.isArray(r.headerExtensions))throw new TypeError("caps.headerExtensions is not an array");r.headerExtensions||(r.headerExtensions=[]);for(let e of r.headerExtensions)$N(e)}function Oy(r){if(typeof r!="object")throw new TypeError("params is not an object");if(r.mid&&typeof r.mid!="string")throw new TypeError("params.mid is not a string");if(!Array.isArray(r.codecs))throw new TypeError("missing params.codecs");for(let e of r.codecs)KN(e);if(r.headerExtensions&&!Array.isArray(r.headerExtensions))throw new TypeError("params.headerExtensions is not an array");r.headerExtensions||(r.headerExtensions=[]);for(let e of r.headerExtensions)WN(e);if(r.encodings&&!Array.isArray(r.encodings))throw new TypeError("params.encodings is not an array");r.encodings||(r.encodings=[]);for(let e of r.encodings)GN(e);if(r.rtcp&&typeof r.rtcp!="object")throw new TypeError("params.rtcp is not an object");r.rtcp||(r.rtcp={}),XN(r.rtcp)}function NN(r){if(typeof r!="object")throw new TypeError("params is not an object");if(typeof r.streamId!="number")throw new TypeError("missing params.streamId");let e=!1;if(typeof r.ordered=="boolean"?e=!0:r.ordered=!0,r.maxPacketLifeTime&&typeof r.maxPacketLifeTime!="number")throw new TypeError("invalid params.maxPacketLifeTime");if(r.maxRetransmits&&typeof r.maxRetransmits!="number")throw new TypeError("invalid params.maxRetransmits");if(r.maxPacketLifeTime&&r.maxRetransmits)throw new TypeError("cannot provide both maxPacketLifeTime and maxRetransmits");if(e&&r.ordered&&(r.maxPacketLifeTime||r.maxRetransmits))throw new TypeError("cannot be ordered with maxPacketLifeTime or maxRetransmits");if(!e&&(r.maxPacketLifeTime||r.maxRetransmits)&&(r.ordered=!1),r.label&&typeof r.label!="string")throw new TypeError("invalid params.label");if(r.protocol&&typeof r.protocol!="string")throw new TypeError("invalid params.protocol")}function ON(r){if(typeof r!="object")throw new TypeError("caps is not an object");if(!r.numStreams||typeof r.numStreams!="object")throw new TypeError("missing caps.numStreams");YN(r.numStreams)}function LN(r,e,t){let s={codecs:[],headerExtensions:[]};if(t)for(let n of r.codecs??[]){if(bd(n))continue;let i=(e.codecs??[]).find(a=>Ny(a,n,{strict:!0,modify:!0}));if(!i)continue;let o={kind:n.kind,mimeType:n.mimeType,clockRate:n.clockRate,channels:n.channels,localPayloadType:n.preferredPayloadType,localRtxPayloadType:void 0,remotePayloadType:i.preferredPayloadType,remoteRtxPayloadType:void 0,localParameters:n.parameters??{},remoteParameters:i.parameters??{},rtcpFeedback:BE(n,i)};s.codecs.push(o)}else for(let n of e.codecs??[]){if(bd(n))continue;let i=(r.codecs??[]).find(a=>Ny(a,n,{strict:!0,modify:!0}));if(!i)continue;let o={kind:i.kind,mimeType:i.mimeType,clockRate:i.clockRate,channels:i.channels,localPayloadType:i.preferredPayloadType,localRtxPayloadType:void 0,remotePayloadType:n.preferredPayloadType,remoteRtxPayloadType:void 0,localParameters:i.parameters??{},remoteParameters:n.parameters??{},rtcpFeedback:BE(i,n)};s.codecs.push(o)}for(let n of s.codecs){let i=r.codecs.find(a=>bd(a)&&a.parameters?.apt===n.localPayloadType),o=e.codecs.find(a=>bd(a)&&a.parameters?.apt===n.remotePayloadType);i&&o&&(n.localRtxPayloadType=i.preferredPayloadType,n.remoteRtxPayloadType=o.preferredPayloadType)}for(let n of e.headerExtensions){let i=r.headerExtensions.find(a=>QN(a,n));if(!i)continue;let o={kind:n.kind,uri:n.uri,sendId:i.preferredId,recvId:n.preferredId,encrypt:i.preferredEncrypt??!1,direction:"sendrecv"};switch(n.direction){case"sendrecv":{o.direction="sendrecv";break}case"recvonly":{o.direction="sendonly";break}case"sendonly":{o.direction="recvonly";break}case"inactive":{o.direction="inactive";break}}s.headerExtensions.push(o)}return s}function DN(r){return OE({direction:"recvonly",extendedRtpCapabilities:r})}function MN(r){return OE({direction:"sendonly",extendedRtpCapabilities:r})}function UN(r,e){let t={mid:void 0,codecs:[],headerExtensions:[],encodings:[],rtcp:{}};for(let s of e.codecs){if(s.kind!==r)continue;let n={mimeType:s.mimeType,payloadType:s.localPayloadType,clockRate:s.clockRate,channels:s.channels,parameters:s.localParameters,rtcpFeedback:s.rtcpFeedback};if(t.codecs.push(n),s.localRtxPayloadType){let i={mimeType:`${s.kind}/rtx`,payloadType:s.localRtxPayloadType,clockRate:s.clockRate,parameters:{apt:s.localPayloadType},rtcpFeedback:[]};t.codecs.push(i)}}for(let s of e.headerExtensions){if(s.kind&&s.kind!==r||s.direction!=="sendrecv"&&s.direction!=="sendonly")continue;let n={uri:s.uri,id:s.sendId,encrypt:s.encrypt,parameters:{}};t.headerExtensions.push(n)}return t}function jN(r,e){let t={mid:void 0,codecs:[],headerExtensions:[],encodings:[],rtcp:{}};for(let s of e.codecs){if(s.kind!==r)continue;let n={mimeType:s.mimeType,payloadType:s.localPayloadType,clockRate:s.clockRate,channels:s.channels,parameters:s.remoteParameters,rtcpFeedback:s.rtcpFeedback};if(t.codecs.push(n),s.localRtxPayloadType){let i={mimeType:`${s.kind}/rtx`,payloadType:s.localRtxPayloadType,clockRate:s.clockRate,parameters:{apt:s.localPayloadType},rtcpFeedback:[]};t.codecs.push(i)}}for(let s of e.headerExtensions){if(s.kind&&s.kind!==r||s.direction!=="sendrecv"&&s.direction!=="sendonly")continue;let n={uri:s.uri,id:s.sendId,encrypt:s.encrypt,parameters:{}};t.headerExtensions.push(n)}if(t.headerExtensions.some(s=>s.uri==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"))for(let s of t.codecs)s.rtcpFeedback=(s.rtcpFeedback??[]).filter(n=>n.type!=="goog-remb");else if(t.headerExtensions.some(s=>s.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"))for(let s of t.codecs)s.rtcpFeedback=(s.rtcpFeedback??[]).filter(n=>n.type!=="transport-cc");else for(let s of t.codecs)s.rtcpFeedback=(s.rtcpFeedback??[]).filter(n=>n.type!=="transport-cc"&&n.type!=="goog-remb");return t}function HN(r,e){let t=[];if(!e)t.push(r[0]),bd(r[1])&&t.push(r[1]);else{for(let s=0;s<r.length;++s)if(Ny(r[s],e,{strict:!0})){t.push(r[s]),bd(r[s+1])&&t.push(r[s+1]);break}if(t.length===0)throw new TypeError("no matching codec found")}return t}function FN(r){r=IN.clone(r),Oy(r);let e={mid:RN,codecs:[],headerExtensions:[],encodings:[{ssrc:kN}],rtcp:{cname:"probator"}};return e.codecs.push(r.codecs[0]),e.codecs[0].payloadType=PN,e.headerExtensions=r.headerExtensions,e}function qN(r,e){return(e.codecs??[]).some(t=>t.kind===r)}function zN(r,e){if(Oy(r),r.codecs.length===0)return!1;let t=r.codecs[0];return(e.codecs??[]).some(s=>s.preferredPayloadType===t.payloadType)}function VN(r){let e=new RegExp("^(audio|video)/(.+)","i");if(typeof r!="object")throw new TypeError("codec is not an object");if(!r.mimeType||typeof r.mimeType!="string")throw new TypeError("missing codec.mimeType");let t=e.exec(r.mimeType);if(!t)throw new TypeError("invalid codec.mimeType");if(r.kind=t[1].toLowerCase(),typeof r.preferredPayloadType!="number")throw new TypeError("missing codec.preferredPayloadType");if(typeof r.clockRate!="number")throw new TypeError("missing codec.clockRate");r.kind==="audio"?typeof r.channels!="number"&&(r.channels=1):delete r.channels,(!r.parameters||typeof r.parameters!="object")&&(r.parameters={});for(let s of Object.keys(r.parameters)){let n=r.parameters[s];if(n===void 0&&(r.parameters[s]="",n=""),typeof n!="string"&&typeof n!="number")throw new TypeError(`invalid codec parameter [key:${s}s, value:${n}]`);if(s==="apt"&&typeof n!="number")throw new TypeError("invalid codec apt parameter")}(!r.rtcpFeedback||!Array.isArray(r.rtcpFeedback))&&(r.rtcpFeedback=[]);for(let s of r.rtcpFeedback)NE(s)}function NE(r){if(typeof r!="object")throw new TypeError("fb is not an object");if(!r.type||typeof r.type!="string")throw new TypeError("missing fb.type");(!r.parameter||typeof r.parameter!="string")&&(r.parameter="")}function $N(r){if(typeof r!="object")throw new TypeError("ext is not an object");if(r.kind!=="audio"&&r.kind!=="video")throw new TypeError("invalid ext.kind");if(!r.uri||typeof r.uri!="string")throw new TypeError("missing ext.uri");if(typeof r.preferredId!="number")throw new TypeError("missing ext.preferredId");if(r.preferredEncrypt&&typeof r.preferredEncrypt!="boolean")throw new TypeError("invalid ext.preferredEncrypt");if(r.preferredEncrypt||(r.preferredEncrypt=!1),r.direction&&typeof r.direction!="string")throw new TypeError("invalid ext.direction");r.direction||(r.direction="sendrecv")}function KN(r){let e=new RegExp("^(audio|video)/(.+)","i");if(typeof r!="object")throw new TypeError("codec is not an object");if(!r.mimeType||typeof r.mimeType!="string")throw new TypeError("missing codec.mimeType");let t=e.exec(r.mimeType);if(!t)throw new TypeError("invalid codec.mimeType");if(typeof r.payloadType!="number")throw new TypeError("missing codec.payloadType");if(typeof r.clockRate!="number")throw new TypeError("missing codec.clockRate");t[1].toLowerCase()==="audio"?typeof r.channels!="number"&&(r.channels=1):delete r.channels,(!r.parameters||typeof r.parameters!="object")&&(r.parameters={});for(let n of Object.keys(r.parameters)){let i=r.parameters[n];if(i===void 0&&(r.parameters[n]="",i=""),typeof i!="string"&&typeof i!="number")throw new TypeError(`invalid codec parameter [key:${n}s, value:${i}]`);if(n==="apt"&&typeof i!="number")throw new TypeError("invalid codec apt parameter")}(!r.rtcpFeedback||!Array.isArray(r.rtcpFeedback))&&(r.rtcpFeedback=[]);for(let n of r.rtcpFeedback)NE(n)}function WN(r){if(typeof r!="object")throw new TypeError("ext is not an object");if(!r.uri||typeof r.uri!="string")throw new TypeError("missing ext.uri");if(typeof r.id!="number")throw new TypeError("missing ext.id");if(r.encrypt&&typeof r.encrypt!="boolean")throw new TypeError("invalid ext.encrypt");r.encrypt||(r.encrypt=!1),(!r.parameters||typeof r.parameters!="object")&&(r.parameters={});for(let e of Object.keys(r.parameters)){let t=r.parameters[e];if(t===void 0&&(r.parameters[e]="",t=""),typeof t!="string"&&typeof t!="number")throw new TypeError("invalid header extension parameter")}}function GN(r){if(typeof r!="object")throw new TypeError("encoding is not an object");if(r.ssrc&&typeof r.ssrc!="number")throw new TypeError("invalid encoding.ssrc");if(r.rid&&typeof r.rid!="string")throw new TypeError("invalid encoding.rid");if(r.rtx&&typeof r.rtx!="object")throw new TypeError("invalid encoding.rtx");if(r.rtx&&typeof r.rtx.ssrc!="number")throw new TypeError("missing encoding.rtx.ssrc");if((!r.dtx||typeof r.dtx!="boolean")&&(r.dtx=!1),r.scalabilityMode&&typeof r.scalabilityMode!="string")throw new TypeError("invalid encoding.scalabilityMode")}function XN(r){if(typeof r!="object")throw new TypeError("rtcp is not an object");if(r.cname&&typeof r.cname!="string")throw new TypeError("invalid rtcp.cname");(!r.reducedSize||typeof r.reducedSize!="boolean")&&(r.reducedSize=!0)}function YN(r){if(typeof r!="object")throw new TypeError("numStreams is not an object");if(typeof r.OS!="number")throw new TypeError("missing numStreams.OS");if(typeof r.MIS!="number")throw new TypeError("missing numStreams.MIS")}function OE({direction:r,extendedRtpCapabilities:e}){let t={codecs:[],headerExtensions:[]};for(let s of e.codecs){let n={kind:s.kind,mimeType:s.mimeType,preferredPayloadType:s.remotePayloadType,clockRate:s.clockRate,channels:s.channels,parameters:s.localParameters,rtcpFeedback:s.rtcpFeedback};if(t.codecs.push(n),!s.remoteRtxPayloadType)continue;let i={kind:s.kind,mimeType:`${s.kind}/rtx`,preferredPayloadType:s.remoteRtxPayloadType,clockRate:s.clockRate,parameters:{apt:s.remotePayloadType},rtcpFeedback:[]};t.codecs.push(i)}for(let s of e.headerExtensions){if(s.direction!=="sendrecv"&&s.direction!==r)continue;let n={kind:s.kind,uri:s.uri,preferredId:s.recvId,preferredEncrypt:s.encrypt??!1,direction:s.direction};t.headerExtensions.push(n)}return t}function bd(r){return r?/.+\/rtx$/i.test(r.mimeType):!1}function Ny(r,e,{strict:t=!1,modify:s=!1}={}){let n=r.mimeType.toLowerCase(),i=e.mimeType.toLowerCase();if(n!==i||r.clockRate!==e.clockRate||r.channels!==e.channels)return!1;switch(n){case"video/h264":{if(t){let o=r.parameters["packetization-mode"]??0,a=e.parameters["packetization-mode"]??0;if(o!==a||!PE.isSameProfile(r.parameters,e.parameters))return!1;let c;try{c=PE.generateProfileLevelIdStringForAnswer(r.parameters,e.parameters)}catch{return!1}s&&(c?(r.parameters["profile-level-id"]=c,e.parameters["profile-level-id"]=c):(delete r.parameters["profile-level-id"],delete e.parameters["profile-level-id"]))}break}case"video/vp9":{if(t){let o=r.parameters["profile-id"]??0,a=e.parameters["profile-id"]??0;if(o!==a)return!1}break}}return!0}function QN(r,e){return!(r.kind&&e.kind&&r.kind!==e.kind||r.uri!==e.uri)}function BE(r,e){let t=[];for(let s of r.rtcpFeedback??[]){let n=(e.rtcpFeedback??[]).find(i=>i.type===s.type&&(i.parameter===s.parameter||!i.parameter&&!s.parameter));n&&t.push(n)}return t}});var LE=ee(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});o0.Logger=void 0;var vd=gf(),wd="awaitqueue",Ly=class{_debug;_warn;_error;constructor(e){e?(this._debug=vd(`${wd}:${e}`),this._warn=vd(`${wd}:WARN:${e}`),this._error=vd(`${wd}:ERROR:${e}`)):(this._debug=vd(wd),this._warn=vd(`${wd}:WARN`),this._error=vd(`${wd}:ERROR`)),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}};o0.Logger=Ly});var Uy=ee(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.AwaitQueueRemovedTaskError=Sd.AwaitQueueStoppedError=void 0;var Dy=class r extends Error{constructor(e){super(e??"queue stopped"),this.name="AwaitQueueStoppedError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,r)}};Sd.AwaitQueueStoppedError=Dy;var My=class r extends Error{constructor(e){super(e??"queue task removed"),this.name="AwaitQueueRemovedTaskError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,r)}};Sd.AwaitQueueRemovedTaskError=My});var DE=ee(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});a0.AwaitQueue=void 0;var JN=LE(),jy=Uy(),yi=new JN.Logger("AwaitQueue"),Hy=class{pendingTasks=new Map;nextTaskId=0;constructor(){yi.debug("constructor()")}get size(){return this.pendingTasks.size}async push(e,t,s){if(t=t??e.name,yi.debug(`push() [name:${t}, options:%o]`,s),typeof e!="function")throw new TypeError("given task is not a function");if(t)try{Object.defineProperty(e,"name",{value:t})}catch{}return new Promise((n,i)=>{if(t&&s?.removeOngoingTasksWithSameName)for(let a of this.pendingTasks.values())a.name===t&&a.reject(new jy.AwaitQueueRemovedTaskError,{canExecuteNextTask:!1});let o={id:this.nextTaskId++,task:e,name:t,enqueuedAt:Date.now(),executedAt:void 0,completed:!1,resolve:a=>{if(o.completed)return;o.completed=!0,this.pendingTasks.delete(o.id),yi.debug(`resolving task [name:${o.name}]`),n(a);let[c]=this.pendingTasks.values();c&&!c.executedAt&&this.execute(c)},reject:(a,{canExecuteNextTask:c})=>{if(!o.completed&&(o.completed=!0,this.pendingTasks.delete(o.id),yi.debug(`rejecting task [name:${o.name}]: %s`,String(a)),i(a),c)){let[d]=this.pendingTasks.values();d&&!d.executedAt&&this.execute(d)}}};this.pendingTasks.set(o.id,o),this.pendingTasks.size===1&&this.execute(o)})}stop(){yi.debug("stop()");for(let e of this.pendingTasks.values())yi.debug(`stop() | stopping task [name:${e.name}]`),e.reject(new jy.AwaitQueueStoppedError,{canExecuteNextTask:!1})}remove(e){yi.debug(`remove() [taskIdx:${e}]`);let t=Array.from(this.pendingTasks.values())[e];if(!t){yi.debug(`stop() | no task with given idx [taskIdx:${e}]`);return}t.reject(new jy.AwaitQueueRemovedTaskError,{canExecuteNextTask:!0})}dump(){let e=Date.now(),t=0;return Array.from(this.pendingTasks.values()).map(s=>({idx:t++,task:s.task,name:s.name,enqueuedTime:s.executedAt?s.executedAt-s.enqueuedAt:e-s.enqueuedAt,executionTime:s.executedAt?e-s.executedAt:0}))}async execute(e){if(yi.debug(`execute() [name:${e.name}]`),e.executedAt)throw new Error("task already being executed");e.executedAt=Date.now();try{let t=await e.task();e.resolve(t)}catch(t){e.reject(t,{canExecuteNextTask:!0})}}};a0.AwaitQueue=Hy});var UE=ee(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.AwaitQueueRemovedTaskError=go.AwaitQueueStoppedError=go.AwaitQueue=void 0;var ZN=DE();Object.defineProperty(go,"AwaitQueue",{enumerable:!0,get:function(){return ZN.AwaitQueue}});var ME=Uy();Object.defineProperty(go,"AwaitQueueStoppedError",{enumerable:!0,get:function(){return ME.AwaitQueueStoppedError}});Object.defineProperty(go,"AwaitQueueRemovedTaskError",{enumerable:!0,get:function(){return ME.AwaitQueueRemovedTaskError}})});var HE=ee(c0=>{"use strict";Object.defineProperty(c0,"__esModule",{value:!0});c0.Producer=void 0;var eO=Yr(),jE=as(),_d=Ls(),kn=new eO.Logger("Producer"),Fy=class extends jE.EnhancedEventEmitter{_id;_localId;_closed=!1;_rtpSender;_track;_kind;_rtpParameters;_paused;_maxSpatialLayer;_stopTracks;_disableTrackOnPause;_zeroRtpOnPause;_appData;_observer=new jE.EnhancedEventEmitter;constructor({id:e,localId:t,rtpSender:s,track:n,rtpParameters:i,stopTracks:o,disableTrackOnPause:a,zeroRtpOnPause:c,appData:d}){super(),kn.debug("constructor()"),this._id=e,this._localId=t,this._rtpSender=s,this._track=n,this._kind=n.kind,this._rtpParameters=i,this._paused=a?!n.enabled:!1,this._maxSpatialLayer=void 0,this._stopTracks=o,this._disableTrackOnPause=a,this._zeroRtpOnPause=c,this._appData=d??{},this.onTrackEnded=this.onTrackEnded.bind(this),this.handleTrack()}get id(){return this._id}get localId(){return this._localId}get closed(){return this._closed}get kind(){return this._kind}get rtpSender(){return this._rtpSender}get track(){return this._track}get rtpParameters(){return this._rtpParameters}get paused(){return this._paused}get maxSpatialLayer(){return this._maxSpatialLayer}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){this._closed||(kn.debug("close()"),this._closed=!0,this.destroyTrack(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(kn.debug("transportClosed()"),this._closed=!0,this.destroyTrack(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}async getStats(){if(this._closed)throw new _d.InvalidStateError("closed");return new Promise((e,t)=>{this.safeEmit("@getstats",e,t)})}pause(){if(kn.debug("pause()"),this._closed){kn.error("pause() | Producer closed");return}this._paused=!0,this._track&&this._disableTrackOnPause&&(this._track.enabled=!1),this._zeroRtpOnPause&&new Promise((e,t)=>{this.safeEmit("@pause",e,t)}).catch(()=>{}),this._observer.safeEmit("pause")}resume(){if(kn.debug("resume()"),this._closed){kn.error("resume() | Producer closed");return}this._paused=!1,this._track&&this._disableTrackOnPause&&(this._track.enabled=!0),this._zeroRtpOnPause&&new Promise((e,t)=>{this.safeEmit("@resume",e,t)}).catch(()=>{}),this._observer.safeEmit("resume")}async replaceTrack({track:e}){if(kn.debug("replaceTrack() [track:%o]",e),this._closed){if(e&&this._stopTracks)try{e.stop()}catch{}throw new _d.InvalidStateError("closed")}else if(e?.readyState==="ended")throw new _d.InvalidStateError("track ended");if(e===this._track){kn.debug("replaceTrack() | same track, ignored");return}await new Promise((t,s)=>{this.safeEmit("@replacetrack",e,t,s)}),this.destroyTrack(),this._track=e,this._track&&this._disableTrackOnPause&&(this._paused?this._paused&&(this._track.enabled=!1):this._track.enabled=!0),this.handleTrack()}async setMaxSpatialLayer(e){if(this._closed)throw new _d.InvalidStateError("closed");if(this._kind!=="video")throw new _d.UnsupportedError("not a video Producer");if(typeof e!="number")throw new TypeError("invalid spatialLayer");e!==this._maxSpatialLayer&&(await new Promise((t,s)=>{this.safeEmit("@setmaxspatiallayer",e,t,s)}).catch(()=>{}),this._maxSpatialLayer=e)}async setRtpEncodingParameters(e){if(this._closed)throw new _d.InvalidStateError("closed");if(typeof e!="object")throw new TypeError("invalid params");await new Promise((t,s)=>{this.safeEmit("@setrtpencodingparameters",e,t,s)})}onTrackEnded(){kn.debug('track "ended" event'),this.safeEmit("trackended"),this._observer.safeEmit("trackended")}handleTrack(){this._track&&this._track.addEventListener("ended",this.onTrackEnded)}destroyTrack(){if(this._track)try{this._track.removeEventListener("ended",this.onTrackEnded),this._stopTracks&&this._track.stop()}catch{}}};c0.Producer=Fy});var qE=ee(d0=>{"use strict";Object.defineProperty(d0,"__esModule",{value:!0});d0.Consumer=void 0;var tO=Yr(),FE=as(),rO=Ls(),Pn=new tO.Logger("Consumer"),qy=class extends FE.EnhancedEventEmitter{_id;_localId;_producerId;_closed=!1;_rtpReceiver;_track;_rtpParameters;_paused;_appData;_observer=new FE.EnhancedEventEmitter;constructor({id:e,localId:t,producerId:s,rtpReceiver:n,track:i,rtpParameters:o,appData:a}){super(),Pn.debug("constructor()"),this._id=e,this._localId=t,this._producerId=s,this._rtpReceiver=n,this._track=i,this._rtpParameters=o,this._paused=!i.enabled,this._appData=a??{},this.onTrackEnded=this.onTrackEnded.bind(this),this.handleTrack()}get id(){return this._id}get localId(){return this._localId}get producerId(){return this._producerId}get closed(){return this._closed}get kind(){return this._track.kind}get rtpReceiver(){return this._rtpReceiver}get track(){return this._track}get rtpParameters(){return this._rtpParameters}get paused(){return this._paused}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){this._closed||(Pn.debug("close()"),this._closed=!0,this.destroyTrack(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(Pn.debug("transportClosed()"),this._closed=!0,this.destroyTrack(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}async getStats(){if(this._closed)throw new rO.InvalidStateError("closed");return new Promise((e,t)=>{this.safeEmit("@getstats",e,t)})}pause(){if(Pn.debug("pause()"),this._closed){Pn.error("pause() | Consumer closed");return}if(this._paused){Pn.debug("pause() | Consumer is already paused");return}this._paused=!0,this._track.enabled=!1,this.emit("@pause"),this._observer.safeEmit("pause")}resume(){if(Pn.debug("resume()"),this._closed){Pn.error("resume() | Consumer closed");return}if(!this._paused){Pn.debug("resume() | Consumer is already resumed");return}this._paused=!1,this._track.enabled=!0,this.emit("@resume"),this._observer.safeEmit("resume")}onTrackEnded(){Pn.debug('track "ended" event'),this.safeEmit("trackended"),this._observer.safeEmit("trackended")}handleTrack(){this._track.addEventListener("ended",this.onTrackEnded)}destroyTrack(){try{this._track.removeEventListener("ended",this.onTrackEnded),this._track.stop()}catch{}}};d0.Consumer=qy});var VE=ee(u0=>{"use strict";Object.defineProperty(u0,"__esModule",{value:!0});u0.DataProducer=void 0;var sO=Yr(),zE=as(),nO=Ls(),bi=new sO.Logger("DataProducer"),zy=class extends zE.EnhancedEventEmitter{_id;_dataChannel;_closed=!1;_sctpStreamParameters;_appData;_observer=new zE.EnhancedEventEmitter;constructor({id:e,dataChannel:t,sctpStreamParameters:s,appData:n}){super(),bi.debug("constructor()"),this._id=e,this._dataChannel=t,this._sctpStreamParameters=s,this._appData=n??{},this.handleDataChannel()}get id(){return this._id}get closed(){return this._closed}get sctpStreamParameters(){return this._sctpStreamParameters}get readyState(){return this._dataChannel.readyState}get label(){return this._dataChannel.label}get protocol(){return this._dataChannel.protocol}get bufferedAmount(){return this._dataChannel.bufferedAmount}get bufferedAmountLowThreshold(){return this._dataChannel.bufferedAmountLowThreshold}set bufferedAmountLowThreshold(e){this._dataChannel.bufferedAmountLowThreshold=e}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){this._closed||(bi.debug("close()"),this._closed=!0,this._dataChannel.close(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(bi.debug("transportClosed()"),this._closed=!0,this._dataChannel.close(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}send(e){if(bi.debug("send()"),this._closed)throw new nO.InvalidStateError("closed");this._dataChannel.send(e)}handleDataChannel(){this._dataChannel.addEventListener("open",()=>{this._closed||(bi.debug('DataChannel "open" event'),this.safeEmit("open"))}),this._dataChannel.addEventListener("error",e=>{if(this._closed)return;let t=e.error??new Error("unknown DataChannel error");e.error?.errorDetail==="sctp-failure"?bi.error("DataChannel SCTP error [sctpCauseCode:%s]: %s",e.error?.sctpCauseCode,e.error.message):bi.error('DataChannel "error" event: %o',t),this.safeEmit("error",t)}),this._dataChannel.addEventListener("close",()=>{this._closed||(bi.warn('DataChannel "close" event'),this._closed=!0,this.emit("@close"),this.safeEmit("close"),this._observer.safeEmit("close"))}),this._dataChannel.addEventListener("message",()=>{this._closed||bi.warn('DataChannel "message" event in a DataProducer, message discarded')}),this._dataChannel.addEventListener("bufferedamountlow",()=>{this._closed||this.safeEmit("bufferedamountlow")})}};u0.DataProducer=zy});var KE=ee(f0=>{"use strict";Object.defineProperty(f0,"__esModule",{value:!0});f0.DataConsumer=void 0;var iO=Yr(),$E=as(),ka=new iO.Logger("DataConsumer"),Vy=class extends $E.EnhancedEventEmitter{_id;_dataProducerId;_dataChannel;_closed=!1;_sctpStreamParameters;_appData;_observer=new $E.EnhancedEventEmitter;constructor({id:e,dataProducerId:t,dataChannel:s,sctpStreamParameters:n,appData:i}){super(),ka.debug("constructor()"),this._id=e,this._dataProducerId=t,this._dataChannel=s,this._sctpStreamParameters=n,this._appData=i??{},this.handleDataChannel()}get id(){return this._id}get dataProducerId(){return this._dataProducerId}get closed(){return this._closed}get sctpStreamParameters(){return this._sctpStreamParameters}get readyState(){return this._dataChannel.readyState}get label(){return this._dataChannel.label}get protocol(){return this._dataChannel.protocol}get binaryType(){return this._dataChannel.binaryType}set binaryType(e){this._dataChannel.binaryType=e}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){this._closed||(ka.debug("close()"),this._closed=!0,this._dataChannel.close(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(ka.debug("transportClosed()"),this._closed=!0,this._dataChannel.close(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}handleDataChannel(){this._dataChannel.addEventListener("open",()=>{this._closed||(ka.debug('DataChannel "open" event'),this.safeEmit("open"))}),this._dataChannel.addEventListener("error",e=>{if(this._closed)return;let t=e.error??new Error("unknown DataChannel error");e.error?.errorDetail==="sctp-failure"?ka.error("DataChannel SCTP error [sctpCauseCode:%s]: %s",e.error?.sctpCauseCode,e.error.message):ka.error('DataChannel "error" event: %o',t),this.safeEmit("error",t)}),this._dataChannel.addEventListener("close",()=>{this._closed||(ka.warn('DataChannel "close" event'),this._closed=!0,this.emit("@close"),this.safeEmit("close"),this._observer.safeEmit("close"))}),this._dataChannel.addEventListener("message",e=>{this._closed||this.safeEmit("message",e.data)})}};f0.DataConsumer=Vy});var GE=ee(l0=>{"use strict";Object.defineProperty(l0,"__esModule",{value:!0});l0.Transport=void 0;var oO=UE(),aO=Yr(),WE=as(),xr=Ls(),$y=Ia(),yf=Rn(),cO=HE(),dO=qE(),uO=VE(),fO=KE(),dr=new aO.Logger("Transport"),Ky=class{consumerOptions;promise;resolve;reject;constructor(e){this.consumerOptions=e,this.promise=new Promise((t,s)=>{this.resolve=t,this.reject=s})}},Wy=class extends WE.EnhancedEventEmitter{_id;_closed=!1;_direction;_getSendExtendedRtpCapabilities;_recvRtpCapabilities;_canProduceByKind;_maxSctpMessageSize;_handler;_iceGatheringState="new";_connectionState="new";_appData;_producers=new Map;_consumers=new Map;_dataProducers=new Map;_dataConsumers=new Map;_probatorConsumerCreated=!1;_awaitQueue=new oO.AwaitQueue;_pendingConsumerTasks=[];_consumerCreationInProgress=!1;_pendingPauseConsumers=new Map;_consumerPauseInProgress=!1;_pendingResumeConsumers=new Map;_consumerResumeInProgress=!1;_pendingCloseConsumers=new Map;_consumerCloseInProgress=!1;_observer=new WE.EnhancedEventEmitter;constructor({direction:e,id:t,iceParameters:s,iceCandidates:n,dtlsParameters:i,sctpParameters:o,iceServers:a,iceTransportPolicy:c,additionalSettings:d,appData:u,handlerFactory:l,getSendExtendedRtpCapabilities:h,recvRtpCapabilities:x,canProduceByKind:v}){super(),dr.debug("constructor() [id:%s, direction:%s]",t,e),this._id=t,this._direction=e,this._getSendExtendedRtpCapabilities=h,this._recvRtpCapabilities=x,this._canProduceByKind=v,this._maxSctpMessageSize=o?.maxMessageSize;let S=$y.clone(d)??{};delete S.iceServers,delete S.iceTransportPolicy,delete S.bundlePolicy,delete S.rtcpMuxPolicy,this._handler=l.factory({direction:e,iceParameters:s,iceCandidates:n,dtlsParameters:i,sctpParameters:o,iceServers:a,iceTransportPolicy:c,additionalSettings:S,getSendExtendedRtpCapabilities:this._getSendExtendedRtpCapabilities}),this._appData=u??{},this.handleHandler()}get id(){return this._id}get closed(){return this._closed}get direction(){return this._direction}get handler(){return this._handler}get iceGatheringState(){return this._iceGatheringState}get connectionState(){return this._connectionState}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){if(!this._closed){dr.debug("close()"),this._closed=!0,this._awaitQueue.stop(),this._handler.close(),this._connectionState="closed";for(let e of this._producers.values())e.transportClosed();this._producers.clear();for(let e of this._consumers.values())e.transportClosed();this._consumers.clear();for(let e of this._dataProducers.values())e.transportClosed();this._dataProducers.clear();for(let e of this._dataConsumers.values())e.transportClosed();this._dataConsumers.clear(),this._observer.safeEmit("close"),super.close(),this._observer.close()}}async getStats(){if(this._closed)throw new xr.InvalidStateError("closed");return this._handler.getTransportStats()}async restartIce({iceParameters:e}){if(dr.debug("restartIce()"),this._closed)throw new xr.InvalidStateError("closed");if(!e)throw new TypeError("missing iceParameters");return this._awaitQueue.push(async()=>await this._handler.restartIce(e),"transport.restartIce()")}async updateIceServers({iceServers:e}={}){if(dr.debug("updateIceServers()"),this._closed)throw new xr.InvalidStateError("closed");if(!Array.isArray(e))throw new TypeError("missing iceServers");return this._awaitQueue.push(async()=>this._handler.updateIceServers(e),"transport.updateIceServers()")}async produce({track:e,streamId:t,encodings:s,codecOptions:n,headerExtensionOptions:i,codec:o,stopTracks:a=!0,disableTrackOnPause:c=!0,zeroRtpOnPause:d=!1,onRtpSender:u,appData:l={}}={}){if(dr.debug("produce() [track:%o]",e),this._closed)throw new xr.InvalidStateError("closed");if(e){if(this._direction!=="send")throw new xr.UnsupportedError("not a sending Transport");if(this._canProduceByKind[e.kind]){if(e.readyState==="ended")throw new xr.InvalidStateError("track ended");if(this.listenerCount("connect")===0&&this._connectionState==="new")throw new TypeError('no "connect" listener set into this transport');if(this.listenerCount("produce")===0)throw new TypeError('no "produce" listener set into this transport');if(l&&typeof l!="object")throw new TypeError("if given, appData must be an object")}else throw new xr.UnsupportedError(`cannot produce ${e.kind}`)}else throw new TypeError("missing track");return this._awaitQueue.push(async()=>{let h;if(s&&!Array.isArray(s))throw TypeError("encodings must be an array");s?.length===0?h=void 0:s&&(h=s.map(C=>{let D={active:!0};return C.active===!1&&(D.active=!1),typeof C.dtx=="boolean"&&(D.dtx=C.dtx),typeof C.scalabilityMode=="string"&&(D.scalabilityMode=C.scalabilityMode),typeof C.scaleResolutionDownBy=="number"&&(D.scaleResolutionDownBy=C.scaleResolutionDownBy),typeof C.maxBitrate=="number"&&(D.maxBitrate=C.maxBitrate),typeof C.maxFramerate=="number"&&(D.maxFramerate=C.maxFramerate),typeof C.adaptivePtime=="boolean"&&(D.adaptivePtime=C.adaptivePtime),typeof C.priority=="string"&&(D.priority=C.priority),typeof C.networkPriority=="string"&&(D.networkPriority=C.networkPriority),D}));let{localId:x,rtpParameters:v,rtpSender:S}=await this._handler.send({track:e,streamId:t,encodings:h,codecOptions:n,headerExtensionOptions:i,codec:o,onRtpSender:u});try{yf.validateAndNormalizeRtpParameters(v);let{id:C}=await new Promise((re,G)=>{this.safeEmit("produce",{kind:e.kind,rtpParameters:v,appData:l},re,G)}),D=new cO.Producer({id:C,localId:x,rtpSender:S,track:e,rtpParameters:v,stopTracks:a,disableTrackOnPause:c,zeroRtpOnPause:d,appData:l});return this._producers.set(D.id,D),this.handleProducer(D),this._observer.safeEmit("newproducer",D),D}catch(C){throw this._handler.stopSending(x).catch(()=>{}),C}},"transport.produce()").catch(h=>{if(a)try{e.stop()}catch{}throw h})}async consume({id:e,producerId:t,kind:s,rtpParameters:n,streamId:i,onRtpReceiver:o,appData:a={}}){if(dr.debug("consume()"),this._closed)throw new xr.InvalidStateError("closed");if(this._direction!=="recv")throw new xr.UnsupportedError("not a receiving Transport");if(typeof e!="string")throw new TypeError("missing id");if(typeof t!="string")throw new TypeError("missing producerId");if(s!=="audio"&&s!=="video")throw new TypeError(`invalid kind '${s}'`);if(this.listenerCount("connect")===0&&this._connectionState==="new")throw new TypeError('no "connect" listener set into this transport');if(a&&typeof a!="object")throw new TypeError("if given, appData must be an object");let c=$y.clone(n);if(!yf.canReceive(c,this._recvRtpCapabilities))throw new xr.UnsupportedError("cannot consume this Producer");let u=new Ky({id:e,producerId:t,kind:s,rtpParameters:c,streamId:i,onRtpReceiver:o,appData:a});return this._pendingConsumerTasks.push(u),queueMicrotask(()=>{this._closed||this._consumerCreationInProgress===!1&&this.createPendingConsumers()}),u.promise}async produceData({ordered:e=!0,maxPacketLifeTime:t,maxRetransmits:s,label:n="",protocol:i="",appData:o={}}={}){if(dr.debug("produceData()"),this._closed)throw new xr.InvalidStateError("closed");if(this._direction!=="send")throw new xr.UnsupportedError("not a sending Transport");if(this._maxSctpMessageSize){if(this.listenerCount("connect")===0&&this._connectionState==="new")throw new TypeError('no "connect" listener set into this transport');if(this.listenerCount("producedata")===0)throw new TypeError('no "producedata" listener set into this transport');if(o&&typeof o!="object")throw new TypeError("if given, appData must be an object")}else throw new xr.UnsupportedError("SCTP not enabled by remote Transport");return(t||s)&&(e=!1),this._awaitQueue.push(async()=>{let{dataChannel:a,sctpStreamParameters:c}=await this._handler.sendDataChannel({sctpStreamParameters:{ordered:e,maxPacketLifeTime:t,maxRetransmits:s,label:n,protocol:i}});yf.validateAndNormalizeSctpStreamParameters(c);let{id:d}=await new Promise((l,h)=>{this.safeEmit("producedata",{sctpStreamParameters:c,label:n,protocol:i,appData:o},l,h)}),u=new uO.DataProducer({id:d,dataChannel:a,sctpStreamParameters:c,appData:o});return this._dataProducers.set(u.id,u),this.handleDataProducer(u),this._observer.safeEmit("newdataproducer",u),u},"transport.produceData()")}async consumeData({id:e,dataProducerId:t,sctpStreamParameters:s,label:n="",protocol:i="",appData:o={}}){if(dr.debug("consumeData()"),this._closed)throw new xr.InvalidStateError("closed");if(this._direction!=="recv")throw new xr.UnsupportedError("not a receiving Transport");if(this._maxSctpMessageSize){if(typeof e!="string")throw new TypeError("missing id");if(typeof t!="string")throw new TypeError("missing dataProducerId");if(this.listenerCount("connect")===0&&this._connectionState==="new")throw new TypeError('no "connect" listener set into this transport');if(o&&typeof o!="object")throw new TypeError("if given, appData must be an object")}else throw new xr.UnsupportedError("SCTP not enabled by remote Transport");let a=$y.clone(s);return yf.validateAndNormalizeSctpStreamParameters(a),this._awaitQueue.push(async()=>{let{dataChannel:c}=await this._handler.receiveDataChannel({maxMessageSize:this._maxSctpMessageSize,sctpStreamParameters:a,label:n,protocol:i}),d=new fO.DataConsumer({id:e,dataProducerId:t,dataChannel:c,sctpStreamParameters:a,appData:o});return this._dataConsumers.set(d.id,d),this.handleDataConsumer(d),this._observer.safeEmit("newdataconsumer",d),d},"transport.consumeData()")}getDataChannelMaxMessageSize(){return this._handler.getDataChannelMaxMessageSize()}createPendingConsumers(){this._consumerCreationInProgress=!0,this._awaitQueue.push(async()=>{if(this._pendingConsumerTasks.length===0){dr.debug("createPendingConsumers() | there is no Consumer to be created");return}let e=[...this._pendingConsumerTasks];this._pendingConsumerTasks=[];let t,s=[];for(let n of e){let{id:i,kind:o,rtpParameters:a,streamId:c,onRtpReceiver:d}=n.consumerOptions;s.push({trackId:i,kind:o,rtpParameters:a,streamId:c,onRtpReceiver:d})}try{let n=await this._handler.receive(s);for(let i=0;i<n.length;++i){let o=e[i],a=n[i],{id:c,producerId:d,kind:u,rtpParameters:l,appData:h}=o.consumerOptions,{localId:x,rtpReceiver:v,track:S}=a,C=new dO.Consumer({id:c,localId:x,producerId:d,rtpReceiver:v,track:S,rtpParameters:l,appData:h});this._consumers.set(C.id,C),this.handleConsumer(C),!this._probatorConsumerCreated&&!t&&u==="video"&&(t=C),this._observer.safeEmit("newconsumer",C),o.resolve(C)}}catch(n){for(let i of e)i.reject(n)}if(t)try{let n=yf.generateProbatorRtpParameters(t.rtpParameters);await this._handler.receive([{trackId:"probator",kind:"video",rtpParameters:n}]),dr.debug("createPendingConsumers() | Consumer for RTP probation created"),this._probatorConsumerCreated=!0}catch(n){dr.error("createPendingConsumers() | failed to create Consumer for RTP probation:%o",n)}},"transport.createPendingConsumers()").then(()=>{this._consumerCreationInProgress=!1,this._pendingConsumerTasks.length>0&&this.createPendingConsumers()}).catch(()=>{})}pausePendingConsumers(){this._consumerPauseInProgress=!0,this._awaitQueue.push(async()=>{if(this._pendingPauseConsumers.size===0){dr.debug("pausePendingConsumers() | there is no Consumer to be paused");return}let e=Array.from(this._pendingPauseConsumers.values());this._pendingPauseConsumers.clear();try{let t=e.map(s=>s.localId);await this._handler.pauseReceiving(t)}catch(t){dr.error("pausePendingConsumers() | failed to pause Consumers:",t)}},"transport.pausePendingConsumers()").then(()=>{this._consumerPauseInProgress=!1,this._pendingPauseConsumers.size>0&&this.pausePendingConsumers()}).catch(()=>{})}resumePendingConsumers(){this._consumerResumeInProgress=!0,this._awaitQueue.push(async()=>{if(this._pendingResumeConsumers.size===0){dr.debug("resumePendingConsumers() | there is no Consumer to be resumed");return}let e=Array.from(this._pendingResumeConsumers.values());this._pendingResumeConsumers.clear();try{let t=e.map(s=>s.localId);await this._handler.resumeReceiving(t)}catch(t){dr.error("resumePendingConsumers() | failed to resume Consumers:",t)}},"transport.resumePendingConsumers()").then(()=>{this._consumerResumeInProgress=!1,this._pendingResumeConsumers.size>0&&this.resumePendingConsumers()}).catch(()=>{})}closePendingConsumers(){this._consumerCloseInProgress=!0,this._awaitQueue.push(async()=>{if(this._pendingCloseConsumers.size===0){dr.debug("closePendingConsumers() | there is no Consumer to be closed");return}let e=Array.from(this._pendingCloseConsumers.values());this._pendingCloseConsumers.clear();try{await this._handler.stopReceiving(e.map(t=>t.localId))}catch(t){dr.error("closePendingConsumers() | failed to close Consumers:",t)}},"transport.closePendingConsumers()").then(()=>{this._consumerCloseInProgress=!1,this._pendingCloseConsumers.size>0&&this.closePendingConsumers()}).catch(()=>{})}handleHandler(){let e=this._handler;e.on("@connect",({dtlsParameters:t},s,n)=>{if(this._closed){n(new xr.InvalidStateError("closed"));return}this.safeEmit("connect",{dtlsParameters:t},s,n)}),e.on("@icegatheringstatechange",t=>{t!==this._iceGatheringState&&(dr.debug("ICE gathering state changed to %s",t),this._iceGatheringState=t,this._closed||this.safeEmit("icegatheringstatechange",t))}),e.on("@icecandidateerror",t=>{dr.warn(`ICE candidate error [url:${t.url}, localAddress:${t.address}, localPort:${t.port}]: ${t.errorCode} "${t.errorText}"`),this.safeEmit("icecandidateerror",t)}),e.on("@connectionstatechange",t=>{t!==this._connectionState&&(dr.debug("connection state changed to %s",t),this._connectionState=t,this._closed||this.safeEmit("connectionstatechange",t))})}handleProducer(e){e.on("@close",()=>{this._producers.delete(e.id),!this._closed&&this._awaitQueue.push(async()=>await this._handler.stopSending(e.localId),"producer @close event").catch(t=>dr.warn("producer.close() failed:%o",t))}),e.on("@pause",(t,s)=>{this._awaitQueue.push(async()=>await this._handler.pauseSending(e.localId),"producer @pause event").then(t).catch(s)}),e.on("@resume",(t,s)=>{this._awaitQueue.push(async()=>await this._handler.resumeSending(e.localId),"producer @resume event").then(t).catch(s)}),e.on("@replacetrack",(t,s,n)=>{this._awaitQueue.push(async()=>await this._handler.replaceTrack(e.localId,t),"producer @replacetrack event").then(s).catch(n)}),e.on("@setmaxspatiallayer",(t,s,n)=>{this._awaitQueue.push(async()=>await this._handler.setMaxSpatialLayer(e.localId,t),"producer @setmaxspatiallayer event").then(s).catch(n)}),e.on("@setrtpencodingparameters",(t,s,n)=>{this._awaitQueue.push(async()=>await this._handler.setRtpEncodingParameters(e.localId,t),"producer @setrtpencodingparameters event").then(s).catch(n)}),e.on("@getstats",(t,s)=>{if(this._closed)return s(new xr.InvalidStateError("closed"));this._handler.getSenderStats(e.localId).then(t).catch(s)})}handleConsumer(e){e.on("@close",()=>{this._consumers.delete(e.id),this._pendingPauseConsumers.delete(e.id),this._pendingResumeConsumers.delete(e.id),!this._closed&&(this._pendingCloseConsumers.set(e.id,e),this._consumerCloseInProgress===!1&&this.closePendingConsumers())}),e.on("@pause",()=>{this._pendingResumeConsumers.has(e.id)&&this._pendingResumeConsumers.delete(e.id),this._pendingPauseConsumers.set(e.id,e),queueMicrotask(()=>{this._closed||this._consumerPauseInProgress===!1&&this.pausePendingConsumers()})}),e.on("@resume",()=>{this._pendingPauseConsumers.has(e.id)&&this._pendingPauseConsumers.delete(e.id),this._pendingResumeConsumers.set(e.id,e),queueMicrotask(()=>{this._closed||this._consumerResumeInProgress===!1&&this.resumePendingConsumers()})}),e.on("@getstats",(t,s)=>{if(this._closed)return s(new xr.InvalidStateError("closed"));this._handler.getReceiverStats(e.localId).then(t).catch(s)})}handleDataProducer(e){e.on("@close",()=>{this._dataProducers.delete(e.id)})}handleDataConsumer(e){e.on("@close",()=>{this._dataConsumers.delete(e.id)})}};l0.Transport=Wy});var h0=ee((o$,YE)=>{"use strict";var XE=YE.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(r){return r.encoding?"rtpmap:%d %s/%s/%s":r.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(r){return r.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(r){return r.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(r){return"extmap:%d"+(r.direction?"/%s":"%v")+(r["encrypt-uri"]?" %s":"%v")+" %s"+(r.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(r){return r.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{push:"msid",reg:/^msid:([\w-]+)(?: ([\w-]+))?/,names:["id","appdata"],format:"msid:%s %s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(r){var e="candidate:%s %d %s %d %s %d typ %s";return e+=r.raddr!=null?" raddr %s rport %d":"%v%v",e+=r.tcptype!=null?" tcptype %s":"%v",r.generation!=null&&(e+=" generation %d"),e+=r["network-id"]!=null?" network-id %d":"%v",e+=r["network-cost"]!=null?" network-cost %d":"%v",e}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(r){var e="ssrc:%d";return r.attribute!=null&&(e+=" %s",r.value!=null&&(e+=":%s")),e}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(r){return r.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(r){return r.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(r){return"imageattr:%s %s %s"+(r.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(r){return"simulcast:%s %s"+(r.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(r){return"ts-refclk:%s"+(r.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(r){var e="mediaclk:";return e+=r.id!=null?"id=%s %s":"%v%s",e+=r.mediaClockValue!=null?"=%s":"",e+=r.rateNumerator!=null?" rate=%s":"",e+=r.rateDenominator!=null?"/%s":"",e}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(XE).forEach(function(r){var e=XE[r];e.forEach(function(t){t.reg||(t.reg=/(.*)/),t.format||(t.format="%s")})})});var ZE=ee(vi=>{"use strict";var Ed=function(r){return String(Number(r))===r?Number(r):r},lO=function(r,e,t,s){if(s&&!t)e[s]=Ed(r[1]);else for(var n=0;n<t.length;n+=1)r[n+1]!=null&&(e[t[n]]=Ed(r[n+1]))},hO=function(r,e,t){var s=r.name&&r.names;r.push&&!e[r.push]?e[r.push]=[]:s&&!e[r.name]&&(e[r.name]={});var n=r.push?{}:s?e[r.name]:e;lO(t.match(r.reg),n,r.names,r.name),r.push&&e[r.push].push(n)},QE=h0(),pO=RegExp.prototype.test.bind(/^([a-z])=(.*)/);vi.parse=function(r){var e={},t=[],s=e;return r.split(/(\r\n|\r|\n)/).filter(pO).forEach(function(n){var i=n[0],o=n.slice(2);i==="m"&&(t.push({rtp:[],fmtp:[]}),s=t[t.length-1]);for(var a=0;a<(QE[i]||[]).length;a+=1){var c=QE[i][a];if(c.reg.test(o))return hO(c,s,o)}}),e.media=t,e};var JE=function(r,e){var t=e.split(/=(.+)/,2);return t.length===2?r[t[0]]=Ed(t[1]):t.length===1&&e.length>1&&(r[t[0]]=void 0),r};vi.parseParams=function(r){return r.split(/;\s?/).reduce(JE,{})};vi.parseFmtpConfig=vi.parseParams;vi.parsePayloads=function(r){return r.toString().split(" ").map(Number)};vi.parseRemoteCandidates=function(r){for(var e=[],t=r.split(" ").map(Ed),s=0;s<t.length;s+=3)e.push({component:t[s],ip:t[s+1],port:t[s+2]});return e};vi.parseImageAttributes=function(r){return r.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(JE,{})})};vi.parseSimulcastStreamList=function(r){return r.split(";").map(function(e){return e.split(",").map(function(t){var s,n=!1;return t[0]!=="~"?s=Ed(t):(s=Ed(t.substring(1,t.length)),n=!0),{scid:s,paused:n}})})}});var tC=ee((c$,eC)=>{"use strict";var Gy=h0(),mO=/%[sdv%]/g,gO=function(r){var e=1,t=arguments,s=t.length;return r.replace(mO,function(n){if(e>=s)return n;var i=t[e];switch(e+=1,n){case"%%":return"%";case"%s":return String(i);case"%d":return Number(i);case"%v":return""}})},bf=function(r,e,t){var s=e.format instanceof Function?e.format(e.push?t:t[e.name]):e.format,n=[r+"="+s];if(e.names)for(var i=0;i<e.names.length;i+=1){var o=e.names[i];e.name?n.push(t[e.name][o]):n.push(t[e.names[i]])}else n.push(t[e.name]);return gO.apply(null,n)},xO=["v","o","s","i","u","e","p","c","b","t","r","z","a"],yO=["i","c","b","a"];eC.exports=function(r,e){e=e||{},r.version==null&&(r.version=0),r.name==null&&(r.name=" "),r.media.forEach(function(i){i.payloads==null&&(i.payloads="")});var t=e.outerOrder||xO,s=e.innerOrder||yO,n=[];return t.forEach(function(i){Gy[i].forEach(function(o){o.name in r&&r[o.name]!=null?n.push(bf(i,o,r)):o.push in r&&r[o.push]!=null&&r[o.push].forEach(function(a){n.push(bf(i,o,a))})})}),r.media.forEach(function(i){n.push(bf("m",Gy.m[0],i)),s.forEach(function(o){Gy[o].forEach(function(a){a.name in i&&i[a.name]!=null?n.push(bf(o,a,i)):a.push in i&&i[a.push]!=null&&i[a.push].forEach(function(c){n.push(bf(o,a,c))})})})}),n.join(`\r
|
|
3
|
+
`+n),s.push(i+"m+"+Rt.exports.humanize(this.diff)+"\x1B[0m")}else s[0]=Un()+e+" "+s[0]}function Un(){return F.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Vn(...s){return process.stderr.write(Ct.formatWithOptions(F.inspectOpts,...s)+`
|
|
4
|
+
`)}function Wn(s){s?process.env.DEBUG=s:delete process.env.DEBUG}function Hn(){return process.env.DEBUG}function Gn(s){s.inspectOpts={};let e=Object.keys(F.inspectOpts);for(let t=0;t<e.length;t++)s.inspectOpts[e[t]]=F.inspectOpts[e[t]]}Rt.exports=lr()(F);var{formatters:Rs}=Rt.exports;Rs.o=function(s){return this.inspectOpts.colors=this.useColors,Ct.inspect(s,this.inspectOpts).split(`
|
|
5
|
+
`).map(e=>e.trim()).join(" ")};Rs.O=function(s){return this.inspectOpts.colors=this.useColors,Ct.inspect(s,this.inspectOpts)}});var tt=C((Jc,fr)=>{"use strict";typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?fr.exports=ys():fr.exports=Ts()});var xs=C(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0})});var $=C(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.Logger=void 0;var Me=tt(),Ie="media-client",mr=class{_debug;_warn;_error;constructor(e){e?(this._debug=(0,Me.default)(`${Ie}:${e}`),this._warn=(0,Me.default)(`${Ie}:WARN:${e}`),this._error=(0,Me.default)(`${Ie}:ERROR:${e}`)):(this._debug=(0,Me.default)(Ie),this._warn=(0,Me.default)(`${Ie}:WARN`),this._error=(0,Me.default)(`${Ie}:ERROR`)),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}};Tt.Logger=mr});var js=C((ed,gr)=>{"use strict";var Oe=typeof Reflect=="object"?Reflect:null,ks=Oe&&typeof Oe.apply=="function"?Oe.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)},Et;Oe&&typeof Oe.ownKeys=="function"?Et=Oe.ownKeys:Object.getOwnPropertySymbols?Et=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Et=function(e){return Object.getOwnPropertyNames(e)};function Kn(s){console&&console.warn&&console.warn(s)}var Ds=Number.isNaN||function(e){return e!==e};function D(){D.init.call(this)}gr.exports=D;gr.exports.once=Xn;D.EventEmitter=D;D.prototype._events=void 0;D.prototype._eventsCount=0;D.prototype._maxListeners=void 0;var Ps=10;function xt(s){if(typeof s!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof s)}Object.defineProperty(D,"defaultMaxListeners",{enumerable:!0,get:function(){return Ps},set:function(s){if(typeof s!="number"||s<0||Ds(s))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+s+".");Ps=s}});D.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};D.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Ds(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Ls(s){return s._maxListeners===void 0?D.defaultMaxListeners:s._maxListeners}D.prototype.getMaxListeners=function(){return Ls(this)};D.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var i=e==="error",n=this._events;if(n!==void 0)i=i&&n.error===void 0;else if(!i)return!1;if(i){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var o=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw o.context=a,o}var c=n[e];if(c===void 0)return!1;if(typeof c=="function")ks(c,this,t);else for(var d=c.length,p=As(c,d),r=0;r<d;++r)ks(p[r],this,t);return!0};function Ms(s,e,t,r){var i,n,a;if(xt(t),n=s._events,n===void 0?(n=s._events=Object.create(null),s._eventsCount=0):(n.newListener!==void 0&&(s.emit("newListener",e,t.listener?t.listener:t),n=s._events),a=n[e]),a===void 0)a=n[e]=t,++s._eventsCount;else if(typeof a=="function"?a=n[e]=r?[t,a]:[a,t]:r?a.unshift(t):a.push(t),i=Ls(s),i>0&&a.length>i&&!a.warned){a.warned=!0;var o=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");o.name="MaxListenersExceededWarning",o.emitter=s,o.type=e,o.count=a.length,Kn(o)}return s}D.prototype.addListener=function(e,t){return Ms(this,e,t,!1)};D.prototype.on=D.prototype.addListener;D.prototype.prependListener=function(e,t){return Ms(this,e,t,!0)};function Qn(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Is(s,e,t){var r={fired:!1,wrapFn:void 0,target:s,type:e,listener:t},i=Qn.bind(r);return i.listener=t,r.wrapFn=i,i}D.prototype.once=function(e,t){return xt(t),this.on(e,Is(this,e,t)),this};D.prototype.prependOnceListener=function(e,t){return xt(t),this.prependListener(e,Is(this,e,t)),this};D.prototype.removeListener=function(e,t){var r,i,n,a,o;if(xt(t),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===t||r.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||t));else if(typeof r!="function"){for(n=-1,a=r.length-1;a>=0;a--)if(r[a]===t||r[a].listener===t){o=r[a].listener,n=a;break}if(n<0)return this;n===0?r.shift():Yn(r,n),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,o||t)}return this};D.prototype.off=D.prototype.removeListener;D.prototype.removeAllListeners=function(e){var t,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var n=Object.keys(r),a;for(i=0;i<n.length;++i)a=n[i],a!=="removeListener"&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(t=r[e],typeof t=="function")this.removeListener(e,t);else if(t!==void 0)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this};function Os(s,e,t){var r=s._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?t?[i.listener||i]:[i]:t?Jn(i):As(i,i.length)}D.prototype.listeners=function(e){return Os(this,e,!0)};D.prototype.rawListeners=function(e){return Os(this,e,!1)};D.listenerCount=function(s,e){return typeof s.listenerCount=="function"?s.listenerCount(e):Ns.call(s,e)};D.prototype.listenerCount=Ns;function Ns(s){var e=this._events;if(e!==void 0){var t=e[s];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}D.prototype.eventNames=function(){return this._eventsCount>0?Et(this._events):[]};function As(s,e){for(var t=new Array(e),r=0;r<e;++r)t[r]=s[r];return t}function Yn(s,e){for(;e+1<s.length;e++)s[e]=s[e+1];s.pop()}function Jn(s){for(var e=new Array(s.length),t=0;t<e.length;++t)e[t]=s[t].listener||s[t];return e}function Xn(s,e){return new Promise(function(t,r){function i(a){s.removeListener(e,n),r(a)}function n(){typeof s.removeListener=="function"&&s.removeListener("error",i),t([].slice.call(arguments))}Fs(s,e,n,{once:!0}),e!=="error"&&Zn(s,i,{once:!0})})}function Zn(s,e,t){typeof s.on=="function"&&Fs(s,"error",e,t)}function Fs(s,e,t,r){if(typeof s.on=="function")r.once?s.once(e,t):s.on(e,t);else if(typeof s.addEventListener=="function")s.addEventListener(e,function i(n){r.once&&s.removeEventListener(e,i),t(n)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof s)}});var H=C(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.EnhancedEventEmitter=void 0;var ea=js(),ta=$(),ra=new ta.Logger("EnhancedEventEmitter"),_r=class extends ea.EventEmitter{constructor(){super(),this.setMaxListeners(1/0)}close(){super.removeAllListeners()}emit(e,...t){return super.emit(e,...t)}safeEmit(e,...t){try{return super.emit(e,...t)}catch(r){ra.error("safeEmit() | event listener threw an error [eventName:%s]:%o",e,r);try{super.emit("listenererror",e,r)}catch{}return!!super.listenerCount(e)}}on(e,t){return super.on(e,t),this}off(e,t){return super.off(e,t),this}addListener(e,t){return super.on(e,t),this}prependListener(e,t){return super.prependListener(e,t),this}once(e,t){return super.once(e,t),this}prependOnceListener(e,t){return super.prependOnceListener(e,t),this}removeListener(e,t){return super.off(e,t),this}removeAllListeners(e){return super.removeAllListeners(e),this}listenerCount(e){return super.listenerCount(e)}listeners(e){return super.listeners(e)}rawListeners(e){return super.rawListeners(e)}};kt.EnhancedEventEmitter=_r});var Y=C(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.InvalidStateError=Ne.UnsupportedError=void 0;var vr=class s extends Error{constructor(e){super(e),this.name="UnsupportedError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,s):this.stack=new Error(e).stack}};Ne.UnsupportedError=vr;var wr=class s extends Error{constructor(e){super(e),this.name="InvalidStateError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,s):this.stack=new Error(e).stack}};Ne.InvalidStateError=wr});var be=C(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.clone=sa;rt.generateRandomNumber=ia;rt.deepFreeze=qs;function sa(s){if(s!==void 0)return Number.isNaN(s)?NaN:typeof structuredClone=="function"?structuredClone(s):JSON.parse(JSON.stringify(s))}function ia(){return Math.round(Math.random()*1e7)}function qs(s){let e=Reflect.ownKeys(s);for(let t of e){let r=s[t];(r&&typeof r=="object"||typeof r=="function")&&qs(r)}return Object.freeze(s)}});var zs=C(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.Logger=void 0;var Ae=tt(),Fe="h264-profile-level-id",yr=class{_debug;_warn;_error;constructor(e){e?(this._debug=(0,Ae.default)(`${Fe}:${e}`),this._warn=(0,Ae.default)(`${Fe}:WARN:${e}`),this._error=(0,Ae.default)(`${Fe}:ERROR:${e}`)):(this._debug=(0,Ae.default)(Fe),this._warn=(0,Ae.default)(`${Fe}:WARN`),this._error=(0,Ae.default)(`${Fe}:ERROR`)),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}};Pt.Logger=yr});var Hs=C(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProfileLevelId=j.Level=j.Profile=void 0;j.parseProfileLevelId=Vs;j.profileLevelIdToString=Ws;j.profileToString=ca;j.levelToString=da;j.parseSdpProfileLevelId=Se;j.isSameProfile=pa;j.isSameProfileAndLevel=la;j.generateProfileLevelIdStringForAnswer=ua;j.supportedLevel=ha;var na=zs(),re=new na.Logger,L;(function(s){s[s.ConstrainedBaseline=1]="ConstrainedBaseline",s[s.Baseline=2]="Baseline",s[s.Main=3]="Main",s[s.ConstrainedHigh=4]="ConstrainedHigh",s[s.High=5]="High",s[s.PredictiveHigh444=6]="PredictiveHigh444"})(L||(j.Profile=L={}));var _;(function(s){s[s.L1_b=0]="L1_b",s[s.L1=10]="L1",s[s.L1_1=11]="L1_1",s[s.L1_2=12]="L1_2",s[s.L1_3=13]="L1_3",s[s.L2=20]="L2",s[s.L2_1=21]="L2_1",s[s.L2_2=22]="L2_2",s[s.L3=30]="L3",s[s.L3_1=31]="L3_1",s[s.L3_2=32]="L3_2",s[s.L4=40]="L4",s[s.L4_1=41]="L4_1",s[s.L4_2=42]="L4_2",s[s.L5=50]="L5",s[s.L5_1=51]="L5_1",s[s.L5_2=52]="L5_2"})(_||(j.Level=_={}));var je=class{profile;level;constructor(e,t){this.profile=e,this.level=t}};j.ProfileLevelId=je;var aa=new je(L.ConstrainedBaseline,_.L3_1),ee=class{mask;masked_value;constructor(e){this.mask=~Bs("x",e),this.masked_value=Bs("1",e)}isMatch(e){return this.masked_value===(e&this.mask)}},te=class{profile_idc;profile_iop;profile;constructor(e,t,r){this.profile_idc=e,this.profile_iop=t,this.profile=r}},oa=[new te(66,new ee("x1xx0000"),L.ConstrainedBaseline),new te(77,new ee("1xxx0000"),L.ConstrainedBaseline),new te(88,new ee("11xx0000"),L.ConstrainedBaseline),new te(66,new ee("x0xx0000"),L.Baseline),new te(88,new ee("10xx0000"),L.Baseline),new te(77,new ee("0x0x0000"),L.Main),new te(100,new ee("00000000"),L.High),new te(100,new ee("00001100"),L.ConstrainedHigh),new te(244,new ee("00000000"),L.PredictiveHigh444)],$s=[{max_macroblocks_per_second:1485,max_macroblock_frame_size:99,level:_.L1},{max_macroblocks_per_second:1485,max_macroblock_frame_size:99,level:_.L1_b},{max_macroblocks_per_second:3e3,max_macroblock_frame_size:396,level:_.L1_1},{max_macroblocks_per_second:6e3,max_macroblock_frame_size:396,level:_.L1_2},{max_macroblocks_per_second:11880,max_macroblock_frame_size:396,level:_.L1_3},{max_macroblocks_per_second:11880,max_macroblock_frame_size:396,level:_.L2},{max_macroblocks_per_second:19800,max_macroblock_frame_size:792,level:_.L2_1},{max_macroblocks_per_second:20250,max_macroblock_frame_size:1620,level:_.L2_2},{max_macroblocks_per_second:40500,max_macroblock_frame_size:1620,level:_.L3},{max_macroblocks_per_second:108e3,max_macroblock_frame_size:3600,level:_.L3_1},{max_macroblocks_per_second:216e3,max_macroblock_frame_size:5120,level:_.L3_2},{max_macroblocks_per_second:245760,max_macroblock_frame_size:8192,level:_.L4},{max_macroblocks_per_second:245760,max_macroblock_frame_size:8192,level:_.L4_1},{max_macroblocks_per_second:522240,max_macroblock_frame_size:8704,level:_.L4_2},{max_macroblocks_per_second:589824,max_macroblock_frame_size:22080,level:_.L5},{max_macroblocks_per_second:983040,max_macroblock_frame_size:36864,level:_.L5_1},{max_macroblocks_per_second:2073600,max_macroblock_frame_size:36864,level:_.L5_2}];function Vs(s){if(typeof s!="string"||s.length!==6)return;let t=parseInt(s,16);if(t===0)return;let r=t&255,i=t>>8&255,n=t>>16&255,a;switch(r){case _.L1_1:{a=(i&16)!==0?_.L1_b:_.L1_1;break}case _.L1:case _.L1_2:case _.L1_3:case _.L2:case _.L2_1:case _.L2_2:case _.L3:case _.L3_1:case _.L3_2:case _.L4:case _.L4_1:case _.L4_2:case _.L5:case _.L5_1:case _.L5_2:{a=r;break}default:{re.warn(`parseProfileLevelId() | unrecognized level_idc [str:${s}, level_idc:${r}]`);return}}for(let o of oa)if(n===o.profile_idc&&o.profile_iop.isMatch(i))return re.debug(`parseProfileLevelId() | result [str:${s}, profile:${o.profile}, level:${a}]`),new je(o.profile,a);re.warn(`parseProfileLevelId() | unrecognized profile_idc/profile_iop combination [str:${s}, profile_idc:${n}, profile_iop:${i}]`)}function Ws(s){if(s.level==_.L1_b)switch(s.profile){case L.ConstrainedBaseline:return"42f00b";case L.Baseline:return"42100b";case L.Main:return"4d100b";default:{re.warn(`profileLevelIdToString() | Level 1_b not is allowed for profile ${s.profile}`);return}}let e;switch(s.profile){case L.ConstrainedBaseline:{e="42e0";break}case L.Baseline:{e="4200";break}case L.Main:{e="4d00";break}case L.ConstrainedHigh:{e="640c";break}case L.High:{e="6400";break}case L.PredictiveHigh444:{e="f400";break}default:{re.warn(`profileLevelIdToString() | unrecognized profile ${s.profile}`);return}}let t=s.level.toString(16);return t.length===1&&(t=`0${t}`),`${e}${t}`}function ca(s){switch(s){case L.ConstrainedBaseline:return"ConstrainedBaseline";case L.Baseline:return"Baseline";case L.Main:return"Main";case L.ConstrainedHigh:return"ConstrainedHigh";case L.High:return"High";case L.PredictiveHigh444:return"PredictiveHigh444";default:{re.warn(`profileToString() | unrecognized profile ${s}`);return}}}function da(s){switch(s){case _.L1_b:return"1b";case _.L1:return"1";case _.L1_1:return"1.1";case _.L1_2:return"1.2";case _.L1_3:return"1.3";case _.L2:return"2";case _.L2_1:return"2.1";case _.L2_2:return"2.2";case _.L3:return"3";case _.L3_1:return"3.1";case _.L3_2:return"3.2";case _.L4:return"4";case _.L4_1:return"4.1";case _.L4_2:return"4.2";case _.L5:return"5";case _.L5_1:return"5.1";case _.L5_2:return"5.2";default:{re.warn(`levelToString() | unrecognized level ${s}`);return}}}function Se(s={}){let e=s["profile-level-id"];return e?Vs(e):aa}function pa(s={},e={}){let t=Se(s),r=Se(e);return!!(t&&r&&t.profile===r.profile)}function la(s={},e={}){let t=Se(s),r=Se(e);return!!(t&&r&&t.profile===r.profile&&t.level==r.level)}function ua(s={},e={}){if(!s["profile-level-id"]&&!e["profile-level-id"]){re.warn("generateProfileLevelIdStringForAnswer() | profile-level-id missing in local and remote params");return}let t=Se(s),r=Se(e);if(!t)throw new TypeError("invalid local_profile_level_id");if(!r)throw new TypeError("invalid remote_profile_level_id");if(t.profile!==r.profile)throw new TypeError("H264 Profile mismatch");let i=Us(s)&&Us(e),n=t.level,a=r.level,o=ma(n,a),c=i?n:o;return re.debug(`generateProfileLevelIdStringForAnswer() | result [profile:${t.profile}, level:${c}]`),Ws(new je(t.profile,c))}function ha(s,e){for(let r=$s.length-1;r>=0;--r){let i=$s[r];if(i.max_macroblock_frame_size*256<=s&&i.max_macroblocks_per_second<=e*i.max_macroblock_frame_size)return re.debug(`supportedLevel() | result [max_frame_pixel_count:${s}, max_fps:${e}, level:${i.level}]`),i.level}re.warn(`supportedLevel() | no level supported [max_frame_pixel_count:${s}, max_fps:${e}]`)}function Bs(s,e){return+(e[0]===s)<<7|+(e[1]===s)<<6|+(e[2]===s)<<5|+(e[3]===s)<<4|+(e[4]===s)<<3|+(e[5]===s)<<2|+(e[6]===s)<<1|+(e[7]===s)<<0}function fa(s,e){return s===_.L1_b?e!==_.L1&&e!==_.L1_b:e===_.L1_b?s!==_.L1:s<e}function ma(s,e){return fa(s,e)?s:e}function Us(s={}){let e=s["level-asymmetry-allowed"];return e===!0||e===1||e==="1"}});var ie=C(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.validateAndNormalizeRtpCapabilities=ya;B.validateAndNormalizeRtpParameters=Sr;B.validateAndNormalizeSctpStreamParameters=ba;B.validateSctpCapabilities=Sa;B.getExtendedRtpCapabilities=Ca;B.getRecvRtpCapabilities=Ra;B.getSendRtpCapabilities=Ta;B.getSendingRtpParameters=Ea;B.getSendingRemoteRtpParameters=xa;B.reduceCodecs=ka;B.generateProbatorRtpParameters=Pa;B.canSend=Da;B.canReceive=La;var Gs=Hs(),ga=be(),_a="probator",va=1234,wa=127;function ya(s){if(typeof s!="object")throw new TypeError("caps is not an object");if(s.codecs&&!Array.isArray(s.codecs))throw new TypeError("caps.codecs is not an array");s.codecs||(s.codecs=[]);for(let e of s.codecs)Ma(e);if(s.headerExtensions&&!Array.isArray(s.headerExtensions))throw new TypeError("caps.headerExtensions is not an array");s.headerExtensions||(s.headerExtensions=[]);for(let e of s.headerExtensions)Ia(e)}function Sr(s){if(typeof s!="object")throw new TypeError("params is not an object");if(s.mid&&typeof s.mid!="string")throw new TypeError("params.mid is not a string");if(!Array.isArray(s.codecs))throw new TypeError("missing params.codecs");for(let e of s.codecs)Oa(e);if(s.headerExtensions&&!Array.isArray(s.headerExtensions))throw new TypeError("params.headerExtensions is not an array");s.headerExtensions||(s.headerExtensions=[]);for(let e of s.headerExtensions)Na(e);if(s.encodings&&!Array.isArray(s.encodings))throw new TypeError("params.encodings is not an array");s.encodings||(s.encodings=[]);for(let e of s.encodings)Aa(e);if(s.rtcp&&typeof s.rtcp!="object")throw new TypeError("params.rtcp is not an object");s.rtcp||(s.rtcp={}),Fa(s.rtcp)}function ba(s){if(typeof s!="object")throw new TypeError("params is not an object");if(typeof s.streamId!="number")throw new TypeError("missing params.streamId");let e=!1;if(typeof s.ordered=="boolean"?e=!0:s.ordered=!0,s.maxPacketLifeTime&&typeof s.maxPacketLifeTime!="number")throw new TypeError("invalid params.maxPacketLifeTime");if(s.maxRetransmits&&typeof s.maxRetransmits!="number")throw new TypeError("invalid params.maxRetransmits");if(s.maxPacketLifeTime&&s.maxRetransmits)throw new TypeError("cannot provide both maxPacketLifeTime and maxRetransmits");if(e&&s.ordered&&(s.maxPacketLifeTime||s.maxRetransmits))throw new TypeError("cannot be ordered with maxPacketLifeTime or maxRetransmits");if(!e&&(s.maxPacketLifeTime||s.maxRetransmits)&&(s.ordered=!1),s.label&&typeof s.label!="string")throw new TypeError("invalid params.label");if(s.protocol&&typeof s.protocol!="string")throw new TypeError("invalid params.protocol")}function Sa(s){if(typeof s!="object")throw new TypeError("caps is not an object");if(!s.numStreams||typeof s.numStreams!="object")throw new TypeError("missing caps.numStreams");ja(s.numStreams)}function Ca(s,e,t){let r={codecs:[],headerExtensions:[]};if(t)for(let i of s.codecs??[]){if(qe(i))continue;let n=(e.codecs??[]).find(o=>br(o,i,{strict:!0,modify:!0}));if(!n)continue;let a={kind:i.kind,mimeType:i.mimeType,clockRate:i.clockRate,channels:i.channels,localPayloadType:i.preferredPayloadType,localRtxPayloadType:void 0,remotePayloadType:n.preferredPayloadType,remoteRtxPayloadType:void 0,localParameters:i.parameters??{},remoteParameters:n.parameters??{},rtcpFeedback:Ks(i,n)};r.codecs.push(a)}else for(let i of e.codecs??[]){if(qe(i))continue;let n=(s.codecs??[]).find(o=>br(o,i,{strict:!0,modify:!0}));if(!n)continue;let a={kind:n.kind,mimeType:n.mimeType,clockRate:n.clockRate,channels:n.channels,localPayloadType:n.preferredPayloadType,localRtxPayloadType:void 0,remotePayloadType:i.preferredPayloadType,remoteRtxPayloadType:void 0,localParameters:n.parameters??{},remoteParameters:i.parameters??{},rtcpFeedback:Ks(n,i)};r.codecs.push(a)}for(let i of r.codecs){let n=s.codecs.find(o=>qe(o)&&o.parameters?.apt===i.localPayloadType),a=e.codecs.find(o=>qe(o)&&o.parameters?.apt===i.remotePayloadType);n&&a&&(i.localRtxPayloadType=n.preferredPayloadType,i.remoteRtxPayloadType=a.preferredPayloadType)}for(let i of e.headerExtensions){let n=s.headerExtensions.find(o=>qa(o,i));if(!n)continue;let a={kind:i.kind,uri:i.uri,sendId:n.preferredId,recvId:i.preferredId,encrypt:n.preferredEncrypt??!1,direction:"sendrecv"};switch(i.direction){case"sendrecv":{a.direction="sendrecv";break}case"recvonly":{a.direction="sendonly";break}case"sendonly":{a.direction="recvonly";break}case"inactive":{a.direction="inactive";break}}r.headerExtensions.push(a)}return r}function Ra(s){return Ys({direction:"recvonly",extendedRtpCapabilities:s})}function Ta(s){return Ys({direction:"sendonly",extendedRtpCapabilities:s})}function Ea(s,e){let t={mid:void 0,codecs:[],headerExtensions:[],encodings:[],rtcp:{}};for(let r of e.codecs){if(r.kind!==s)continue;let i={mimeType:r.mimeType,payloadType:r.localPayloadType,clockRate:r.clockRate,channels:r.channels,parameters:r.localParameters,rtcpFeedback:r.rtcpFeedback};if(t.codecs.push(i),r.localRtxPayloadType){let n={mimeType:`${r.kind}/rtx`,payloadType:r.localRtxPayloadType,clockRate:r.clockRate,parameters:{apt:r.localPayloadType},rtcpFeedback:[]};t.codecs.push(n)}}for(let r of e.headerExtensions){if(r.kind&&r.kind!==s||r.direction!=="sendrecv"&&r.direction!=="sendonly")continue;let i={uri:r.uri,id:r.sendId,encrypt:r.encrypt,parameters:{}};t.headerExtensions.push(i)}return t}function xa(s,e){let t={mid:void 0,codecs:[],headerExtensions:[],encodings:[],rtcp:{}};for(let r of e.codecs){if(r.kind!==s)continue;let i={mimeType:r.mimeType,payloadType:r.localPayloadType,clockRate:r.clockRate,channels:r.channels,parameters:r.remoteParameters,rtcpFeedback:r.rtcpFeedback};if(t.codecs.push(i),r.localRtxPayloadType){let n={mimeType:`${r.kind}/rtx`,payloadType:r.localRtxPayloadType,clockRate:r.clockRate,parameters:{apt:r.localPayloadType},rtcpFeedback:[]};t.codecs.push(n)}}for(let r of e.headerExtensions){if(r.kind&&r.kind!==s||r.direction!=="sendrecv"&&r.direction!=="sendonly")continue;let i={uri:r.uri,id:r.sendId,encrypt:r.encrypt,parameters:{}};t.headerExtensions.push(i)}if(t.headerExtensions.some(r=>r.uri==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"))for(let r of t.codecs)r.rtcpFeedback=(r.rtcpFeedback??[]).filter(i=>i.type!=="goog-remb");else if(t.headerExtensions.some(r=>r.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"))for(let r of t.codecs)r.rtcpFeedback=(r.rtcpFeedback??[]).filter(i=>i.type!=="transport-cc");else for(let r of t.codecs)r.rtcpFeedback=(r.rtcpFeedback??[]).filter(i=>i.type!=="transport-cc"&&i.type!=="goog-remb");return t}function ka(s,e){let t=[];if(!e)t.push(s[0]),qe(s[1])&&t.push(s[1]);else{for(let r=0;r<s.length;++r)if(br(s[r],e,{strict:!0})){t.push(s[r]),qe(s[r+1])&&t.push(s[r+1]);break}if(t.length===0)throw new TypeError("no matching codec found")}return t}function Pa(s){s=ga.clone(s),Sr(s);let e={mid:_a,codecs:[],headerExtensions:[],encodings:[{ssrc:va}],rtcp:{cname:"probator"}};return e.codecs.push(s.codecs[0]),e.codecs[0].payloadType=wa,e.headerExtensions=s.headerExtensions,e}function Da(s,e){return(e.codecs??[]).some(t=>t.kind===s)}function La(s,e){if(Sr(s),s.codecs.length===0)return!1;let t=s.codecs[0];return(e.codecs??[]).some(r=>r.preferredPayloadType===t.payloadType)}function Ma(s){let e=new RegExp("^(audio|video)/(.+)","i");if(typeof s!="object")throw new TypeError("codec is not an object");if(!s.mimeType||typeof s.mimeType!="string")throw new TypeError("missing codec.mimeType");let t=e.exec(s.mimeType);if(!t)throw new TypeError("invalid codec.mimeType");if(s.kind=t[1].toLowerCase(),typeof s.preferredPayloadType!="number")throw new TypeError("missing codec.preferredPayloadType");if(typeof s.clockRate!="number")throw new TypeError("missing codec.clockRate");s.kind==="audio"?typeof s.channels!="number"&&(s.channels=1):delete s.channels,(!s.parameters||typeof s.parameters!="object")&&(s.parameters={});for(let r of Object.keys(s.parameters)){let i=s.parameters[r];if(i===void 0&&(s.parameters[r]="",i=""),typeof i!="string"&&typeof i!="number")throw new TypeError(`invalid codec parameter [key:${r}s, value:${i}]`);if(r==="apt"&&typeof i!="number")throw new TypeError("invalid codec apt parameter")}(!s.rtcpFeedback||!Array.isArray(s.rtcpFeedback))&&(s.rtcpFeedback=[]);for(let r of s.rtcpFeedback)Qs(r)}function Qs(s){if(typeof s!="object")throw new TypeError("fb is not an object");if(!s.type||typeof s.type!="string")throw new TypeError("missing fb.type");(!s.parameter||typeof s.parameter!="string")&&(s.parameter="")}function Ia(s){if(typeof s!="object")throw new TypeError("ext is not an object");if(s.kind!=="audio"&&s.kind!=="video")throw new TypeError("invalid ext.kind");if(!s.uri||typeof s.uri!="string")throw new TypeError("missing ext.uri");if(typeof s.preferredId!="number")throw new TypeError("missing ext.preferredId");if(s.preferredEncrypt&&typeof s.preferredEncrypt!="boolean")throw new TypeError("invalid ext.preferredEncrypt");if(s.preferredEncrypt||(s.preferredEncrypt=!1),s.direction&&typeof s.direction!="string")throw new TypeError("invalid ext.direction");s.direction||(s.direction="sendrecv")}function Oa(s){let e=new RegExp("^(audio|video)/(.+)","i");if(typeof s!="object")throw new TypeError("codec is not an object");if(!s.mimeType||typeof s.mimeType!="string")throw new TypeError("missing codec.mimeType");let t=e.exec(s.mimeType);if(!t)throw new TypeError("invalid codec.mimeType");if(typeof s.payloadType!="number")throw new TypeError("missing codec.payloadType");if(typeof s.clockRate!="number")throw new TypeError("missing codec.clockRate");t[1].toLowerCase()==="audio"?typeof s.channels!="number"&&(s.channels=1):delete s.channels,(!s.parameters||typeof s.parameters!="object")&&(s.parameters={});for(let i of Object.keys(s.parameters)){let n=s.parameters[i];if(n===void 0&&(s.parameters[i]="",n=""),typeof n!="string"&&typeof n!="number")throw new TypeError(`invalid codec parameter [key:${i}s, value:${n}]`);if(i==="apt"&&typeof n!="number")throw new TypeError("invalid codec apt parameter")}(!s.rtcpFeedback||!Array.isArray(s.rtcpFeedback))&&(s.rtcpFeedback=[]);for(let i of s.rtcpFeedback)Qs(i)}function Na(s){if(typeof s!="object")throw new TypeError("ext is not an object");if(!s.uri||typeof s.uri!="string")throw new TypeError("missing ext.uri");if(typeof s.id!="number")throw new TypeError("missing ext.id");if(s.encrypt&&typeof s.encrypt!="boolean")throw new TypeError("invalid ext.encrypt");s.encrypt||(s.encrypt=!1),(!s.parameters||typeof s.parameters!="object")&&(s.parameters={});for(let e of Object.keys(s.parameters)){let t=s.parameters[e];if(t===void 0&&(s.parameters[e]="",t=""),typeof t!="string"&&typeof t!="number")throw new TypeError("invalid header extension parameter")}}function Aa(s){if(typeof s!="object")throw new TypeError("encoding is not an object");if(s.ssrc&&typeof s.ssrc!="number")throw new TypeError("invalid encoding.ssrc");if(s.rid&&typeof s.rid!="string")throw new TypeError("invalid encoding.rid");if(s.rtx&&typeof s.rtx!="object")throw new TypeError("invalid encoding.rtx");if(s.rtx&&typeof s.rtx.ssrc!="number")throw new TypeError("missing encoding.rtx.ssrc");if((!s.dtx||typeof s.dtx!="boolean")&&(s.dtx=!1),s.scalabilityMode&&typeof s.scalabilityMode!="string")throw new TypeError("invalid encoding.scalabilityMode")}function Fa(s){if(typeof s!="object")throw new TypeError("rtcp is not an object");if(s.cname&&typeof s.cname!="string")throw new TypeError("invalid rtcp.cname");(!s.reducedSize||typeof s.reducedSize!="boolean")&&(s.reducedSize=!0)}function ja(s){if(typeof s!="object")throw new TypeError("numStreams is not an object");if(typeof s.OS!="number")throw new TypeError("missing numStreams.OS");if(typeof s.MIS!="number")throw new TypeError("missing numStreams.MIS")}function Ys({direction:s,extendedRtpCapabilities:e}){let t={codecs:[],headerExtensions:[]};for(let r of e.codecs){let i={kind:r.kind,mimeType:r.mimeType,preferredPayloadType:r.remotePayloadType,clockRate:r.clockRate,channels:r.channels,parameters:r.localParameters,rtcpFeedback:r.rtcpFeedback};if(t.codecs.push(i),!r.remoteRtxPayloadType)continue;let n={kind:r.kind,mimeType:`${r.kind}/rtx`,preferredPayloadType:r.remoteRtxPayloadType,clockRate:r.clockRate,parameters:{apt:r.remotePayloadType},rtcpFeedback:[]};t.codecs.push(n)}for(let r of e.headerExtensions){if(r.direction!=="sendrecv"&&r.direction!==s)continue;let i={kind:r.kind,uri:r.uri,preferredId:r.recvId,preferredEncrypt:r.encrypt??!1,direction:r.direction};t.headerExtensions.push(i)}return t}function qe(s){return s?/.+\/rtx$/i.test(s.mimeType):!1}function br(s,e,{strict:t=!1,modify:r=!1}={}){let i=s.mimeType.toLowerCase(),n=e.mimeType.toLowerCase();if(i!==n||s.clockRate!==e.clockRate||s.channels!==e.channels)return!1;switch(i){case"video/h264":{if(t){let a=s.parameters["packetization-mode"]??0,o=e.parameters["packetization-mode"]??0;if(a!==o||!Gs.isSameProfile(s.parameters,e.parameters))return!1;let c;try{c=Gs.generateProfileLevelIdStringForAnswer(s.parameters,e.parameters)}catch{return!1}r&&(c?(s.parameters["profile-level-id"]=c,e.parameters["profile-level-id"]=c):(delete s.parameters["profile-level-id"],delete e.parameters["profile-level-id"]))}break}case"video/vp9":{if(t){let a=s.parameters["profile-id"]??0,o=e.parameters["profile-id"]??0;if(a!==o)return!1}break}}return!0}function qa(s,e){return!(s.kind&&e.kind&&s.kind!==e.kind||s.uri!==e.uri)}function Ks(s,e){let t=[];for(let r of s.rtcpFeedback??[]){let i=(e.rtcpFeedback??[]).find(n=>n.type===r.type&&(n.parameter===r.parameter||!n.parameter&&!r.parameter));i&&t.push(i)}return t}});var Js=C(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.Logger=void 0;var ze=tt(),$e="awaitqueue",Cr=class{_debug;_warn;_error;constructor(e){e?(this._debug=ze(`${$e}:${e}`),this._warn=ze(`${$e}:WARN:${e}`),this._error=ze(`${$e}:ERROR:${e}`)):(this._debug=ze($e),this._warn=ze(`${$e}:WARN`),this._error=ze(`${$e}:ERROR`)),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}};Dt.Logger=Cr});var Er=C(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.AwaitQueueRemovedTaskError=Be.AwaitQueueStoppedError=void 0;var Rr=class s extends Error{constructor(e){super(e??"queue stopped"),this.name="AwaitQueueStoppedError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,s)}};Be.AwaitQueueStoppedError=Rr;var Tr=class s extends Error{constructor(e){super(e??"queue task removed"),this.name="AwaitQueueRemovedTaskError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,s)}};Be.AwaitQueueRemovedTaskError=Tr});var Xs=C(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.AwaitQueue=void 0;var za=Js(),xr=Er(),de=new za.Logger("AwaitQueue"),kr=class{pendingTasks=new Map;nextTaskId=0;constructor(){de.debug("constructor()")}get size(){return this.pendingTasks.size}async push(e,t,r){if(t=t??e.name,de.debug(`push() [name:${t}, options:%o]`,r),typeof e!="function")throw new TypeError("given task is not a function");if(t)try{Object.defineProperty(e,"name",{value:t})}catch{}return new Promise((i,n)=>{if(t&&r?.removeOngoingTasksWithSameName)for(let o of this.pendingTasks.values())o.name===t&&o.reject(new xr.AwaitQueueRemovedTaskError,{canExecuteNextTask:!1});let a={id:this.nextTaskId++,task:e,name:t,enqueuedAt:Date.now(),executedAt:void 0,completed:!1,resolve:o=>{if(a.completed)return;a.completed=!0,this.pendingTasks.delete(a.id),de.debug(`resolving task [name:${a.name}]`),i(o);let[c]=this.pendingTasks.values();c&&!c.executedAt&&this.execute(c)},reject:(o,{canExecuteNextTask:c})=>{if(!a.completed&&(a.completed=!0,this.pendingTasks.delete(a.id),de.debug(`rejecting task [name:${a.name}]: %s`,String(o)),n(o),c)){let[d]=this.pendingTasks.values();d&&!d.executedAt&&this.execute(d)}}};this.pendingTasks.set(a.id,a),this.pendingTasks.size===1&&this.execute(a)})}stop(){de.debug("stop()");for(let e of this.pendingTasks.values())de.debug(`stop() | stopping task [name:${e.name}]`),e.reject(new xr.AwaitQueueStoppedError,{canExecuteNextTask:!1})}remove(e){de.debug(`remove() [taskIdx:${e}]`);let t=Array.from(this.pendingTasks.values())[e];if(!t){de.debug(`stop() | no task with given idx [taskIdx:${e}]`);return}t.reject(new xr.AwaitQueueRemovedTaskError,{canExecuteNextTask:!0})}dump(){let e=Date.now(),t=0;return Array.from(this.pendingTasks.values()).map(r=>({idx:t++,task:r.task,name:r.name,enqueuedTime:r.executedAt?r.executedAt-r.enqueuedAt:e-r.enqueuedAt,executionTime:r.executedAt?e-r.executedAt:0}))}async execute(e){if(de.debug(`execute() [name:${e.name}]`),e.executedAt)throw new Error("task already being executed");e.executedAt=Date.now();try{let t=await e.task();e.resolve(t)}catch(t){e.reject(t,{canExecuteNextTask:!0})}}};Lt.AwaitQueue=kr});var ei=C(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.AwaitQueueRemovedTaskError=me.AwaitQueueStoppedError=me.AwaitQueue=void 0;var $a=Xs();Object.defineProperty(me,"AwaitQueue",{enumerable:!0,get:function(){return $a.AwaitQueue}});var Zs=Er();Object.defineProperty(me,"AwaitQueueStoppedError",{enumerable:!0,get:function(){return Zs.AwaitQueueStoppedError}});Object.defineProperty(me,"AwaitQueueRemovedTaskError",{enumerable:!0,get:function(){return Zs.AwaitQueueRemovedTaskError}})});var ri=C(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.Producer=void 0;var Ba=$(),ti=H(),Ue=Y(),ne=new Ba.Logger("Producer"),Pr=class extends ti.EnhancedEventEmitter{_id;_localId;_closed=!1;_rtpSender;_track;_kind;_rtpParameters;_paused;_maxSpatialLayer;_stopTracks;_disableTrackOnPause;_zeroRtpOnPause;_appData;_observer=new ti.EnhancedEventEmitter;constructor({id:e,localId:t,rtpSender:r,track:i,rtpParameters:n,stopTracks:a,disableTrackOnPause:o,zeroRtpOnPause:c,appData:d}){super(),ne.debug("constructor()"),this._id=e,this._localId=t,this._rtpSender=r,this._track=i,this._kind=i.kind,this._rtpParameters=n,this._paused=o?!i.enabled:!1,this._maxSpatialLayer=void 0,this._stopTracks=a,this._disableTrackOnPause=o,this._zeroRtpOnPause=c,this._appData=d??{},this.onTrackEnded=this.onTrackEnded.bind(this),this.handleTrack()}get id(){return this._id}get localId(){return this._localId}get closed(){return this._closed}get kind(){return this._kind}get rtpSender(){return this._rtpSender}get track(){return this._track}get rtpParameters(){return this._rtpParameters}get paused(){return this._paused}get maxSpatialLayer(){return this._maxSpatialLayer}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){this._closed||(ne.debug("close()"),this._closed=!0,this.destroyTrack(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(ne.debug("transportClosed()"),this._closed=!0,this.destroyTrack(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}async getStats(){if(this._closed)throw new Ue.InvalidStateError("closed");return new Promise((e,t)=>{this.safeEmit("@getstats",e,t)})}pause(){if(ne.debug("pause()"),this._closed){ne.error("pause() | Producer closed");return}this._paused=!0,this._track&&this._disableTrackOnPause&&(this._track.enabled=!1),this._zeroRtpOnPause&&new Promise((e,t)=>{this.safeEmit("@pause",e,t)}).catch(()=>{}),this._observer.safeEmit("pause")}resume(){if(ne.debug("resume()"),this._closed){ne.error("resume() | Producer closed");return}this._paused=!1,this._track&&this._disableTrackOnPause&&(this._track.enabled=!0),this._zeroRtpOnPause&&new Promise((e,t)=>{this.safeEmit("@resume",e,t)}).catch(()=>{}),this._observer.safeEmit("resume")}async replaceTrack({track:e}){if(ne.debug("replaceTrack() [track:%o]",e),this._closed){if(e&&this._stopTracks)try{e.stop()}catch{}throw new Ue.InvalidStateError("closed")}else if(e?.readyState==="ended")throw new Ue.InvalidStateError("track ended");if(e===this._track){ne.debug("replaceTrack() | same track, ignored");return}await new Promise((t,r)=>{this.safeEmit("@replacetrack",e,t,r)}),this.destroyTrack(),this._track=e,this._track&&this._disableTrackOnPause&&(this._paused?this._paused&&(this._track.enabled=!1):this._track.enabled=!0),this.handleTrack()}async setMaxSpatialLayer(e){if(this._closed)throw new Ue.InvalidStateError("closed");if(this._kind!=="video")throw new Ue.UnsupportedError("not a video Producer");if(typeof e!="number")throw new TypeError("invalid spatialLayer");e!==this._maxSpatialLayer&&(await new Promise((t,r)=>{this.safeEmit("@setmaxspatiallayer",e,t,r)}).catch(()=>{}),this._maxSpatialLayer=e)}async setRtpEncodingParameters(e){if(this._closed)throw new Ue.InvalidStateError("closed");if(typeof e!="object")throw new TypeError("invalid params");await new Promise((t,r)=>{this.safeEmit("@setrtpencodingparameters",e,t,r)})}onTrackEnded(){ne.debug('track "ended" event'),this.safeEmit("trackended"),this._observer.safeEmit("trackended")}handleTrack(){this._track&&this._track.addEventListener("ended",this.onTrackEnded)}destroyTrack(){if(this._track)try{this._track.removeEventListener("ended",this.onTrackEnded),this._stopTracks&&this._track.stop()}catch{}}};Mt.Producer=Pr});var ii=C(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.Consumer=void 0;var Ua=$(),si=H(),Va=Y(),ae=new Ua.Logger("Consumer"),Dr=class extends si.EnhancedEventEmitter{_id;_localId;_producerId;_closed=!1;_rtpReceiver;_track;_rtpParameters;_paused;_appData;_observer=new si.EnhancedEventEmitter;constructor({id:e,localId:t,producerId:r,rtpReceiver:i,track:n,rtpParameters:a,appData:o}){super(),ae.debug("constructor()"),this._id=e,this._localId=t,this._producerId=r,this._rtpReceiver=i,this._track=n,this._rtpParameters=a,this._paused=!n.enabled,this._appData=o??{},this.onTrackEnded=this.onTrackEnded.bind(this),this.handleTrack()}get id(){return this._id}get localId(){return this._localId}get producerId(){return this._producerId}get closed(){return this._closed}get kind(){return this._track.kind}get rtpReceiver(){return this._rtpReceiver}get track(){return this._track}get rtpParameters(){return this._rtpParameters}get paused(){return this._paused}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){this._closed||(ae.debug("close()"),this._closed=!0,this.destroyTrack(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(ae.debug("transportClosed()"),this._closed=!0,this.destroyTrack(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}async getStats(){if(this._closed)throw new Va.InvalidStateError("closed");return new Promise((e,t)=>{this.safeEmit("@getstats",e,t)})}pause(){if(ae.debug("pause()"),this._closed){ae.error("pause() | Consumer closed");return}if(this._paused){ae.debug("pause() | Consumer is already paused");return}this._paused=!0,this._track.enabled=!1,this.emit("@pause"),this._observer.safeEmit("pause")}resume(){if(ae.debug("resume()"),this._closed){ae.error("resume() | Consumer closed");return}if(!this._paused){ae.debug("resume() | Consumer is already resumed");return}this._paused=!1,this._track.enabled=!0,this.emit("@resume"),this._observer.safeEmit("resume")}onTrackEnded(){ae.debug('track "ended" event'),this.safeEmit("trackended"),this._observer.safeEmit("trackended")}handleTrack(){this._track.addEventListener("ended",this.onTrackEnded)}destroyTrack(){try{this._track.removeEventListener("ended",this.onTrackEnded),this._track.stop()}catch{}}};It.Consumer=Dr});var ai=C(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.DataProducer=void 0;var Wa=$(),ni=H(),Ha=Y(),pe=new Wa.Logger("DataProducer"),Lr=class extends ni.EnhancedEventEmitter{_id;_dataChannel;_closed=!1;_sctpStreamParameters;_appData;_observer=new ni.EnhancedEventEmitter;constructor({id:e,dataChannel:t,sctpStreamParameters:r,appData:i}){super(),pe.debug("constructor()"),this._id=e,this._dataChannel=t,this._sctpStreamParameters=r,this._appData=i??{},this.handleDataChannel()}get id(){return this._id}get closed(){return this._closed}get sctpStreamParameters(){return this._sctpStreamParameters}get readyState(){return this._dataChannel.readyState}get label(){return this._dataChannel.label}get protocol(){return this._dataChannel.protocol}get bufferedAmount(){return this._dataChannel.bufferedAmount}get bufferedAmountLowThreshold(){return this._dataChannel.bufferedAmountLowThreshold}set bufferedAmountLowThreshold(e){this._dataChannel.bufferedAmountLowThreshold=e}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){this._closed||(pe.debug("close()"),this._closed=!0,this._dataChannel.close(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(pe.debug("transportClosed()"),this._closed=!0,this._dataChannel.close(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}send(e){if(pe.debug("send()"),this._closed)throw new Ha.InvalidStateError("closed");this._dataChannel.send(e)}handleDataChannel(){this._dataChannel.addEventListener("open",()=>{this._closed||(pe.debug('DataChannel "open" event'),this.safeEmit("open"))}),this._dataChannel.addEventListener("error",e=>{if(this._closed)return;let t=e.error??new Error("unknown DataChannel error");e.error?.errorDetail==="sctp-failure"?pe.error("DataChannel SCTP error [sctpCauseCode:%s]: %s",e.error?.sctpCauseCode,e.error.message):pe.error('DataChannel "error" event: %o',t),this.safeEmit("error",t)}),this._dataChannel.addEventListener("close",()=>{this._closed||(pe.warn('DataChannel "close" event'),this._closed=!0,this.emit("@close"),this.safeEmit("close"),this._observer.safeEmit("close"))}),this._dataChannel.addEventListener("message",()=>{this._closed||pe.warn('DataChannel "message" event in a DataProducer, message discarded')}),this._dataChannel.addEventListener("bufferedamountlow",()=>{this._closed||this.safeEmit("bufferedamountlow")})}};Ot.DataProducer=Lr});var ci=C(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.DataConsumer=void 0;var Ga=$(),oi=H(),Ce=new Ga.Logger("DataConsumer"),Mr=class extends oi.EnhancedEventEmitter{_id;_dataProducerId;_dataChannel;_closed=!1;_sctpStreamParameters;_appData;_observer=new oi.EnhancedEventEmitter;constructor({id:e,dataProducerId:t,dataChannel:r,sctpStreamParameters:i,appData:n}){super(),Ce.debug("constructor()"),this._id=e,this._dataProducerId=t,this._dataChannel=r,this._sctpStreamParameters=i,this._appData=n??{},this.handleDataChannel()}get id(){return this._id}get dataProducerId(){return this._dataProducerId}get closed(){return this._closed}get sctpStreamParameters(){return this._sctpStreamParameters}get readyState(){return this._dataChannel.readyState}get label(){return this._dataChannel.label}get protocol(){return this._dataChannel.protocol}get binaryType(){return this._dataChannel.binaryType}set binaryType(e){this._dataChannel.binaryType=e}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){this._closed||(Ce.debug("close()"),this._closed=!0,this._dataChannel.close(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(Ce.debug("transportClosed()"),this._closed=!0,this._dataChannel.close(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}handleDataChannel(){this._dataChannel.addEventListener("open",()=>{this._closed||(Ce.debug('DataChannel "open" event'),this.safeEmit("open"))}),this._dataChannel.addEventListener("error",e=>{if(this._closed)return;let t=e.error??new Error("unknown DataChannel error");e.error?.errorDetail==="sctp-failure"?Ce.error("DataChannel SCTP error [sctpCauseCode:%s]: %s",e.error?.sctpCauseCode,e.error.message):Ce.error('DataChannel "error" event: %o',t),this.safeEmit("error",t)}),this._dataChannel.addEventListener("close",()=>{this._closed||(Ce.warn('DataChannel "close" event'),this._closed=!0,this.emit("@close"),this.safeEmit("close"),this._observer.safeEmit("close"))}),this._dataChannel.addEventListener("message",e=>{this._closed||this.safeEmit("message",e.data)})}};Nt.DataConsumer=Mr});var pi=C(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.Transport=void 0;var Ka=ei(),Qa=$(),di=H(),A=Y(),Ir=be(),st=ie(),Ya=ri(),Ja=ii(),Xa=ai(),Za=ci(),N=new Qa.Logger("Transport"),Or=class{consumerOptions;promise;resolve;reject;constructor(e){this.consumerOptions=e,this.promise=new Promise((t,r)=>{this.resolve=t,this.reject=r})}},Nr=class extends di.EnhancedEventEmitter{_id;_closed=!1;_direction;_getSendExtendedRtpCapabilities;_recvRtpCapabilities;_canProduceByKind;_maxSctpMessageSize;_handler;_iceGatheringState="new";_connectionState="new";_appData;_producers=new Map;_consumers=new Map;_dataProducers=new Map;_dataConsumers=new Map;_probatorConsumerCreated=!1;_awaitQueue=new Ka.AwaitQueue;_pendingConsumerTasks=[];_consumerCreationInProgress=!1;_pendingPauseConsumers=new Map;_consumerPauseInProgress=!1;_pendingResumeConsumers=new Map;_consumerResumeInProgress=!1;_pendingCloseConsumers=new Map;_consumerCloseInProgress=!1;_observer=new di.EnhancedEventEmitter;constructor({direction:e,id:t,iceParameters:r,iceCandidates:i,dtlsParameters:n,sctpParameters:a,iceServers:o,iceTransportPolicy:c,additionalSettings:d,appData:p,handlerFactory:l,getSendExtendedRtpCapabilities:u,recvRtpCapabilities:f,canProduceByKind:m}){super(),N.debug("constructor() [id:%s, direction:%s]",t,e),this._id=t,this._direction=e,this._getSendExtendedRtpCapabilities=u,this._recvRtpCapabilities=f,this._canProduceByKind=m,this._maxSctpMessageSize=a?.maxMessageSize;let h=Ir.clone(d)??{};delete h.iceServers,delete h.iceTransportPolicy,delete h.bundlePolicy,delete h.rtcpMuxPolicy,this._handler=l.factory({direction:e,iceParameters:r,iceCandidates:i,dtlsParameters:n,sctpParameters:a,iceServers:o,iceTransportPolicy:c,additionalSettings:h,getSendExtendedRtpCapabilities:this._getSendExtendedRtpCapabilities}),this._appData=p??{},this.handleHandler()}get id(){return this._id}get closed(){return this._closed}get direction(){return this._direction}get handler(){return this._handler}get iceGatheringState(){return this._iceGatheringState}get connectionState(){return this._connectionState}get appData(){return this._appData}set appData(e){this._appData=e}get observer(){return this._observer}close(){if(!this._closed){N.debug("close()"),this._closed=!0,this._awaitQueue.stop(),this._handler.close(),this._connectionState="closed";for(let e of this._producers.values())e.transportClosed();this._producers.clear();for(let e of this._consumers.values())e.transportClosed();this._consumers.clear();for(let e of this._dataProducers.values())e.transportClosed();this._dataProducers.clear();for(let e of this._dataConsumers.values())e.transportClosed();this._dataConsumers.clear(),this._observer.safeEmit("close"),super.close(),this._observer.close()}}async getStats(){if(this._closed)throw new A.InvalidStateError("closed");return this._handler.getTransportStats()}async restartIce({iceParameters:e}){if(N.debug("restartIce()"),this._closed)throw new A.InvalidStateError("closed");if(!e)throw new TypeError("missing iceParameters");return this._awaitQueue.push(async()=>await this._handler.restartIce(e),"transport.restartIce()")}async updateIceServers({iceServers:e}={}){if(N.debug("updateIceServers()"),this._closed)throw new A.InvalidStateError("closed");if(!Array.isArray(e))throw new TypeError("missing iceServers");return this._awaitQueue.push(async()=>this._handler.updateIceServers(e),"transport.updateIceServers()")}async produce({track:e,streamId:t,encodings:r,codecOptions:i,headerExtensionOptions:n,codec:a,stopTracks:o=!0,disableTrackOnPause:c=!0,zeroRtpOnPause:d=!1,onRtpSender:p,appData:l={}}={}){if(N.debug("produce() [track:%o]",e),this._closed)throw new A.InvalidStateError("closed");if(e){if(this._direction!=="send")throw new A.UnsupportedError("not a sending Transport");if(this._canProduceByKind[e.kind]){if(e.readyState==="ended")throw new A.InvalidStateError("track ended");if(this.listenerCount("connect")===0&&this._connectionState==="new")throw new TypeError('no "connect" listener set into this transport');if(this.listenerCount("produce")===0)throw new TypeError('no "produce" listener set into this transport');if(l&&typeof l!="object")throw new TypeError("if given, appData must be an object")}else throw new A.UnsupportedError(`cannot produce ${e.kind}`)}else throw new TypeError("missing track");return this._awaitQueue.push(async()=>{let u;if(r&&!Array.isArray(r))throw TypeError("encodings must be an array");r?.length===0?u=void 0:r&&(u=r.map(g=>{let w={active:!0};return g.active===!1&&(w.active=!1),typeof g.dtx=="boolean"&&(w.dtx=g.dtx),typeof g.scalabilityMode=="string"&&(w.scalabilityMode=g.scalabilityMode),typeof g.scaleResolutionDownBy=="number"&&(w.scaleResolutionDownBy=g.scaleResolutionDownBy),typeof g.maxBitrate=="number"&&(w.maxBitrate=g.maxBitrate),typeof g.maxFramerate=="number"&&(w.maxFramerate=g.maxFramerate),typeof g.adaptivePtime=="boolean"&&(w.adaptivePtime=g.adaptivePtime),typeof g.priority=="string"&&(w.priority=g.priority),typeof g.networkPriority=="string"&&(w.networkPriority=g.networkPriority),w}));let{localId:f,rtpParameters:m,rtpSender:h}=await this._handler.send({track:e,streamId:t,encodings:u,codecOptions:i,headerExtensionOptions:n,codec:a,onRtpSender:p});try{st.validateAndNormalizeRtpParameters(m);let{id:g}=await new Promise((E,P)=>{this.safeEmit("produce",{kind:e.kind,rtpParameters:m,appData:l},E,P)}),w=new Ya.Producer({id:g,localId:f,rtpSender:h,track:e,rtpParameters:m,stopTracks:o,disableTrackOnPause:c,zeroRtpOnPause:d,appData:l});return this._producers.set(w.id,w),this.handleProducer(w),this._observer.safeEmit("newproducer",w),w}catch(g){throw this._handler.stopSending(f).catch(()=>{}),g}},"transport.produce()").catch(u=>{if(o)try{e.stop()}catch{}throw u})}async consume({id:e,producerId:t,kind:r,rtpParameters:i,streamId:n,onRtpReceiver:a,appData:o={}}){if(N.debug("consume()"),this._closed)throw new A.InvalidStateError("closed");if(this._direction!=="recv")throw new A.UnsupportedError("not a receiving Transport");if(typeof e!="string")throw new TypeError("missing id");if(typeof t!="string")throw new TypeError("missing producerId");if(r!=="audio"&&r!=="video")throw new TypeError(`invalid kind '${r}'`);if(this.listenerCount("connect")===0&&this._connectionState==="new")throw new TypeError('no "connect" listener set into this transport');if(o&&typeof o!="object")throw new TypeError("if given, appData must be an object");let c=Ir.clone(i);if(!st.canReceive(c,this._recvRtpCapabilities))throw new A.UnsupportedError("cannot consume this Producer");let p=new Or({id:e,producerId:t,kind:r,rtpParameters:c,streamId:n,onRtpReceiver:a,appData:o});return this._pendingConsumerTasks.push(p),queueMicrotask(()=>{this._closed||this._consumerCreationInProgress===!1&&this.createPendingConsumers()}),p.promise}async produceData({ordered:e=!0,maxPacketLifeTime:t,maxRetransmits:r,label:i="",protocol:n="",appData:a={}}={}){if(N.debug("produceData()"),this._closed)throw new A.InvalidStateError("closed");if(this._direction!=="send")throw new A.UnsupportedError("not a sending Transport");if(this._maxSctpMessageSize){if(this.listenerCount("connect")===0&&this._connectionState==="new")throw new TypeError('no "connect" listener set into this transport');if(this.listenerCount("producedata")===0)throw new TypeError('no "producedata" listener set into this transport');if(a&&typeof a!="object")throw new TypeError("if given, appData must be an object")}else throw new A.UnsupportedError("SCTP not enabled by remote Transport");return(t||r)&&(e=!1),this._awaitQueue.push(async()=>{let{dataChannel:o,sctpStreamParameters:c}=await this._handler.sendDataChannel({sctpStreamParameters:{ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:n}});st.validateAndNormalizeSctpStreamParameters(c);let{id:d}=await new Promise((l,u)=>{this.safeEmit("producedata",{sctpStreamParameters:c,label:i,protocol:n,appData:a},l,u)}),p=new Xa.DataProducer({id:d,dataChannel:o,sctpStreamParameters:c,appData:a});return this._dataProducers.set(p.id,p),this.handleDataProducer(p),this._observer.safeEmit("newdataproducer",p),p},"transport.produceData()")}async consumeData({id:e,dataProducerId:t,sctpStreamParameters:r,label:i="",protocol:n="",appData:a={}}){if(N.debug("consumeData()"),this._closed)throw new A.InvalidStateError("closed");if(this._direction!=="recv")throw new A.UnsupportedError("not a receiving Transport");if(this._maxSctpMessageSize){if(typeof e!="string")throw new TypeError("missing id");if(typeof t!="string")throw new TypeError("missing dataProducerId");if(this.listenerCount("connect")===0&&this._connectionState==="new")throw new TypeError('no "connect" listener set into this transport');if(a&&typeof a!="object")throw new TypeError("if given, appData must be an object")}else throw new A.UnsupportedError("SCTP not enabled by remote Transport");let o=Ir.clone(r);return st.validateAndNormalizeSctpStreamParameters(o),this._awaitQueue.push(async()=>{let{dataChannel:c}=await this._handler.receiveDataChannel({maxMessageSize:this._maxSctpMessageSize,sctpStreamParameters:o,label:i,protocol:n}),d=new Za.DataConsumer({id:e,dataProducerId:t,dataChannel:c,sctpStreamParameters:o,appData:a});return this._dataConsumers.set(d.id,d),this.handleDataConsumer(d),this._observer.safeEmit("newdataconsumer",d),d},"transport.consumeData()")}getDataChannelMaxMessageSize(){return this._handler.getDataChannelMaxMessageSize()}createPendingConsumers(){this._consumerCreationInProgress=!0,this._awaitQueue.push(async()=>{if(this._pendingConsumerTasks.length===0){N.debug("createPendingConsumers() | there is no Consumer to be created");return}let e=[...this._pendingConsumerTasks];this._pendingConsumerTasks=[];let t,r=[];for(let i of e){let{id:n,kind:a,rtpParameters:o,streamId:c,onRtpReceiver:d}=i.consumerOptions;r.push({trackId:n,kind:a,rtpParameters:o,streamId:c,onRtpReceiver:d})}try{let i=await this._handler.receive(r);for(let n=0;n<i.length;++n){let a=e[n],o=i[n],{id:c,producerId:d,kind:p,rtpParameters:l,appData:u}=a.consumerOptions,{localId:f,rtpReceiver:m,track:h}=o,g=new Ja.Consumer({id:c,localId:f,producerId:d,rtpReceiver:m,track:h,rtpParameters:l,appData:u});this._consumers.set(g.id,g),this.handleConsumer(g),!this._probatorConsumerCreated&&!t&&p==="video"&&(t=g),this._observer.safeEmit("newconsumer",g),a.resolve(g)}}catch(i){for(let n of e)n.reject(i)}if(t)try{let i=st.generateProbatorRtpParameters(t.rtpParameters);await this._handler.receive([{trackId:"probator",kind:"video",rtpParameters:i}]),N.debug("createPendingConsumers() | Consumer for RTP probation created"),this._probatorConsumerCreated=!0}catch(i){N.error("createPendingConsumers() | failed to create Consumer for RTP probation:%o",i)}},"transport.createPendingConsumers()").then(()=>{this._consumerCreationInProgress=!1,this._pendingConsumerTasks.length>0&&this.createPendingConsumers()}).catch(()=>{})}pausePendingConsumers(){this._consumerPauseInProgress=!0,this._awaitQueue.push(async()=>{if(this._pendingPauseConsumers.size===0){N.debug("pausePendingConsumers() | there is no Consumer to be paused");return}let e=Array.from(this._pendingPauseConsumers.values());this._pendingPauseConsumers.clear();try{let t=e.map(r=>r.localId);await this._handler.pauseReceiving(t)}catch(t){N.error("pausePendingConsumers() | failed to pause Consumers:",t)}},"transport.pausePendingConsumers()").then(()=>{this._consumerPauseInProgress=!1,this._pendingPauseConsumers.size>0&&this.pausePendingConsumers()}).catch(()=>{})}resumePendingConsumers(){this._consumerResumeInProgress=!0,this._awaitQueue.push(async()=>{if(this._pendingResumeConsumers.size===0){N.debug("resumePendingConsumers() | there is no Consumer to be resumed");return}let e=Array.from(this._pendingResumeConsumers.values());this._pendingResumeConsumers.clear();try{let t=e.map(r=>r.localId);await this._handler.resumeReceiving(t)}catch(t){N.error("resumePendingConsumers() | failed to resume Consumers:",t)}},"transport.resumePendingConsumers()").then(()=>{this._consumerResumeInProgress=!1,this._pendingResumeConsumers.size>0&&this.resumePendingConsumers()}).catch(()=>{})}closePendingConsumers(){this._consumerCloseInProgress=!0,this._awaitQueue.push(async()=>{if(this._pendingCloseConsumers.size===0){N.debug("closePendingConsumers() | there is no Consumer to be closed");return}let e=Array.from(this._pendingCloseConsumers.values());this._pendingCloseConsumers.clear();try{await this._handler.stopReceiving(e.map(t=>t.localId))}catch(t){N.error("closePendingConsumers() | failed to close Consumers:",t)}},"transport.closePendingConsumers()").then(()=>{this._consumerCloseInProgress=!1,this._pendingCloseConsumers.size>0&&this.closePendingConsumers()}).catch(()=>{})}handleHandler(){let e=this._handler;e.on("@connect",({dtlsParameters:t},r,i)=>{if(this._closed){i(new A.InvalidStateError("closed"));return}this.safeEmit("connect",{dtlsParameters:t},r,i)}),e.on("@icegatheringstatechange",t=>{t!==this._iceGatheringState&&(N.debug("ICE gathering state changed to %s",t),this._iceGatheringState=t,this._closed||this.safeEmit("icegatheringstatechange",t))}),e.on("@icecandidateerror",t=>{N.warn(`ICE candidate error [url:${t.url}, localAddress:${t.address}, localPort:${t.port}]: ${t.errorCode} "${t.errorText}"`),this.safeEmit("icecandidateerror",t)}),e.on("@connectionstatechange",t=>{t!==this._connectionState&&(N.debug("connection state changed to %s",t),this._connectionState=t,this._closed||this.safeEmit("connectionstatechange",t))})}handleProducer(e){e.on("@close",()=>{this._producers.delete(e.id),!this._closed&&this._awaitQueue.push(async()=>await this._handler.stopSending(e.localId),"producer @close event").catch(t=>N.warn("producer.close() failed:%o",t))}),e.on("@pause",(t,r)=>{this._awaitQueue.push(async()=>await this._handler.pauseSending(e.localId),"producer @pause event").then(t).catch(r)}),e.on("@resume",(t,r)=>{this._awaitQueue.push(async()=>await this._handler.resumeSending(e.localId),"producer @resume event").then(t).catch(r)}),e.on("@replacetrack",(t,r,i)=>{this._awaitQueue.push(async()=>await this._handler.replaceTrack(e.localId,t),"producer @replacetrack event").then(r).catch(i)}),e.on("@setmaxspatiallayer",(t,r,i)=>{this._awaitQueue.push(async()=>await this._handler.setMaxSpatialLayer(e.localId,t),"producer @setmaxspatiallayer event").then(r).catch(i)}),e.on("@setrtpencodingparameters",(t,r,i)=>{this._awaitQueue.push(async()=>await this._handler.setRtpEncodingParameters(e.localId,t),"producer @setrtpencodingparameters event").then(r).catch(i)}),e.on("@getstats",(t,r)=>{if(this._closed)return r(new A.InvalidStateError("closed"));this._handler.getSenderStats(e.localId).then(t).catch(r)})}handleConsumer(e){e.on("@close",()=>{this._consumers.delete(e.id),this._pendingPauseConsumers.delete(e.id),this._pendingResumeConsumers.delete(e.id),!this._closed&&(this._pendingCloseConsumers.set(e.id,e),this._consumerCloseInProgress===!1&&this.closePendingConsumers())}),e.on("@pause",()=>{this._pendingResumeConsumers.has(e.id)&&this._pendingResumeConsumers.delete(e.id),this._pendingPauseConsumers.set(e.id,e),queueMicrotask(()=>{this._closed||this._consumerPauseInProgress===!1&&this.pausePendingConsumers()})}),e.on("@resume",()=>{this._pendingPauseConsumers.has(e.id)&&this._pendingPauseConsumers.delete(e.id),this._pendingResumeConsumers.set(e.id,e),queueMicrotask(()=>{this._closed||this._consumerResumeInProgress===!1&&this.resumePendingConsumers()})}),e.on("@getstats",(t,r)=>{if(this._closed)return r(new A.InvalidStateError("closed"));this._handler.getReceiverStats(e.localId).then(t).catch(r)})}handleDataProducer(e){e.on("@close",()=>{this._dataProducers.delete(e.id)})}handleDataConsumer(e){e.on("@close",()=>{this._dataConsumers.delete(e.id)})}};At.Transport=Nr});var Ft=C((gd,ui)=>{"use strict";var li=ui.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(s){return s.encoding?"rtpmap:%d %s/%s/%s":s.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(s){return s.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(s){return s.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(s){return"extmap:%d"+(s.direction?"/%s":"%v")+(s["encrypt-uri"]?" %s":"%v")+" %s"+(s.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(s){return s.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{push:"msid",reg:/^msid:([\w-]+)(?: ([\w-]+))?/,names:["id","appdata"],format:"msid:%s %s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(s){var e="candidate:%s %d %s %d %s %d typ %s";return e+=s.raddr!=null?" raddr %s rport %d":"%v%v",e+=s.tcptype!=null?" tcptype %s":"%v",s.generation!=null&&(e+=" generation %d"),e+=s["network-id"]!=null?" network-id %d":"%v",e+=s["network-cost"]!=null?" network-cost %d":"%v",e}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(s){var e="ssrc:%d";return s.attribute!=null&&(e+=" %s",s.value!=null&&(e+=":%s")),e}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(s){return s.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(s){return s.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(s){return"imageattr:%s %s %s"+(s.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(s){return"simulcast:%s %s"+(s.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(s){return"ts-refclk:%s"+(s.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(s){var e="mediaclk:";return e+=s.id!=null?"id=%s %s":"%v%s",e+=s.mediaClockValue!=null?"=%s":"",e+=s.rateNumerator!=null?" rate=%s":"",e+=s.rateDenominator!=null?"/%s":"",e}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(li).forEach(function(s){var e=li[s];e.forEach(function(t){t.reg||(t.reg=/(.*)/),t.format||(t.format="%s")})})});var mi=C(le=>{"use strict";var Ve=function(s){return String(Number(s))===s?Number(s):s},eo=function(s,e,t,r){if(r&&!t)e[r]=Ve(s[1]);else for(var i=0;i<t.length;i+=1)s[i+1]!=null&&(e[t[i]]=Ve(s[i+1]))},to=function(s,e,t){var r=s.name&&s.names;s.push&&!e[s.push]?e[s.push]=[]:r&&!e[s.name]&&(e[s.name]={});var i=s.push?{}:r?e[s.name]:e;eo(t.match(s.reg),i,s.names,s.name),s.push&&e[s.push].push(i)},hi=Ft(),ro=RegExp.prototype.test.bind(/^([a-z])=(.*)/);le.parse=function(s){var e={},t=[],r=e;return s.split(/(\r\n|\r|\n)/).filter(ro).forEach(function(i){var n=i[0],a=i.slice(2);n==="m"&&(t.push({rtp:[],fmtp:[]}),r=t[t.length-1]);for(var o=0;o<(hi[n]||[]).length;o+=1){var c=hi[n][o];if(c.reg.test(a))return to(c,r,a)}}),e.media=t,e};var fi=function(s,e){var t=e.split(/=(.+)/,2);return t.length===2?s[t[0]]=Ve(t[1]):t.length===1&&e.length>1&&(s[t[0]]=void 0),s};le.parseParams=function(s){return s.split(/;\s?/).reduce(fi,{})};le.parseFmtpConfig=le.parseParams;le.parsePayloads=function(s){return s.toString().split(" ").map(Number)};le.parseRemoteCandidates=function(s){for(var e=[],t=s.split(" ").map(Ve),r=0;r<t.length;r+=3)e.push({component:t[r],ip:t[r+1],port:t[r+2]});return e};le.parseImageAttributes=function(s){return s.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(fi,{})})};le.parseSimulcastStreamList=function(s){return s.split(";").map(function(e){return e.split(",").map(function(t){var r,i=!1;return t[0]!=="~"?r=Ve(t):(r=Ve(t.substring(1,t.length)),i=!0),{scid:r,paused:i}})})}});var _i=C((vd,gi)=>{"use strict";var Ar=Ft(),so=/%[sdv%]/g,io=function(s){var e=1,t=arguments,r=t.length;return s.replace(so,function(i){if(e>=r)return i;var n=t[e];switch(e+=1,i){case"%%":return"%";case"%s":return String(n);case"%d":return Number(n);case"%v":return""}})},it=function(s,e,t){var r=e.format instanceof Function?e.format(e.push?t:t[e.name]):e.format,i=[s+"="+r];if(e.names)for(var n=0;n<e.names.length;n+=1){var a=e.names[n];e.name?i.push(t[e.name][a]):i.push(t[e.names[n]])}else i.push(t[e.name]);return io.apply(null,i)},no=["v","o","s","i","u","e","p","c","b","t","r","z","a"],ao=["i","c","b","a"];gi.exports=function(s,e){e=e||{},s.version==null&&(s.version=0),s.name==null&&(s.name=" "),s.media.forEach(function(n){n.payloads==null&&(n.payloads="")});var t=e.outerOrder||no,r=e.innerOrder||ao,i=[];return t.forEach(function(n){Ar[n].forEach(function(a){a.name in s&&s[a.name]!=null?i.push(it(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(o){i.push(it(n,a,o))})})}),s.media.forEach(function(n){i.push(it("m",Ar.m[0],n)),r.forEach(function(a){Ar[a].forEach(function(o){o.name in n&&n[o.name]!=null?i.push(it(a,o,n)):o.push in n&&n[o.push]!=null&&n[o.push].forEach(function(c){i.push(it(a,o,c))})})})}),i.join(`\r
|
|
6
6
|
`)+`\r
|
|
7
|
-
`}});var wi=ee(Bn=>{"use strict";var Pa=ZE(),bO=tC(),vO=h0();Bn.grammar=vO;Bn.write=bO;Bn.parse=Pa.parse;Bn.parseParams=Pa.parseParams;Bn.parseFmtpConfig=Pa.parseFmtpConfig;Bn.parsePayloads=Pa.parsePayloads;Bn.parseRemoteCandidates=Pa.parseRemoteCandidates;Bn.parseImageAttributes=Pa.parseImageAttributes;Bn.parseSimulcastStreamList=Pa.parseSimulcastStreamList});var Ba=ee(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.parse=SO;var wO=new RegExp("^[LS]([1-9]\\d{0,1})T([1-9]\\d{0,1})");function SO(r){let e=wO.exec(r??"");return e?{spatialLayers:Number(e[1]),temporalLayers:Number(e[2])}:{spatialLayers:1,temporalLayers:1}}});var nC=ee(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.OfferMediaSection=xo.AnswerMediaSection=xo.MediaSection=void 0;var _O=wi(),rC=Ia(),vf=class{_mediaObject;constructor({iceParameters:e,iceCandidates:t,dtlsParameters:s}){if(this._mediaObject={type:"",port:0,protocol:"",payloads:"",rtp:[],fmtp:[]},e&&this.setIceParameters(e),t){this._mediaObject.candidates=[];for(let n of t){let i={foundation:n.foundation,component:1,ip:n.address??n.ip,port:n.port,priority:n.priority,transport:n.protocol,type:n.type};n.tcpType&&(i.tcptype=n.tcpType),this._mediaObject.candidates.push(i)}this._mediaObject.endOfCandidates="end-of-candidates",this._mediaObject.iceOptions="renomination"}s&&this.setDtlsRole(s.role)}get mid(){return String(this._mediaObject.mid)}get closed(){return this._mediaObject.port===0}getObject(){return this._mediaObject}setIceParameters(e){this._mediaObject.iceUfrag=e.usernameFragment,this._mediaObject.icePwd=e.password}pause(){this._mediaObject.direction="inactive"}disable(){this.pause()}close(){this.disable(),this._mediaObject.port=0,delete this._mediaObject.candidates,delete this._mediaObject.endOfCandidates,delete this._mediaObject.iceUfrag,delete this._mediaObject.icePwd,delete this._mediaObject.iceOptions,this._mediaObject.rtp=[],this._mediaObject.fmtp=[],delete this._mediaObject.rtcp,delete this._mediaObject.rtcpFb,delete this._mediaObject.ssrcs,delete this._mediaObject.ssrcGroups,delete this._mediaObject.simulcast,delete this._mediaObject.simulcast_03,delete this._mediaObject.rids,delete this._mediaObject.extmapAllowMixed}};xo.MediaSection=vf;var Yy=class extends vf{constructor({iceParameters:e,iceCandidates:t,dtlsParameters:s,sctpParameters:n,plainRtpParameters:i,offerMediaObject:o,offerRtpParameters:a,answerRtpParameters:c,codecOptions:d}){switch(super({iceParameters:e,iceCandidates:t,dtlsParameters:s}),this._mediaObject.mid=String(o.mid),this._mediaObject.type=o.type,this._mediaObject.protocol=o.protocol,i?(this._mediaObject.connection={ip:i.ip,version:i.ipVersion},this._mediaObject.port=i.port):(this._mediaObject.connection={ip:"127.0.0.1",version:4},this._mediaObject.port=7),o.type){case"audio":case"video":{this._mediaObject.direction="recvonly",this._mediaObject.rtp=[],this._mediaObject.rtcpFb=[],this._mediaObject.fmtp=[];for(let u of c.codecs){let l={payload:u.payloadType,codec:sC(u),rate:u.clockRate};u.channels>1&&(l.encoding=u.channels),this._mediaObject.rtp.push(l);let h=rC.clone(u.parameters)??{},x=rC.clone(u.rtcpFeedback)??[];if(d){let{opusStereo:S,opusFec:C,opusDtx:D,opusMaxPlaybackRate:re,opusMaxAverageBitrate:G,opusPtime:te,opusNack:ae,videoGoogleStartBitrate:se,videoGoogleMaxBitrate:Ie,videoGoogleMinBitrate:ve}=d,Y=a.codecs.find(tt=>tt.payloadType===u.payloadType);switch(u.mimeType.toLowerCase()){case"audio/opus":case"audio/multiopus":{S!==void 0&&(Y.parameters["sprop-stereo"]=S?1:0,h.stereo=S?1:0),C!==void 0&&(Y.parameters.useinbandfec=C?1:0,h.useinbandfec=C?1:0),D!==void 0&&(Y.parameters.usedtx=D?1:0,h.usedtx=D?1:0),re!==void 0&&(h.maxplaybackrate=re),G!==void 0&&(h.maxaveragebitrate=G),te!==void 0&&(Y.parameters.ptime=te,h.ptime=te),ae||(Y.rtcpFeedback=Y.rtcpFeedback.filter(tt=>tt.type!=="nack"||tt.parameter),x=x.filter(tt=>tt.type!=="nack"||tt.parameter));break}case"video/vp8":case"video/vp9":case"video/h264":case"video/h265":case"video/av1":{se!==void 0&&(h["x-google-start-bitrate"]=se),Ie!==void 0&&(h["x-google-max-bitrate"]=Ie),ve!==void 0&&(h["x-google-min-bitrate"]=ve);break}}}let v={payload:u.payloadType,config:""};for(let S of Object.keys(h))v.config&&(v.config+=";"),v.config+=`${S}=${h[S]}`;v.config&&this._mediaObject.fmtp.push(v);for(let S of x)this._mediaObject.rtcpFb.push({payload:u.payloadType,type:S.type,subtype:S.parameter})}this._mediaObject.payloads=c.codecs.map(u=>u.payloadType).join(" "),this._mediaObject.ext=[];for(let u of c.headerExtensions)(o.ext??[]).some(h=>h.uri===u.uri)&&this._mediaObject.ext.push({uri:u.uri,value:u.id});if(o.extmapAllowMixed==="extmap-allow-mixed"&&(this._mediaObject.extmapAllowMixed="extmap-allow-mixed"),o.simulcast){this._mediaObject.simulcast={dir1:"recv",list1:o.simulcast.list1},this._mediaObject.rids=[];for(let u of o.rids??[])u.direction==="send"&&this._mediaObject.rids.push({id:u.id,direction:"recv"})}else if(o.simulcast_03){this._mediaObject.simulcast_03={value:o.simulcast_03.value.replace(/send/g,"recv")},this._mediaObject.rids=[];for(let u of o.rids??[])u.direction==="send"&&this._mediaObject.rids.push({id:u.id,direction:"recv"})}this._mediaObject.rtcpMux="rtcp-mux",this._mediaObject.rtcpRsize="rtcp-rsize";break}case"application":{typeof o.sctpPort=="number"?(this._mediaObject.payloads="webrtc-datachannel",this._mediaObject.sctpPort=n.port,this._mediaObject.maxMessageSize=n.maxMessageSize):o.sctpmap&&(this._mediaObject.payloads=String(n.port),this._mediaObject.sctpmap={app:"webrtc-datachannel",sctpmapNumber:n.port,maxMessageSize:n.maxMessageSize});break}}}setDtlsRole(e){switch(e){case"client":{this._mediaObject.setup="active";break}case"server":{this._mediaObject.setup="passive";break}case"auto":{this._mediaObject.setup="actpass";break}}}resume(){this._mediaObject.direction="recvonly"}muxSimulcastStreams(e){if(!this._mediaObject.simulcast?.list1)return;let t={};for(let i of e)i.rid&&(t[i.rid]=i);let s=this._mediaObject.simulcast.list1,n=_O.parseSimulcastStreamList(s);for(let i of n)for(let o of i)o.paused=!t[o.scid]?.active;this._mediaObject.simulcast.list1=n.map(i=>i.map(o=>`${o.paused?"~":""}${o.scid}`).join(",")).join(";")}};xo.AnswerMediaSection=Yy;var Qy=class extends vf{constructor({iceParameters:e,iceCandidates:t,dtlsParameters:s,sctpParameters:n,plainRtpParameters:i,mid:o,kind:a,offerRtpParameters:c,streamId:d,trackId:u}){switch(super({iceParameters:e,iceCandidates:t,dtlsParameters:s}),this._mediaObject.mid=String(o),this._mediaObject.type=a,i?(this._mediaObject.connection={ip:i.ip,version:i.ipVersion},this._mediaObject.protocol="RTP/AVP",this._mediaObject.port=i.port):(this._mediaObject.connection={ip:"127.0.0.1",version:4},n?this._mediaObject.protocol="UDP/DTLS/SCTP":this._mediaObject.protocol="UDP/TLS/RTP/SAVPF",this._mediaObject.port=7),this._mediaObject.extmapAllowMixed="extmap-allow-mixed",a){case"audio":case"video":{this._mediaObject.direction="sendonly",this._mediaObject.rtp=[],this._mediaObject.rtcpFb=[],this._mediaObject.fmtp=[],this._mediaObject.msid=[{id:d,appdata:u}];for(let v of c.codecs){let S={payload:v.payloadType,codec:sC(v),rate:v.clockRate};v.channels>1&&(S.encoding=v.channels),this._mediaObject.rtp.push(S);let C={payload:v.payloadType,config:""};for(let D of Object.keys(v.parameters??{}))C.config&&(C.config+=";"),C.config+=`${D}=${v.parameters[D]}`;C.config&&this._mediaObject.fmtp.push(C);for(let D of v.rtcpFeedback)this._mediaObject.rtcpFb.push({payload:v.payloadType,type:D.type,subtype:D.parameter})}this._mediaObject.payloads=c.codecs.map(v=>v.payloadType).join(" "),this._mediaObject.ext=[];for(let v of c.headerExtensions)this._mediaObject.ext.push({uri:v.uri,value:v.id});this._mediaObject.rtcpMux="rtcp-mux",this._mediaObject.rtcpRsize="rtcp-rsize";let l=c.encodings[0],h=l.ssrc,x=l.rtx?.ssrc;this._mediaObject.ssrcs=[],this._mediaObject.ssrcGroups=[],h&&c.rtcp.cname&&this._mediaObject.ssrcs.push({id:h,attribute:"cname",value:c.rtcp.cname}),x&&(c.rtcp.cname&&this._mediaObject.ssrcs.push({id:x,attribute:"cname",value:c.rtcp.cname}),h&&this._mediaObject.ssrcGroups.push({semantics:"FID",ssrcs:`${h} ${x}`}));break}case"application":{this._mediaObject.payloads="webrtc-datachannel",this._mediaObject.sctpPort=n.port,this._mediaObject.maxMessageSize=n.maxMessageSize;break}}}setDtlsRole(e){this._mediaObject.setup="actpass"}resume(){this._mediaObject.direction="sendonly"}};xo.OfferMediaSection=Qy;function sC(r){let t=new RegExp("^(audio|video)/(.+)","i").exec(r.mimeType);if(!t)throw new TypeError("invalid codec.mimeType");return t[2]}});var Cd=ee(g0=>{"use strict";Object.defineProperty(g0,"__esModule",{value:!0});g0.RemoteSdp=void 0;var EO=wi(),CO=Yr(),p0=nC(),TO=Zy(),AO=["av1","h264"],m0=new CO.Logger("RemoteSdp"),Jy=class{_iceParameters;_iceCandidates;_dtlsParameters;_sctpParameters;_plainRtpParameters;_mediaSections=[];_midToIndex=new Map;_firstMid;_sdpObject;constructor({iceParameters:e,iceCandidates:t,dtlsParameters:s,sctpParameters:n,plainRtpParameters:i}){if(this._iceParameters=e,this._iceCandidates=t,this._dtlsParameters=s,this._sctpParameters=n,this._plainRtpParameters=i,this._sdpObject={version:0,origin:{address:"0.0.0.0",ipVer:4,netType:"IN",sessionId:"10000",sessionVersion:0,username:`media-client-v${TO.version}`},name:"-",timing:{start:0,stop:0},media:[]},this._sdpObject.iceOptions="ice2",e?.iceLite&&(this._sdpObject.icelite="ice-lite"),s){this._sdpObject.msidSemantic={semantic:"WMS",token:"*"};let o=this._dtlsParameters.fingerprints.length;this._sdpObject.fingerprint={type:s.fingerprints[o-1].algorithm,hash:s.fingerprints[o-1].value},this._sdpObject.groups=[{type:"BUNDLE",mids:""}]}i&&(this._sdpObject.origin.address=i.ip,this._sdpObject.origin.ipVer=i.ipVersion)}updateIceParameters(e){m0.debug("updateIceParameters() [iceParameters:%o]",e),this._iceParameters=e,this._sdpObject.icelite=e.iceLite?"ice-lite":void 0;for(let t of this._mediaSections)t.setIceParameters(e)}updateDtlsRole(e){m0.debug("updateDtlsRole() [role:%s]",e),this._dtlsParameters.role=e;for(let t of this._mediaSections)t.setDtlsRole(e)}setSessionExtmapAllowMixed(){m0.debug("setSessionExtmapAllowMixed()"),this._sdpObject.extmapAllowMixed="extmap-allow-mixed"}getNextMediaSectionIdx(){for(let e=0;e<this._mediaSections.length;++e){let t=this._mediaSections[e];if(t.closed)return{idx:e,reuseMid:t.mid}}return{idx:this._mediaSections.length}}send({offerMediaObject:e,reuseMid:t,offerRtpParameters:s,answerRtpParameters:n,codecOptions:i}){let o=new p0.AnswerMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,plainRtpParameters:this._plainRtpParameters,offerMediaObject:e,offerRtpParameters:s,answerRtpParameters:n,codecOptions:i}),a=o.getObject();a.rtp.find(d=>AO.includes(d.codec.toLowerCase()))||(a.ext=a.ext?.filter(d=>d.uri!=="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension")),t?this.replaceMediaSection(o,t):this._midToIndex.has(o.mid)?this.replaceMediaSection(o):this.addMediaSection(o)}receive({mid:e,kind:t,offerRtpParameters:s,streamId:n,trackId:i}){this.setSessionExtmapAllowMixed();let o=new p0.OfferMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,plainRtpParameters:this._plainRtpParameters,mid:e,kind:t,offerRtpParameters:s,streamId:n,trackId:i}),a=this._mediaSections.find(c=>c.closed&&c.getObject().type===t);a?this.replaceMediaSection(o,a.mid):this.addMediaSection(o)}pauseMediaSection(e){this.findMediaSection(e).pause()}resumeSendingMediaSection(e){this.findMediaSection(e).resume()}resumeReceivingMediaSection(e){this.findMediaSection(e).resume()}disableMediaSection(e){this.findMediaSection(e).disable()}closeMediaSection(e){let t=this.findMediaSection(e);return e===this._firstMid?(m0.debug("closeMediaSection() | cannot close first media section, disabling it instead [mid:%s]",e),this.disableMediaSection(e),!1):(t.close(),this.regenerateBundleMids(),!0)}muxMediaSectionSimulcast(e,t){let s=this.findMediaSection(e);s.muxSimulcastStreams(t),this.replaceMediaSection(s)}sendSctpAssociation({offerMediaObject:e}){let t=new p0.AnswerMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,sctpParameters:this._sctpParameters,plainRtpParameters:this._plainRtpParameters,offerMediaObject:e});this.addMediaSection(t)}receiveSctpAssociation(){let e=new p0.OfferMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,sctpParameters:this._sctpParameters,plainRtpParameters:this._plainRtpParameters,mid:"datachannel",kind:"application"});this.addMediaSection(e)}getSdp(){return this._sdpObject.origin.sessionVersion++,EO.write(this._sdpObject)}addMediaSection(e){this._firstMid||(this._firstMid=e.mid),this._mediaSections.push(e),this._midToIndex.set(e.mid,this._mediaSections.length-1),this._sdpObject.media.push(e.getObject()),this.regenerateBundleMids()}replaceMediaSection(e,t){if(typeof t=="string"){let s=this._midToIndex.get(t);if(s===void 0)throw new Error(`no media section found for reuseMid '${t}'`);let n=this._mediaSections[s];this._mediaSections[s]=e,this._midToIndex.delete(n.mid),this._midToIndex.set(e.mid,s),this._sdpObject.media[s]=e.getObject(),this.regenerateBundleMids()}else{let s=this._midToIndex.get(e.mid);if(s===void 0)throw new Error(`no media section found with mid '${e.mid}'`);this._mediaSections[s]=e,this._sdpObject.media[s]=e.getObject()}}findMediaSection(e){let t=this._midToIndex.get(e);if(t===void 0)throw new Error(`no media section found with mid '${e}'`);return this._mediaSections[t]}regenerateBundleMids(){this._dtlsParameters&&(this._sdpObject.groups[0].mids=this._mediaSections.filter(e=>!e.closed).map(e=>e.mid).join(" "))}};g0.RemoteSdp=Jy});var Td=ee(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.extractRtpCapabilities=IO;Na.extractDtlsParameters=RO;Na.getCname=kO;Na.applyCodecParameters=PO;Na.addHeaderExtension=BO;var iC=wi();function IO({sdpObject:r}){let e=new Map,t=new Map;for(let n of r.media){let i=n.type;switch(i){case"audio":case"video":break;default:continue}for(let o of n.rtp){let a={kind:i,mimeType:`${i}/${o.codec}`,preferredPayloadType:o.payload,clockRate:o.rate,channels:o.encoding,parameters:{},rtcpFeedback:[]};e.set(a.preferredPayloadType,a)}for(let o of n.fmtp??[]){let a=iC.parseParams(o.config),c=e.get(o.payload);c&&(a?.hasOwnProperty("profile-level-id")&&(a["profile-level-id"]=String(a["profile-level-id"])),c.parameters=a)}for(let o of n.rtcpFb??[]){let a={type:o.type,parameter:o.subtype};if(a.parameter||delete a.parameter,o.payload!=="*"){let c=e.get(Number(o.payload));if(!c)continue;c.rtcpFeedback.push(a)}else for(let c of e.values())c.kind===i&&!/.+\/rtx$/i.test(c.mimeType)&&c.rtcpFeedback.push(a)}for(let o of n.ext??[]){if(o["encrypt-uri"])continue;let a={kind:i,uri:o.uri,preferredId:o.value};t.set(a.preferredId,a)}}return{codecs:Array.from(e.values()),headerExtensions:Array.from(t.values())}}function RO({sdpObject:r}){let e=r.setup,t=r.fingerprint;if(!e||!t){let i=(r.media??[]).find(o=>o.port!==0);i&&(e=e??i.setup,t=t??i.fingerprint)}if(e){if(!t)throw new Error("no a=fingerprint found at SDP session or media level")}else throw new Error("no a=setup found at SDP session or media level");let s;switch(e){case"active":{s="client";break}case"passive":{s="server";break}case"actpass":{s="auto";break}}return{role:s,fingerprints:[{algorithm:t.type,value:t.hash}]}}function kO({offerMediaObject:r}){let e=(r.ssrcs??[]).find(t=>t.attribute==="cname");return e?e.value:""}function PO({offerRtpParameters:r,answerMediaObject:e}){for(let t of r.codecs){let s=t.mimeType.toLowerCase();if(s!=="audio/opus"||!(e.rtp??[]).find(a=>a.payload===t.payloadType))continue;e.fmtp=e.fmtp??[];let i=e.fmtp.find(a=>a.payload===t.payloadType);i||(i={payload:t.payloadType,config:""},e.fmtp.push(i));let o=iC.parseParams(i.config);if(s==="audio/opus"){let a=t.parameters?.["sprop-stereo"];a!==void 0&&(o.stereo=Number(a)?1:0)}i.config="";for(let a of Object.keys(o))i.config&&(i.config+=";"),i.config+=`${a}=${o[a]}`}}function BO({offerMediaObject:r,headerExtensionUri:e,headerExtensionId:t}){r.ext||(r.ext=[]),r.ext.push({uri:e,value:t})}});var Ad=ee(x0=>{"use strict";Object.defineProperty(x0,"__esModule",{value:!0});x0.getRtpEncodings=NO;x0.addLegacySimulcast=OO;function NO({offerMediaObject:r,codecs:e}){let t=new Set;for(let i of r.ssrcs??[]){let o=i.id;o&&t.add(o)}if(t.size===0)throw new Error("no a=ssrc lines found");let s=new Map;for(let i of r.ssrcGroups??[]){if(i.semantics!=="FID")continue;let o=i.ssrcs.split(/\s+/),a=Number(o[0]),c=Number(o[1]);t.has(a)&&(t.delete(a),t.delete(c),s.set(a,c))}for(let i of t)s.set(i,void 0);let n=[];for(let[i,o]of s){let a={ssrc:i};o&&e.length>1&&(a.rtx={ssrc:o}),n.push(a)}return n}function OO({offerMediaObject:r,numStreams:e}){if(e<=1)throw new TypeError("numStreams must be greater than 1");let t=(r.ssrcs??[]).find(l=>l.attribute==="msid");if(!t)throw new Error("a=ssrc line with msid information not found");let[s,n]=t.value.split(" "),i=Number(t.id),o;(r.ssrcGroups??[]).some(l=>{if(l.semantics!=="FID")return!1;let h=l.ssrcs.split(/\s+/);return Number(h[0])===i?(o=Number(h[1]),!0):!1});let a=(r.ssrcs??[]).find(l=>l.attribute==="cname");if(!a)throw new Error("a=ssrc line with cname information not found");let c=a.value,d=[],u=[];for(let l=0;l<e;++l)d.push(i+l),o&&u.push(o+l);r.ssrcGroups=[],r.ssrcs=[],r.ssrcGroups.push({semantics:"SIM",ssrcs:d.join(" ")});for(let l of d)r.ssrcs.push({id:l,attribute:"cname",value:c}),r.ssrcs.push({id:l,attribute:"msid",value:`${s} ${n}`});for(let l=0;l<u.length;++l){let h=d[l],x=u[l];r.ssrcs.push({id:x,attribute:"cname",value:c}),r.ssrcs.push({id:x,attribute:"msid",value:`${s} ${n}`}),r.ssrcGroups.push({semantics:"FID",ssrcs:`${h} ${x}`})}}});var Id=ee(wf=>{"use strict";Object.defineProperty(wf,"__esModule",{value:!0});wf.addNackSupportForOpus=LO;wf.addHeaderExtensionSupport=DO;wf.getMsidStreamIdAndTrackId=MO;function LO(r){for(let e of r.codecs??[])(e.mimeType.toLowerCase()==="audio/opus"||e.mimeType.toLowerCase()==="audio/multiopus")&&!e.rtcpFeedback?.some(t=>t.type==="nack"&&!t.parameter)&&(e.rtcpFeedback||(e.rtcpFeedback=[]),e.rtcpFeedback.push({type:"nack"}))}function DO(r,e){let t,s=r.headerExtensions?.find(i=>i.uri===e.uri);if(s){if(s.kind===e.kind)return;t=s.preferredId}if(r.headerExtensions||(r.headerExtensions=[]),t===void 0){t=1;let i=new Set(r.headerExtensions.map(o=>o.preferredId));for(;i.has(t);)++t}let n={kind:e.kind,uri:e.uri,preferredId:t,preferredEncrypt:!1,direction:e.direction};r.headerExtensions.push(n)}function MO(r){if(!r||typeof r!="string")return{msidStreamId:void 0,msidTrackId:void 0};let[e,t]=r.trim().split(/\s+/);return e?{msidStreamId:e,msidTrackId:t}:{msidStreamId:void 0,msidTrackId:void 0}}});var dC=ee(y0=>{"use strict";Object.defineProperty(y0,"__esModule",{value:!0});y0.Chrome111=void 0;var Nn=wi(),UO=as(),jO=Yr(),Sf=Rn(),HO=Ls(),FO=Ba(),qO=Cd(),_f=Td(),oC=Ad(),eb=Id(),Ze=new jO.Logger("Chrome111"),aC="Chrome111",cC={OS:65535,MIS:65535},tb=class r extends UO.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_forcedLocalDtlsRole;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:aC,factory:e=>new r(e),getNativeRtpCapabilities:async({direction:e})=>{Ze.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{t.addTransceiver("audio",{direction:e}),t.addTransceiver("video",{direction:e,sendEncodings:[{scalabilityMode:"L3T3"}]});let s=await t.createOffer();try{t.close()}catch{}t=void 0;let n=Nn.parse(s.sdp);return r.getLocalRtpCapabilities(n)}catch(s){try{t?.close()}catch{}throw t=void 0,s}},getNativeSctpCapabilities:async()=>(Ze.debug("getNativeSctpCapabilities()"),{numStreams:cC})}}static getLocalRtpCapabilities(e,t=[]){let s=_f.extractRtpCapabilities({sdpObject:e});Sf.validateAndNormalizeRtpCapabilities(s),eb.addNackSupportForOpus(s);for(let n of t)eb.addHeaderExtensionSupport(s,n);return s}constructor({direction:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),Ze.debug("constructor()"),this._direction=e,this._remoteSdp=new qO.RemoteSdp({iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i}),this._getSendExtendedRtpCapabilities=d,n.role&&n.role!=="auto"&&(this._forcedLocalDtlsRole=n.role==="server"?"client":"server"),this._pc=new RTCPeerConnection({iceServers:o??[],iceTransportPolicy:a??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(Ze.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return aC}close(){if(Ze.debug("close()"),!this._closed){this._closed=!0;try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){this.assertNotClosed(),Ze.debug("updateIceServers()");let t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(this.assertNotClosed(),Ze.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});Ze.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let s={type:"answer",sdp:this._remoteSdp.getSdp()};Ze.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",s),await this._pc.setRemoteDescription(s)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};Ze.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Ze.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:s,codecOptions:n,headerExtensionOptions:i,codec:o,onRtpSender:a}){if(this.assertNotClosed(),this.assertSendDirection(),Ze.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t),s&&s.length>1){let te=1;for(let ae of s){let se=ae.scalabilityMode?(0,FO.parse)(ae.scalabilityMode).temporalLayers:3;se>te&&(te=se)}s.forEach((ae,se)=>{ae.rid=`r${se}`,ae.scalabilityMode=`L1T${te}`})}let c=this._remoteSdp.getNextMediaSectionIdx(),d=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:s});a&&a(d.sender);let u=await this._pc.createOffer(),l=Nn.parse(u.sdp);l.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let h=[];h.push({uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",kind:e.kind,direction:"sendonly"});let x=r.getLocalRtpCapabilities(l,h),v=this._getSendExtendedRtpCapabilities(x),S=Sf.getSendingRtpParameters(e.kind,v);S.codecs=Sf.reduceCodecs(S.codecs,o);let C=Sf.getSendingRemoteRtpParameters(e.kind,v);if(C.codecs=Sf.reduceCodecs(C.codecs,o),this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:l}),i?.absCaptureTime){let te=l.media[c.idx];_f.addHeaderExtension({offerMediaObject:te,headerExtensionUri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",headerExtensionId:C.headerExtensions.find(ae=>ae.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time").id}),u={type:"offer",sdp:Nn.write(l)}}Ze.debug("send() | calling pc.setLocalDescription() [offer:%o]",u),await this._pc.setLocalDescription(u);let D=d.mid;S.mid=D,l=Nn.parse(this._pc.localDescription.sdp);let re=l.media[c.idx];if(S.rtcp.cname=_f.getCname({offerMediaObject:re}),S.msid=`${t??this._sendStream.id} ${e.id}`,!s)S.encodings=oC.getRtpEncodings({offerMediaObject:re,codecs:S.codecs});else if(s.length===1){let te=oC.getRtpEncodings({offerMediaObject:re,codecs:S.codecs});Object.assign(te[0],s[0]),S.encodings=te}else S.encodings=s;this._remoteSdp.send({offerMediaObject:re,reuseMid:c.reuseMid,offerRtpParameters:S,answerRtpParameters:C,codecOptions:n});let G={type:"answer",sdp:this._remoteSdp.getSdp()};return Ze.debug("send() | calling pc.setRemoteDescription() [answer:%o]",G),await this._pc.setRemoteDescription(G),this._mapMidTransceiver.set(D,d),{localId:D,rtpParameters:S,rtpSender:d.sender}}async stopSending(e){if(this.assertSendDirection(),Ze.debug("stopSending() [localId:%s]",e),this._closed)return;let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");if(t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid))try{t.stop()}catch{}let n=await this._pc.createOffer();Ze.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let i={type:"answer",sdp:this._remoteSdp.getSdp()};Ze.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),Ze.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let s=await this._pc.createOffer();Ze.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};Ze.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),Ze.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(this._remoteSdp.resumeSendingMediaSection(e),!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly";let s=await this._pc.createOffer();Ze.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};Ze.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?Ze.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):Ze.debug("replaceTrack() [localId:%s, no track]",e);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");await s.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),Ze.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{c<=t?a.active=!0:a.active=!1}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();Ze.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};Ze.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),Ze.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{n.encodings[c]={...a,...t}}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();Ze.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};Ze.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};Ze.debug("sendDataChannel() [options:%o]",t);let s=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%cC.MIS,!this._hasDataChannelMediaSection){let i=await this._pc.createOffer(),o=Nn.parse(i.sdp),a=o.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:o}),Ze.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i),this._remoteSdp.sendSctpAssociation({offerMediaObject:a});let c={type:"answer",sdp:this._remoteSdp.getSdp()};Ze.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let n={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:s,sctpStreamParameters:n}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],s=new Map;for(let a of e){let{trackId:c,kind:d,rtpParameters:u,streamId:l}=a;Ze.debug("receive() [trackId:%s, kind:%s]",c,d);let h=u.mid??String(this._mapMidTransceiver.size);s.set(c,h);let{msidStreamId:x}=eb.getMsidStreamIdAndTrackId(u.msid);this._remoteSdp.receive({mid:h,kind:d,offerRtpParameters:u,streamId:l??x??u.rtcp?.cname??"-",trackId:c})}let n={type:"offer",sdp:this._remoteSdp.getSdp()};Ze.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",n),await this._pc.setRemoteDescription(n);for(let a of e){let{trackId:c,onRtpReceiver:d}=a;if(d){let u=s.get(c),l=this._pc.getTransceivers().find(h=>h.mid===u);if(!l)throw new Error("transceiver not found");d(l.receiver)}}let i=await this._pc.createAnswer(),o=Nn.parse(i.sdp);for(let a of e){let{trackId:c,rtpParameters:d}=a,u=s.get(c),l=o.media.find(h=>String(h.mid)===u);_f.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l})}i={type:"answer",sdp:Nn.write(o)},this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:o}),Ze.debug("receive() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i);for(let a of e){let{trackId:c}=a,d=s.get(c),u=this._pc.getTransceivers().find(l=>l.mid===d);if(u)this._mapMidTransceiver.set(d,u),t.push({localId:d,track:u.receiver.track,rtpReceiver:u.receiver});else throw new Error("new RTCRtpTransceiver not found")}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let n of e){Ze.debug("stopReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(i.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Ze.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Ze.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(let n of e)this._mapMidTransceiver.delete(n)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){Ze.debug("pauseReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="inactive",this._remoteSdp.pauseMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Ze.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Ze.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){Ze.debug("resumeReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Ze.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Ze.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async getReceiverStats(e){this.assertNotClosed(),this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:s,protocol:n}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c}=t,d={negotiated:!0,id:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c,protocol:n};Ze.debug("receiveDataChannel() [options:%o]",d);let u=this._pc.createDataChannel(s,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};Ze.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let h=await this._pc.createAnswer(),x=Nn.parse(h.sdp),v=x.media.find(S=>S.type==="application");v.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:x}),h={type:"answer",sdp:Nn.write(x)},Ze.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",h),await this._pc.setLocalDescription(h),this._hasDataChannelMediaSection=!0}return{dataChannel:u}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=Nn.parse(this._pc.localDescription.sdp));let s=_f.extractDtlsParameters({sdpObject:t});s.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((n,i)=>{this.safeEmit("@connect",{dtlsParameters:s},n,i)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new HO.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};y0.Chrome111=tb});var lC=ee(b0=>{"use strict";Object.defineProperty(b0,"__esModule",{value:!0});b0.Chrome74=void 0;var Ds=wi(),zO=Yr(),VO=as(),Ef=Rn(),$O=Ls(),KO=Ba(),WO=Cd(),Cf=Td(),rb=Ad(),sb=Id(),Qe=new zO.Logger("Chrome74"),uC="Chrome74",fC={OS:1024,MIS:1024},nb=class r extends VO.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_forcedLocalDtlsRole;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:uC,factory:e=>new r(e),getNativeRtpCapabilities:async({direction:e})=>{Qe.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{t.addTransceiver("audio",{direction:e}),t.addTransceiver("video",{direction:e});let s=await t.createOffer();try{t.close()}catch{}t=void 0;let n=Ds.parse(s.sdp);return r.getLocalRtpCapabilities(n)}catch(s){try{t?.close()}catch{}throw t=void 0,s}},getNativeSctpCapabilities:async()=>(Qe.debug("getNativeSctpCapabilities()"),{numStreams:fC})}}static getLocalRtpCapabilities(e,t=[]){let s=Cf.extractRtpCapabilities({sdpObject:e});Ef.validateAndNormalizeRtpCapabilities(s),sb.addNackSupportForOpus(s);for(let n of t)sb.addHeaderExtensionSupport(s,n);return s}constructor({direction:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),Qe.debug("constructor()"),this._direction=e,this._remoteSdp=new WO.RemoteSdp({iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i}),this._getSendExtendedRtpCapabilities=d,n.role&&n.role!=="auto"&&(this._forcedLocalDtlsRole=n.role==="server"?"client":"server"),this._pc=new RTCPeerConnection({iceServers:o??[],iceTransportPolicy:a??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(Qe.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return uC}close(){if(Qe.debug("close()"),!this._closed){this._closed=!0;try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){this.assertNotClosed(),Qe.debug("updateIceServers()");let t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(this.assertNotClosed(),Qe.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});Qe.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let s={type:"answer",sdp:this._remoteSdp.getSdp()};Qe.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",s),await this._pc.setRemoteDescription(s)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};Qe.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Qe.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:s,codecOptions:n,headerExtensionOptions:i,codec:o}){this.assertNotClosed(),this.assertSendDirection(),Qe.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t),s&&s.length>1&&s.forEach((ae,se)=>{ae.rid=`r${se}`});let a=this._remoteSdp.getNextMediaSectionIdx(),c=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:s}),d=await this._pc.createOffer(),u=Ds.parse(d.sdp);u.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let l=[];l.push({uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",kind:e.kind,direction:"sendonly"});let h=r.getLocalRtpCapabilities(u,l),x=this._getSendExtendedRtpCapabilities(h),v=Ef.getSendingRtpParameters(e.kind,x);v.codecs=Ef.reduceCodecs(v.codecs,o);let S=Ef.getSendingRemoteRtpParameters(e.kind,x);S.codecs=Ef.reduceCodecs(S.codecs,o),this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:u});let C=!1,D=(0,KO.parse)((s??[{}])[0].scalabilityMode),re;s?.length===1&&D.spatialLayers>1&&v.codecs[0].mimeType.toLowerCase()==="video/vp9"&&(Qe.debug("send() | enabling legacy simulcast for VP9 SVC"),C=!0,u=Ds.parse(d.sdp),re=u.media[a.idx],rb.addLegacySimulcast({offerMediaObject:re,numStreams:D.spatialLayers}),d={type:"offer",sdp:Ds.write(u)}),Qe.debug("send() | calling pc.setLocalDescription() [offer:%o]",d),i?.absCaptureTime&&(re=u.media[a.idx],Cf.addHeaderExtension({offerMediaObject:re,headerExtensionUri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",headerExtensionId:S.headerExtensions.find(ae=>ae.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time").id}),d={type:"offer",sdp:Ds.write(u)}),await this._pc.setLocalDescription(d);let G=c.mid;if(v.mid=G,u=Ds.parse(this._pc.localDescription.sdp),re=u.media[a.idx],v.rtcp.cname=Cf.getCname({offerMediaObject:re}),v.msid=`${t??this._sendStream.id} ${e.id}`,!s)v.encodings=rb.getRtpEncodings({offerMediaObject:re,codecs:v.codecs});else if(s.length===1){let ae=rb.getRtpEncodings({offerMediaObject:re,codecs:v.codecs});Object.assign(ae[0],s[0]),C&&(ae=[ae[0]]),v.encodings=ae}else v.encodings=s;if(v.encodings.length>1&&(v.codecs[0].mimeType.toLowerCase()==="video/vp8"||v.codecs[0].mimeType.toLowerCase()==="video/h264"))for(let ae of v.encodings)ae.scalabilityMode?ae.scalabilityMode=`L1T${D.temporalLayers}`:ae.scalabilityMode="L1T3";this._remoteSdp.send({offerMediaObject:re,reuseMid:a.reuseMid,offerRtpParameters:v,answerRtpParameters:S,codecOptions:n});let te={type:"answer",sdp:this._remoteSdp.getSdp()};return Qe.debug("send() | calling pc.setRemoteDescription() [answer:%o]",te),await this._pc.setRemoteDescription(te),this._mapMidTransceiver.set(G,c),{localId:G,rtpParameters:v,rtpSender:c.sender}}async stopSending(e){if(this.assertSendDirection(),Qe.debug("stopSending() [localId:%s]",e),this._closed)return;let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");if(t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid))try{t.stop()}catch{}let n=await this._pc.createOffer();Qe.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let i={type:"answer",sdp:this._remoteSdp.getSdp()};Qe.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),Qe.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let s=await this._pc.createOffer();Qe.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};Qe.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),Qe.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(this._remoteSdp.resumeSendingMediaSection(e),!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly";let s=await this._pc.createOffer();Qe.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};Qe.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?Qe.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):Qe.debug("replaceTrack() [localId:%s, no track]",e);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");await s.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),Qe.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{c<=t?a.active=!0:a.active=!1}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();Qe.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};Qe.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),Qe.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{n.encodings[c]={...a,...t}}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();Qe.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};Qe.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};Qe.debug("sendDataChannel() [options:%o]",t);let s=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%fC.MIS,!this._hasDataChannelMediaSection){let i=await this._pc.createOffer(),o=Ds.parse(i.sdp),a=o.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:o}),Qe.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i),this._remoteSdp.sendSctpAssociation({offerMediaObject:a});let c={type:"answer",sdp:this._remoteSdp.getSdp()};Qe.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let n={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:s,sctpStreamParameters:n}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],s=new Map;for(let a of e){let{trackId:c,kind:d,rtpParameters:u,streamId:l}=a;Qe.debug("receive() [trackId:%s, kind:%s]",c,d);let h=u.mid??String(this._mapMidTransceiver.size);s.set(c,h);let{msidStreamId:x}=sb.getMsidStreamIdAndTrackId(u.msid);this._remoteSdp.receive({mid:h,kind:d,offerRtpParameters:u,streamId:l??x??u.rtcp?.cname??"-",trackId:c})}let n={type:"offer",sdp:this._remoteSdp.getSdp()};Qe.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",n),await this._pc.setRemoteDescription(n);let i=await this._pc.createAnswer(),o=Ds.parse(i.sdp);for(let a of e){let{trackId:c,rtpParameters:d}=a,u=s.get(c),l=o.media.find(h=>String(h.mid)===u);Cf.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l})}i={type:"answer",sdp:Ds.write(o)},this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:o}),Qe.debug("receive() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i);for(let a of e){let{trackId:c}=a,d=s.get(c),u=this._pc.getTransceivers().find(l=>l.mid===d);if(u)this._mapMidTransceiver.set(d,u),t.push({localId:d,track:u.receiver.track,rtpReceiver:u.receiver});else throw new Error("new RTCRtpTransceiver not found")}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let n of e){Qe.debug("stopReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(i.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Qe.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Qe.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(let n of e)this._mapMidTransceiver.delete(n)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){Qe.debug("pauseReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="inactive",this._remoteSdp.pauseMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Qe.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Qe.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){Qe.debug("resumeReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Qe.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Qe.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async getReceiverStats(e){this.assertNotClosed(),this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:s,protocol:n}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c}=t,d={negotiated:!0,id:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c,protocol:n};Qe.debug("receiveDataChannel() [options:%o]",d);let u=this._pc.createDataChannel(s,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};Qe.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let h=await this._pc.createAnswer(),x=Ds.parse(h.sdp),v=x.media.find(S=>S.type==="application");v.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:x}),h={type:"answer",sdp:Ds.write(x)},Qe.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",h),await this._pc.setLocalDescription(h),this._hasDataChannelMediaSection=!0}return{dataChannel:u}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=Ds.parse(this._pc.localDescription.sdp));let s=Cf.extractDtlsParameters({sdpObject:t});s.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((n,i)=>{this.safeEmit("@connect",{dtlsParameters:s},n,i)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new $O.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};b0.Chrome74=nb});var xC=ee(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});w0.Firefox120=void 0;var Si=wi(),GO=as(),XO=Yr(),hC=Ls(),Tf=Rn(),YO=Ba(),QO=Cd(),v0=Td(),pC=Ad(),JO=Id(),et=new XO.Logger("Firefox120"),mC="Firefox120",gC={OS:16,MIS:2048},ib=class r extends GO.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:mC,factory:e=>new r(e),getNativeRtpCapabilities:async({direction:e})=>{et.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"}),s=document.createElement("canvas");s.getContext("2d");let i=s.captureStream().getVideoTracks()[0];try{t.addTransceiver("audio",{direction:e}),t.addTransceiver(i,{direction:e,sendEncodings:[{rid:"r0",maxBitrate:1e5},{rid:"r1",maxBitrate:5e5}]});let o=await t.createOffer();try{s.remove()}catch{}try{i.stop()}catch{}try{t.close()}catch{}t=void 0;let a=Si.parse(o.sdp);return r.getLocalRtpCapabilities(a)}catch(o){try{s.remove()}catch{}try{i.stop()}catch{}try{t?.close()}catch{}throw t=void 0,o}},getNativeSctpCapabilities:async()=>(et.debug("getNativeSctpCapabilities()"),{numStreams:gC})}}static getLocalRtpCapabilities(e){let t=v0.extractRtpCapabilities({sdpObject:e});return Tf.validateAndNormalizeRtpCapabilities(t),t}constructor({direction:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),et.debug("constructor()"),this._direction=e,this._remoteSdp=new QO.RemoteSdp({iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i}),this._getSendExtendedRtpCapabilities=d,this._pc=new RTCPeerConnection({iceServers:o??[],iceTransportPolicy:a??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(et.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return mC}close(){if(et.debug("close()"),!this._closed){this._closed=!0;try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){throw this.assertNotClosed(),new hC.UnsupportedError("not supported")}async restartIce(e){if(this.assertNotClosed(),et.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});et.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let s={type:"answer",sdp:this._remoteSdp.getSdp()};et.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",s),await this._pc.setRemoteDescription(s)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};et.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();et.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:s,codecOptions:n,codec:i,onRtpSender:o}){this.assertNotClosed(),this.assertSendDirection(),et.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t),s&&s.length>1&&s.forEach((re,G)=>{re.rid=`r${G}`});let a=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:s});o&&o(a.sender);let c=await this._pc.createOffer(),d=Si.parse(c.sdp);d.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let u=r.getLocalRtpCapabilities(d),l=this._getSendExtendedRtpCapabilities(u),h=Tf.getSendingRtpParameters(e.kind,l);h.codecs=Tf.reduceCodecs(h.codecs,i);let x=Tf.getSendingRemoteRtpParameters(e.kind,l);x.codecs=Tf.reduceCodecs(x.codecs,i),this._transportReady||await this.setupTransport({localDtlsRole:"client",localSdpObject:d});let v=(0,YO.parse)((s??[{}])[0].scalabilityMode);et.debug("send() | calling pc.setLocalDescription() [offer:%o]",c),await this._pc.setLocalDescription(c);let S=a.mid;h.mid=S,d=Si.parse(this._pc.localDescription.sdp);let C=d.media[d.media.length-1];if(h.rtcp.cname=v0.getCname({offerMediaObject:C}),h.msid=`${t??this._sendStream.id} ${e.id}`,!s)h.encodings=pC.getRtpEncodings({offerMediaObject:C,codecs:h.codecs});else if(s.length===1){let re=pC.getRtpEncodings({offerMediaObject:C,codecs:h.codecs});Object.assign(re[0],s[0]),h.encodings=re}else h.encodings=s;if(h.encodings.length>1&&(h.codecs[0].mimeType.toLowerCase()==="video/vp8"||h.codecs[0].mimeType.toLowerCase()==="video/h264"))for(let re of h.encodings)re.scalabilityMode?re.scalabilityMode=`L1T${v.temporalLayers}`:re.scalabilityMode="L1T3";this._remoteSdp.send({offerMediaObject:C,offerRtpParameters:h,answerRtpParameters:x,codecOptions:n});let D={type:"answer",sdp:this._remoteSdp.getSdp()};return et.debug("send() | calling pc.setRemoteDescription() [answer:%o]",D),await this._pc.setRemoteDescription(D),this._mapMidTransceiver.set(S,a),{localId:S,rtpParameters:h,rtpSender:a.sender}}async stopSending(e){if(this.assertSendDirection(),et.debug("stopSending() [localId:%s]",e),this._closed)return;let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated transceiver not found");t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.disableMediaSection(t.mid);let s=await this._pc.createOffer();et.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};et.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),et.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let s=await this._pc.createOffer();et.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};et.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),et.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly",this._remoteSdp.resumeSendingMediaSection(e);let s=await this._pc.createOffer();et.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};et.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?et.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):et.debug("replaceTrack() [localId:%s, no track]",e);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");await s.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),et.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated transceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{c<=t?a.active=!0:a.active=!1}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();et.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};et.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),et.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{n.encodings[c]={...a,...t}}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();et.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};et.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};et.debug("sendDataChannel() [options:%o]",t);let s=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%gC.MIS,!this._hasDataChannelMediaSection){let i=await this._pc.createOffer(),o=Si.parse(i.sdp),a=o.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:"client",localSdpObject:o}),et.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i),this._remoteSdp.sendSctpAssociation({offerMediaObject:a});let c={type:"answer",sdp:this._remoteSdp.getSdp()};et.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let n={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:s,sctpStreamParameters:n}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],s=new Map;for(let a of e){let{trackId:c,kind:d,rtpParameters:u,streamId:l}=a;et.debug("receive() [trackId:%s, kind:%s]",c,d);let h=u.mid??String(this._mapMidTransceiver.size);s.set(c,h);let{msidStreamId:x}=JO.getMsidStreamIdAndTrackId(u.msid);this._remoteSdp.receive({mid:h,kind:d,offerRtpParameters:u,streamId:l??x??u.rtcp?.cname??"-",trackId:c})}let n={type:"offer",sdp:this._remoteSdp.getSdp()};et.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",n),await this._pc.setRemoteDescription(n);for(let a of e){let{trackId:c,onRtpReceiver:d}=a;if(d){let u=s.get(c),l=this._pc.getTransceivers().find(h=>h.mid===u);if(!l)throw new Error("transceiver not found");d(l.receiver)}}let i=await this._pc.createAnswer(),o=Si.parse(i.sdp);for(let a of e){let{trackId:c,rtpParameters:d}=a,u=s.get(c),l=o.media.find(h=>String(h.mid)===u);v0.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l}),i={type:"answer",sdp:Si.write(o)}}this._transportReady||await this.setupTransport({localDtlsRole:"client",localSdpObject:o}),et.debug("receive() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i);for(let a of e){let{trackId:c}=a,d=s.get(c),u=this._pc.getTransceivers().find(l=>l.mid===d);if(!u)throw new Error("new RTCRtpTransceiver not found");this._mapMidTransceiver.set(d,u),t.push({localId:d,track:u.receiver.track,rtpReceiver:u.receiver})}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let n of e){et.debug("stopReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(i.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};et.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();et.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(let n of e)this._mapMidTransceiver.delete(n)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){et.debug("pauseReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="inactive",this._remoteSdp.pauseMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};et.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();et.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){et.debug("resumeReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};et.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();et.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async getReceiverStats(e){this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:s,protocol:n}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c}=t,d={negotiated:!0,id:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c,protocol:n};et.debug("receiveDataChannel() [options:%o]",d);let u=this._pc.createDataChannel(s,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};et.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let h=await this._pc.createAnswer(),x=Si.parse(h.sdp),v=x.media.find(S=>S.type==="application");v.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:"client",localSdpObject:x}),h={type:"answer",sdp:Si.write(x)},et.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",h),await this._pc.setLocalDescription(h),this._hasDataChannelMediaSection=!0}return{dataChannel:u}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=Si.parse(this._pc.localDescription.sdp));let s=v0.extractDtlsParameters({sdpObject:t});s.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((n,i)=>{this.safeEmit("@connect",{dtlsParameters:s},n,i)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new hC.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};w0.Firefox120=ib});var wC=ee(S0=>{"use strict";Object.defineProperty(S0,"__esModule",{value:!0});S0.Safari12=void 0;var Ms=wi(),ZO=as(),eL=Yr(),Af=Rn(),tL=Ls(),rL=Ba(),sL=Cd(),If=Td(),yC=Ad(),ob=Id(),Je=new eL.Logger("Safari12"),bC="Safari12",vC={OS:65535,MIS:65535},ab=class r extends ZO.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_forcedLocalDtlsRole;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:bC,factory:e=>new r(e),getNativeRtpCapabilities:async({direction:e})=>{Je.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{t.addTransceiver("audio",{direction:e}),t.addTransceiver("video",{direction:e});let s=await t.createOffer();try{t.close()}catch{}t=void 0;let n=Ms.parse(s.sdp);return r.getLocalRtpCapabilities(n)}catch(s){try{t?.close()}catch{}throw t=void 0,s}},getNativeSctpCapabilities:async()=>(Je.debug("getNativeSctpCapabilities()"),{numStreams:vC})}}static getLocalRtpCapabilities(e,t=[]){let s=If.extractRtpCapabilities({sdpObject:e});Af.validateAndNormalizeRtpCapabilities(s),ob.addNackSupportForOpus(s);for(let n of t)ob.addHeaderExtensionSupport(s,n);return s}constructor({direction:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),Je.debug("constructor()"),this._direction=e,this._remoteSdp=new sL.RemoteSdp({iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i}),this._getSendExtendedRtpCapabilities=d,n.role&&n.role!=="auto"&&(this._forcedLocalDtlsRole=n.role==="server"?"client":"server"),this._pc=new RTCPeerConnection({iceServers:o??[],iceTransportPolicy:a??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)}),this._pc.addEventListener("icecandidateerror",u=>{this.emit("@icecandidateerror",u)}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(Je.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return bC}close(){if(Je.debug("close()"),!this._closed){this._closed=!0;try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){this.assertNotClosed(),Je.debug("updateIceServers()");let t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(this.assertNotClosed(),Je.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});Je.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let s={type:"answer",sdp:this._remoteSdp.getSdp()};Je.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",s),await this._pc.setRemoteDescription(s)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};Je.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Je.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:s,codecOptions:n,headerExtensionOptions:i,codec:o,onRtpSender:a}){this.assertNotClosed(),this.assertSendDirection(),Je.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t);let c=this._remoteSdp.getNextMediaSectionIdx(),d=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream]});a&&a(d.sender);let u=await this._pc.createOffer(),l=Ms.parse(u.sdp);l.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let h=[];h.push({uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",kind:e.kind,direction:"sendonly"});let x=r.getLocalRtpCapabilities(l,h),v=this._getSendExtendedRtpCapabilities(x),S=Af.getSendingRtpParameters(e.kind,v);S.codecs=Af.reduceCodecs(S.codecs,o);let C=Af.getSendingRemoteRtpParameters(e.kind,v);C.codecs=Af.reduceCodecs(C.codecs,o);let D;this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:l});let re=(0,rL.parse)((s??[{}])[0].scalabilityMode);s&&s.length>1&&(Je.debug("send() | enabling legacy simulcast"),l=Ms.parse(u.sdp),D=l.media[c.idx],yC.addLegacySimulcast({offerMediaObject:D,numStreams:s.length}),u={type:"offer",sdp:Ms.write(l)}),i?.absCaptureTime&&(D=l.media[c.idx],If.addHeaderExtension({offerMediaObject:D,headerExtensionUri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",headerExtensionId:C.headerExtensions.find(ae=>ae.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time").id}),u={type:"offer",sdp:Ms.write(l)}),Je.debug("send() | calling pc.setLocalDescription() [offer:%o]",u),await this._pc.setLocalDescription(u);let G=d.mid;if(S.mid=G,l=Ms.parse(this._pc.localDescription.sdp),D=l.media[c.idx],S.rtcp.cname=If.getCname({offerMediaObject:D}),S.msid=`${t??this._sendStream.id} ${e.id}`,S.encodings=yC.getRtpEncodings({offerMediaObject:D,codecs:S.codecs}),s)for(let ae=0;ae<S.encodings.length;++ae)s[ae]&&Object.assign(S.encodings[ae],s[ae]);if(S.encodings.length>1&&(S.codecs[0].mimeType.toLowerCase()==="video/vp8"||S.codecs[0].mimeType.toLowerCase()==="video/h264"))for(let ae of S.encodings)ae.scalabilityMode?ae.scalabilityMode=`L1T${re.temporalLayers}`:ae.scalabilityMode="L1T3";this._remoteSdp.send({offerMediaObject:D,reuseMid:c.reuseMid,offerRtpParameters:S,answerRtpParameters:C,codecOptions:n});let te={type:"answer",sdp:this._remoteSdp.getSdp()};return Je.debug("send() | calling pc.setRemoteDescription() [answer:%o]",te),await this._pc.setRemoteDescription(te),this._mapMidTransceiver.set(G,d),{localId:G,rtpParameters:S,rtpSender:d.sender}}async stopSending(e){if(this.assertSendDirection(),this._closed)return;Je.debug("stopSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");if(t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid))try{t.stop()}catch{}let n=await this._pc.createOffer();Je.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let i={type:"answer",sdp:this._remoteSdp.getSdp()};Je.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),Je.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let s=await this._pc.createOffer();Je.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};Je.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),Je.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly",this._remoteSdp.resumeSendingMediaSection(e);let s=await this._pc.createOffer();Je.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};Je.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?Je.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):Je.debug("replaceTrack() [localId:%s, no track]",e);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");await s.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),Je.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{c<=t?a.active=!0:a.active=!1}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();Je.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};Je.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),Je.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{n.encodings[c]={...a,...t}}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();Je.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};Je.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};Je.debug("sendDataChannel() [options:%o]",t);let s=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%vC.MIS,!this._hasDataChannelMediaSection){let i=await this._pc.createOffer(),o=Ms.parse(i.sdp),a=o.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:o}),Je.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i),this._remoteSdp.sendSctpAssociation({offerMediaObject:a});let c={type:"answer",sdp:this._remoteSdp.getSdp()};Je.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let n={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:s,sctpStreamParameters:n}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],s=new Map;for(let a of e){let{trackId:c,kind:d,rtpParameters:u,streamId:l}=a;Je.debug("receive() [trackId:%s, kind:%s]",c,d);let h=u.mid??String(this._mapMidTransceiver.size);s.set(c,h);let{msidStreamId:x}=ob.getMsidStreamIdAndTrackId(u.msid);this._remoteSdp.receive({mid:h,kind:d,offerRtpParameters:u,streamId:l??x??u.rtcp?.cname??"-",trackId:c})}let n={type:"offer",sdp:this._remoteSdp.getSdp()};Je.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",n),await this._pc.setRemoteDescription(n);for(let a of e){let{trackId:c,onRtpReceiver:d}=a;if(d){let u=s.get(c),l=this._pc.getTransceivers().find(h=>h.mid===u);if(!l)throw new Error("transceiver not found");d(l.receiver)}}let i=await this._pc.createAnswer(),o=Ms.parse(i.sdp);for(let a of e){let{trackId:c,rtpParameters:d}=a,u=s.get(c),l=o.media.find(h=>String(h.mid)===u);If.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l})}i={type:"answer",sdp:Ms.write(o)},this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:o}),Je.debug("receive() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i);for(let a of e){let{trackId:c}=a,d=s.get(c),u=this._pc.getTransceivers().find(l=>l.mid===d);if(!u)throw new Error("new RTCRtpTransceiver not found");this._mapMidTransceiver.set(d,u),t.push({localId:d,track:u.receiver.track,rtpReceiver:u.receiver})}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let n of e){Je.debug("stopReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(i.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Je.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Je.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(let n of e)this._mapMidTransceiver.delete(n)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){Je.debug("pauseReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="inactive",this._remoteSdp.pauseMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Je.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Je.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){Je.debug("resumeReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Je.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Je.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async getReceiverStats(e){this.assertNotClosed(),this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:s,protocol:n}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c}=t,d={negotiated:!0,id:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c,protocol:n};Je.debug("receiveDataChannel() [options:%o]",d);let u=this._pc.createDataChannel(s,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};Je.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let h=await this._pc.createAnswer(),x=Ms.parse(h.sdp),v=x.media.find(S=>S.type==="application");v.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:x}),h={type:"answer",sdp:Ms.write(x)},Je.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",h),await this._pc.setLocalDescription(h),this._hasDataChannelMediaSection=!0}return{dataChannel:u}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=Ms.parse(this._pc.localDescription.sdp));let s=If.extractDtlsParameters({sdpObject:t});s.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((n,i)=>{this.safeEmit("@connect",{dtlsParameters:s},n,i)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new tL.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};S0.Safari12=ab});var EC=ee(_0=>{"use strict";Object.defineProperty(_0,"__esModule",{value:!0});_0.ReactNative106=void 0;var Us=wi(),nL=as(),iL=Yr(),Rf=Rn(),oL=Ls(),aL=Ba(),cL=Cd(),kf=Td(),cb=Ad(),db=Id(),Ye=new iL.Logger("ReactNative106"),SC="ReactNative106",_C={OS:65535,MIS:65535},ub=class r extends nL.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_forcedLocalDtlsRole;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:SC,factory:e=>new r(e),getNativeRtpCapabilities:async({direction:e})=>{Ye.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{t.addTransceiver("audio",{direction:e}),t.addTransceiver("video",{direction:e});let s=await t.createOffer();try{t.close()}catch{}t=void 0;let n=Us.parse(s.sdp);return r.getLocalRtpCapabilities(n)}catch(s){try{t?.close()}catch{}throw t=void 0,s}},getNativeSctpCapabilities:async()=>(Ye.debug("getNativeSctpCapabilities()"),{numStreams:_C})}}static getLocalRtpCapabilities(e,t=[]){let s=kf.extractRtpCapabilities({sdpObject:e});Rf.validateAndNormalizeRtpCapabilities(s),db.addNackSupportForOpus(s);for(let n of t)db.addHeaderExtensionSupport(s,n);return s}constructor({direction:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),Ye.debug("constructor()"),this._direction=e,this._remoteSdp=new cL.RemoteSdp({iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i}),this._getSendExtendedRtpCapabilities=d,n.role&&n.role!=="auto"&&(this._forcedLocalDtlsRole=n.role==="server"?"client":"server"),this._pc=new RTCPeerConnection({iceServers:o??[],iceTransportPolicy:a??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(Ye.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return SC}close(){if(Ye.debug("close()"),!this._closed){this._closed=!0,this._sendStream.release(!1);try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){this.assertNotClosed(),Ye.debug("updateIceServers()");let t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(this.assertNotClosed(),Ye.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});Ye.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let s={type:"answer",sdp:this._remoteSdp.getSdp()};Ye.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",s),await this._pc.setRemoteDescription(s)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};Ye.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Ye.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:s,codecOptions:n,headerExtensionOptions:i,codec:o,onRtpSender:a}){this.assertNotClosed(),this.assertSendDirection(),Ye.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t),s&&s.length>1&&s.forEach((se,Ie)=>{se.rid=`r${Ie}`});let c=this._remoteSdp.getNextMediaSectionIdx(),d=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:s});a&&a(d.sender);let u=await this._pc.createOffer(),l=Us.parse(u.sdp);l.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let h=[];h.push({uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",kind:e.kind,direction:"sendonly"});let x=r.getLocalRtpCapabilities(l,h),v=this._getSendExtendedRtpCapabilities(x),S=Rf.getSendingRtpParameters(e.kind,v);S.codecs=Rf.reduceCodecs(S.codecs,o);let C=Rf.getSendingRemoteRtpParameters(e.kind,v);C.codecs=Rf.reduceCodecs(C.codecs,o),this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:l});let D=!1,re=(0,aL.parse)((s??[{}])[0].scalabilityMode),G;s?.length===1&&re.spatialLayers>1&&S.codecs[0].mimeType.toLowerCase()==="video/vp9"&&(Ye.debug("send() | enabling legacy simulcast for VP9 SVC"),D=!0,l=Us.parse(u.sdp),G=l.media[c.idx],cb.addLegacySimulcast({offerMediaObject:G,numStreams:re.spatialLayers}),u={type:"offer",sdp:Us.write(l)}),i?.absCaptureTime&&(G=l.media[c.idx],kf.addHeaderExtension({offerMediaObject:G,headerExtensionUri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",headerExtensionId:C.headerExtensions.find(se=>se.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time").id}),u={type:"offer",sdp:Us.write(l)}),Ye.debug("send() | calling pc.setLocalDescription() [offer:%o]",u),await this._pc.setLocalDescription(u);let te=d.mid??void 0;if(te||Ye.warn("send() | missing transceiver.mid (bug in react-native-webrtc, using a workaround"),S.mid=te,l=Us.parse(this._pc.localDescription.sdp),G=l.media[c.idx],S.rtcp.cname=kf.getCname({offerMediaObject:G}),S.msid=`${t??this._sendStream.id} ${e.id}`,!s)S.encodings=cb.getRtpEncodings({offerMediaObject:G,codecs:S.codecs});else if(s.length===1){let se=cb.getRtpEncodings({offerMediaObject:G,codecs:S.codecs});Object.assign(se[0],s[0]),D&&(se=[se[0]]),S.encodings=se}else S.encodings=s;if(S.encodings.length>1&&(S.codecs[0].mimeType.toLowerCase()==="video/vp8"||S.codecs[0].mimeType.toLowerCase()==="video/h264"))for(let se of S.encodings)se.scalabilityMode?se.scalabilityMode=`L1T${re.temporalLayers}`:se.scalabilityMode="L1T3";this._remoteSdp.send({offerMediaObject:G,reuseMid:c.reuseMid,offerRtpParameters:S,answerRtpParameters:C,codecOptions:n});let ae={type:"answer",sdp:this._remoteSdp.getSdp()};return Ye.debug("send() | calling pc.setRemoteDescription() [answer:%o]",ae),await this._pc.setRemoteDescription(ae),te||(te=d.mid,S.mid=te),this._mapMidTransceiver.set(te,d),{localId:te,rtpParameters:S,rtpSender:d.sender}}async stopSending(e){if(this.assertSendDirection(),this._closed)return;Ye.debug("stopSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");if(t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid))try{t.stop()}catch{}let n=await this._pc.createOffer();Ye.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let i={type:"answer",sdp:this._remoteSdp.getSdp()};Ye.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),Ye.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let s=await this._pc.createOffer();Ye.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};Ye.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),Ye.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(this._remoteSdp.resumeSendingMediaSection(e),!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly";let s=await this._pc.createOffer();Ye.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",s),await this._pc.setLocalDescription(s);let n={type:"answer",sdp:this._remoteSdp.getSdp()};Ye.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?Ye.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):Ye.debug("replaceTrack() [localId:%s, no track]",e);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");await s.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),Ye.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{c<=t?a.active=!0:a.active=!1}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();Ye.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};Ye.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),Ye.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let s=this._mapMidTransceiver.get(e);if(!s)throw new Error("associated RTCRtpTransceiver not found");let n=s.sender.getParameters();n.encodings.forEach((a,c)=>{n.encodings[c]={...a,...t}}),await s.sender.setParameters(n),this._remoteSdp.muxMediaSectionSimulcast(e,n.encodings);let i=await this._pc.createOffer();Ye.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let o={type:"answer",sdp:this._remoteSdp.getSdp()};Ye.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",o),await this._pc.setRemoteDescription(o)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};Ye.debug("sendDataChannel() [options:%o]",t);let s=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%_C.MIS,!this._hasDataChannelMediaSection){let i=await this._pc.createOffer(),o=Us.parse(i.sdp),a=o.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:o}),Ye.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i),this._remoteSdp.sendSctpAssociation({offerMediaObject:a});let c={type:"answer",sdp:this._remoteSdp.getSdp()};Ye.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let n={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:s,sctpStreamParameters:n}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],s=new Map;for(let a of e){let{trackId:c,kind:d,rtpParameters:u,streamId:l}=a;Ye.debug("receive() [trackId:%s, kind:%s]",c,d);let h=u.mid??String(this._mapMidTransceiver.size);s.set(c,h);let{msidStreamId:x}=db.getMsidStreamIdAndTrackId(u.msid);this._remoteSdp.receive({mid:h,kind:d,offerRtpParameters:u,streamId:l??x??u.rtcp?.cname??"-",trackId:c})}let n={type:"offer",sdp:this._remoteSdp.getSdp()};Ye.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",n),await this._pc.setRemoteDescription(n);for(let a of e){let{trackId:c,onRtpReceiver:d}=a;if(d){let u=s.get(c),l=this._pc.getTransceivers().find(h=>h.mid===u);if(!l)throw new Error("transceiver not found");d(l.receiver)}}let i=await this._pc.createAnswer(),o=Us.parse(i.sdp);for(let a of e){let{trackId:c,rtpParameters:d}=a,u=s.get(c),l=o.media.find(h=>String(h.mid)===u);kf.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l})}i={type:"answer",sdp:Us.write(o)},this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:o}),Ye.debug("receive() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i);for(let a of e){let{trackId:c}=a,d=s.get(c),u=this._pc.getTransceivers().find(l=>l.mid===d);if(u)this._mapMidTransceiver.set(d,u),t.push({localId:d,track:u.receiver.track,rtpReceiver:u.receiver});else throw new Error("new RTCRtpTransceiver not found")}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let n of e){Ye.debug("stopReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(i.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Ye.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Ye.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(let n of e)this._mapMidTransceiver.delete(n)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){Ye.debug("pauseReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="inactive",this._remoteSdp.pauseMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Ye.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Ye.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let n of e){Ye.debug("resumeReceiving() [localId:%s]",n);let i=this._mapMidTransceiver.get(n);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(n)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};Ye.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let s=await this._pc.createAnswer();Ye.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async getReceiverStats(e){this.assertNotClosed(),this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:s,protocol:n}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c}=t,d={negotiated:!0,id:i,ordered:o,maxPacketLifeTime:a,maxRetransmits:c,protocol:n};Ye.debug("receiveDataChannel() [options:%o]",d);let u=this._pc.createDataChannel(s,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};Ye.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let h=await this._pc.createAnswer(),x=Us.parse(h.sdp),v=x.media.find(S=>S.type==="application");v.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:x}),h={type:"answer",sdp:Us.write(x)},Ye.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",h),await this._pc.setLocalDescription(h),this._hasDataChannelMediaSection=!0}return{dataChannel:u}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=Us.parse(this._pc.localDescription.sdp));let s=kf.extractDtlsParameters({sdpObject:t});s.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((n,i)=>{this.safeEmit("@connect",{dtlsParameters:s},n,i)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new oL.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};_0.ReactNative106=ub});var IC=ee(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});Rd.Device=void 0;Rd.detectDevice=CC;Rd.detectDeviceAsync=TC;var dL=Yr(),uL=as(),yo=Ls(),E0=Ia(),Ss=Rn(),fL=GE(),lL=dC(),hL=lC(),pL=xC(),mL=wC(),gL=EC(),He=new dL.Logger("Device");function CC(r,e){return He.debug("detectDevice()"),!r&&typeof navigator=="object"&&(r=navigator.userAgent),!e&&typeof navigator=="object"&&(e=navigator.userAgentData),AC(r,e)}async function TC(r,e){return He.debug("detectDeviceAsync()"),!r&&typeof navigator=="object"&&(r=navigator.userAgent),!e&&typeof navigator=="object"&&(e=navigator.userAgentData),AC(r,e)}var fb=class r{_handlerFactory;_handlerName;_loaded=!1;_getSendExtendedRtpCapabilities;_recvRtpCapabilities;_sendRtpCapabilities;_canProduceByKind={audio:!1,video:!1};_sctpCapabilities;_observer=new uL.EnhancedEventEmitter;static async factory({handlerName:e,handlerFactory:t}={}){if(He.debug("factory()"),e&&t)throw new TypeError("just one of handlerName or handlerInterface can be given");if(!e&&!t&&(e=await TC(),!e))throw new yo.UnsupportedError("device not supported");return new r({handlerName:e,handlerFactory:t})}constructor({handlerName:e,handlerFactory:t}={}){if(He.debug("constructor()"),e&&t)throw new TypeError("just one of handlerName or handlerInterface can be given");if(t)this._handlerFactory=t;else{if(e)He.debug("constructor() | handler given: %s",e);else if(e=CC(),e)He.debug("constructor() | detected handler: %s",e);else throw new yo.UnsupportedError("device not supported");switch(e){case"Chrome111":{this._handlerFactory=lL.Chrome111.createFactory();break}case"Chrome74":{this._handlerFactory=hL.Chrome74.createFactory();break}case"Firefox120":{this._handlerFactory=pL.Firefox120.createFactory();break}case"Safari12":{this._handlerFactory=mL.Safari12.createFactory();break}case"ReactNative106":{this._handlerFactory=gL.ReactNative106.createFactory();break}default:throw new TypeError(`unknown handlerName "${e}"`)}}this._handlerName=this._handlerFactory.name}get handlerName(){return this._handlerName}get loaded(){return this._loaded}get rtpCapabilities(){return this.recvRtpCapabilities}get recvRtpCapabilities(){if(!this._loaded)throw new yo.InvalidStateError("not loaded");return this._recvRtpCapabilities}get sendRtpCapabilities(){if(!this._loaded)throw new yo.InvalidStateError("not loaded");return this._sendRtpCapabilities}get sctpCapabilities(){if(!this._loaded)throw new yo.InvalidStateError("not loaded");return this._sctpCapabilities}get observer(){return this._observer}async load({routerRtpCapabilities:e,preferLocalCodecsOrder:t=!1}){if(He.debug("load() [routerRtpCapabilities:%o]",e),this._loaded)throw new yo.InvalidStateError("already loaded");let s=E0.clone(e);Ss.validateAndNormalizeRtpCapabilities(s);let{getNativeRtpCapabilities:n,getNativeSctpCapabilities:i}=this._handlerFactory,o=E0.clone(await n({direction:"recvonly"}));He.debug("load() | got native receiving RTP capabilities:%o",o),Ss.validateAndNormalizeRtpCapabilities(o);let a=E0.clone(await n({direction:"sendonly"}));He.debug("load() | got native sending RTP capabilities:%o",a),Ss.validateAndNormalizeRtpCapabilities(a),this._getSendExtendedRtpCapabilities=u=>E0.clone(Ss.getExtendedRtpCapabilities(u,s,t));let c=Ss.getExtendedRtpCapabilities(o,s,!1);this._recvRtpCapabilities=Ss.getRecvRtpCapabilities(c),He.debug("load() | got receiving RTP capabilities:%o",this._recvRtpCapabilities),Ss.validateAndNormalizeRtpCapabilities(this._recvRtpCapabilities);let d=Ss.getExtendedRtpCapabilities(a,s,t);this._sendRtpCapabilities=Ss.getSendRtpCapabilities(d),He.debug("load() | got sending RTP capabilities:%o",this._sendRtpCapabilities),Ss.validateAndNormalizeRtpCapabilities(this._sendRtpCapabilities),this._canProduceByKind.audio=Ss.canSend("audio",this._sendRtpCapabilities),this._canProduceByKind.video=Ss.canSend("video",this._sendRtpCapabilities),this._sctpCapabilities=await i(),Ss.validateSctpCapabilities(this._sctpCapabilities),He.debug("load() | got native SCTP capabilities:%o",this._sctpCapabilities),He.debug("load() succeeded"),this._loaded=!0}canProduce(e){if(this._loaded){if(e!=="audio"&&e!=="video")throw new TypeError(`invalid kind "${e}"`)}else throw new yo.InvalidStateError("not loaded");return this._canProduceByKind[e]}createSendTransport({id:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,appData:d}){return He.debug("createSendTransport()"),this.createTransport({direction:"send",id:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,appData:d})}createRecvTransport({id:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,appData:d}){return He.debug("createRecvTransport()"),this.createTransport({direction:"recv",id:e,iceParameters:t,iceCandidates:s,dtlsParameters:n,sctpParameters:i,iceServers:o,iceTransportPolicy:a,additionalSettings:c,appData:d})}createTransport({direction:e,id:t,iceParameters:s,iceCandidates:n,dtlsParameters:i,sctpParameters:o,iceServers:a,iceTransportPolicy:c,additionalSettings:d,appData:u}){if(this._loaded){if(typeof t!="string")throw new TypeError("missing id");if(typeof s!="object")throw new TypeError("missing iceParameters");if(Array.isArray(n)){if(typeof i!="object")throw new TypeError("missing dtlsParameters");if(o&&typeof o!="object")throw new TypeError("wrong sctpParameters");if(u&&typeof u!="object")throw new TypeError("if given, appData must be an object")}else throw new TypeError("missing iceCandidates")}else throw new yo.InvalidStateError("not loaded");let l=new fL.Transport({direction:e,id:t,iceParameters:s,iceCandidates:n,dtlsParameters:i,sctpParameters:o,iceServers:a,iceTransportPolicy:c,additionalSettings:d,appData:u,handlerFactory:this._handlerFactory,getSendExtendedRtpCapabilities:this._getSendExtendedRtpCapabilities,recvRtpCapabilities:this._recvRtpCapabilities,canProduceByKind:this._canProduceByKind});return this._observer.safeEmit("newtransport",l),l}};Rd.Device=fb;function AC(r,e){He.debug('detectDeviceImpl() [userAgent:"%s", userAgentData:%o]',r,e);let t=xL(r,e);if(t){if(t>=111)return He.debug("detectDeviceImpl() | using Chrome111 handler"),"Chrome111";if(t>=74)return He.debug("detectDeviceImpl() | using Chrome74 handler"),"Chrome74";He.warn("detectDeviceImpl() | unsupported Chromium based browser/version");return}let s=yL(r);if(s){if(s>=120)return He.debug("detectDeviceImpl() | using Firefox120 handler"),"Firefox120";He.warn("detectDeviceImpl() | unsupported Firefox browser/version");return}let n=bL(r);if(n){if(n>=605)return He.debug("detectDeviceImpl() | using Safari12 handler"),"Safari12";He.warn("detectDeviceImpl() | unsupported desktop Safari browser/version");return}let i=vL(r);if(i){if(i>=605)return He.debug("detectDeviceImpl() | using Safari12 handler"),"Safari12";He.warn("detectDeviceImpl() | unsupported iOS Safari based browser/version");return}if(Pf()){if(typeof RTCPeerConnection<"u"&&typeof RTCRtpTransceiver<"u")return He.debug("detectDeviceImpl() | using ReactNative106 handler"),"ReactNative106";He.warn("detectDeviceImpl() | unsupported react-native-webrtc version without RTCPeerConnection or RTCRtpTransceiver, forgot to call registerGlobals() on it?");return}He.warn('detectDeviceImpl() | device not supported [userAgent:"%s", userAgentData:%o]',r,e)}function xL(r,e){if(He.debug("getChromiumMajorVersion()"),C0(r,e)){He.debug("getChromiumMajorVersion() | this is iOS => undefined");return}if(Pf()){He.debug("getChromiumMajorVersion() | this is React-Native => undefined");return}if(e){let n=(Array.isArray(e.brands)?e.brands:[]).find(i=>i.brand==="Chromium");if(n){let i=Number(n.version);return He.debug(`getChromiumMajorVersion() | Chromium major version based on NavigatorUAData => ${i}`),i}}let t=r?.match(/\b(?:Chrome|Chromium)\/(\w+)/i);if(t?.[1]){let s=Number(t[1]);return He.debug(`getChromiumMajorVersion() | Chromium major version based on User-Agent => ${s}`),s}He.debug("getChromiumMajorVersion() | this is not Chromium => undefined")}function yL(r){if(He.debug("getFirefoxMajorVersion()"),C0(r)){He.debug("getFirefoxMajorVersion() | this is iOS => undefined");return}if(Pf()){He.debug("getFirefoxMajorVersion() | this is React-Native => undefined");return}let e=r?.match(/\bFirefox\/(\w+)/i);if(e?.[1]){let t=Number(e[1]);return He.debug(`getFirefoxMajorVersion() | Firefox major version based on User-Agent => ${t}`),t}He.debug("getFirefoxMajorVersion() | this is not Firefox => undefined")}function bL(r){if(He.debug("getMacOSWebKitMajorVersion()"),C0(r)){He.debug("getMacOSWebKitMajorVersion() | this is iOS => undefined");return}if(Pf()){He.debug("getMacOSWebKitMajorVersion() | this is React-Native => undefined");return}if(!(r&&/\bSafari\b/i.test(r)&&!/\bChrome\b/i.test(r)&&!/\bChromium\b/i.test(r)&&!/\bFirefox\b/i.test(r))){He.debug("getMacOSWebKitMajorVersion() | this is not Safari => undefined");return}let t=r.match(/AppleWebKit\/(\w+)/i);if(t?.[1]){let s=Number(t[1]);return He.debug(`getMacOSWebKitMajorVersion() | WebKit major version based on User-Agent => ${s}`),s}He.debug("getMacOSWebKitMajorVersion() | this is not WebKit => undefined")}function vL(r){if(He.debug("getIOSWebKitMajorVersion()"),!C0(r)){He.debug("getIOSWebKitMajorVersion() | this is not iOS => undefined");return}if(Pf()){He.debug("getIOSWebKitMajorVersion() | this is React-Native => undefined");return}let e=r?.match(/AppleWebKit\/(\w+)/i);if(e?.[1]){let t=Number(e[1]);return He.debug(`getIOSWebKitMajorVersion() | WebKit major version based on User-Agent => ${t}`),t}He.debug("getIOSWebKitMajorVersion() | this is not WebKit => undefined")}function C0(r,e){return He.debug("isIOS()"),e?.platform==="iOS"?(He.debug("isIOS() | this is iOS based on NavigatorUAData.platform => true"),!0):e?.platform?(He.debug("isIOS() | this is not iOS based on NavigatorUAData.platform => false"),!1):r&&/iPad|iPhone|iPod/.test(r)?(He.debug("isIOS() | this is iOS based on User-Agent => true"),!0):typeof navigator=="object"&&navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1?(He.debug("isIOS() | this is iPadOS 13+ based on User-Agent => true"),!0):(He.debug("isIOS() | this is not iOS => false"),!1)}function Pf(){return He.debug("isReactNative()"),typeof navigator=="object"&&navigator.product==="ReactNative"?(He.debug("isReactNative() | this is React-Native based on navigator.product"),!0):(He.debug("isReactNative() | this is not React-Native => false"),!1)}});var kC=ee(RC=>{"use strict";var Oa=256,A0=[],T0;for(;Oa--;)A0[Oa]=(Oa+256).toString(16).substring(1);function wL(){var r=0,e,t="";if(!T0||Oa+16>256){for(T0=Array(r=256);r--;)T0[r]=256*Math.random()|0;r=Oa=0}for(;r<16;r++)e=T0[Oa+r],r==6?t+=A0[e&15|64]:r==8?t+=A0[e&63|128]:t+=A0[e],r&1&&r>1&&r<11&&(t+="-");return Oa++,t}RC.v4=wL});var PC=ee(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});I0.FakeEventTarget=void 0;var lb=class{listeners={};addEventListener(e,t,s){t&&(this.listeners[e]=this.listeners[e]??[],this.listeners[e].push({callback:typeof t=="function"?t:t.handleEvent,once:typeof s=="object"&&s.once===!0}))}removeEventListener(e,t,s){this.listeners[e]&&t&&(this.listeners[e]=this.listeners[e].filter(n=>n.callback!==(typeof t=="function"?t:t.handleEvent)))}dispatchEvent(e){if(!e||typeof e.type!="string")throw new Error("invalid event object");let t=this.listeners[e.type];if(!t)return!0;for(let s of[...t]){try{s.callback.call(this,e)}catch(n){setTimeout(()=>{throw n},0)}s.once&&this.removeEventListener(e.type,s.callback)}return!e.defaultPrevented}};I0.FakeEventTarget=lb});var BC=ee(R0=>{"use strict";Object.defineProperty(R0,"__esModule",{value:!0});R0.FakeEvent=void 0;var hb=class{NONE=0;CAPTURING_PHASE=1;AT_TARGET=2;BUBBLING_PHASE=3;type;bubbles;cancelable;defaultPrevented=!1;composed=!1;currentTarget=null;eventPhase=this.NONE;isTrusted=!0;target=null;timeStamp=0;cancelBubble=!1;returnValue=!0;srcElement=null;constructor(e,t={}){this.type=e,this.bubbles=t.bubbles??!1,this.cancelable=t.cancelable??!1}preventDefault(){this.cancelable&&(this.defaultPrevented=!0)}stopPropagation(){}stopImmediatePropagation(){}composedPath(){return[]}initEvent(e,t,s){}};R0.FakeEvent=hb});var NC=ee(pb=>{"use strict";Object.defineProperty(pb,"__esModule",{value:!0});pb.clone=SL;function SL(r){if(r!==void 0)return Number.isNaN(r)?NaN:typeof structuredClone=="function"?structuredClone(r):JSON.parse(JSON.stringify(r))}});var LC=ee(P0=>{"use strict";Object.defineProperty(P0,"__esModule",{value:!0});P0.FakeMediaStreamTrack=void 0;var OC=kC(),_L=PC(),kd=BC(),k0=NC(),mb=class r extends _L.FakeEventTarget{#m;#f;#l;#e;#r;#t;#s;#h;#n;#p;#i;#o=null;#a=null;#c=null;#d=null;#u=null;constructor({kind:e,id:t,label:s,contentHint:n,enabled:i,muted:o,readyState:a,capabilities:c,constraints:d,settings:u,data:l}){super(),this.#m=t??(0,OC.v4)(),this.#f=e,this.#l=s??"",this.#s=n??"",this.#r=i??!0,this.#t=o??!1,this.#e=a??"live",this.#h=c??{},this.#n=d??{},this.#p=u??{},this.#i=l??{}}get id(){return this.#m}get kind(){return this.#f}get label(){return this.#l}get contentHint(){return this.#s}set contentHint(e){this.#s=e}get enabled(){return this.#r}set enabled(e){let t=this.#r!==e;this.#r=e,t&&this.dispatchEvent(new kd.FakeEvent("enabledchange"))}get muted(){return this.#t}get readyState(){return this.#e}get data(){return this.#i}set data(e){this.#i=e}get onmute(){return this.#o}set onmute(e){this.#o&&this.removeEventListener("mute",this.#o),this.#o=e,e&&this.addEventListener("mute",e)}get onunmute(){return this.#a}set onunmute(e){this.#a&&this.removeEventListener("unmute",this.#a),this.#a=e,e&&this.addEventListener("unmute",e)}get onended(){return this.#c}set onended(e){this.#c&&this.removeEventListener("ended",this.#c),this.#c=e,e&&this.addEventListener("ended",e)}get onenabledchange(){return this.#d}set onenabledchange(e){this.#d&&this.removeEventListener("enabledchange",this.#d),this.#d=e,e&&this.addEventListener("enabledchange",e)}get onstopped(){return this.#u}set onstopped(e){this.#u&&this.removeEventListener("stopped",this.#u),this.#u=e,e&&this.addEventListener("stopped",e)}addEventListener(e,t,s){super.addEventListener(e,t,s)}removeEventListener(e,t,s){super.removeEventListener(e,t,s)}stop(){this.#e!=="ended"&&(this.#e="ended",this.dispatchEvent(new kd.FakeEvent("stopped")))}clone({id:e,data:t}={}){return new r({id:e??(0,OC.v4)(),kind:this.#f,label:this.#l,contentHint:this.#s,enabled:this.#r,muted:this.#t,readyState:this.#e,capabilities:(0,k0.clone)(this.#h),constraints:(0,k0.clone)(this.#n),settings:(0,k0.clone)(this.#p),data:t??(0,k0.clone)(this.#i)})}getCapabilities(){return this.#h}getConstraints(){return this.#n}async applyConstraints(e={}){return this.#n=e,Promise.resolve()}getSettings(){return this.#p}remoteStop(){this.#e!=="ended"&&(this.#e="ended",this.dispatchEvent(new kd.FakeEvent("stopped")),this.dispatchEvent(new kd.FakeEvent("ended")))}remoteMute(){this.#t||(this.#t=!0,this.dispatchEvent(new kd.FakeEvent("mute")))}remoteUnmute(){this.#t&&(this.#t=!1,this.dispatchEvent(new kd.FakeEvent("unmute")))}};P0.FakeMediaStreamTrack=mb});var DC=ee(B0=>{"use strict";Object.defineProperty(B0,"__esModule",{value:!0});B0.FakeEventTarget=void 0;var gb=class{listeners={};addEventListener(e,t,s){t&&(this.listeners[e]=this.listeners[e]??[],this.listeners[e].push({callback:typeof t=="function"?t:t.handleEvent,once:typeof s=="object"&&s.once===!0}))}removeEventListener(e,t,s){this.listeners[e]&&t&&(this.listeners[e]=this.listeners[e].filter(n=>n.callback!==(typeof t=="function"?t:t.handleEvent)))}dispatchEvent(e){if(!e||typeof e.type!="string")throw new Error("invalid event object");let t=this.listeners[e.type];if(!t)return!0;for(let s of[...t]){try{s.callback.call(this,e)}catch(n){setTimeout(()=>{throw n},0)}s.once&&this.removeEventListener(e.type,s.callback)}return!e.defaultPrevented}};B0.FakeEventTarget=gb});var jC=ee(O0=>{"use strict";Object.defineProperty(O0,"__esModule",{value:!0});O0.FakeHandler=void 0;var EL=LC(),CL=as(),TL=Yr(),Pd=Ia(),xb=Rn(),UC=Ls(),AL=DC(),Ar=new TL.Logger("FakeHandler"),MC="FakeHandler",yb=class r extends CL.EnhancedEventEmitter{_closed=!1;_fakeParameters;_getSendExtendedRtpCapabilities;_cname=`CNAME-${Pd.generateRandomNumber()}`;_defaultSendStreamId=`${Pd.generateRandomNumber()}`;_transportReady=!1;_nextLocalId=1;_tracks=new Map;_nextSctpStreamId=0;static createFactory(e){return{name:MC,factory:t=>new r(t,e),getNativeRtpCapabilities:async({direction:t})=>(Ar.debug("getNativeRtpCapabilities() [direction:%o]",t),r.getLocalRtpCapabilities(e)),getNativeSctpCapabilities:async()=>(Ar.debug("getNativeSctpCapabilities()"),e.generateNativeSctpCapabilities())}}static getLocalRtpCapabilities(e){let t=e.generateNativeRtpCapabilities();return xb.validateAndNormalizeRtpCapabilities(t),t}constructor({getSendExtendedRtpCapabilities:e},t){super(),Ar.debug("constructor()"),this._getSendExtendedRtpCapabilities=e,this._fakeParameters=t}get name(){return MC}close(){Ar.debug("close()"),!this._closed&&(this._closed=!0,super.close())}setIceGatheringState(e){this.emit("@icegatheringstatechange",e)}setConnectionState(e){this.emit("@connectionstatechange",e)}async updateIceServers(e){this.assertNotClosed(),Ar.debug("updateIceServers()")}async restartIce(e){this.assertNotClosed(),Ar.debug("restartIce()")}async getTransportStats(){return this.assertNotClosed(),new Map}async send({track:e,streamId:t,encodings:s,codecOptions:n,codec:i}){this.assertNotClosed(),Ar.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),this._transportReady||await this.setupTransport({localDtlsRole:"server"});let o=r.getLocalRtpCapabilities(this._fakeParameters),a=this._getSendExtendedRtpCapabilities(o),c=xb.getSendingRtpParameters(e.kind,a);c.codecs=xb.reduceCodecs(c.codecs,i);let d=c.codecs.some(l=>/.+\/rtx$/i.test(l.mimeType));c.mid=`mid-${Pd.generateRandomNumber()}`,c.msid=`${t??"-"} ${e.id}`,s||(s=[{}]);for(let l of s)l.ssrc=Pd.generateRandomNumber(),d&&(l.rtx={ssrc:Pd.generateRandomNumber()});c.encodings=s,c.rtcp={cname:this._cname,reducedSize:!0,mux:!0},c.msid=`${t??this._defaultSendStreamId} ${e.id}`;let u=this._nextLocalId++;return this._tracks.set(u,e),{localId:String(u),rtpParameters:c}}async stopSending(e){if(Ar.debug("stopSending() [localId:%s]",e),!this._closed){if(!this._tracks.has(Number(e)))throw new Error("local track not found");this._tracks.delete(Number(e))}}async pauseSending(e){this.assertNotClosed()}async resumeSending(e){this.assertNotClosed()}async replaceTrack(e,t){this.assertNotClosed(),t?Ar.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):Ar.debug("replaceTrack() [localId:%s, no track]",e),this._tracks.delete(Number(e)),this._tracks.set(Number(e),t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),Ar.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),Ar.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t)}async getSenderStats(e){return this.assertNotClosed(),new Map}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this._transportReady||await this.setupTransport({localDtlsRole:"server"}),Ar.debug("sendDataChannel()");let t=new N0({id:this._nextSctpStreamId++,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,label:e.label,protocol:e.protocol}),s={streamId:this._nextSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits};return{dataChannel:t,sctpStreamParameters:s}}async receive(e){this.assertNotClosed();let t=[];for(let s of e){let{trackId:n,kind:i}=s;this._transportReady||await this.setupTransport({localDtlsRole:"client"}),Ar.debug("receive() [trackId:%s, kind:%s]",n,i);let o=this._nextLocalId++,a=new EL.FakeMediaStreamTrack({kind:i});this._tracks.set(o,a),t.push({localId:String(o),track:a})}return t}async stopReceiving(e){if(!this._closed)for(let t of e)Ar.debug("stopReceiving() [localId:%s]",t),this._tracks.delete(Number(t))}async pauseReceiving(e){this.assertNotClosed()}async resumeReceiving(e){this.assertNotClosed()}async getReceiverStats(e){return this.assertNotClosed(),new Map}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:s}){return this.assertNotClosed(),this._transportReady||await this.setupTransport({localDtlsRole:"client"}),Ar.debug("receiveDataChannel()"),{dataChannel:new N0({id:e.streamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,label:t,protocol:s})}}getDataChannelMaxMessageSize(){return 5e5}async setupTransport({localDtlsRole:e,localSdpObject:t}){let s=Pd.clone(this._fakeParameters.generateLocalDtlsParameters());e&&(s.role=e),this.emit("@connectionstatechange","connecting"),await new Promise((n,i)=>this.emit("@connect",{dtlsParameters:s},n,i)),this._transportReady=!0}assertNotClosed(){if(this._closed)throw new UC.InvalidStateError("method called in a closed handler")}};O0.FakeHandler=yb;var N0=class extends AL.FakeEventTarget{_id;_negotiated=!0;_ordered;_maxPacketLifeTime;_maxRetransmits;_label;_protocol;_readyState="connecting";_bufferedAmount=0;_bufferedAmountLowThreshold=0;_binaryType="arraybuffer";_onopen=null;_onclosing=null;_onclose=null;_onmessage=null;_onbufferedamountlow=null;_onerror=null;constructor({id:e,ordered:t=!0,maxPacketLifeTime:s=null,maxRetransmits:n=null,label:i="",protocol:o=""}){super(),Ar.debug(`constructor() [id:${e}, ordered:${t}, maxPacketLifeTime:${s}, maxRetransmits:${n}, label:${i}, protocol:${o}`),this._id=e,this._ordered=t,this._maxPacketLifeTime=s,this._maxRetransmits=n,this._label=i,this._protocol=o}get id(){return this._id}get negotiated(){return this._negotiated}get ordered(){return this._ordered}get maxPacketLifeTime(){return this._maxPacketLifeTime}get maxRetransmits(){return this._maxRetransmits}get label(){return this._label}get protocol(){return this._protocol}get readyState(){return this._readyState}get bufferedAmount(){return this._bufferedAmount}get bufferedAmountLowThreshold(){return this._bufferedAmountLowThreshold}set bufferedAmountLowThreshold(e){this._bufferedAmountLowThreshold=e}get binaryType(){return this._binaryType}set binaryType(e){this._binaryType=e}get onopen(){return this._onopen}set onopen(e){this._onopen&&this.removeEventListener("open",this._onopen),this._onopen=e,e&&this.addEventListener("open",e)}get onclosing(){return this._onclosing}set onclosing(e){this._onclosing&&this.removeEventListener("closing",this._onclosing),this._onclosing=e,e&&this.addEventListener("closing",e)}get onclose(){return this._onclose}set onclose(e){this._onclose&&this.removeEventListener("close",this._onclose),this._onclose=e,e&&this.addEventListener("close",e)}get onmessage(){return this._onmessage}set onmessage(e){this._onmessage&&this.removeEventListener("message",this._onmessage),this._onmessage=e,e&&this.addEventListener("message",e)}get onbufferedamountlow(){return this._onbufferedamountlow}set onbufferedamountlow(e){this._onbufferedamountlow&&this.removeEventListener("bufferedamountlow",this._onbufferedamountlow),this._onbufferedamountlow=e,e&&this.addEventListener("bufferedamountlow",e)}get onerror(){return this._onerror}set onerror(e){this._onerror&&this.removeEventListener("error",this._onerror),this._onerror=e,e&&this.addEventListener("error",e)}addEventListener(e,t,s){super.addEventListener(e,t,s)}removeEventListener(e,t,s){super.removeEventListener(e,t,s)}close(){["closing","closed"].includes(this._readyState)||(this._readyState="closed")}send(e){if(this._readyState!=="open")throw new UC.InvalidStateError("not open")}}});var HC=ee(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.generateRouterRtpCapabilities=IL;sn.generateNativeRtpCapabilities=RL;sn.generateNativeSctpCapabilities=kL;sn.generateLocalDtlsParameters=PL;sn.generateTransportRemoteParameters=BL;sn.generateProducerRemoteParameters=NL;sn.generateConsumerRemoteParameters=OL;sn.generateDataProducerRemoteParameters=LL;sn.generateDataConsumerRemoteParameters=DL;var Jr=Ia();function _s(){return String(Jr.generateRandomNumber())}function IL(){return Jr.deepFreeze({codecs:[{mimeType:"audio/opus",kind:"audio",preferredPayloadType:100,clockRate:48e3,channels:2,rtcpFeedback:[{type:"transport-cc"}],parameters:{useinbandfec:1,foo:"bar"}},{mimeType:"video/VP8",kind:"video",preferredPayloadType:101,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"x-google-start-bitrate":1500}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:102,clockRate:9e4,rtcpFeedback:[],parameters:{apt:101}},{mimeType:"video/H264",kind:"video",preferredPayloadType:103,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"level-asymmetry-allowed":1,"packetization-mode":1,"profile-level-id":"42e01f"}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:104,clockRate:9e4,rtcpFeedback:[],parameters:{apt:103}},{mimeType:"video/VP9",kind:"video",preferredPayloadType:105,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"profile-id":0,"x-google-start-bitrate":1500}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:106,clockRate:9e4,rtcpFeedback:[],parameters:{apt:105}}],headerExtensions:[{kind:"audio",uri:"urn:ietf:params:rtp-hdrext:sdes:mid",preferredId:1,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:sdes:mid",preferredId:1,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",preferredId:2,preferredEncrypt:!1,direction:"recvonly"},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",preferredId:3,preferredEncrypt:!1,direction:"recvonly"},{kind:"audio",uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",preferredId:4,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",preferredId:4,preferredEncrypt:!1,direction:"sendrecv"},{kind:"audio",uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",preferredId:5,preferredEncrypt:!1,direction:"recvonly"},{kind:"video",uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",preferredId:5,preferredEncrypt:!1,direction:"sendrecv"},{kind:"audio",uri:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",preferredId:10,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"urn:3gpp:video-orientation",preferredId:11,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:toffset",preferredId:12,preferredEncrypt:!1,direction:"sendrecv"}]})}function RL(){return{codecs:[{mimeType:"audio/opus",kind:"audio",preferredPayloadType:111,clockRate:48e3,channels:2,rtcpFeedback:[{type:"transport-cc"}],parameters:{minptime:10,useinbandfec:1}},{mimeType:"audio/ISAC",kind:"audio",preferredPayloadType:103,clockRate:16e3,channels:1,rtcpFeedback:[{type:"transport-cc"}],parameters:{}},{mimeType:"audio/CN",kind:"audio",preferredPayloadType:106,clockRate:32e3,channels:1,rtcpFeedback:[{type:"transport-cc"}],parameters:{}},{mimeType:"audio/foo",kind:"audio",preferredPayloadType:107,clockRate:9e4,channels:4,rtcpFeedback:[{type:"foo-qwe-qwe"}],parameters:{foo:"lalala"}},{mimeType:"video/BAZCODEC",kind:"video",preferredPayloadType:100,clockRate:9e4,rtcpFeedback:[{type:"foo"},{type:"transport-cc"},{type:"ccm",parameter:"fir"},{type:"nack"},{type:"nack",parameter:"pli"}],parameters:{baz:"1234abcd"}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:101,clockRate:9e4,rtcpFeedback:[],parameters:{apt:100}},{mimeType:"video/VP8",kind:"video",preferredPayloadType:96,clockRate:9e4,rtcpFeedback:[{type:"goog-remb"},{type:"transport-cc"},{type:"ccm",parameter:"fir"},{type:"nack"},{type:"nack",parameter:"pli"}],parameters:{baz:"1234abcd"}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:97,clockRate:9e4,rtcpFeedback:[],parameters:{apt:96}},{mimeType:"video/VP9",kind:"video",preferredPayloadType:98,clockRate:9e4,rtcpFeedback:[{type:"goog-remb"},{type:"transport-cc"},{type:"ccm",parameter:"fir"},{type:"nack"},{type:"nack",parameter:"pli"}],parameters:{"profile-id":0}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:99,clockRate:9e4,rtcpFeedback:[],parameters:{apt:98}}],headerExtensions:[{kind:"audio",uri:"urn:ietf:params:rtp-hdrext:sdes:mid",preferredId:1},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:sdes:mid",preferredId:1},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:toffset",preferredId:2},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",preferredId:3},{kind:"video",uri:"urn:3gpp:video-orientation",preferredId:4},{kind:"video",uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",preferredId:5},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay",preferredId:6},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type",preferredId:7},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/video-timing",preferredId:8},{kind:"audio",uri:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",preferredId:10}]}}function kL(){return Jr.deepFreeze({numStreams:{OS:2048,MIS:2048}})}function PL(){return Jr.deepFreeze({fingerprints:[{algorithm:"sha-256",value:"82:5A:68:3D:36:C3:0A:DE:AF:E7:32:43:D2:88:83:57:AC:2D:65:E5:80:C4:B6:FB:AF:1A:A0:21:9F:6D:0C:AD"}],role:"auto"})}function BL(){return{id:_s(),iceParameters:Jr.deepFreeze({iceLite:!0,password:"yku5ej8nvfaor28lvtrabcx0wkrpkztz",usernameFragment:"h3hk1iz6qqlnqlne"}),iceCandidates:Jr.deepFreeze([{foundation:"udpcandidate",address:"9.9.9.9",ip:"9.9.9.9",port:40533,priority:1078862079,protocol:"udp",type:"host",tcpType:"passive"},{foundation:"udpcandidate",address:"9.9.9.9",ip:"9:9:9:9:9:9",port:41333,priority:1078862089,protocol:"udp",type:"host",tcpType:"passive"}]),dtlsParameters:Jr.deepFreeze({fingerprints:[{algorithm:"sha-256",value:"A9:F4:E0:D2:74:D3:0F:D9:CA:A5:2F:9F:7F:47:FA:F0:C4:72:DD:73:49:D0:3B:14:90:20:51:30:1B:90:8E:71"},{algorithm:"sha-384",value:"03:D9:0B:87:13:98:F6:6D:BC:FC:92:2E:39:D4:E1:97:32:61:30:56:84:70:81:6E:D1:82:97:EA:D9:C1:21:0F:6B:C5:E7:7F:E1:97:0C:17:97:6E:CF:B3:EF:2E:74:B0"},{algorithm:"sha-512",value:"84:27:A4:28:A4:73:AF:43:02:2A:44:68:FF:2F:29:5C:3B:11:9A:60:F4:A8:F0:F5:AC:A0:E3:49:3E:B1:34:53:A9:85:CE:51:9B:ED:87:5E:B8:F4:8E:3D:FA:20:51:B8:96:EE:DA:56:DC:2F:5C:62:79:15:23:E0:21:82:2B:2C"}],role:"auto"}),sctpParameters:Jr.deepFreeze({port:5e3,OS:2048,MIS:2048,maxMessageSize:2e6})}}function NL(){return Jr.deepFreeze({id:_s()})}function OL({id:r,codecMimeType:e}={}){switch(e){case"audio/opus":return{id:r??_s(),producerId:_s(),kind:"audio",rtpParameters:Jr.deepFreeze({codecs:[{mimeType:"audio/opus",payloadType:100,clockRate:48e3,channels:2,rtcpFeedback:[{type:"transport-cc"}],parameters:{useinbandfec:1,foo:"bar"}}],encodings:[{ssrc:46687003}],headerExtensions:[{uri:"urn:ietf:params:rtp-hdrext:sdes:mid",id:1},{uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",id:5},{uri:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",id:10}],rtcp:{cname:"wB4Ql4lrsxYLjzuN",reducedSize:!0,mux:!0}})};case"audio/ISAC":return{id:r??_s(),producerId:_s(),kind:"audio",rtpParameters:Jr.deepFreeze({codecs:[{mimeType:"audio/ISAC",payloadType:111,clockRate:16e3,channels:1,rtcpFeedback:[{type:"transport-cc"}],parameters:{}}],encodings:[{ssrc:46687004}],headerExtensions:[{uri:"urn:ietf:params:rtp-hdrext:sdes:mid",id:1},{uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",id:5}],rtcp:{cname:"wB4Ql4lrsxYLjzuN",reducedSize:!0,mux:!0}})};case"video/VP8":return{id:r??_s(),producerId:_s(),kind:"video",rtpParameters:Jr.deepFreeze({codecs:[{mimeType:"video/VP8",payloadType:101,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"x-google-start-bitrate":1500}},{mimeType:"video/rtx",payloadType:102,clockRate:9e4,rtcpFeedback:[],parameters:{apt:101}}],encodings:[{ssrc:99991111,rtx:{ssrc:99991112}}],headerExtensions:[{uri:"urn:ietf:params:rtp-hdrext:sdes:mid",id:1},{uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",id:4},{uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",id:5},{uri:"urn:3gpp:video-orientation",id:11},{uri:"urn:ietf:params:rtp-hdrext:toffset",id:12}],rtcp:{cname:"wB4Ql4lrsxYLjzuN",reducedSize:!0,mux:!0}})};case"video/H264":return{id:r??_s(),producerId:_s(),kind:"video",rtpParameters:Jr.deepFreeze({codecs:[{mimeType:"video/H264",payloadType:103,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"level-asymmetry-allowed":1,"packetization-mode":1,"profile-level-id":"42e01f"}},{mimeType:"video/rtx",payloadType:104,clockRate:9e4,rtcpFeedback:[],parameters:{apt:103}}],encodings:[{ssrc:99991113,rtx:{ssrc:99991114}}],headerExtensions:[{uri:"urn:ietf:params:rtp-hdrext:sdes:mid",id:1},{uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",id:4},{uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",id:5},{uri:"urn:3gpp:video-orientation",id:11},{uri:"urn:ietf:params:rtp-hdrext:toffset",id:12}],rtcp:{cname:"wB4Ql4lrsxYLjzuN",reducedSize:!0,mux:!0}})};default:throw new TypeError(`unknown codecMimeType '${e}'`)}}function LL(){return Jr.deepFreeze({id:_s()})}function DL({id:r}={}){return{id:r??_s(),dataProducerId:_s(),sctpStreamParameters:Jr.deepFreeze({streamId:666,maxPacketLifeTime:5e3,maxRetransmits:void 0})}}});var Zy=ee(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.debug=Jt.testFakeParameters=Jt.FakeHandler=Jt.enhancedEvents=Jt.ortc=Jt.parseScalabilityMode=Jt.detectDeviceAsync=Jt.detectDevice=Jt.Device=Jt.version=Jt.types=void 0;var ML=gf();Jt.debug=ML.default;Jt.types=fE();Jt.version="3.20.0";var bb=IC();Object.defineProperty(Jt,"Device",{enumerable:!0,get:function(){return bb.Device}});Object.defineProperty(Jt,"detectDevice",{enumerable:!0,get:function(){return bb.detectDevice}});Object.defineProperty(Jt,"detectDeviceAsync",{enumerable:!0,get:function(){return bb.detectDeviceAsync}});var UL=Ba();Object.defineProperty(Jt,"parseScalabilityMode",{enumerable:!0,get:function(){return UL.parse}});Jt.ortc=Rn();Jt.enhancedEvents=as();var jL=jC();Object.defineProperty(Jt,"FakeHandler",{enumerable:!0,get:function(){return jL.FakeHandler}});Jt.testFakeParameters=HC()});var qC=ee((P$,vb)=>{"use strict";var HL=Object.prototype.hasOwnProperty,Zr="~";function Bf(){}Object.create&&(Bf.prototype=Object.create(null),new Bf().__proto__||(Zr=!1));function FL(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function FC(r,e,t,s,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var i=new FL(t,s||r,n),o=Zr?Zr+e:e;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],i]:r._events[o].push(i):(r._events[o]=i,r._eventsCount++),r}function L0(r,e){--r._eventsCount===0?r._events=new Bf:delete r._events[e]}function qr(){this._events=new Bf,this._eventsCount=0}qr.prototype.eventNames=function(){var e=[],t,s;if(this._eventsCount===0)return e;for(s in t=this._events)HL.call(t,s)&&e.push(Zr?s.slice(1):s);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};qr.prototype.listeners=function(e){var t=Zr?Zr+e:e,s=this._events[t];if(!s)return[];if(s.fn)return[s.fn];for(var n=0,i=s.length,o=new Array(i);n<i;n++)o[n]=s[n].fn;return o};qr.prototype.listenerCount=function(e){var t=Zr?Zr+e:e,s=this._events[t];return s?s.fn?1:s.length:0};qr.prototype.emit=function(e,t,s,n,i,o){var a=Zr?Zr+e:e;if(!this._events[a])return!1;var c=this._events[a],d=arguments.length,u,l;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,s),!0;case 4:return c.fn.call(c.context,t,s,n),!0;case 5:return c.fn.call(c.context,t,s,n,i),!0;case 6:return c.fn.call(c.context,t,s,n,i,o),!0}for(l=1,u=new Array(d-1);l<d;l++)u[l-1]=arguments[l];c.fn.apply(c.context,u)}else{var h=c.length,x;for(l=0;l<h;l++)switch(c[l].once&&this.removeListener(e,c[l].fn,void 0,!0),d){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,t);break;case 3:c[l].fn.call(c[l].context,t,s);break;case 4:c[l].fn.call(c[l].context,t,s,n);break;default:if(!u)for(x=1,u=new Array(d-1);x<d;x++)u[x-1]=arguments[x];c[l].fn.apply(c[l].context,u)}}return!0};qr.prototype.on=function(e,t,s){return FC(this,e,t,s,!1)};qr.prototype.once=function(e,t,s){return FC(this,e,t,s,!0)};qr.prototype.removeListener=function(e,t,s,n){var i=Zr?Zr+e:e;if(!this._events[i])return this;if(!t)return L0(this,i),this;var o=this._events[i];if(o.fn)o.fn===t&&(!n||o.once)&&(!s||o.context===s)&&L0(this,i);else{for(var a=0,c=[],d=o.length;a<d;a++)(o[a].fn!==t||n&&!o[a].once||s&&o[a].context!==s)&&c.push(o[a]);c.length?this._events[i]=c.length===1?c[0]:c:L0(this,i)}return this};qr.prototype.removeAllListeners=function(e){var t;return e?(t=Zr?Zr+e:e,this._events[t]&&L0(this,t)):(this._events=new Bf,this._eventsCount=0),this};qr.prototype.off=qr.prototype.removeListener;qr.prototype.addListener=qr.prototype.on;qr.prefixed=Zr;qr.EventEmitter=qr;typeof vb<"u"&&(vb.exports=qr)});var bo=ee(zC=>{"use strict";function qL(){var r,e=!1,t=this;t._DeArray=function(s,n,i){return[s.slice(n,n+i)]},t._EnArray=function(s,n,i,o){for(var a=0;a<i;s[n+a]=o[a]?o[a]:0,a++);},t._DeChar=function(s,n){return String.fromCharCode(s[n])},t._EnChar=function(s,n,i){s[n]=i.charCodeAt(0)},t._DeInt=function(s,n){var i=e?r.len-1:0,o=e?-1:1,a=i+o*r.len,c,d,u;for(c=0,d=i,u=1;d!=a;c+=s[n+d]*u,d+=o,u*=256);return r.bSigned&&c&Math.pow(2,r.len*8-1)&&(c-=Math.pow(2,r.len*8)),c},t._EnInt=function(s,n,i){var o=e?r.len-1:0,a=e?-1:1,c=o+a*r.len,d;for(i=i<r.min?r.min:i>r.max?r.max:i,d=o;d!=c;s[n+d]=i&255,d+=a,i>>=8);},t._DeString=function(s,n,i){for(var o=new Array(i),a=0;a<i;o[a]=String.fromCharCode(s[n+a]),a++);return o.join("")},t._EnString=function(s,n,i,o){for(var a,c=0;c<i;s[n+c]=(a=o.charCodeAt(c))?a:0,c++);},t._De754=function(s,n){var i,o,a,c,d,u,l,h,x,v;for(l=r.mLen,h=r.len*8-r.mLen-1,v=(1<<h)-1,x=v>>1,c=e?0:r.len-1,d=e?1:-1,i=s[n+c],c+=d,u=-7,o=i&(1<<-u)-1,i>>=-u,u+=h;u>0;o=o*256+s[n+c],c+=d,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=l;u>0;a=a*256+s[n+c],c+=d,u-=8);switch(o){case 0:o=1-x;break;case v:return a?NaN:(i?-1:1)*(1/0);default:a=a+Math.pow(2,l),o=o-x;break}return(i?-1:1)*a*Math.pow(2,o-l)},t._En754=function(s,n,i){var o,a,c,d,u,l,h,x,v,S;for(h=r.mLen,x=r.len*8-r.mLen-1,S=(1<<x)-1,v=S>>1,o=i<0?1:0,i=Math.abs(i),isNaN(i)||i==1/0?(c=isNaN(i)?1:0,a=S):(a=Math.floor(Math.log(i)/Math.LN2),i*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+v>=1?i+=r.rt/l:i+=r.rt*Math.pow(2,1-v),i*l>=2&&(a++,l/=2),a+v>=S?(c=0,a=S):a+v>=1?(c=(i*l-1)*Math.pow(2,h),a=a+v):(c=i*Math.pow(2,v-1)*Math.pow(2,h),a=0)),d=e?r.len-1:0,u=e?-1:1;h>=8;s[n+d]=c&255,d+=u,c/=256,h-=8);for(a=a<<h|c,x+=h;x>0;s[n+d]=a&255,d+=u,a/=256,x-=8);s[n+d-u]|=o*128},t._DeInt64=function(s,n){var i=e?0:7,o=e?1:-1,a=i+o*8,c=[0,0,!r.bSigned],d,u,l;for(d=i,l=1,u=0;d!=a;c[l]=(c[l]<<8>>>0)+s[n+d],d+=o,u++,l=u<4?1:0);return c},t._EnInt64=function(s,n,i){var o=e?0:7,a=e?1:-1,c=o+a*8,d,u,l,h;for(d=o,l=1,u=0,h=24;d!=c;s[n+d]=i[l]>>h&255,d+=a,u++,l=u<4?1:0,h=24-8*(u%4));},t._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",t._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},t._elLut={A:{en:t._EnArray,de:t._DeArray},s:{en:t._EnString,de:t._DeString},c:{en:t._EnChar,de:t._DeChar},b:{en:t._EnInt,de:t._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:t._EnInt,de:t._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:t._EnInt,de:t._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:t._EnInt,de:t._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:t._EnInt,de:t._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:t._EnInt,de:t._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:t._EnInt,de:t._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:t._EnInt,de:t._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:t._En754,de:t._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:t._En754,de:t._De754,len:8,mLen:52,rt:0},q:{en:t._EnInt64,de:t._DeInt64,bSigned:!0},Q:{en:t._EnInt64,de:t._DeInt64,bSigned:!1}},t._UnpackSeries=function(s,n,i,o){for(var a=r.de,c=[],d=0;d<s;c.push(a(i,o+d*n)),d++);return c},t._PackSeries=function(s,n,i,o,a,c){for(var d=r.en,u=0;u<s;d(i,o+u*n,a[c+u]),u++);},t.Unpack=function(s,n,i){e=s.charAt(0)!="<",i=i||0;for(var o=new RegExp(this._sPattern,"g"),a,c,d,u=[];a=o.exec(s);){if(c=a[1]==null||a[1]==""?1:parseInt(a[1]),d=this._lenLut[a[2]],i+c*d>n.length)return;switch(a[2]){case"A":case"s":u.push(this._elLut[a[2]].de(n,i,c));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":r=this._elLut[a[2]],u.push(this._UnpackSeries(c,d,n,i));break}i+=c*d}return Array.prototype.concat.apply([],u)},t.PackTo=function(s,n,i,o){e=s.charAt(0)!="<";for(var a=new RegExp(this._sPattern,"g"),c,d,u,l,h=0;c=a.exec(s);){if(d=c[1]==null||c[1]==""?1:parseInt(c[1]),u=this._lenLut[c[2]],i+d*u>n.length)return!1;switch(c[2]){case"A":case"s":if(h+1>o.length)return!1;this._elLut[c[2]].en(n,i,d,o[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(r=this._elLut[c[2]],h+d>o.length)return!1;this._PackSeries(d,u,n,i,o,h),h+=d;break;case"x":for(l=0;l<d;l++)n[i+l]=0;break}i+=d*u}return n},t.Pack=function(s,n){return this.PackTo(s,new Array(this.CalcLength(s)),0,n)},t.CalcLength=function(s){for(var n=new RegExp(this._sPattern,"g"),i=0,o;o=n.exec(s);)i+=(o[1]==null||o[1]==""?1:parseInt(o[1]))*this._lenLut[o[2]];return i}}zC.jspack=new qL});var Sb=ee((L$,VC)=>{"use strict";function zL(r){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=n,t.enabled=a,t.humanize=vy(),t.destroy=d,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let l=0;for(let h=0;h<u.length;h++)l=(l<<5)-l+u.charCodeAt(h),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(u){let l,h=null,x,v;function S(...C){if(!S.enabled)return;let D=S,re=Number(new Date),G=re-(l||re);D.diff=G,D.prev=l,D.curr=re,l=re,C[0]=t.coerce(C[0]),typeof C[0]!="string"&&C.unshift("%O");let te=0;C[0]=C[0].replace(/%([a-zA-Z%])/g,(se,Ie)=>{if(se==="%%")return"%";te++;let ve=t.formatters[Ie];if(typeof ve=="function"){let Y=C[te];se=ve.call(D,Y),C.splice(te,1),te--}return se}),t.formatArgs.call(D,C),(D.log||t.log).apply(D,C)}return S.namespace=u,S.useColors=t.useColors(),S.color=t.selectColor(u),S.extend=s,S.destroy=t.destroy,Object.defineProperty(S,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(x!==t.namespaces&&(x=t.namespaces,v=t.enabled(u)),v),set:C=>{h=C}}),typeof t.init=="function"&&t.init(S),S}function s(u,l){let h=t(this.namespace+(typeof l>"u"?":":l)+u);return h.log=this.log,h}function n(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let l=(typeof u=="string"?u:"").trim().replace(" ",",").split(",").filter(Boolean);for(let h of l)h[0]==="-"?t.skips.push(h.slice(1)):t.names.push(h)}function i(u,l){let h=0,x=0,v=-1,S=0;for(;h<u.length;)if(x<l.length&&(l[x]===u[h]||l[x]==="*"))l[x]==="*"?(v=x,S=h,x++):(h++,x++);else if(v!==-1)x=v+1,S++,h=S;else return!1;for(;x<l.length&&l[x]==="*";)x++;return x===l.length}function o(){let u=[...t.names,...t.skips.map(l=>"-"+l)].join(",");return t.enable(""),u}function a(u){for(let l of t.skips)if(i(u,l))return!1;for(let l of t.names)if(i(u,l))return!0;return!1}function c(u){return u instanceof Error?u.stack||u.message:u}function d(){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 t.enable(t.load()),t}VC.exports=zL});var $C=ee((Es,M0)=>{"use strict";Es.formatArgs=$L;Es.save=KL;Es.load=WL;Es.useColors=VL;Es.storage=GL();Es.destroy=(()=>{let r=!1;return()=>{r||(r=!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`."))}})();Es.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 VL(){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 r;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&&(r=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(r[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function $L(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+M0.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,s=0;r[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(t++,n==="%c"&&(s=t))}),r.splice(s,0,e)}Es.log=console.debug||console.log||(()=>{});function KL(r){try{r?Es.storage.setItem("debug",r):Es.storage.removeItem("debug")}catch{}}function WL(){let r;try{r=Es.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function GL(){try{return localStorage}catch{}}M0.exports=Sb()(Es);var{formatters:XL}=M0.exports;XL.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var WC=ee((_r,j0)=>{"use strict";var YL=require("tty"),U0=require("util");_r.init=sD;_r.log=eD;_r.formatArgs=JL;_r.save=tD;_r.load=rD;_r.useColors=QL;_r.destroy=U0.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");_r.colors=[6,2,3,4,5,1];try{let r=(Cy(),by(Ey));r&&(r.stderr||r).level>=2&&(_r.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{}_r.inspectOpts=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(n,i)=>i.toUpperCase()),s=process.env[e];return/^(yes|on|true|enabled)$/i.test(s)?s=!0:/^(no|off|false|disabled)$/i.test(s)?s=!1:s==="null"?s=null:s=Number(s),r[t]=s,r},{});function QL(){return"colors"in _r.inspectOpts?!!_r.inspectOpts.colors:YL.isatty(process.stderr.fd)}function JL(r){let{namespace:e,useColors:t}=this;if(t){let s=this.color,n="\x1B[3"+(s<8?s:"8;5;"+s),i=` ${n};1m${e} \x1B[0m`;r[0]=i+r[0].split(`
|
|
8
|
-
`).join(`
|
|
9
|
-
`+i),r.push(n+"m+"+j0.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=ZL()+e+" "+r[0]}function ZL(){return _r.inspectOpts.hideDate?"":new Date().toISOString()+" "}function eD(...r){return process.stderr.write(U0.formatWithOptions(_r.inspectOpts,...r)+`
|
|
10
|
-
`)}function tD(r){r?process.env.DEBUG=r:delete process.env.DEBUG}function rD(){return process.env.DEBUG}function sD(r){r.inspectOpts={};let e=Object.keys(_r.inspectOpts);for(let t=0;t<e.length;t++)r.inspectOpts[e[t]]=_r.inspectOpts[e[t]]}j0.exports=Sb()(_r);var{formatters:KC}=j0.exports;KC.o=function(r){return this.inspectOpts.colors=this.useColors,U0.inspect(r,this.inspectOpts).split(`
|
|
11
|
-
`).map(e=>e.trim()).join(" ")};KC.O=function(r){return this.inspectOpts.colors=this.useColors,U0.inspect(r,this.inspectOpts)}});var GC=ee((D$,_b)=>{"use strict";typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?_b.exports=$C():_b.exports=WC()});var H0=ee(Nd=>{"use strict";Object.defineProperty(Nd,"__esModule",{value:!0});var nD=require("net");function iD(r){switch(nD.isIP(r)){case 4:return Buffer.from(r.split(".").map(n=>parseInt(n,10)));case 6:let e=r.split(":"),t=Buffer.alloc(16),s=0;e[e.length-1]===""&&(e[e.length-1]="0");for(let n=0;n<e.length;n++){if(e[n]===""){n+1<e.length&&e[n+1]!==""&&(s=16-(e.length-n-1)*2);continue}t.writeUInt16BE(parseInt(e[n],16),s),s+=2}return t;default:return null}}Nd.bytesFromIP=iD;function oD(r){switch(r.length){case 4:return[r[0],r[1],r[2],r[3]].join(".");case 16:let e=[],t=-1,s=0,n=-1,i=0;for(let o=0;o<r.length;o+=2){let a=r[o]<<8|r[o+1];a===0?(s++,t===-1&&(t=e.length),s>i&&(i=s,n=t)):(t=-1,s=0),e.push(a.toString(16))}if(i>0){let o="",a=e.slice(n+i);e.length=n,e.length===0&&(o+=":"),a.length===0&&(o+=":"),e.push(o,...a)}return e.join(":");default:return""}}Nd.bytesToIP=oD;var vo=Object.create(null),XC=/^[0-9.]+$/;function aD(r){return XC.test(r)&&vo[r]!==""?r:vo[r]==null?"":vo[r]}Nd.getOID=aD;function cD(r){return!XC.test(r)&&vo[r]!==""||vo[r]==null?r:vo[r]}Nd.getOIDName=cD;function Q(r,e){vo[r]=e,vo[e]=r}Q("1.2.840.113549.1.1.1","rsaEncryption");Q("1.2.840.113549.1.1.4","md5WithRsaEncryption");Q("1.2.840.113549.1.1.5","sha1WithRsaEncryption");Q("1.2.840.113549.1.1.8","mgf1");Q("1.2.840.113549.1.1.10","RSASSA-PSS");Q("1.2.840.113549.1.1.11","sha256WithRsaEncryption");Q("1.2.840.113549.1.1.12","sha384WithRsaEncryption");Q("1.2.840.113549.1.1.13","sha512WithRsaEncryption");Q("1.2.840.10045.2.1","ecEncryption");Q("1.2.840.10045.4.1","ecdsaWithSha1");Q("1.2.840.10045.4.3.2","ecdsaWithSha256");Q("1.2.840.10045.4.3.3","ecdsaWithSha384");Q("1.2.840.10045.4.3.4","ecdsaWithSha512");Q("1.2.840.10040.4.3","dsaWithSha1");Q("2.16.840.1.101.3.4.3.2","dsaWithSha256");Q("1.3.14.3.2.7","desCBC");Q("1.3.14.3.2.26","sha1");Q("2.16.840.1.101.3.4.2.1","sha256");Q("2.16.840.1.101.3.4.2.2","sha384");Q("2.16.840.1.101.3.4.2.3","sha512");Q("1.2.840.113549.2.5","md5");Q("1.3.101.110","X25519");Q("1.3.101.111","X448");Q("1.3.101.112","Ed25519");Q("1.3.101.113","Ed448");Q("1.2.840.113549.1.7.1","data");Q("1.2.840.113549.1.7.2","signedData");Q("1.2.840.113549.1.7.3","envelopedData");Q("1.2.840.113549.1.7.4","signedAndEnvelopedData");Q("1.2.840.113549.1.7.5","digestedData");Q("1.2.840.113549.1.7.6","encryptedData");Q("1.2.840.113549.1.9.1","emailAddress");Q("1.2.840.113549.1.9.2","unstructuredName");Q("1.2.840.113549.1.9.3","contentType");Q("1.2.840.113549.1.9.4","messageDigest");Q("1.2.840.113549.1.9.5","signingTime");Q("1.2.840.113549.1.9.6","counterSignature");Q("1.2.840.113549.1.9.7","challengePassword");Q("1.2.840.113549.1.9.8","unstructuredAddress");Q("1.2.840.113549.1.9.14","extensionRequest");Q("1.2.840.113549.1.9.20","friendlyName");Q("1.2.840.113549.1.9.21","localKeyId");Q("1.2.840.113549.1.9.22.1","x509Certificate");Q("1.2.840.113549.1.12.10.1.1","keyBag");Q("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");Q("1.2.840.113549.1.12.10.1.3","certBag");Q("1.2.840.113549.1.12.10.1.4","crlBag");Q("1.2.840.113549.1.12.10.1.5","secretBag");Q("1.2.840.113549.1.12.10.1.6","safeContentsBag");Q("1.2.840.113549.1.5.13","pkcs5PBES2");Q("1.2.840.113549.1.5.12","pkcs5PBKDF2");Q("1.2.840.113549.2.7","hmacWithSha1");Q("1.2.840.113549.2.9","hmacWithSha256");Q("1.2.840.113549.2.10","hmacWithSha384");Q("1.2.840.113549.2.11","hmacWithSha512");Q("1.2.840.113549.3.7","3desCBC");Q("2.16.840.1.101.3.4.1.2","aesCBC128");Q("2.16.840.1.101.3.4.1.42","aesCBC256");Q("2.5.4.3","commonName");Q("2.5.4.5","serialName");Q("2.5.4.6","countryName");Q("2.5.4.7","localityName");Q("2.5.4.8","stateOrProvinceName");Q("2.5.4.10","organizationName");Q("2.5.4.11","organizationalUnitName");Q("2.5.4.15","businessCategory");Q("2.16.840.1.113730.1.1","nsCertType");Q("2.5.29.2","keyAttributes");Q("2.5.29.4","keyUsageRestriction");Q("2.5.29.6","subtreesConstraint");Q("2.5.29.9","subjectDirectoryAttributes");Q("2.5.29.14","subjectKeyIdentifier");Q("2.5.29.15","keyUsage");Q("2.5.29.16","privateKeyUsagePeriod");Q("2.5.29.17","subjectAltName");Q("2.5.29.18","issuerAltName");Q("2.5.29.19","basicConstraints");Q("2.5.29.20","cRLNumber");Q("2.5.29.21","cRLReason");Q("2.5.29.22","expirationDate");Q("2.5.29.23","instructionCode");Q("2.5.29.24","invalidityDate");Q("2.5.29.27","deltaCRLIndicator");Q("2.5.29.28","issuingDistributionPoint");Q("2.5.29.29","certificateIssuer");Q("2.5.29.30","nameConstraints");Q("2.5.29.31","cRLDistributionPoints");Q("2.5.29.32","certificatePolicies");Q("2.5.29.33","policyMappings");Q("2.5.29.35","authorityKeyIdentifier");Q("2.5.29.36","policyConstraints");Q("2.5.29.37","extKeyUsage");Q("2.5.29.46","freshestCRL");Q("2.5.29.54","inhibitAnyPolicy");Q("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");Q("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");Q("1.3.6.1.4.1.11129.2.4.2","timestampList");Q("1.3.6.1.5.5.7.1.1","authorityInfoAccess");Q("1.3.6.1.5.5.7.3.1","serverAuth");Q("1.3.6.1.5.5.7.3.2","clientAuth");Q("1.3.6.1.5.5.7.3.3","codeSigning");Q("1.3.6.1.5.5.7.3.4","emailProtection");Q("1.3.6.1.5.5.7.3.8","timeStamping");Q("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");Q("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var q0=ee((U$,F0)=>{"use strict";(function(r){"use strict";var e=function(m){var b,y=new Float64Array(16);if(m)for(b=0;b<m.length;b++)y[b]=m[b];return y},t=function(){throw new Error("no PRNG")},s=new Uint8Array(16),n=new Uint8Array(32);n[0]=9;var i=e(),o=e([1]),a=e([56129,1]),c=e([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),d=e([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),u=e([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),l=e([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),h=e([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function x(m,b,y,f){m[b]=y>>24&255,m[b+1]=y>>16&255,m[b+2]=y>>8&255,m[b+3]=y&255,m[b+4]=f>>24&255,m[b+5]=f>>16&255,m[b+6]=f>>8&255,m[b+7]=f&255}function v(m,b,y,f,w){var k,N=0;for(k=0;k<w;k++)N|=m[b+k]^y[f+k];return(1&N-1>>>8)-1}function S(m,b,y,f){return v(m,b,y,f,16)}function C(m,b,y,f){return v(m,b,y,f,32)}function D(m,b,y,f){for(var w=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,k=y[0]&255|(y[1]&255)<<8|(y[2]&255)<<16|(y[3]&255)<<24,N=y[4]&255|(y[5]&255)<<8|(y[6]&255)<<16|(y[7]&255)<<24,K=y[8]&255|(y[9]&255)<<8|(y[10]&255)<<16|(y[11]&255)<<24,de=y[12]&255|(y[13]&255)<<8|(y[14]&255)<<16|(y[15]&255)<<24,Le=f[4]&255|(f[5]&255)<<8|(f[6]&255)<<16|(f[7]&255)<<24,we=b[0]&255|(b[1]&255)<<8|(b[2]&255)<<16|(b[3]&255)<<24,kt=b[4]&255|(b[5]&255)<<8|(b[6]&255)<<16|(b[7]&255)<<24,Ae=b[8]&255|(b[9]&255)<<8|(b[10]&255)<<16|(b[11]&255)<<24,rt=b[12]&255|(b[13]&255)<<8|(b[14]&255)<<16|(b[15]&255)<<24,nt=f[8]&255|(f[9]&255)<<8|(f[10]&255)<<16|(f[11]&255)<<24,pt=y[16]&255|(y[17]&255)<<8|(y[18]&255)<<16|(y[19]&255)<<24,lt=y[20]&255|(y[21]&255)<<8|(y[22]&255)<<16|(y[23]&255)<<24,it=y[24]&255|(y[25]&255)<<8|(y[26]&255)<<16|(y[27]&255)<<24,dt=y[28]&255|(y[29]&255)<<8|(y[30]&255)<<16|(y[31]&255)<<24,ot=f[12]&255|(f[13]&255)<<8|(f[14]&255)<<16|(f[15]&255)<<24,ke=w,Fe=k,Se=N,Pe=K,Ne=de,ye=Le,U=we,j=kt,Z=Ae,$=rt,W=nt,ie=pt,Ge=lt,mt=it,xt=dt,gt=ot,E,vt=0;vt<20;vt+=2)E=ke+Ge|0,Ne^=E<<7|E>>>25,E=Ne+ke|0,Z^=E<<9|E>>>23,E=Z+Ne|0,Ge^=E<<13|E>>>19,E=Ge+Z|0,ke^=E<<18|E>>>14,E=ye+Fe|0,$^=E<<7|E>>>25,E=$+ye|0,mt^=E<<9|E>>>23,E=mt+$|0,Fe^=E<<13|E>>>19,E=Fe+mt|0,ye^=E<<18|E>>>14,E=W+U|0,xt^=E<<7|E>>>25,E=xt+W|0,Se^=E<<9|E>>>23,E=Se+xt|0,U^=E<<13|E>>>19,E=U+Se|0,W^=E<<18|E>>>14,E=gt+ie|0,Pe^=E<<7|E>>>25,E=Pe+gt|0,j^=E<<9|E>>>23,E=j+Pe|0,ie^=E<<13|E>>>19,E=ie+j|0,gt^=E<<18|E>>>14,E=ke+Pe|0,Fe^=E<<7|E>>>25,E=Fe+ke|0,Se^=E<<9|E>>>23,E=Se+Fe|0,Pe^=E<<13|E>>>19,E=Pe+Se|0,ke^=E<<18|E>>>14,E=ye+Ne|0,U^=E<<7|E>>>25,E=U+ye|0,j^=E<<9|E>>>23,E=j+U|0,Ne^=E<<13|E>>>19,E=Ne+j|0,ye^=E<<18|E>>>14,E=W+$|0,ie^=E<<7|E>>>25,E=ie+W|0,Z^=E<<9|E>>>23,E=Z+ie|0,$^=E<<13|E>>>19,E=$+Z|0,W^=E<<18|E>>>14,E=gt+xt|0,Ge^=E<<7|E>>>25,E=Ge+gt|0,mt^=E<<9|E>>>23,E=mt+Ge|0,xt^=E<<13|E>>>19,E=xt+mt|0,gt^=E<<18|E>>>14;ke=ke+w|0,Fe=Fe+k|0,Se=Se+N|0,Pe=Pe+K|0,Ne=Ne+de|0,ye=ye+Le|0,U=U+we|0,j=j+kt|0,Z=Z+Ae|0,$=$+rt|0,W=W+nt|0,ie=ie+pt|0,Ge=Ge+lt|0,mt=mt+it|0,xt=xt+dt|0,gt=gt+ot|0,m[0]=ke>>>0&255,m[1]=ke>>>8&255,m[2]=ke>>>16&255,m[3]=ke>>>24&255,m[4]=Fe>>>0&255,m[5]=Fe>>>8&255,m[6]=Fe>>>16&255,m[7]=Fe>>>24&255,m[8]=Se>>>0&255,m[9]=Se>>>8&255,m[10]=Se>>>16&255,m[11]=Se>>>24&255,m[12]=Pe>>>0&255,m[13]=Pe>>>8&255,m[14]=Pe>>>16&255,m[15]=Pe>>>24&255,m[16]=Ne>>>0&255,m[17]=Ne>>>8&255,m[18]=Ne>>>16&255,m[19]=Ne>>>24&255,m[20]=ye>>>0&255,m[21]=ye>>>8&255,m[22]=ye>>>16&255,m[23]=ye>>>24&255,m[24]=U>>>0&255,m[25]=U>>>8&255,m[26]=U>>>16&255,m[27]=U>>>24&255,m[28]=j>>>0&255,m[29]=j>>>8&255,m[30]=j>>>16&255,m[31]=j>>>24&255,m[32]=Z>>>0&255,m[33]=Z>>>8&255,m[34]=Z>>>16&255,m[35]=Z>>>24&255,m[36]=$>>>0&255,m[37]=$>>>8&255,m[38]=$>>>16&255,m[39]=$>>>24&255,m[40]=W>>>0&255,m[41]=W>>>8&255,m[42]=W>>>16&255,m[43]=W>>>24&255,m[44]=ie>>>0&255,m[45]=ie>>>8&255,m[46]=ie>>>16&255,m[47]=ie>>>24&255,m[48]=Ge>>>0&255,m[49]=Ge>>>8&255,m[50]=Ge>>>16&255,m[51]=Ge>>>24&255,m[52]=mt>>>0&255,m[53]=mt>>>8&255,m[54]=mt>>>16&255,m[55]=mt>>>24&255,m[56]=xt>>>0&255,m[57]=xt>>>8&255,m[58]=xt>>>16&255,m[59]=xt>>>24&255,m[60]=gt>>>0&255,m[61]=gt>>>8&255,m[62]=gt>>>16&255,m[63]=gt>>>24&255}function re(m,b,y,f){for(var w=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,k=y[0]&255|(y[1]&255)<<8|(y[2]&255)<<16|(y[3]&255)<<24,N=y[4]&255|(y[5]&255)<<8|(y[6]&255)<<16|(y[7]&255)<<24,K=y[8]&255|(y[9]&255)<<8|(y[10]&255)<<16|(y[11]&255)<<24,de=y[12]&255|(y[13]&255)<<8|(y[14]&255)<<16|(y[15]&255)<<24,Le=f[4]&255|(f[5]&255)<<8|(f[6]&255)<<16|(f[7]&255)<<24,we=b[0]&255|(b[1]&255)<<8|(b[2]&255)<<16|(b[3]&255)<<24,kt=b[4]&255|(b[5]&255)<<8|(b[6]&255)<<16|(b[7]&255)<<24,Ae=b[8]&255|(b[9]&255)<<8|(b[10]&255)<<16|(b[11]&255)<<24,rt=b[12]&255|(b[13]&255)<<8|(b[14]&255)<<16|(b[15]&255)<<24,nt=f[8]&255|(f[9]&255)<<8|(f[10]&255)<<16|(f[11]&255)<<24,pt=y[16]&255|(y[17]&255)<<8|(y[18]&255)<<16|(y[19]&255)<<24,lt=y[20]&255|(y[21]&255)<<8|(y[22]&255)<<16|(y[23]&255)<<24,it=y[24]&255|(y[25]&255)<<8|(y[26]&255)<<16|(y[27]&255)<<24,dt=y[28]&255|(y[29]&255)<<8|(y[30]&255)<<16|(y[31]&255)<<24,ot=f[12]&255|(f[13]&255)<<8|(f[14]&255)<<16|(f[15]&255)<<24,ke=w,Fe=k,Se=N,Pe=K,Ne=de,ye=Le,U=we,j=kt,Z=Ae,$=rt,W=nt,ie=pt,Ge=lt,mt=it,xt=dt,gt=ot,E,vt=0;vt<20;vt+=2)E=ke+Ge|0,Ne^=E<<7|E>>>25,E=Ne+ke|0,Z^=E<<9|E>>>23,E=Z+Ne|0,Ge^=E<<13|E>>>19,E=Ge+Z|0,ke^=E<<18|E>>>14,E=ye+Fe|0,$^=E<<7|E>>>25,E=$+ye|0,mt^=E<<9|E>>>23,E=mt+$|0,Fe^=E<<13|E>>>19,E=Fe+mt|0,ye^=E<<18|E>>>14,E=W+U|0,xt^=E<<7|E>>>25,E=xt+W|0,Se^=E<<9|E>>>23,E=Se+xt|0,U^=E<<13|E>>>19,E=U+Se|0,W^=E<<18|E>>>14,E=gt+ie|0,Pe^=E<<7|E>>>25,E=Pe+gt|0,j^=E<<9|E>>>23,E=j+Pe|0,ie^=E<<13|E>>>19,E=ie+j|0,gt^=E<<18|E>>>14,E=ke+Pe|0,Fe^=E<<7|E>>>25,E=Fe+ke|0,Se^=E<<9|E>>>23,E=Se+Fe|0,Pe^=E<<13|E>>>19,E=Pe+Se|0,ke^=E<<18|E>>>14,E=ye+Ne|0,U^=E<<7|E>>>25,E=U+ye|0,j^=E<<9|E>>>23,E=j+U|0,Ne^=E<<13|E>>>19,E=Ne+j|0,ye^=E<<18|E>>>14,E=W+$|0,ie^=E<<7|E>>>25,E=ie+W|0,Z^=E<<9|E>>>23,E=Z+ie|0,$^=E<<13|E>>>19,E=$+Z|0,W^=E<<18|E>>>14,E=gt+xt|0,Ge^=E<<7|E>>>25,E=Ge+gt|0,mt^=E<<9|E>>>23,E=mt+Ge|0,xt^=E<<13|E>>>19,E=xt+mt|0,gt^=E<<18|E>>>14;m[0]=ke>>>0&255,m[1]=ke>>>8&255,m[2]=ke>>>16&255,m[3]=ke>>>24&255,m[4]=ye>>>0&255,m[5]=ye>>>8&255,m[6]=ye>>>16&255,m[7]=ye>>>24&255,m[8]=W>>>0&255,m[9]=W>>>8&255,m[10]=W>>>16&255,m[11]=W>>>24&255,m[12]=gt>>>0&255,m[13]=gt>>>8&255,m[14]=gt>>>16&255,m[15]=gt>>>24&255,m[16]=U>>>0&255,m[17]=U>>>8&255,m[18]=U>>>16&255,m[19]=U>>>24&255,m[20]=j>>>0&255,m[21]=j>>>8&255,m[22]=j>>>16&255,m[23]=j>>>24&255,m[24]=Z>>>0&255,m[25]=Z>>>8&255,m[26]=Z>>>16&255,m[27]=Z>>>24&255,m[28]=$>>>0&255,m[29]=$>>>8&255,m[30]=$>>>16&255,m[31]=$>>>24&255}function G(m,b,y,f){D(m,b,y,f)}function te(m,b,y,f){re(m,b,y,f)}var ae=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function se(m,b,y,f,w,k,N){var K=new Uint8Array(16),de=new Uint8Array(64),Le,we;for(we=0;we<16;we++)K[we]=0;for(we=0;we<8;we++)K[we]=k[we];for(;w>=64;){for(G(de,K,N,ae),we=0;we<64;we++)m[b+we]=y[f+we]^de[we];for(Le=1,we=8;we<16;we++)Le=Le+(K[we]&255)|0,K[we]=Le&255,Le>>>=8;w-=64,b+=64,f+=64}if(w>0)for(G(de,K,N,ae),we=0;we<w;we++)m[b+we]=y[f+we]^de[we];return 0}function Ie(m,b,y,f,w){var k=new Uint8Array(16),N=new Uint8Array(64),K,de;for(de=0;de<16;de++)k[de]=0;for(de=0;de<8;de++)k[de]=f[de];for(;y>=64;){for(G(N,k,w,ae),de=0;de<64;de++)m[b+de]=N[de];for(K=1,de=8;de<16;de++)K=K+(k[de]&255)|0,k[de]=K&255,K>>>=8;y-=64,b+=64}if(y>0)for(G(N,k,w,ae),de=0;de<y;de++)m[b+de]=N[de];return 0}function ve(m,b,y,f,w){var k=new Uint8Array(32);te(k,f,w,ae);for(var N=new Uint8Array(8),K=0;K<8;K++)N[K]=f[K+16];return Ie(m,b,y,N,k)}function Y(m,b,y,f,w,k,N){var K=new Uint8Array(32);te(K,k,N,ae);for(var de=new Uint8Array(8),Le=0;Le<8;Le++)de[Le]=k[Le+16];return se(m,b,y,f,w,de,K)}var tt=function(m){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 b,y,f,w,k,N,K,de;b=m[0]&255|(m[1]&255)<<8,this.r[0]=b&8191,y=m[2]&255|(m[3]&255)<<8,this.r[1]=(b>>>13|y<<3)&8191,f=m[4]&255|(m[5]&255)<<8,this.r[2]=(y>>>10|f<<6)&7939,w=m[6]&255|(m[7]&255)<<8,this.r[3]=(f>>>7|w<<9)&8191,k=m[8]&255|(m[9]&255)<<8,this.r[4]=(w>>>4|k<<12)&255,this.r[5]=k>>>1&8190,N=m[10]&255|(m[11]&255)<<8,this.r[6]=(k>>>14|N<<2)&8191,K=m[12]&255|(m[13]&255)<<8,this.r[7]=(N>>>11|K<<5)&8065,de=m[14]&255|(m[15]&255)<<8,this.r[8]=(K>>>8|de<<8)&8191,this.r[9]=de>>>5&127,this.pad[0]=m[16]&255|(m[17]&255)<<8,this.pad[1]=m[18]&255|(m[19]&255)<<8,this.pad[2]=m[20]&255|(m[21]&255)<<8,this.pad[3]=m[22]&255|(m[23]&255)<<8,this.pad[4]=m[24]&255|(m[25]&255)<<8,this.pad[5]=m[26]&255|(m[27]&255)<<8,this.pad[6]=m[28]&255|(m[29]&255)<<8,this.pad[7]=m[30]&255|(m[31]&255)<<8};tt.prototype.blocks=function(m,b,y){for(var f=this.fin?0:2048,w,k,N,K,de,Le,we,kt,Ae,rt,nt,pt,lt,it,dt,ot,ke,Fe,Se,Pe=this.h[0],Ne=this.h[1],ye=this.h[2],U=this.h[3],j=this.h[4],Z=this.h[5],$=this.h[6],W=this.h[7],ie=this.h[8],Ge=this.h[9],mt=this.r[0],xt=this.r[1],gt=this.r[2],E=this.r[3],vt=this.r[4],Pt=this.r[5],Bt=this.r[6],bt=this.r[7],Tt=this.r[8],At=this.r[9];y>=16;)w=m[b+0]&255|(m[b+1]&255)<<8,Pe+=w&8191,k=m[b+2]&255|(m[b+3]&255)<<8,Ne+=(w>>>13|k<<3)&8191,N=m[b+4]&255|(m[b+5]&255)<<8,ye+=(k>>>10|N<<6)&8191,K=m[b+6]&255|(m[b+7]&255)<<8,U+=(N>>>7|K<<9)&8191,de=m[b+8]&255|(m[b+9]&255)<<8,j+=(K>>>4|de<<12)&8191,Z+=de>>>1&8191,Le=m[b+10]&255|(m[b+11]&255)<<8,$+=(de>>>14|Le<<2)&8191,we=m[b+12]&255|(m[b+13]&255)<<8,W+=(Le>>>11|we<<5)&8191,kt=m[b+14]&255|(m[b+15]&255)<<8,ie+=(we>>>8|kt<<8)&8191,Ge+=kt>>>5|f,Ae=0,rt=Ae,rt+=Pe*mt,rt+=Ne*(5*At),rt+=ye*(5*Tt),rt+=U*(5*bt),rt+=j*(5*Bt),Ae=rt>>>13,rt&=8191,rt+=Z*(5*Pt),rt+=$*(5*vt),rt+=W*(5*E),rt+=ie*(5*gt),rt+=Ge*(5*xt),Ae+=rt>>>13,rt&=8191,nt=Ae,nt+=Pe*xt,nt+=Ne*mt,nt+=ye*(5*At),nt+=U*(5*Tt),nt+=j*(5*bt),Ae=nt>>>13,nt&=8191,nt+=Z*(5*Bt),nt+=$*(5*Pt),nt+=W*(5*vt),nt+=ie*(5*E),nt+=Ge*(5*gt),Ae+=nt>>>13,nt&=8191,pt=Ae,pt+=Pe*gt,pt+=Ne*xt,pt+=ye*mt,pt+=U*(5*At),pt+=j*(5*Tt),Ae=pt>>>13,pt&=8191,pt+=Z*(5*bt),pt+=$*(5*Bt),pt+=W*(5*Pt),pt+=ie*(5*vt),pt+=Ge*(5*E),Ae+=pt>>>13,pt&=8191,lt=Ae,lt+=Pe*E,lt+=Ne*gt,lt+=ye*xt,lt+=U*mt,lt+=j*(5*At),Ae=lt>>>13,lt&=8191,lt+=Z*(5*Tt),lt+=$*(5*bt),lt+=W*(5*Bt),lt+=ie*(5*Pt),lt+=Ge*(5*vt),Ae+=lt>>>13,lt&=8191,it=Ae,it+=Pe*vt,it+=Ne*E,it+=ye*gt,it+=U*xt,it+=j*mt,Ae=it>>>13,it&=8191,it+=Z*(5*At),it+=$*(5*Tt),it+=W*(5*bt),it+=ie*(5*Bt),it+=Ge*(5*Pt),Ae+=it>>>13,it&=8191,dt=Ae,dt+=Pe*Pt,dt+=Ne*vt,dt+=ye*E,dt+=U*gt,dt+=j*xt,Ae=dt>>>13,dt&=8191,dt+=Z*mt,dt+=$*(5*At),dt+=W*(5*Tt),dt+=ie*(5*bt),dt+=Ge*(5*Bt),Ae+=dt>>>13,dt&=8191,ot=Ae,ot+=Pe*Bt,ot+=Ne*Pt,ot+=ye*vt,ot+=U*E,ot+=j*gt,Ae=ot>>>13,ot&=8191,ot+=Z*xt,ot+=$*mt,ot+=W*(5*At),ot+=ie*(5*Tt),ot+=Ge*(5*bt),Ae+=ot>>>13,ot&=8191,ke=Ae,ke+=Pe*bt,ke+=Ne*Bt,ke+=ye*Pt,ke+=U*vt,ke+=j*E,Ae=ke>>>13,ke&=8191,ke+=Z*gt,ke+=$*xt,ke+=W*mt,ke+=ie*(5*At),ke+=Ge*(5*Tt),Ae+=ke>>>13,ke&=8191,Fe=Ae,Fe+=Pe*Tt,Fe+=Ne*bt,Fe+=ye*Bt,Fe+=U*Pt,Fe+=j*vt,Ae=Fe>>>13,Fe&=8191,Fe+=Z*E,Fe+=$*gt,Fe+=W*xt,Fe+=ie*mt,Fe+=Ge*(5*At),Ae+=Fe>>>13,Fe&=8191,Se=Ae,Se+=Pe*At,Se+=Ne*Tt,Se+=ye*bt,Se+=U*Bt,Se+=j*Pt,Ae=Se>>>13,Se&=8191,Se+=Z*vt,Se+=$*E,Se+=W*gt,Se+=ie*xt,Se+=Ge*mt,Ae+=Se>>>13,Se&=8191,Ae=(Ae<<2)+Ae|0,Ae=Ae+rt|0,rt=Ae&8191,Ae=Ae>>>13,nt+=Ae,Pe=rt,Ne=nt,ye=pt,U=lt,j=it,Z=dt,$=ot,W=ke,ie=Fe,Ge=Se,b+=16,y-=16;this.h[0]=Pe,this.h[1]=Ne,this.h[2]=ye,this.h[3]=U,this.h[4]=j,this.h[5]=Z,this.h[6]=$,this.h[7]=W,this.h[8]=ie,this.h[9]=Ge},tt.prototype.finish=function(m,b){var y=new Uint16Array(10),f,w,k,N;if(this.leftover){for(N=this.leftover,this.buffer[N++]=1;N<16;N++)this.buffer[N]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(f=this.h[1]>>>13,this.h[1]&=8191,N=2;N<10;N++)this.h[N]+=f,f=this.h[N]>>>13,this.h[N]&=8191;for(this.h[0]+=f*5,f=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=f,f=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=f,y[0]=this.h[0]+5,f=y[0]>>>13,y[0]&=8191,N=1;N<10;N++)y[N]=this.h[N]+f,f=y[N]>>>13,y[N]&=8191;for(y[9]-=8192,w=(f^1)-1,N=0;N<10;N++)y[N]&=w;for(w=~w,N=0;N<10;N++)this.h[N]=this.h[N]&w|y[N];for(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,k=this.h[0]+this.pad[0],this.h[0]=k&65535,N=1;N<8;N++)k=(this.h[N]+this.pad[N]|0)+(k>>>16)|0,this.h[N]=k&65535;m[b+0]=this.h[0]>>>0&255,m[b+1]=this.h[0]>>>8&255,m[b+2]=this.h[1]>>>0&255,m[b+3]=this.h[1]>>>8&255,m[b+4]=this.h[2]>>>0&255,m[b+5]=this.h[2]>>>8&255,m[b+6]=this.h[3]>>>0&255,m[b+7]=this.h[3]>>>8&255,m[b+8]=this.h[4]>>>0&255,m[b+9]=this.h[4]>>>8&255,m[b+10]=this.h[5]>>>0&255,m[b+11]=this.h[5]>>>8&255,m[b+12]=this.h[6]>>>0&255,m[b+13]=this.h[6]>>>8&255,m[b+14]=this.h[7]>>>0&255,m[b+15]=this.h[7]>>>8&255},tt.prototype.update=function(m,b,y){var f,w;if(this.leftover){for(w=16-this.leftover,w>y&&(w=y),f=0;f<w;f++)this.buffer[this.leftover+f]=m[b+f];if(y-=w,b+=w,this.leftover+=w,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(y>=16&&(w=y-y%16,this.blocks(m,b,w),b+=w,y-=w),y){for(f=0;f<y;f++)this.buffer[this.leftover+f]=m[b+f];this.leftover+=y}};function Nt(m,b,y,f,w,k){var N=new tt(k);return N.update(y,f,w),N.finish(m,b),0}function Ke(m,b,y,f,w,k){var N=new Uint8Array(16);return Nt(N,0,y,f,w,k),S(m,b,N,0)}function z(m,b,y,f,w){var k;if(y<32)return-1;for(Y(m,0,b,0,y,f,w),Nt(m,16,m,32,y-32,m),k=0;k<16;k++)m[k]=0;return 0}function V(m,b,y,f,w){var k,N=new Uint8Array(32);if(y<32||(ve(N,0,32,f,w),Ke(b,16,b,32,y-32,N)!==0))return-1;for(Y(m,0,b,0,y,f,w),k=0;k<32;k++)m[k]=0;return 0}function H(m,b){var y;for(y=0;y<16;y++)m[y]=b[y]|0}function pe(m){var b,y,f=1;for(b=0;b<16;b++)y=m[b]+f+65535,f=Math.floor(y/65536),m[b]=y-f*65536;m[0]+=f-1+37*(f-1)}function Te(m,b,y){for(var f,w=~(y-1),k=0;k<16;k++)f=w&(m[k]^b[k]),m[k]^=f,b[k]^=f}function Oe(m,b){var y,f,w,k=e(),N=e();for(y=0;y<16;y++)N[y]=b[y];for(pe(N),pe(N),pe(N),f=0;f<2;f++){for(k[0]=N[0]-65517,y=1;y<15;y++)k[y]=N[y]-65535-(k[y-1]>>16&1),k[y-1]&=65535;k[15]=N[15]-32767-(k[14]>>16&1),w=k[15]>>16&1,k[14]&=65535,Te(N,k,1-w)}for(y=0;y<16;y++)m[2*y]=N[y]&255,m[2*y+1]=N[y]>>8}function A(m,b){var y=new Uint8Array(32),f=new Uint8Array(32);return Oe(y,m),Oe(f,b),C(y,0,f,0)}function R(m){var b=new Uint8Array(32);return Oe(b,m),b[0]&1}function F(m,b){var y;for(y=0;y<16;y++)m[y]=b[2*y]+(b[2*y+1]<<8);m[15]&=32767}function I(m,b,y){for(var f=0;f<16;f++)m[f]=b[f]+y[f]}function O(m,b,y){for(var f=0;f<16;f++)m[f]=b[f]-y[f]}function oe(m,b,y){var f,w,k=0,N=0,K=0,de=0,Le=0,we=0,kt=0,Ae=0,rt=0,nt=0,pt=0,lt=0,it=0,dt=0,ot=0,ke=0,Fe=0,Se=0,Pe=0,Ne=0,ye=0,U=0,j=0,Z=0,$=0,W=0,ie=0,Ge=0,mt=0,xt=0,gt=0,E=y[0],vt=y[1],Pt=y[2],Bt=y[3],bt=y[4],Tt=y[5],At=y[6],cr=y[7],Mt=y[8],rr=y[9],sr=y[10],nr=y[11],gr=y[12],jr=y[13],Hr=y[14],Fr=y[15];f=b[0],k+=f*E,N+=f*vt,K+=f*Pt,de+=f*Bt,Le+=f*bt,we+=f*Tt,kt+=f*At,Ae+=f*cr,rt+=f*Mt,nt+=f*rr,pt+=f*sr,lt+=f*nr,it+=f*gr,dt+=f*jr,ot+=f*Hr,ke+=f*Fr,f=b[1],N+=f*E,K+=f*vt,de+=f*Pt,Le+=f*Bt,we+=f*bt,kt+=f*Tt,Ae+=f*At,rt+=f*cr,nt+=f*Mt,pt+=f*rr,lt+=f*sr,it+=f*nr,dt+=f*gr,ot+=f*jr,ke+=f*Hr,Fe+=f*Fr,f=b[2],K+=f*E,de+=f*vt,Le+=f*Pt,we+=f*Bt,kt+=f*bt,Ae+=f*Tt,rt+=f*At,nt+=f*cr,pt+=f*Mt,lt+=f*rr,it+=f*sr,dt+=f*nr,ot+=f*gr,ke+=f*jr,Fe+=f*Hr,Se+=f*Fr,f=b[3],de+=f*E,Le+=f*vt,we+=f*Pt,kt+=f*Bt,Ae+=f*bt,rt+=f*Tt,nt+=f*At,pt+=f*cr,lt+=f*Mt,it+=f*rr,dt+=f*sr,ot+=f*nr,ke+=f*gr,Fe+=f*jr,Se+=f*Hr,Pe+=f*Fr,f=b[4],Le+=f*E,we+=f*vt,kt+=f*Pt,Ae+=f*Bt,rt+=f*bt,nt+=f*Tt,pt+=f*At,lt+=f*cr,it+=f*Mt,dt+=f*rr,ot+=f*sr,ke+=f*nr,Fe+=f*gr,Se+=f*jr,Pe+=f*Hr,Ne+=f*Fr,f=b[5],we+=f*E,kt+=f*vt,Ae+=f*Pt,rt+=f*Bt,nt+=f*bt,pt+=f*Tt,lt+=f*At,it+=f*cr,dt+=f*Mt,ot+=f*rr,ke+=f*sr,Fe+=f*nr,Se+=f*gr,Pe+=f*jr,Ne+=f*Hr,ye+=f*Fr,f=b[6],kt+=f*E,Ae+=f*vt,rt+=f*Pt,nt+=f*Bt,pt+=f*bt,lt+=f*Tt,it+=f*At,dt+=f*cr,ot+=f*Mt,ke+=f*rr,Fe+=f*sr,Se+=f*nr,Pe+=f*gr,Ne+=f*jr,ye+=f*Hr,U+=f*Fr,f=b[7],Ae+=f*E,rt+=f*vt,nt+=f*Pt,pt+=f*Bt,lt+=f*bt,it+=f*Tt,dt+=f*At,ot+=f*cr,ke+=f*Mt,Fe+=f*rr,Se+=f*sr,Pe+=f*nr,Ne+=f*gr,ye+=f*jr,U+=f*Hr,j+=f*Fr,f=b[8],rt+=f*E,nt+=f*vt,pt+=f*Pt,lt+=f*Bt,it+=f*bt,dt+=f*Tt,ot+=f*At,ke+=f*cr,Fe+=f*Mt,Se+=f*rr,Pe+=f*sr,Ne+=f*nr,ye+=f*gr,U+=f*jr,j+=f*Hr,Z+=f*Fr,f=b[9],nt+=f*E,pt+=f*vt,lt+=f*Pt,it+=f*Bt,dt+=f*bt,ot+=f*Tt,ke+=f*At,Fe+=f*cr,Se+=f*Mt,Pe+=f*rr,Ne+=f*sr,ye+=f*nr,U+=f*gr,j+=f*jr,Z+=f*Hr,$+=f*Fr,f=b[10],pt+=f*E,lt+=f*vt,it+=f*Pt,dt+=f*Bt,ot+=f*bt,ke+=f*Tt,Fe+=f*At,Se+=f*cr,Pe+=f*Mt,Ne+=f*rr,ye+=f*sr,U+=f*nr,j+=f*gr,Z+=f*jr,$+=f*Hr,W+=f*Fr,f=b[11],lt+=f*E,it+=f*vt,dt+=f*Pt,ot+=f*Bt,ke+=f*bt,Fe+=f*Tt,Se+=f*At,Pe+=f*cr,Ne+=f*Mt,ye+=f*rr,U+=f*sr,j+=f*nr,Z+=f*gr,$+=f*jr,W+=f*Hr,ie+=f*Fr,f=b[12],it+=f*E,dt+=f*vt,ot+=f*Pt,ke+=f*Bt,Fe+=f*bt,Se+=f*Tt,Pe+=f*At,Ne+=f*cr,ye+=f*Mt,U+=f*rr,j+=f*sr,Z+=f*nr,$+=f*gr,W+=f*jr,ie+=f*Hr,Ge+=f*Fr,f=b[13],dt+=f*E,ot+=f*vt,ke+=f*Pt,Fe+=f*Bt,Se+=f*bt,Pe+=f*Tt,Ne+=f*At,ye+=f*cr,U+=f*Mt,j+=f*rr,Z+=f*sr,$+=f*nr,W+=f*gr,ie+=f*jr,Ge+=f*Hr,mt+=f*Fr,f=b[14],ot+=f*E,ke+=f*vt,Fe+=f*Pt,Se+=f*Bt,Pe+=f*bt,Ne+=f*Tt,ye+=f*At,U+=f*cr,j+=f*Mt,Z+=f*rr,$+=f*sr,W+=f*nr,ie+=f*gr,Ge+=f*jr,mt+=f*Hr,xt+=f*Fr,f=b[15],ke+=f*E,Fe+=f*vt,Se+=f*Pt,Pe+=f*Bt,Ne+=f*bt,ye+=f*Tt,U+=f*At,j+=f*cr,Z+=f*Mt,$+=f*rr,W+=f*sr,ie+=f*nr,Ge+=f*gr,mt+=f*jr,xt+=f*Hr,gt+=f*Fr,k+=38*Fe,N+=38*Se,K+=38*Pe,de+=38*Ne,Le+=38*ye,we+=38*U,kt+=38*j,Ae+=38*Z,rt+=38*$,nt+=38*W,pt+=38*ie,lt+=38*Ge,it+=38*mt,dt+=38*xt,ot+=38*gt,w=1,f=k+w+65535,w=Math.floor(f/65536),k=f-w*65536,f=N+w+65535,w=Math.floor(f/65536),N=f-w*65536,f=K+w+65535,w=Math.floor(f/65536),K=f-w*65536,f=de+w+65535,w=Math.floor(f/65536),de=f-w*65536,f=Le+w+65535,w=Math.floor(f/65536),Le=f-w*65536,f=we+w+65535,w=Math.floor(f/65536),we=f-w*65536,f=kt+w+65535,w=Math.floor(f/65536),kt=f-w*65536,f=Ae+w+65535,w=Math.floor(f/65536),Ae=f-w*65536,f=rt+w+65535,w=Math.floor(f/65536),rt=f-w*65536,f=nt+w+65535,w=Math.floor(f/65536),nt=f-w*65536,f=pt+w+65535,w=Math.floor(f/65536),pt=f-w*65536,f=lt+w+65535,w=Math.floor(f/65536),lt=f-w*65536,f=it+w+65535,w=Math.floor(f/65536),it=f-w*65536,f=dt+w+65535,w=Math.floor(f/65536),dt=f-w*65536,f=ot+w+65535,w=Math.floor(f/65536),ot=f-w*65536,f=ke+w+65535,w=Math.floor(f/65536),ke=f-w*65536,k+=w-1+37*(w-1),w=1,f=k+w+65535,w=Math.floor(f/65536),k=f-w*65536,f=N+w+65535,w=Math.floor(f/65536),N=f-w*65536,f=K+w+65535,w=Math.floor(f/65536),K=f-w*65536,f=de+w+65535,w=Math.floor(f/65536),de=f-w*65536,f=Le+w+65535,w=Math.floor(f/65536),Le=f-w*65536,f=we+w+65535,w=Math.floor(f/65536),we=f-w*65536,f=kt+w+65535,w=Math.floor(f/65536),kt=f-w*65536,f=Ae+w+65535,w=Math.floor(f/65536),Ae=f-w*65536,f=rt+w+65535,w=Math.floor(f/65536),rt=f-w*65536,f=nt+w+65535,w=Math.floor(f/65536),nt=f-w*65536,f=pt+w+65535,w=Math.floor(f/65536),pt=f-w*65536,f=lt+w+65535,w=Math.floor(f/65536),lt=f-w*65536,f=it+w+65535,w=Math.floor(f/65536),it=f-w*65536,f=dt+w+65535,w=Math.floor(f/65536),dt=f-w*65536,f=ot+w+65535,w=Math.floor(f/65536),ot=f-w*65536,f=ke+w+65535,w=Math.floor(f/65536),ke=f-w*65536,k+=w-1+37*(w-1),m[0]=k,m[1]=N,m[2]=K,m[3]=de,m[4]=Le,m[5]=we,m[6]=kt,m[7]=Ae,m[8]=rt,m[9]=nt,m[10]=pt,m[11]=lt,m[12]=it,m[13]=dt,m[14]=ot,m[15]=ke}function le(m,b){oe(m,b,b)}function ct(m,b){var y=e(),f;for(f=0;f<16;f++)y[f]=b[f];for(f=253;f>=0;f--)le(y,y),f!==2&&f!==4&&oe(y,y,b);for(f=0;f<16;f++)m[f]=y[f]}function yt(m,b){var y=e(),f;for(f=0;f<16;f++)y[f]=b[f];for(f=250;f>=0;f--)le(y,y),f!==1&&oe(y,y,b);for(f=0;f<16;f++)m[f]=y[f]}function Ot(m,b,y){var f=new Uint8Array(32),w=new Float64Array(80),k,N,K=e(),de=e(),Le=e(),we=e(),kt=e(),Ae=e();for(N=0;N<31;N++)f[N]=b[N];for(f[31]=b[31]&127|64,f[0]&=248,F(w,y),N=0;N<16;N++)de[N]=w[N],we[N]=K[N]=Le[N]=0;for(K[0]=we[0]=1,N=254;N>=0;--N)k=f[N>>>3]>>>(N&7)&1,Te(K,de,k),Te(Le,we,k),I(kt,K,Le),O(K,K,Le),I(Le,de,we),O(de,de,we),le(we,kt),le(Ae,K),oe(K,Le,K),oe(Le,de,kt),I(kt,K,Le),O(K,K,Le),le(de,K),O(Le,we,Ae),oe(K,Le,a),I(K,K,we),oe(Le,Le,K),oe(K,we,Ae),oe(we,de,w),le(de,kt),Te(K,de,k),Te(Le,we,k);for(N=0;N<16;N++)w[N+16]=K[N],w[N+32]=Le[N],w[N+48]=de[N],w[N+64]=we[N];var rt=w.subarray(32),nt=w.subarray(16);return ct(rt,rt),oe(nt,nt,rt),Oe(m,nt),0}function St(m,b){return Ot(m,b,n)}function Dt(m,b){return t(b,32),St(m,b)}function Bs(m,b,y){var f=new Uint8Array(32);return Ot(f,y,b),te(m,s,f,ae)}var Ns=z,_a=V;function gy(m,b,y,f,w,k){var N=new Uint8Array(32);return Bs(N,w,k),Ns(m,b,y,f,N)}function cf(m,b,y,f,w,k){var N=new Uint8Array(32);return Bs(N,w,k),_a(m,b,y,f,N)}var df=[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 uf(m,b,y,f){for(var w=new Int32Array(16),k=new Int32Array(16),N,K,de,Le,we,kt,Ae,rt,nt,pt,lt,it,dt,ot,ke,Fe,Se,Pe,Ne,ye,U,j,Z,$,W,ie,Ge=m[0],mt=m[1],xt=m[2],gt=m[3],E=m[4],vt=m[5],Pt=m[6],Bt=m[7],bt=b[0],Tt=b[1],At=b[2],cr=b[3],Mt=b[4],rr=b[5],sr=b[6],nr=b[7],gr=0;f>=128;){for(Ne=0;Ne<16;Ne++)ye=8*Ne+gr,w[Ne]=y[ye+0]<<24|y[ye+1]<<16|y[ye+2]<<8|y[ye+3],k[Ne]=y[ye+4]<<24|y[ye+5]<<16|y[ye+6]<<8|y[ye+7];for(Ne=0;Ne<80;Ne++)if(N=Ge,K=mt,de=xt,Le=gt,we=E,kt=vt,Ae=Pt,rt=Bt,nt=bt,pt=Tt,lt=At,it=cr,dt=Mt,ot=rr,ke=sr,Fe=nr,U=Bt,j=nr,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=(E>>>14|Mt<<18)^(E>>>18|Mt<<14)^(Mt>>>9|E<<23),j=(Mt>>>14|E<<18)^(Mt>>>18|E<<14)^(E>>>9|Mt<<23),Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,U=E&vt^~E&Pt,j=Mt&rr^~Mt&sr,Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,U=df[Ne*2],j=df[Ne*2+1],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,U=w[Ne%16],j=k[Ne%16],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,Se=W&65535|ie<<16,Pe=Z&65535|$<<16,U=Se,j=Pe,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=(Ge>>>28|bt<<4)^(bt>>>2|Ge<<30)^(bt>>>7|Ge<<25),j=(bt>>>28|Ge<<4)^(Ge>>>2|bt<<30)^(Ge>>>7|bt<<25),Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,U=Ge&mt^Ge&xt^mt&xt,j=bt&Tt^bt&At^Tt&At,Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,rt=W&65535|ie<<16,Fe=Z&65535|$<<16,U=Le,j=it,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=Se,j=Pe,Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,Le=W&65535|ie<<16,it=Z&65535|$<<16,mt=N,xt=K,gt=de,E=Le,vt=we,Pt=kt,Bt=Ae,Ge=rt,Tt=nt,At=pt,cr=lt,Mt=it,rr=dt,sr=ot,nr=ke,bt=Fe,Ne%16===15)for(ye=0;ye<16;ye++)U=w[ye],j=k[ye],Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=w[(ye+9)%16],j=k[(ye+9)%16],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,Se=w[(ye+1)%16],Pe=k[(ye+1)%16],U=(Se>>>1|Pe<<31)^(Se>>>8|Pe<<24)^Se>>>7,j=(Pe>>>1|Se<<31)^(Pe>>>8|Se<<24)^(Pe>>>7|Se<<25),Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,Se=w[(ye+14)%16],Pe=k[(ye+14)%16],U=(Se>>>19|Pe<<13)^(Pe>>>29|Se<<3)^Se>>>6,j=(Pe>>>19|Se<<13)^(Se>>>29|Pe<<3)^(Pe>>>6|Se<<26),Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,w[ye]=W&65535|ie<<16,k[ye]=Z&65535|$<<16;U=Ge,j=bt,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=m[0],j=b[0],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,m[0]=Ge=W&65535|ie<<16,b[0]=bt=Z&65535|$<<16,U=mt,j=Tt,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=m[1],j=b[1],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,m[1]=mt=W&65535|ie<<16,b[1]=Tt=Z&65535|$<<16,U=xt,j=At,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=m[2],j=b[2],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,m[2]=xt=W&65535|ie<<16,b[2]=At=Z&65535|$<<16,U=gt,j=cr,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=m[3],j=b[3],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,m[3]=gt=W&65535|ie<<16,b[3]=cr=Z&65535|$<<16,U=E,j=Mt,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=m[4],j=b[4],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,m[4]=E=W&65535|ie<<16,b[4]=Mt=Z&65535|$<<16,U=vt,j=rr,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=m[5],j=b[5],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,m[5]=vt=W&65535|ie<<16,b[5]=rr=Z&65535|$<<16,U=Pt,j=sr,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=m[6],j=b[6],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,m[6]=Pt=W&65535|ie<<16,b[6]=sr=Z&65535|$<<16,U=Bt,j=nr,Z=j&65535,$=j>>>16,W=U&65535,ie=U>>>16,U=m[7],j=b[7],Z+=j&65535,$+=j>>>16,W+=U&65535,ie+=U>>>16,$+=Z>>>16,W+=$>>>16,ie+=W>>>16,m[7]=Bt=W&65535|ie<<16,b[7]=nr=Z&65535|$<<16,gr+=128,f-=128}return f}function In(m,b,y){var f=new Int32Array(8),w=new Int32Array(8),k=new Uint8Array(256),N,K=y;for(f[0]=1779033703,f[1]=3144134277,f[2]=1013904242,f[3]=2773480762,f[4]=1359893119,f[5]=2600822924,f[6]=528734635,f[7]=1541459225,w[0]=4089235720,w[1]=2227873595,w[2]=4271175723,w[3]=1595750129,w[4]=2917565137,w[5]=725511199,w[6]=4215389547,w[7]=327033209,uf(f,w,b,y),y%=128,N=0;N<y;N++)k[N]=b[K-y+N];for(k[y]=128,y=256-128*(y<112?1:0),k[y-9]=0,x(k,y-8,K/536870912|0,K<<3),uf(f,w,k,y),N=0;N<8;N++)x(m,8*N,f[N],w[N]);return 0}function Ea(m,b){var y=e(),f=e(),w=e(),k=e(),N=e(),K=e(),de=e(),Le=e(),we=e();O(y,m[1],m[0]),O(we,b[1],b[0]),oe(y,y,we),I(f,m[0],m[1]),I(we,b[0],b[1]),oe(f,f,we),oe(w,m[3],b[3]),oe(w,w,d),oe(k,m[2],b[2]),I(k,k,k),O(N,f,y),O(K,k,w),I(de,k,w),I(Le,f,y),oe(m[0],N,K),oe(m[1],Le,de),oe(m[2],de,K),oe(m[3],N,Le)}function ff(m,b,y){var f;for(f=0;f<4;f++)Te(m[f],b[f],y)}function Ca(m,b){var y=e(),f=e(),w=e();ct(w,b[2]),oe(y,b[0],w),oe(f,b[1],w),Oe(m,f),m[31]^=R(y)<<7}function lf(m,b,y){var f,w;for(H(m[0],i),H(m[1],o),H(m[2],o),H(m[3],i),w=255;w>=0;--w)f=y[w/8|0]>>(w&7)&1,ff(m,b,f),Ea(b,m),Ea(m,m),ff(m,b,f)}function od(m,b){var y=[e(),e(),e(),e()];H(y[0],u),H(y[1],l),H(y[2],o),oe(y[3],u,l),lf(m,y,b)}function hf(m,b,y){var f=new Uint8Array(64),w=[e(),e(),e(),e()],k;for(y||t(b,32),In(f,b,32),f[0]&=248,f[31]&=127,f[31]|=64,od(w,f),Ca(m,w),k=0;k<32;k++)b[k+32]=m[k];return 0}var ad=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 xi(m,b){var y,f,w,k;for(f=63;f>=32;--f){for(y=0,w=f-32,k=f-12;w<k;++w)b[w]+=y-16*b[f]*ad[w-(f-32)],y=Math.floor((b[w]+128)/256),b[w]-=y*256;b[w]+=y,b[f]=0}for(y=0,w=0;w<32;w++)b[w]+=y-(b[31]>>4)*ad[w],y=b[w]>>8,b[w]&=255;for(w=0;w<32;w++)b[w]-=y*ad[w];for(f=0;f<32;f++)b[f+1]+=b[f]>>8,m[f]=b[f]&255}function pf(m){var b=new Float64Array(64),y;for(y=0;y<64;y++)b[y]=m[y];for(y=0;y<64;y++)m[y]=0;xi(m,b)}function Kp(m,b,y,f){var w=new Uint8Array(64),k=new Uint8Array(64),N=new Uint8Array(64),K,de,Le=new Float64Array(64),we=[e(),e(),e(),e()];In(w,f,32),w[0]&=248,w[31]&=127,w[31]|=64;var kt=y+64;for(K=0;K<y;K++)m[64+K]=b[K];for(K=0;K<32;K++)m[32+K]=w[32+K];for(In(N,m.subarray(32),y+32),pf(N),od(we,N),Ca(m,we),K=32;K<64;K++)m[K]=f[K];for(In(k,m,y+64),pf(k),K=0;K<64;K++)Le[K]=0;for(K=0;K<32;K++)Le[K]=N[K];for(K=0;K<32;K++)for(de=0;de<32;de++)Le[K+de]+=k[K]*w[de];return xi(m.subarray(32),Le),kt}function xy(m,b){var y=e(),f=e(),w=e(),k=e(),N=e(),K=e(),de=e();return H(m[2],o),F(m[1],b),le(w,m[1]),oe(k,w,c),O(w,w,m[2]),I(k,m[2],k),le(N,k),le(K,N),oe(de,K,N),oe(y,de,w),oe(y,y,k),yt(y,y),oe(y,y,w),oe(y,y,k),oe(y,y,k),oe(m[0],y,k),le(f,m[0]),oe(f,f,k),A(f,w)&&oe(m[0],m[0],h),le(f,m[0]),oe(f,f,k),A(f,w)?-1:(R(m[0])===b[31]>>7&&O(m[0],i,m[0]),oe(m[3],m[0],m[1]),0)}function Ta(m,b,y,f){var w,k=new Uint8Array(32),N=new Uint8Array(64),K=[e(),e(),e(),e()],de=[e(),e(),e(),e()];if(y<64||xy(de,f))return-1;for(w=0;w<y;w++)m[w]=b[w];for(w=0;w<32;w++)m[w+32]=f[w];if(In(N,m,y),pf(N),lf(K,de,N),od(de,b.subarray(32)),Ea(K,de),Ca(k,K),y-=64,C(b,0,k,0)){for(w=0;w<y;w++)m[w]=0;return-1}for(w=0;w<y;w++)m[w]=b[w+64];return y}var P=32,L=24,q=32,ce=16,Me=32,Vt=32,Wt=32,ft=32,me=32,_e=L,Re=q,Be=ce,st=64,Rt=32,jt=64,Xr=32,cd=64;r.lowlevel={crypto_core_hsalsa20:te,crypto_stream_xor:Y,crypto_stream:ve,crypto_stream_salsa20_xor:se,crypto_stream_salsa20:Ie,crypto_onetimeauth:Nt,crypto_onetimeauth_verify:Ke,crypto_verify_16:S,crypto_verify_32:C,crypto_secretbox:z,crypto_secretbox_open:V,crypto_scalarmult:Ot,crypto_scalarmult_base:St,crypto_box_beforenm:Bs,crypto_box_afternm:Ns,crypto_box:gy,crypto_box_open:cf,crypto_box_keypair:Dt,crypto_hash:In,crypto_sign:Kp,crypto_sign_keypair:hf,crypto_sign_open:Ta,crypto_secretbox_KEYBYTES:P,crypto_secretbox_NONCEBYTES:L,crypto_secretbox_ZEROBYTES:q,crypto_secretbox_BOXZEROBYTES:ce,crypto_scalarmult_BYTES:Me,crypto_scalarmult_SCALARBYTES:Vt,crypto_box_PUBLICKEYBYTES:Wt,crypto_box_SECRETKEYBYTES:ft,crypto_box_BEFORENMBYTES:me,crypto_box_NONCEBYTES:_e,crypto_box_ZEROBYTES:Re,crypto_box_BOXZEROBYTES:Be,crypto_sign_BYTES:st,crypto_sign_PUBLICKEYBYTES:Rt,crypto_sign_SECRETKEYBYTES:jt,crypto_sign_SEEDBYTES:Xr,crypto_hash_BYTES:cd,gf:e,D:c,L:ad,pack25519:Oe,unpack25519:F,M:oe,A:I,S:le,Z:O,pow2523:yt,add:Ea,set25519:H,modL:xi,scalarmult:lf,scalarbase:od};function Wp(m,b){if(m.length!==P)throw new Error("bad key size");if(b.length!==L)throw new Error("bad nonce size")}function yy(m,b){if(m.length!==Wt)throw new Error("bad public key size");if(b.length!==ft)throw new Error("bad secret key size")}function ws(){for(var m=0;m<arguments.length;m++)if(!(arguments[m]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function rE(m){for(var b=0;b<m.length;b++)m[b]=0}r.randomBytes=function(m){var b=new Uint8Array(m);return t(b,m),b},r.secretbox=function(m,b,y){ws(m,b,y),Wp(y,b);for(var f=new Uint8Array(q+m.length),w=new Uint8Array(f.length),k=0;k<m.length;k++)f[k+q]=m[k];return z(w,f,f.length,b,y),w.subarray(ce)},r.secretbox.open=function(m,b,y){ws(m,b,y),Wp(y,b);for(var f=new Uint8Array(ce+m.length),w=new Uint8Array(f.length),k=0;k<m.length;k++)f[k+ce]=m[k];return f.length<32||V(w,f,f.length,b,y)!==0?null:w.subarray(q)},r.secretbox.keyLength=P,r.secretbox.nonceLength=L,r.secretbox.overheadLength=ce,r.scalarMult=function(m,b){if(ws(m,b),m.length!==Vt)throw new Error("bad n size");if(b.length!==Me)throw new Error("bad p size");var y=new Uint8Array(Me);return Ot(y,m,b),y},r.scalarMult.base=function(m){if(ws(m),m.length!==Vt)throw new Error("bad n size");var b=new Uint8Array(Me);return St(b,m),b},r.scalarMult.scalarLength=Vt,r.scalarMult.groupElementLength=Me,r.box=function(m,b,y,f){var w=r.box.before(y,f);return r.secretbox(m,b,w)},r.box.before=function(m,b){ws(m,b),yy(m,b);var y=new Uint8Array(me);return Bs(y,m,b),y},r.box.after=r.secretbox,r.box.open=function(m,b,y,f){var w=r.box.before(y,f);return r.secretbox.open(m,b,w)},r.box.open.after=r.secretbox.open,r.box.keyPair=function(){var m=new Uint8Array(Wt),b=new Uint8Array(ft);return Dt(m,b),{publicKey:m,secretKey:b}},r.box.keyPair.fromSecretKey=function(m){if(ws(m),m.length!==ft)throw new Error("bad secret key size");var b=new Uint8Array(Wt);return St(b,m),{publicKey:b,secretKey:new Uint8Array(m)}},r.box.publicKeyLength=Wt,r.box.secretKeyLength=ft,r.box.sharedKeyLength=me,r.box.nonceLength=_e,r.box.overheadLength=r.secretbox.overheadLength,r.sign=function(m,b){if(ws(m,b),b.length!==jt)throw new Error("bad secret key size");var y=new Uint8Array(st+m.length);return Kp(y,m,m.length,b),y},r.sign.open=function(m,b){if(ws(m,b),b.length!==Rt)throw new Error("bad public key size");var y=new Uint8Array(m.length),f=Ta(y,m,m.length,b);if(f<0)return null;for(var w=new Uint8Array(f),k=0;k<w.length;k++)w[k]=y[k];return w},r.sign.detached=function(m,b){for(var y=r.sign(m,b),f=new Uint8Array(st),w=0;w<f.length;w++)f[w]=y[w];return f},r.sign.detached.verify=function(m,b,y){if(ws(m,b,y),b.length!==st)throw new Error("bad signature size");if(y.length!==Rt)throw new Error("bad public key size");var f=new Uint8Array(st+m.length),w=new Uint8Array(st+m.length),k;for(k=0;k<st;k++)f[k]=b[k];for(k=0;k<m.length;k++)f[k+st]=m[k];return Ta(w,f,f.length,y)>=0},r.sign.keyPair=function(){var m=new Uint8Array(Rt),b=new Uint8Array(jt);return hf(m,b),{publicKey:m,secretKey:b}},r.sign.keyPair.fromSecretKey=function(m){if(ws(m),m.length!==jt)throw new Error("bad secret key size");for(var b=new Uint8Array(Rt),y=0;y<b.length;y++)b[y]=m[32+y];return{publicKey:b,secretKey:new Uint8Array(m)}},r.sign.keyPair.fromSeed=function(m){if(ws(m),m.length!==Xr)throw new Error("bad seed size");for(var b=new Uint8Array(Rt),y=new Uint8Array(jt),f=0;f<32;f++)y[f]=m[f];return hf(b,y,!0),{publicKey:b,secretKey:y}},r.sign.publicKeyLength=Rt,r.sign.secretKeyLength=jt,r.sign.seedLength=Xr,r.sign.signatureLength=st,r.hash=function(m){ws(m);var b=new Uint8Array(cd);return In(b,m,m.length),b},r.hash.hashLength=cd,r.verify=function(m,b){return ws(m,b),m.length===0||b.length===0||m.length!==b.length?!1:v(m,0,b,0,m.length)===0},r.setPRNG=function(m){t=m},(function(){var m=typeof self<"u"?self.crypto||self.msCrypto:null;if(m&&m.getRandomValues){var b=65536;r.setPRNG(function(y,f){var w,k=new Uint8Array(f);for(w=0;w<f;w+=b)m.getRandomValues(k.subarray(w,w+Math.min(f-w,b)));for(w=0;w<f;w++)y[w]=k[w];rE(k)})}else typeof require<"u"&&(m=require("crypto"),m&&m.randomBytes&&r.setPRNG(function(y,f){var w,k=m.randomBytes(f);for(w=0;w<f;w++)y[w]=k[w];rE(k)}))})()})(typeof F0<"u"&&F0.exports?F0.exports:self.nacl=self.nacl||{})});var Tb=ee(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});var Eb=class{constructor(e,t=0,s=0){this.start=t,this.end=s>t?s:t,this.buf=e}get length(){return this.buf.length}reset(e=0,t=0){return this.start=e,t>=this.start?this.end=t:this.end<this.start&&(this.end=this.start),this}walk(e){return this.start=this.end,this.end+=e,this}mustHas(e,t="Too few bytes to parse."){let s=this.end+e;if(s>this.buf.length){let n=new Error(t);throw n.available=this.buf.length,n.requested=s,n}return this.walk(0),this}mustWalk(e,t){return this.mustHas(e,t),this.walk(e),this}};Cb.BufferVisitor=Eb});var JC=ee(kb=>{"use strict";Object.defineProperty(kb,"__esModule",{value:!0});var YC=require("util"),QC=64,Ib="-----BEGIN ",Rb="-----END ",Nf="-----",Ab="Proc-Type",z0=class{static parse(e){let t=[],s=e.toString("utf8").split(`
|
|
12
|
-
`).map(n=>n.trim()).filter(n=>n!==""&&!n.startsWith("#"));for(;s.length>0;)t.push(dD(s));if(t.length===0)throw new Error("PEM: no block");return t}constructor(e,t){this.type=e,this.body=t,this.headers=Object.create(null)}get procType(){return this.getHeader(Ab)}getHeader(e){let t=this.headers[e];return t??""}setHeader(e,t){if(e.includes(":"))throw new Error("pem: cannot encode a header key that contains a colon");if(e===""||t==="")throw new Error("pem: invalid header key or value");this.headers[e]=t}toString(){let e=Ib+this.type+Nf+`
|
|
13
|
-
`,t=Object.keys(this.headers);if(t.length>0){let i=this.procType;i!==""&&(e+=`${Ab}: ${i}
|
|
14
|
-
`),t.sort();for(let o of t)o!==Ab&&(e+=`${o}: ${this.headers[o]}
|
|
15
|
-
`);e+=`
|
|
16
|
-
`}let s=this.body.toString("base64"),n=0;for(;n<s.length;)e+=s.slice(n,n+QC)+`
|
|
17
|
-
`,n+=QC;return e+=Rb+this.type+Nf+`
|
|
18
|
-
`,e}toBuffer(){return Buffer.from(this.toString(),"utf8")}valueOf(){return this.body}toJSON(){return{type:this.type,body:this.body,headers:this.headers}}[YC.inspect.custom](e,t){return`<${this.constructor.name} ${YC.inspect(this.toJSON(),t)}>`}};kb.PEM=z0;function dD(r){let e=r.shift();if(e==null||!e.startsWith(Ib)||!e.endsWith(Nf))throw new Error("pem: invalid BEGIN line");let t=e.slice(Ib.length,e.length-Nf.length);if(t==="")throw new Error("pem: invalid type");let s=[];for(e=r.shift();e!=null&&e.includes(": ");){let o=e.split(": ");if(o.length!==2||o[0]===""||o[1]==="")throw new Error("pem: invalid Header line");s.push(o),e=r.shift()}let n="";for(;e!=null&&!e.startsWith(Rb);)n+=e,e=r.shift();if(e==null||e!==`${Rb}${t}${Nf}`)throw new Error("pem: invalid END line");let i=new z0(t,Buffer.from(n,"base64"));if(n===""||i.body.toString("base64")!==n)throw new Error("pem: invalid base64 body");for(let o of s)i.setHeader(o[0],o[1]);return i}});var r6=ee(wo=>{"use strict";Object.defineProperty(wo,"__esModule",{value:!0});var ZC=require("util"),V0=Tb(),ir;(function(r){r[r.UNIVERSAL=0]="UNIVERSAL",r[r.APPLICATION=64]="APPLICATION",r[r.CONTEXT_SPECIFIC=128]="CONTEXT_SPECIFIC",r[r.PRIVATE=192]="PRIVATE"})(ir=wo.Class||(wo.Class={}));var _t;(function(r){r[r.NONE=0]="NONE",r[r.BOOLEAN=1]="BOOLEAN",r[r.INTEGER=2]="INTEGER",r[r.BITSTRING=3]="BITSTRING",r[r.OCTETSTRING=4]="OCTETSTRING",r[r.NULL=5]="NULL",r[r.OID=6]="OID",r[r.ENUMERATED=10]="ENUMERATED",r[r.UTF8=12]="UTF8",r[r.SEQUENCE=16]="SEQUENCE",r[r.SET=17]="SET",r[r.NUMERICSTRING=18]="NUMERICSTRING",r[r.PRINTABLESTRING=19]="PRINTABLESTRING",r[r.T61STRING=20]="T61STRING",r[r.IA5STRING=22]="IA5STRING",r[r.UTCTIME=23]="UTCTIME",r[r.GENERALIZEDTIME=24]="GENERALIZEDTIME",r[r.GENERALSTRING=27]="GENERALSTRING"})(_t=wo.Tag||(wo.Tag={}));var Of=class{constructor(e,t){this.buf=e,this.bitLen=t}at(e){if(e<0||e>=this.bitLen||!Number.isInteger(e))return 0;let t=Math.floor(e/8),s=7-e%8;return this.buf[t]>>s&1}rightAlign(){let e=8-this.bitLen%8;if(e===8||this.buf.length===0)return this.buf;let t=Buffer.alloc(this.buf.length);t[0]=this.buf[0]>>e;for(let s=1;s<this.buf.length;s++)t[s]=this.buf[s-1]<<8-e,t[s]|=this.buf[s]>>e;return t}};wo.BitString=Of;var Pb=class r{static Bool(e){let t=new r(ir.UNIVERSAL,_t.BOOLEAN,Buffer.from([e?255:0]));return t._value=e,t}static parseBool(e){if(!(e instanceof Buffer)||e.length!==1)throw new Error("ASN1 syntax error: invalid boolean");switch(e[0]){case 0:return!1;case 255:return!0;default:throw new Error("ASN1 syntax error: invalid boolean")}}static Integer(e){if(e instanceof Buffer){let n=new r(ir.UNIVERSAL,_t.INTEGER,e);return n._value=e.toString("hex"),n}if(!Number.isSafeInteger(e))throw new Error("ASN1 syntax error: invalid integer");let t;if(e>=-128&&e<128)t=Buffer.alloc(1),t.writeInt8(e,0);else if(e>=-32768&&e<32768)t=Buffer.alloc(2),t.writeIntBE(e,0,2);else if(e>=-8388608&&e<8388608)t=Buffer.alloc(3),t.writeIntBE(e,0,3);else if(e>=-2147483648&&e<2147483648)t=Buffer.alloc(4),t.writeIntBE(e,0,4);else if(e>=-549755813888&&e<549755813888)t=Buffer.alloc(5),t.writeIntBE(e,0,5);else if(e>=-0x800000000000&&e<0x800000000000)t=Buffer.alloc(6),t.writeIntBE(e,0,6);else throw new Error("ASN1 syntax error: invalid Integer");let s=new r(ir.UNIVERSAL,_t.INTEGER,t);return s._value=e,s}static parseInteger(e){if(!(e instanceof Buffer)||e.length===0)throw new Error("ASN1 syntax error: invalid Integer");return e.length>6?e.toString("hex"):e.readIntBE(0,e.length)}static parseIntegerNum(e){let t=r.parseInteger(e);if(typeof t!="number")throw new Error("ASN1 syntax error: invalid Integer number");return t}static parseIntegerStr(e){let t=r.parseInteger(e);return typeof t=="number"?t.toString(16):t}static BitString(e){e instanceof Buffer&&(e=new Of(e,e.length*8));let t=e.buf.length*8-e.bitLen,s=Buffer.alloc(e.buf.length+1);return s.writeInt8(t,0),e.buf.copy(s,1),new r(ir.UNIVERSAL,_t.BITSTRING,s)}static parseBitString(e){if(!(e instanceof Buffer)||e.length===0)throw new Error("ASN1 syntax error: invalid BitString");let t=e[0];if(t>7||e.length===1&&t>0||(e[e.length-1]&(1<<e[0])-1)!==0)throw new Error("ASN1 syntax error: invalid padding bits in BIT STRING");return new Of(e.slice(1),(e.length-1)*8-t)}static Null(){let e=new r(ir.UNIVERSAL,_t.NULL,Buffer.alloc(0));return e._value=null,e}static parseNull(e){if(!(e instanceof Buffer)||e.length!==0)throw new Error("ASN1 syntax error: invalid null");return null}static OID(e){let t=e.split(".");if(t.length===0)throw new Error("ASN1 syntax error: invalid Object Identifier");let s=[];s.push(40*yr(t[0])+yr(t[1]));let n=[];for(let o=2;o<t.length;++o){let a=yr(t[o]);for(n.length=0,n.push(a&127);a>127;)a=a>>>7,n.unshift(a&127|128);s.push(...n)}let i=new r(ir.UNIVERSAL,_t.OID,Buffer.from(s));return i._value=e,i}static parseOID(e){if(!(e instanceof Buffer)||e.length===0)throw new Error("ASN1 syntax error: invalid OID");let t=Math.floor(e[0]/40)+"."+e[0]%40,s=0;for(let n=1;n<e.length;n++)e[n]>=128?(s+=e[n]&127,s=s<<7):(t+="."+(s+e[n]),s=0);return t}static UTF8(e){let t=new r(ir.UNIVERSAL,_t.UTF8,Buffer.from(e,"utf8"));return t._value=e,t}static parseUTF8(e){if(!(e instanceof Buffer))throw new Error("parse ASN1 error: invalid Buffer");return e.toString("utf8")}static NumericString(e){if(!e6(e))throw new Error("ASN1 syntax error: invalid NumericString");let t=new r(ir.UNIVERSAL,_t.NUMERICSTRING,Buffer.from(e,"utf8"));return t._value=e,t}static parseNumericString(e){if(!(e instanceof Buffer))throw new Error("parse ASN1 error: invalid Buffer");let t=e.toString("utf8");if(!e6(t))throw new Error("ASN1 syntax error: invalid NumericString");return t}static PrintableString(e){let t=new r(ir.UNIVERSAL,_t.PRINTABLESTRING,Buffer.from(e,"utf8"));return t._value=e,t}static parsePrintableString(e){if(!(e instanceof Buffer))throw new Error("parse ASN1 error: invalid Buffer");return e.toString("utf8")}static IA5String(e){if(!t6(e))throw new Error("ASN1 syntax error: invalid IA5String");let t=new r(ir.UNIVERSAL,_t.IA5STRING,Buffer.from(e,"utf8"));return t._value=e,t}static parseIA5String(e){if(!(e instanceof Buffer))throw new Error("parse ASN1 error: invalid Buffer");let t=e.toString("utf8");if(!t6(t))throw new Error("ASN1 syntax error: invalid IA5String");return t}static T61String(e){let t=new r(ir.UNIVERSAL,_t.T61STRING,Buffer.from(e,"utf8"));return t._value=e,t}static parseT61String(e){if(!(e instanceof Buffer))throw new Error("parse ASN1 error: invalid Buffer");return e.toString("utf8")}static GeneralString(e){let t=new r(ir.UNIVERSAL,_t.GENERALSTRING,Buffer.from(e,"utf8"));return t._value=e,t}static parseGeneralString(e){if(!(e instanceof Buffer))throw new Error("parse ASN1 error: invalid Buffer");return e.toString("utf8")}static UTCTime(e){let t="",s=[];s.push((""+e.getUTCFullYear()).substr(2)),s.push(""+(e.getUTCMonth()+1)),s.push(""+e.getUTCDate()),s.push(""+e.getUTCHours()),s.push(""+e.getUTCMinutes()),s.push(""+e.getUTCSeconds());for(let i of s)i.length<2&&(t+="0"),t+=i;t+="Z";let n=new r(ir.UNIVERSAL,_t.UTCTIME,Buffer.from(t,"utf8"));return n._value=e,n}static parseUTCTime(e){if(!(e instanceof Buffer)||e.length===0)throw new Error("ASN1 syntax error: invalid UTC Time");let t=e.toString("utf8"),s=new Date,n=yr(t.substr(0,2));n=n>=50?1900+n:2e3+n;let i=yr(t.substr(2,2))-1,o=yr(t.substr(4,2)),a=yr(t.substr(6,2)),c=yr(t.substr(8,2)),d=0,u=0,l="";if(t.length>11&&(u=10,l=t.charAt(u),l!=="+"&&l!=="-"&&(d=yr(t.substr(10,2)),u+=2)),s.setUTCFullYear(n,i,o),s.setUTCHours(a,c,d,0),u>0&&(l=t.charAt(u),l==="+"||l==="-")){let h=yr(t.substr(u+1,2)),x=yr(t.substr(u+4,2)),v=h*60+x;v*=6e4,l==="+"?s.setTime(+s-v):s.setTime(+s+v)}return s}static GeneralizedTime(e){let t="",s=[];s.push(""+e.getUTCFullYear()),s.push(""+(e.getUTCMonth()+1)),s.push(""+e.getUTCDate()),s.push(""+e.getUTCHours()),s.push(""+e.getUTCMinutes()),s.push(""+e.getUTCSeconds());for(let i of s)i.length<2&&(t+="0"),t+=i;t+="Z";let n=new r(ir.UNIVERSAL,_t.GENERALIZEDTIME,Buffer.from(t,"utf8"));return n._value=e,n}static parseGeneralizedTime(e){if(!(e instanceof Buffer)||e.length===0)throw new Error("ASN1 syntax error: invalid Generalized Time");let t=e.toString("utf8"),s=new Date,n=yr(t.substr(0,4)),i=yr(t.substr(4,2))-1,o=yr(t.substr(6,2)),a=yr(t.substr(8,2)),c=yr(t.substr(10,2)),d=yr(t.substr(12,2)),u=0,l=0,h=!1;t.charAt(t.length-1)==="Z"&&(h=!0);let x=t.length-5,v=t.charAt(x);if(v==="+"||v==="-"){let S=yr(t.substr(x+1,2)),C=yr(t.substr(x+4,2));l=S*60+C,l*=6e4,v==="+"&&(l*=-1),h=!0}return t.charAt(14)==="."&&(u=parseFloat(t.substr(14))*1e3),h?(s.setUTCFullYear(n,i,o),s.setUTCHours(a,c,d,u),s.setTime(+s+l)):(s.setFullYear(n,i,o),s.setHours(a,c,d,u)),s}static parseTime(e,t){switch(e){case _t.UTCTIME:return r.parseUTCTime(t);case _t.GENERALIZEDTIME:return r.parseGeneralizedTime(t);default:throw new Error("Invalid ASN1 time tag")}}static Set(e){let t=new r(ir.UNIVERSAL,_t.SET,Buffer.concat(e.map(s=>s.toDER())));return t._value=e,t}static Seq(e){let t=new r(ir.UNIVERSAL,_t.SEQUENCE,Buffer.concat(e.map(s=>s.toDER())));return t._value=e,t}static Spec(e,t,s=!0){let n=Array.isArray(t)?Buffer.concat(t.map(o=>o.toDER())):t.toDER();Array.isArray(t)&&(s=!0);let i=new r(ir.CONTEXT_SPECIFIC,e,n,s);return i._value=t,i}static fromDER(e,t=!1){return r._fromDER(new V0.BufferVisitor(e),t)}static parseDER(e,t,s){let n=r._fromDER(new V0.BufferVisitor(e),!1);if(n.class!==t&&n.tag!==s)throw new Error(`invalid ASN.1 DER for class ${t} and tag ${s}`);return n}static parseDERWithTemplate(e,t){let s=r._fromDER(new V0.BufferVisitor(e),!0),n={},i=s.validate(t,n);if(i!=null)throw i.data=s,i;return n}static _parseCompound(e,t){let s=[],n=e.length,i=new V0.BufferVisitor(e),o=0;for(;o<n;){let a=i.end;s.push(r._fromDER(i,t)),o+=i.end-a}return s}static _fromDER(e,t){if(!(e.buf instanceof Buffer)||e.length===0)throw new Error("ASN1 syntax error: invalid Generalized Time");e.mustWalk(1,"Too few bytes to read ASN.1 tag.");let s=e.start,n=e.buf[s],i=n&192,o=n&31,a=uD(e);if(e.mustHas(a),a!==0&&o===_t.NULL)throw new Error("invalid value length or NULL tag.");e.mustWalk(a);let c=(n&32)===32,d=new r(i,o,e.buf.slice(e.start,e.end),c);return c&&t&&(d._value=r._parseCompound(d.bytes,t)),d._der=e.buf.slice(s,e.end),d}constructor(e,t,s,n=!1){this.class=e,this.tag=t,this.bytes=s,this.isCompound=n||t===_t.SEQUENCE||t===_t.SET,this._value=void 0,this._der=null}get value(){return this._value===void 0&&(this._value=this.valueOf()),this._value}get DER(){return this._der==null&&(this._der=this.toDER()),this._der}mustCompound(e="asn1 object value is not compound"){if(!this.isCompound||!Array.isArray(this.value)){let t=new Error(e);throw t.data=this.toJSON(),t}return this.value}equals(e){return!(!(e instanceof r)||this.class!==e.class||this.tag!==e.tag||this.isCompound!==e.isCompound||!this.bytes.equals(e.bytes))}toDER(){let e=this.class|this.tag;this.isCompound&&(e|=32);let t=fD(this.bytes.length),s=Buffer.allocUnsafe(2+t+this.bytes.length);return s.writeInt8(e,0),t===0?(s.writeUInt8(this.bytes.length,1),this.bytes.copy(s,2)):(s.writeUInt8(t|128,1),s.writeUIntBE(this.bytes.length,2,t),this.bytes.copy(s,2+t)),s}valueOf(){if(this.isCompound)return r._parseCompound(this.bytes,!1);if(this.class!==ir.UNIVERSAL)return this.bytes;switch(this.tag){case _t.BOOLEAN:return r.parseBool(this.bytes);case _t.INTEGER:return r.parseInteger(this.bytes);case _t.BITSTRING:return r.parseBitString(this.bytes);case _t.NULL:return r.parseNull(this.bytes);case _t.OID:return r.parseOID(this.bytes);case _t.UTF8:return r.parseUTF8(this.bytes);case _t.NUMERICSTRING:return r.parseNumericString(this.bytes);case _t.PRINTABLESTRING:return r.parsePrintableString(this.bytes);case _t.T61STRING:return r.parseT61String(this.bytes);case _t.IA5STRING:return r.parseIA5String(this.bytes);case _t.GENERALSTRING:return r.parseGeneralString(this.bytes);case _t.UTCTIME:return r.parseUTCTime(this.bytes);case _t.GENERALIZEDTIME:return r.parseGeneralizedTime(this.bytes);default:return this.bytes}}validate(e,t={}){if(this.class!==e.class)return new Error(`ASN.1 object validate failure for ${e.name} : error class ${ir[this.class]}`);if(!(Array.isArray(e.tag)?e.tag:[e.tag]).includes(this.tag))return new Error(`ASN.1 object validate failure for ${e.name}: error tag ${_t[this.tag]}`);if(e.capture!=null&&(t[e.capture]=this),Array.isArray(e.value)){let n=this.mustCompound(`${e.name} need compound ASN1 value`);for(let i=0,o=0;i<e.value.length;i++)if(n[o]!=null){let a=n[o].validate(e.value[i],t);if(a==null)o++;else if(e.value[i].optional!==!0)return a}else if(e.value[i].optional!==!0)return new Error(`ASN.1 object validate failure for ${e.value[i].name}: not exists`)}else if(e.value!=null){let n=this.tag===_t.BITSTRING?this.bytes.slice(1):this.bytes;return r.fromDER(n).validate(e.value,t)}return null}toJSON(){let e=this.value;return Array.isArray(e)&&(e=e.map(t=>t.toJSON())),{class:ir[this.class],tag:this.class===ir.UNIVERSAL?_t[this.tag]:this.tag,value:e}}[ZC.inspect.custom](e,t){return t.depth<=2&&(t.depth=10),`<${this.constructor.name} ${ZC.inspect(this.toJSON(),t)}>`}};wo.ASN1=Pb;function uD(r){r.mustWalk(1,"Too few bytes to read ASN.1 value length.");let e=r.buf[r.start];if((e&128)===0)return e;let t=e&127;return r.mustWalk(t,"Too few bytes to read ASN.1 value length."),r.buf.readUIntBE(r.start,t)}function fD(r){if(r<=127)return 0;if(r<=255)return 1;if(r<=65535)return 2;if(r<=16777215)return 3;if(r<=4294967295)return 4;if(r<=0xffffffffff)return 5;if(r<=0xffffffffffff)return 6;throw new Error("invalid value length")}function e6(r){for(let e of r){let t=e.charCodeAt(0);if(t!==32&&(t<48||t>57))return!1}return!0}function t6(r){for(let e of r)if(e.charCodeAt(0)>=128)return!1;return!0}function yr(r,e=10){let t=parseInt(r,e);if(Number.isNaN(t))throw new Error(`Invalid numeric string "${r}" in radix ${e}.`);return t}});var Bb=ee(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});var lD=Tb();So.BufferVisitor=lD.BufferVisitor;var hD=JC();So.PEM=hD.PEM;var $0=r6();So.ASN1=$0.ASN1;So.Class=$0.Class;So.Tag=$0.Tag;So.BitString=$0.BitString});var Db=ee(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});var Eo=require("util"),Lf=require("crypto"),Lb=q0(),fe=Bb(),zr=H0();On.publicKeyValidator={name:"PublicKeyInfo",class:fe.Class.UNIVERSAL,tag:fe.Tag.SEQUENCE,capture:"publicKeyInfo",value:[{name:"PublicKeyInfo.AlgorithmIdentifier",class:fe.Class.UNIVERSAL,tag:fe.Tag.SEQUENCE,value:[{name:"PublicKeyAlgorithmIdentifier.algorithm",class:fe.Class.UNIVERSAL,tag:fe.Tag.OID,capture:"publicKeyOID"}]},{name:"PublicKeyInfo.PublicKey",class:fe.Class.UNIVERSAL,tag:fe.Tag.BITSTRING,capture:"publicKey"}]};On.privateKeyValidator={name:"PrivateKeyInfo",class:fe.Class.UNIVERSAL,tag:fe.Tag.SEQUENCE,capture:"privateKeyInfo",value:[{name:"PrivateKeyInfo.Version",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.AlgorithmIdentifier",class:fe.Class.UNIVERSAL,tag:fe.Tag.SEQUENCE,value:[{name:"PrivateKeyAlgorithmIdentifier.algorithm",class:fe.Class.UNIVERSAL,tag:fe.Tag.OID,capture:"privateKeyOID"}]},{name:"PrivateKeyInfo.PrivateKey",class:fe.Class.UNIVERSAL,tag:fe.Tag.OCTETSTRING,capture:"privateKey"}]};var pD={name:"RSAPublicKey",class:fe.Class.UNIVERSAL,tag:fe.Tag.SEQUENCE,value:[{name:"RSAPublicKey.modulus",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"publicKeyExponent"}]},mD={name:"RSAPrivateKey",class:fe.Class.UNIVERSAL,tag:fe.Tag.SEQUENCE,value:[{name:"RSAPrivateKey.version",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",class:fe.Class.UNIVERSAL,tag:fe.Tag.INTEGER,capture:"privateKeyCoefficient"}]},gD=[zr.getOID("X25519"),zr.getOID("X448"),zr.getOID("Ed25519"),zr.getOID("Ed448")],Od=class r{constructor(e){let t={},s=e.validate(On.publicKeyValidator,t);if(s!=null)throw new Error("Cannot read X.509 public key: "+s.message);this.oid=fe.ASN1.parseOID(t.publicKeyOID.bytes),this.algo=zr.getOIDName(this.oid),this._pkcs8=e,this._keyRaw=fe.ASN1.parseBitString(t.publicKey.bytes).buf,this._finalKey=this._keyRaw,this._finalPEM=""}static fromPEM(e){let t=fe.PEM.parse(e)[0];if(t.procType.includes("ENCRYPTED"))throw new Error("Could not convert public key from PEM, PEM is encrypted.");let s=fe.ASN1.fromDER(t.body,!0);switch(t.type){case"PUBLIC KEY":return new r(s);case"RSA PUBLIC KEY":let n=fe.ASN1.Seq([fe.ASN1.Seq([fe.ASN1.OID(zr.getOID("rsaEncryption")),fe.ASN1.Null()]),fe.ASN1.BitString(s.DER)]);return new r(n);default:throw new Error("Could not convert public key from PEM, recommend PKCS#8 PEM")}}static addVerifier(e,t){if(e=zr.getOID(e),e==="")throw new Error(`Invalid object identifier: ${e}`);if(r._verifiers[e]!=null)throw new Error(`Verifier ${e} exists`);r._verifiers[e]=t}get keyRaw(){return this._finalKey}verify(e,t,s){let n=r._verifiers[this.oid];if(n!=null){let o=Lf.createHash(s).update(e).digest();return n.call(this,o,t)}let i=Lf.createVerify(s);return i.update(e),i.verify(this.toPEM(),t)}getFingerprint(e,t="PublicKey"){let s;switch(t){case"PublicKeyInfo":s=this._pkcs8.DER;break;case"PublicKey":s=this._keyRaw;break;default:throw new Error(`Unknown fingerprint type "${t}".`)}let n=Lf.createHash(e);return n.update(s),n.digest()}toASN1(){return this._pkcs8}toDER(){return this._pkcs8.DER}toPEM(){return this._finalPEM===""&&(this._finalPEM=new fe.PEM("PUBLIC KEY",this._pkcs8.DER).toString()),this._finalPEM}toJSON(){return{oid:this.oid,algo:this.algo,publicKey:this._keyRaw}}[Eo.inspect.custom](e,t){return`<${this.constructor.name} ${Eo.inspect(this.toJSON(),t)}>`}};Od._verifiers=Object.create(null);On.PublicKey=Od;var Ld=class r{constructor(e){let t=Object.create(null),s=e.validate(On.privateKeyValidator,t);if(s!=null)throw new Error("Cannot read X.509 private key: "+s.message);if(this.version=fe.ASN1.parseIntegerNum(t.privateKeyVersion.bytes)+1,this.oid=fe.ASN1.parseOID(t.privateKeyOID.bytes),this.algo=zr.getOIDName(this.oid),this._pkcs8=e,this._keyRaw=t.privateKey.bytes,this._publicKeyRaw=null,this._finalKey=this._keyRaw,this._finalPEM="",gD.includes(this.oid)){if(this._finalKey=this._keyRaw=fe.ASN1.parseDER(this._keyRaw,fe.Class.UNIVERSAL,fe.Tag.OCTETSTRING).bytes,this.oid==="1.3.101.112"){let n=Lb.sign.keyPair.fromSeed(this._keyRaw);this._publicKeyRaw=Buffer.from(n.publicKey),this._finalKey=Buffer.from(n.secretKey)}else if(this.version===2)for(let n of e.mustCompound())n.class===fe.Class.CONTEXT_SPECIFIC&&n.tag===1&&(this._publicKeyRaw=fe.ASN1.parseBitString(n.bytes).buf,this._finalKey=Buffer.concat([this._keyRaw,this._publicKeyRaw]))}}static fromPEM(e){let t=fe.PEM.parse(e)[0];if(t.procType.includes("ENCRYPTED"))throw new Error("Could not convert private key from PEM, PEM is encrypted.");let s=fe.ASN1.fromDER(t.body,!0);switch(t.type){case"PRIVATE KEY":return new r(s);case"RSA PRIVATE KEY":return s=fe.ASN1.Seq([s.value[0],fe.ASN1.Seq([fe.ASN1.OID(zr.getOID("rsaEncryption")),fe.ASN1.Null()]),new fe.ASN1(fe.Class.UNIVERSAL,fe.Tag.OCTETSTRING,s.DER)]),new r(s);default:throw new Error("Could not convert private key from PEM, recommend PKCS#8 PEM")}}static addSigner(e,t){if(e=zr.getOID(e),e==="")throw new Error(`Invalid object identifier: ${e}`);if(r._signers[e]!=null)throw new Error(`Signer ${e} exists`);r._signers[e]=t}get keyRaw(){return this._finalKey}get publicKeyRaw(){return this._publicKeyRaw}sign(e,t){let s=r._signers[this.oid];if(s!=null){let i=Lf.createHash(t).update(e).digest();return s.call(this,i)}let n=Lf.createSign(t);return n.update(e),n.sign(this.toPEM())}toASN1(){return this._pkcs8}toDER(){return this._pkcs8.DER}toPEM(){return this._finalPEM===""&&(this._finalPEM=new fe.PEM("PRIVATE KEY",this._pkcs8.DER).toString()),this._finalPEM}toJSON(){return{version:this.version,oid:this.oid,algo:this.algo,privateKey:this._keyRaw,publicKey:this._publicKeyRaw}}[Eo.inspect.custom](e,t){return`<${this.constructor.name} ${Eo.inspect(this.toJSON(),t)}>`}};Ld._signers=Object.create(null);On.PrivateKey=Ld;var Nb=class r extends Od{static fromPublicKey(e){return new r(e.toASN1())}constructor(e){if(super(e),zr.getOID(this.oid)!==zr.getOID("rsaEncryption"))throw new Error(`Invalid RSA public key, unknown OID: ${this.oid}`);let t=Object.create(null);this._pkcs1=fe.ASN1.fromDER(this._keyRaw,!0);let s=this._pkcs1.validate(pD,t);if(s!=null)throw new Error("Cannot read RSA public key: "+s.message);this.modulus=fe.ASN1.parseIntegerStr(t.publicKeyModulus.bytes),this.exponent=fe.ASN1.parseIntegerNum(t.publicKeyExponent.bytes)}toASN1(){return this._pkcs1}toDER(){return this._keyRaw}toPEM(){return this._finalPEM===""&&(this._finalPEM=new fe.PEM("RSA PUBLIC KEY",this._keyRaw).toString()),this._finalPEM}toPublicKeyPEM(){return new fe.PEM("PUBLIC KEY",this._pkcs8.DER).toString()}toJSON(){return{oid:this.oid,algo:this.algo,modulus:_o(this.modulus),exponent:this.exponent}}[Eo.inspect.custom](e,t){return`<${this.constructor.name} ${Eo.inspect(this.toJSON(),t)}>`}};On.RSAPublicKey=Nb;var Ob=class r extends Ld{static fromPrivateKey(e){return new r(e.toASN1())}constructor(e){if(super(e),zr.getOID(this.oid)!==zr.getOID("rsaEncryption"))throw new Error(`Invalid RSA private key, unknown OID: ${this.oid}`);let t=Object.create(null);this._pkcs1=fe.ASN1.fromDER(this._keyRaw,!0);let s=this._pkcs1.validate(mD,t);if(s!=null)throw new Error("Cannot read RSA private key: "+s.message);this.publicExponent=fe.ASN1.parseIntegerNum(t.privateKeyPublicExponent.bytes),this.privateExponent=fe.ASN1.parseIntegerStr(t.privateKeyPrivateExponent.bytes),this.modulus=fe.ASN1.parseIntegerStr(t.privateKeyModulus.bytes),this.prime1=fe.ASN1.parseIntegerStr(t.privateKeyPrime1.bytes),this.prime2=fe.ASN1.parseIntegerStr(t.privateKeyPrime2.bytes),this.exponent1=fe.ASN1.parseIntegerStr(t.privateKeyExponent1.bytes),this.exponent2=fe.ASN1.parseIntegerStr(t.privateKeyExponent2.bytes),this.coefficient=fe.ASN1.parseIntegerStr(t.privateKeyCoefficient.bytes)}toASN1(){return this._pkcs1}toDER(){return this._keyRaw}toPEM(){return this._finalPEM===""&&(this._finalPEM=new fe.PEM("RSA PRIVATE KEY",this._keyRaw).toString()),this._finalPEM}toPrivateKeyPEM(){return new fe.PEM("PRIVATE KEY",this._pkcs8.DER).toString()}toJSON(){return{version:this.version,oid:this.oid,algo:this.algo,publicExponent:this.publicExponent,privateExponent:_o(this.privateExponent),modulus:_o(this.modulus),prime1:_o(this.prime1),prime2:_o(this.prime2),exponent1:_o(this.exponent1),exponent2:_o(this.exponent2),coefficient:_o(this.coefficient)}}[Eo.inspect.custom](e,t){return`<${this.constructor.name} ${Eo.inspect(this.toJSON(),t)}>`}};On.RSAPrivateKey=Ob;function _o(r){return r.length%8!==0&&r.startsWith("00")?r.slice(2):r}Od.addVerifier(zr.getOID("Ed25519"),function(r,e){return Lb.sign.detached.verify(r,e,this.keyRaw)});Ld.addSigner(zr.getOID("Ed25519"),function(r){let e=this.keyRaw;if(e.length!==64)throw new Error("Invalid signing key.");return Buffer.from(Lb.sign.detached(r,e))})});var c6=ee(K0=>{"use strict";Object.defineProperty(K0,"__esModule",{value:!0});var s6=require("util"),xD=require("crypto"),ne=Bb(),Vr=H0(),a6=Db(),br=Object.create(null);br.CN=Vr.getOID("commonName");br.commonName="CN";br.C=Vr.getOID("countryName");br.countryName="C";br.L=Vr.getOID("localityName");br.localityName="L";br.ST=Vr.getOID("stateOrProvinceName");br.stateOrProvinceName="ST";br.O=Vr.getOID("organizationName");br.organizationName="O";br.OU=Vr.getOID("organizationalUnitName");br.organizationalUnitName="OU";br.E=Vr.getOID("emailAddress");br.emailAddress="E";function yD(r){return br[r]==null?"":br[r]}var bD={name:"Certificate",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,capture:"tbsCertificate",value:[{name:"Certificate.TBSCertificate.version",class:ne.Class.CONTEXT_SPECIFIC,tag:ne.Tag.NONE,optional:!0,value:[{name:"Certificate.TBSCertificate.version.integer",class:ne.Class.UNIVERSAL,tag:ne.Tag.INTEGER,capture:"certVersion"}]},{name:"Certificate.TBSCertificate.serialNumber",class:ne.Class.UNIVERSAL,tag:ne.Tag.INTEGER,capture:"certSerialNumber"},{name:"Certificate.TBSCertificate.signature",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate.signature.algorithm",class:ne.Class.UNIVERSAL,tag:ne.Tag.OID,capture:"certinfoSignatureOID"},{name:"Certificate.TBSCertificate.signature.parameters",class:ne.Class.UNIVERSAL,tag:ne.Tag.OCTETSTRING,optional:!0,capture:"certinfoSignatureParams"}]},{name:"Certificate.TBSCertificate.issuer",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,capture:"certIssuer"},{name:"Certificate.TBSCertificate.validity",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate.validity.notBefore",class:ne.Class.UNIVERSAL,tag:[ne.Tag.UTCTIME,ne.Tag.GENERALIZEDTIME],capture:"certValidityNotBefore"},{name:"Certificate.TBSCertificate.validity.notAfter",class:ne.Class.UNIVERSAL,tag:[ne.Tag.UTCTIME,ne.Tag.GENERALIZEDTIME],capture:"certValidityNotAfter"}]},{name:"Certificate.TBSCertificate.subject",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,capture:"certSubject"},a6.publicKeyValidator,{name:"Certificate.TBSCertificate.issuerUniqueID",class:ne.Class.CONTEXT_SPECIFIC,tag:ne.Tag.BOOLEAN,optional:!0,value:[{name:"Certificate.TBSCertificate.issuerUniqueID.id",class:ne.Class.UNIVERSAL,tag:ne.Tag.BITSTRING,capture:"certIssuerUniqueId"}]},{name:"Certificate.TBSCertificate.subjectUniqueID",class:ne.Class.CONTEXT_SPECIFIC,tag:ne.Tag.INTEGER,optional:!0,value:[{name:"Certificate.TBSCertificate.subjectUniqueID.id",class:ne.Class.UNIVERSAL,tag:ne.Tag.BITSTRING,capture:"certSubjectUniqueId"}]},{name:"Certificate.TBSCertificate.extensions",class:ne.Class.CONTEXT_SPECIFIC,tag:ne.Tag.BITSTRING,capture:"certExtensions",optional:!0}]},{name:"Certificate.signatureAlgorithm",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,value:[{name:"Certificate.signatureAlgorithm.algorithm",class:ne.Class.UNIVERSAL,tag:ne.Tag.OID,capture:"certSignatureOID"},{name:"Certificate.TBSCertificate.signature.parameters",class:ne.Class.UNIVERSAL,tag:ne.Tag.OCTETSTRING,optional:!0,capture:"certSignatureParams"}]},{name:"Certificate.signatureValue",class:ne.Class.UNIVERSAL,tag:ne.Tag.BITSTRING,capture:"certSignature"}]},Df=class{constructor(){this.attributes=[],this.uniqueId=null}get commonName(){return this.getFieldValue("commonName")}get organizationName(){return this.getFieldValue("organizationName")}get organizationalUnitName(){return this.getFieldValue("organizationalUnitName")}get countryName(){return this.getFieldValue("countryName")}get localityName(){return this.getFieldValue("localityName")}get serialName(){return this.getFieldValue("serialName")}getHash(){let e=xD.createHash("sha1");for(let t of this.attributes)e.update(t.oid),e.update(t.value);return e.digest()}getField(e){for(let t of this.attributes)if(e===t.oid||e===t.name||e===t.shortName)return t;return null}addField(e){i6([e]),this.attributes.push(e)}setAttrs(e){i6(e),this.attributes=e}toJSON(){let e={};for(let t of this.attributes){let s=t.shortName;typeof s=="string"&&s!==""&&(e[s]=t.value)}return e.uniqueId=this.uniqueId,e.attributes=this.attributes,e}getFieldValue(e){let t=this.getField(e);return t!=null?t.value:""}};K0.DistinguishedName=Df;var Mb=class r{static fromPEMs(e){let t=[],s=ne.PEM.parse(e);for(let n of s){if(n.type!=="CERTIFICATE"&&n.type!=="X509 CERTIFICATE"&&n.type!=="TRUSTED CERTIFICATE")throw new Error("Could not convert certificate from PEM: invalid type");if(n.procType.includes("ENCRYPTED"))throw new Error("Could not convert certificate from PEM: PEM is encrypted.");let i=ne.ASN1.fromDER(n.body);t.push(new r(i))}if(t.length===0)throw new Error("No Certificate");return t}static fromPEM(e){return r.fromPEMs(e)[0]}constructor(e){let t=Object.create(null),s=e.validate(bD,t);if(s!=null)throw new Error("Cannot read X.509 certificate: "+s.message);if(this.raw=e.DER,this.version=t.certVersion==null?0:ne.ASN1.parseIntegerNum(t.certVersion.bytes)+1,this.serialNumber=ne.ASN1.parseIntegerStr(t.certSerialNumber.bytes),this.signatureOID=ne.ASN1.parseOID(t.certSignatureOID.bytes),this.signatureAlgorithm=Vr.getOIDName(this.signatureOID),this.infoSignatureOID=ne.ASN1.parseOID(t.certinfoSignatureOID.bytes),this.signature=ne.ASN1.parseBitString(t.certSignature.bytes).buf,this.validFrom=ne.ASN1.parseTime(t.certValidityNotBefore.tag,t.certValidityNotBefore.bytes),this.validTo=ne.ASN1.parseTime(t.certValidityNotAfter.tag,t.certValidityNotAfter.bytes),this.issuer=new Df,this.issuer.setAttrs(o6(t.certIssuer)),t.certIssuerUniqueId!=null&&(this.issuer.uniqueId=ne.ASN1.parseBitString(t.certIssuerUniqueId.bytes)),this.subject=new Df,this.subject.setAttrs(o6(t.certSubject)),t.certSubjectUniqueId!=null&&(this.subject.uniqueId=ne.ASN1.parseBitString(t.certSubjectUniqueId.bytes)),this.extensions=[],this.subjectKeyIdentifier="",this.authorityKeyIdentifier="",this.ocspServer="",this.issuingCertificateURL="",this.isCA=!1,this.maxPathLen=-1,this.basicConstraintsValid=!1,this.keyUsage=0,this.dnsNames=[],this.emailAddresses=[],this.ipAddresses=[],this.uris=[],t.certExtensions!=null){this.extensions=vD(t.certExtensions);for(let n of this.extensions)if(typeof n.subjectKeyIdentifier=="string"&&(this.subjectKeyIdentifier=n.subjectKeyIdentifier),typeof n.authorityKeyIdentifier=="string"&&(this.authorityKeyIdentifier=n.authorityKeyIdentifier),typeof n.authorityInfoAccessOcsp=="string"&&(this.ocspServer=n.authorityInfoAccessOcsp),typeof n.authorityInfoAccessIssuers=="string"&&(this.issuingCertificateURL=n.authorityInfoAccessIssuers),typeof n.basicConstraintsValid=="boolean"&&(this.isCA=n.isCA,this.maxPathLen=n.maxPathLen,this.basicConstraintsValid=n.basicConstraintsValid),typeof n.keyUsage=="number"&&(this.keyUsage=n.keyUsage),Array.isArray(n.altNames))for(let i of n.altNames)i.dnsName!=null&&this.dnsNames.push(i.dnsName),i.email!=null&&this.emailAddresses.push(i.email),i.ip!=null&&this.ipAddresses.push(i.ip),i.uri!=null&&this.uris.push(i.uri)}this.publicKey=new a6.PublicKey(t.publicKeyInfo),this.publicKeyRaw=this.publicKey.toDER(),this.tbsCertificate=t.tbsCertificate}getExtension(e,t=""){for(let s of this.extensions)if(e===s.oid||e===s.name)return t===""?s:s[t];return null}checkSignature(e){if(this.version===3&&!this.basicConstraintsValid||this.basicConstraintsValid&&!this.isCA)return new Error("The parent constraint violation error");if(this.getExtension("keyUsage","keyCertSign")!==!0)return new Error("The parent constraint violation error");if(!e.isIssuer(this))return new Error("The parent certificate did not issue the given child certificate");let t=BD(e.signatureOID);return t===""?new Error("Unknown child signature OID."):this.publicKey.verify(e.tbsCertificate.DER,e.signature,t)===!1?new Error("Child signature not matched"):null}isIssuer(e){return this.issuer.getHash().equals(e.subject.getHash())}verifySubjectKeyIdentifier(){return this.publicKey.getFingerprint("sha1","PublicKey").toString("hex")===this.subjectKeyIdentifier}toJSON(){let e={};for(let t of Object.keys(this))e[t]=ND(this[t]);return delete e.tbsCertificate,e}[s6.inspect.custom](e,t){return t.depth<=2&&(t.depth=10),`<${this.constructor.name} ${s6.inspect(this.toJSON(),t)}>`}};K0.Certificate=Mb;function vD(r){let e=[];for(let t of r.mustCompound())for(let s of t.mustCompound())e.push(wD(s));return e}function wD(r){let e={};switch(e.oid=ne.ASN1.parseOID(r.value[0].bytes),e.critical=!1,r.value[1].tag===ne.Tag.BOOLEAN?(e.critical=ne.ASN1.parseBool(r.value[1].bytes),e.value=r.value[2].bytes):e.value=r.value[1].bytes,e.name=Vr.getOIDName(e.oid),e.name){case"keyUsage":SD(e);break;case"basicConstraints":_D(e);break;case"extKeyUsage":ED(e);break;case"nsCertType":CD(e);break;case"subjectAltName":n6(e);break;case"issuerAltName":n6(e);break;case"subjectKeyIdentifier":AD(e);break;case"authorityKeyIdentifier":RD(e);break;case"authorityInfoAccess":PD(e);break}return e}function SD(r){let e=ne.ASN1.parseBitString(ne.ASN1.fromDER(r.value).bytes),t=0,s=0;r.keyUsage=0;for(let n=0;n<9;n++)e.at(n)!==0&&(r.keyUsage|=1<<n);e.buf.length>0&&(t=e.buf[0],s=e.buf.length>1?e.buf[1]:0),r.digitalSignature=(t&128)===128,r.nonRepudiation=(t&64)===64,r.keyEncipherment=(t&32)===32,r.dataEncipherment=(t&16)===16,r.keyAgreement=(t&8)===8,r.keyCertSign=(t&4)===4,r.cRLSign=(t&2)===2,r.encipherOnly=(t&1)===1,r.decipherOnly=(s&128)===128}function _D(r){let t=ne.ASN1.fromDER(r.value).mustCompound();t.length>0&&t[0].tag===ne.Tag.BOOLEAN?r.isCA=ne.ASN1.parseBool(t[0].bytes):r.isCA=!1;let s=null;t.length>0&&t[0].tag===ne.Tag.INTEGER?s=t[0].bytes:t.length>1&&(s=t[1].bytes),s!==null?r.maxPathLen=ne.ASN1.parseInteger(s):r.maxPathLen=-1,r.basicConstraintsValid=!0}function ED(r){let t=ne.ASN1.fromDER(r.value).mustCompound();for(let s of t)r[Vr.getOIDName(ne.ASN1.parseOID(s.bytes))]=!0}function CD(r){let e=ne.ASN1.parseBitString(ne.ASN1.fromDER(r.value).bytes),t=0;e.buf.length>0&&(t=e.buf[0]),r.client=(t&128)===128,r.server=(t&64)===64,r.email=(t&32)===32,r.objsign=(t&16)===16,r.reserved=(t&8)===8,r.sslCA=(t&4)===4,r.emailCA=(t&2)===2,r.objCA=(t&1)===1}function n6(r){r.altNames=[];let t=ne.ASN1.fromDER(r.value).mustCompound();for(let s of t){let n={tag:s.tag,value:s.bytes};switch(r.altNames.push(n),s.tag){case 1:n.email=s.bytes.toString();break;case 2:n.dnsName=s.bytes.toString();break;case 6:n.uri=s.bytes.toString();break;case 7:n.ip=Vr.bytesToIP(s.bytes);break;case 8:n.oid=ne.ASN1.parseOID(s.bytes);break;default:}}}var TD={name:"subjectKeyIdentifier",class:ne.Class.UNIVERSAL,tag:ne.Tag.OCTETSTRING,capture:"subjectKeyIdentifier"};function AD(r){let e=ne.ASN1.parseDERWithTemplate(r.value,TD);r.subjectKeyIdentifier=e.subjectKeyIdentifier.bytes.toString("hex")}var ID={name:"authorityKeyIdentifier",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,value:[{name:"authorityKeyIdentifier.value",class:ne.Class.CONTEXT_SPECIFIC,tag:ne.Tag.NONE,capture:"authorityKeyIdentifier"}]};function RD(r){let e=ne.ASN1.parseDERWithTemplate(r.value,ID);r.authorityKeyIdentifier=e.authorityKeyIdentifier.bytes.toString("hex")}var kD={name:"authorityInfoAccess",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,value:[{name:"authorityInfoAccess.authorityInfoAccessOcsp",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,optional:!0,value:[{name:"authorityInfoAccess.authorityInfoAccessOcsp.oid",class:ne.Class.UNIVERSAL,tag:ne.Tag.OID},{name:"authorityInfoAccess.authorityInfoAccessOcsp.value",class:ne.Class.CONTEXT_SPECIFIC,tag:ne.Tag.OID,capture:"authorityInfoAccessOcsp"}]},{name:"authorityInfoAccess.authorityInfoAccessIssuers",class:ne.Class.UNIVERSAL,tag:ne.Tag.SEQUENCE,optional:!0,value:[{name:"authorityInfoAccess.authorityInfoAccessIssuers.oid",class:ne.Class.UNIVERSAL,tag:ne.Tag.OID},{name:"authorityInfoAccess.authorityInfoAccessIssuers.value",class:ne.Class.CONTEXT_SPECIFIC,tag:ne.Tag.OID,capture:"authorityInfoAccessIssuers"}]}]};function PD(r){let e=ne.ASN1.parseDERWithTemplate(r.value,kD);e.authorityInfoAccessOcsp!=null&&(r.authorityInfoAccessOcsp=e.authorityInfoAccessOcsp.bytes.toString()),e.authorityInfoAccessIssuers!=null&&(r.authorityInfoAccessIssuers=e.authorityInfoAccessIssuers.bytes.toString())}function i6(r){for(let e of r){if((e.name==null||e.name==="")&&(e.oid!=null&&(e.name=Vr.getOIDName(e.oid)),e.name===""&&e.shortName!=null&&(e.name=Vr.getOIDName(br[e.shortName]))),e.oid==null||e.oid==="")if(e.name!=="")e.oid=Vr.getOID(e.name);else throw new Error("Attribute oid not specified.");if((e.shortName==null||e.shortName==="")&&(e.shortName=br[e.name]==null?"":br[e.name]),e.value==null)throw new Error("Attribute value not specified.")}}function BD(r){switch(Vr.getOIDName(r)){case"sha1WithRsaEncryption":return"sha1";case"md5WithRsaEncryption":return"md5";case"sha256WithRsaEncryption":return"sha256";case"sha384WithRsaEncryption":return"sha384";case"sha512WithRsaEncryption":return"sha512";case"RSASSA-PSS":return"sha256";case"ecdsaWithSha1":return"sha1";case"ecdsaWithSha256":return"sha256";case"ecdsaWithSha384":return"sha384";case"ecdsaWithSha512":return"sha512";case"dsaWithSha1":return"sha1";case"dsaWithSha256":return"sha256";default:return""}}function o6(r){let e=[];for(let t of r.mustCompound())for(let s of t.mustCompound()){let n=s.mustCompound(),i={};i.oid=ne.ASN1.parseOID(n[0].bytes),i.value=n[1].value,i.valueTag=n[1].tag,i.name=Vr.getOIDName(i.oid),i.shortName=yD(i.name),e.push(i)}return e}function ND(r){return r!=null&&!(r instanceof Buffer)&&typeof r.toJSON=="function"?r.toJSON():r}});var Ub=ee(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});var W0=H0();js.bytesFromIP=W0.bytesFromIP;js.bytesToIP=W0.bytesToIP;js.getOID=W0.getOID;js.getOIDName=W0.getOIDName;var G0=Db();js.PublicKey=G0.PublicKey;js.PrivateKey=G0.PrivateKey;js.RSAPublicKey=G0.RSAPublicKey;js.RSAPrivateKey=G0.RSAPrivateKey;var d6=c6();js.Certificate=d6.Certificate;js.DistinguishedName=d6.DistinguishedName});var f6=ee(()=>{"use strict";var u6;(function(r){(function(e){var t=typeof globalThis=="object"?globalThis:typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:a(),s=n(r);typeof t.Reflect<"u"&&(s=n(t.Reflect,s)),e(s,t),typeof t.Reflect>"u"&&(t.Reflect=r);function n(c,d){return function(u,l){Object.defineProperty(c,u,{configurable:!0,writable:!0,value:l}),d&&d(u,l)}}function i(){try{return Function("return this;")()}catch{}}function o(){try{return(0,eval)("(function() { return this; })()")}catch{}}function a(){return i()||o()}})(function(e,t){var s=Object.prototype.hasOwnProperty,n=typeof Symbol=="function",i=n&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",o=n&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",a=typeof Object.create=="function",c={__proto__:[]}instanceof Array,d=!a&&!c,u={create:a?function(){return Ta(Object.create(null))}:c?function(){return Ta({__proto__:null})}:function(){return Ta({})},has:d?function(P,L){return s.call(P,L)}:function(P,L){return L in P},get:d?function(P,L){return s.call(P,L)?P[L]:void 0}:function(P,L){return P[L]}},l=Object.getPrototypeOf(Function),h=typeof Map=="function"&&typeof Map.prototype.entries=="function"?Map:pf(),x=typeof Set=="function"&&typeof Set.prototype.entries=="function"?Set:Kp(),v=typeof WeakMap=="function"?WeakMap:xy(),S=n?Symbol.for("@reflect-metadata:registry"):void 0,C=od(),D=hf(C);function re(P,L,q,ce){if(I(q)){if(!Bs(P))throw new TypeError;if(!_a(L))throw new TypeError;return Ke(P,L)}else{if(!Bs(P))throw new TypeError;if(!le(L))throw new TypeError;if(!le(ce)&&!I(ce)&&!O(ce))throw new TypeError;return O(ce)&&(ce=void 0),q=Dt(q),z(P,L,q,ce)}}e("decorate",re);function G(P,L){function q(ce,Me){if(!le(ce))throw new TypeError;if(!I(Me)&&!gy(Me))throw new TypeError;Oe(P,L,ce,Me)}return q}e("metadata",G);function te(P,L,q,ce){if(!le(q))throw new TypeError;return I(ce)||(ce=Dt(ce)),Oe(P,L,q,ce)}e("defineMetadata",te);function ae(P,L,q){if(!le(L))throw new TypeError;return I(q)||(q=Dt(q)),V(P,L,q)}e("hasMetadata",ae);function se(P,L,q){if(!le(L))throw new TypeError;return I(q)||(q=Dt(q)),H(P,L,q)}e("hasOwnMetadata",se);function Ie(P,L,q){if(!le(L))throw new TypeError;return I(q)||(q=Dt(q)),pe(P,L,q)}e("getMetadata",Ie);function ve(P,L,q){if(!le(L))throw new TypeError;return I(q)||(q=Dt(q)),Te(P,L,q)}e("getOwnMetadata",ve);function Y(P,L){if(!le(P))throw new TypeError;return I(L)||(L=Dt(L)),A(P,L)}e("getMetadataKeys",Y);function tt(P,L){if(!le(P))throw new TypeError;return I(L)||(L=Dt(L)),R(P,L)}e("getOwnMetadataKeys",tt);function Nt(P,L,q){if(!le(L))throw new TypeError;if(I(q)||(q=Dt(q)),!le(L))throw new TypeError;I(q)||(q=Dt(q));var ce=xi(L,q,!1);return I(ce)?!1:ce.OrdinaryDeleteMetadata(P,L,q)}e("deleteMetadata",Nt);function Ke(P,L){for(var q=P.length-1;q>=0;--q){var ce=P[q],Me=ce(L);if(!I(Me)&&!O(Me)){if(!_a(Me))throw new TypeError;L=Me}}return L}function z(P,L,q,ce){for(var Me=P.length-1;Me>=0;--Me){var Vt=P[Me],Wt=Vt(L,q,ce);if(!I(Wt)&&!O(Wt)){if(!le(Wt))throw new TypeError;ce=Wt}}return ce}function V(P,L,q){var ce=H(P,L,q);if(ce)return!0;var Me=Ca(L);return O(Me)?!1:V(P,Me,q)}function H(P,L,q){var ce=xi(L,q,!1);return I(ce)?!1:Ot(ce.OrdinaryHasOwnMetadata(P,L,q))}function pe(P,L,q){var ce=H(P,L,q);if(ce)return Te(P,L,q);var Me=Ca(L);if(!O(Me))return pe(P,Me,q)}function Te(P,L,q){var ce=xi(L,q,!1);if(!I(ce))return ce.OrdinaryGetOwnMetadata(P,L,q)}function Oe(P,L,q,ce){var Me=xi(q,ce,!0);Me.OrdinaryDefineOwnMetadata(P,L,q,ce)}function A(P,L){var q=R(P,L),ce=Ca(P);if(ce===null)return q;var Me=A(ce,L);if(Me.length<=0)return q;if(q.length<=0)return Me;for(var Vt=new x,Wt=[],ft=0,me=q;ft<me.length;ft++){var _e=me[ft],Re=Vt.has(_e);Re||(Vt.add(_e),Wt.push(_e))}for(var Be=0,st=Me;Be<st.length;Be++){var _e=st[Be],Re=Vt.has(_e);Re||(Vt.add(_e),Wt.push(_e))}return Wt}function R(P,L){var q=xi(P,L,!1);return q?q.OrdinaryOwnMetadataKeys(P,L):[]}function F(P){if(P===null)return 1;switch(typeof P){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return P===null?1:6;default:return 6}}function I(P){return P===void 0}function O(P){return P===null}function oe(P){return typeof P=="symbol"}function le(P){return typeof P=="object"?P!==null:typeof P=="function"}function ct(P,L){switch(F(P)){case 0:return P;case 1:return P;case 2:return P;case 3:return P;case 4:return P;case 5:return P}var q=L===3?"string":L===5?"number":"default",ce=df(P,i);if(ce!==void 0){var Me=ce.call(P,q);if(le(Me))throw new TypeError;return Me}return yt(P,q==="default"?"number":q)}function yt(P,L){if(L==="string"){var q=P.toString;if(Ns(q)){var ce=q.call(P);if(!le(ce))return ce}var Me=P.valueOf;if(Ns(Me)){var ce=Me.call(P);if(!le(ce))return ce}}else{var Me=P.valueOf;if(Ns(Me)){var ce=Me.call(P);if(!le(ce))return ce}var Vt=P.toString;if(Ns(Vt)){var ce=Vt.call(P);if(!le(ce))return ce}}throw new TypeError}function Ot(P){return!!P}function St(P){return""+P}function Dt(P){var L=ct(P,3);return oe(L)?L:St(L)}function Bs(P){return Array.isArray?Array.isArray(P):P instanceof Object?P instanceof Array:Object.prototype.toString.call(P)==="[object Array]"}function Ns(P){return typeof P=="function"}function _a(P){return typeof P=="function"}function gy(P){switch(F(P)){case 3:return!0;case 4:return!0;default:return!1}}function cf(P,L){return P===L||P!==P&&L!==L}function df(P,L){var q=P[L];if(q!=null){if(!Ns(q))throw new TypeError;return q}}function uf(P){var L=df(P,o);if(!Ns(L))throw new TypeError;var q=L.call(P);if(!le(q))throw new TypeError;return q}function In(P){return P.value}function Ea(P){var L=P.next();return L.done?!1:L}function ff(P){var L=P.return;L&&L.call(P)}function Ca(P){var L=Object.getPrototypeOf(P);if(typeof P!="function"||P===l||L!==l)return L;var q=P.prototype,ce=q&&Object.getPrototypeOf(q);if(ce==null||ce===Object.prototype)return L;var Me=ce.constructor;return typeof Me!="function"||Me===P?L:Me}function lf(){var P;!I(S)&&typeof t.Reflect<"u"&&!(S in t.Reflect)&&typeof t.Reflect.defineMetadata=="function"&&(P=ad(t.Reflect));var L,q,ce,Me=new v,Vt={registerProvider:Wt,getProvider:me,setProvider:Re};return Vt;function Wt(Be){if(!Object.isExtensible(Vt))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case P===Be:break;case I(L):L=Be;break;case L===Be:break;case I(q):q=Be;break;case q===Be:break;default:ce===void 0&&(ce=new x),ce.add(Be);break}}function ft(Be,st){if(!I(L)){if(L.isProviderFor(Be,st))return L;if(!I(q)){if(q.isProviderFor(Be,st))return L;if(!I(ce))for(var Rt=uf(ce);;){var jt=Ea(Rt);if(!jt)return;var Xr=In(jt);if(Xr.isProviderFor(Be,st))return ff(Rt),Xr}}}if(!I(P)&&P.isProviderFor(Be,st))return P}function me(Be,st){var Rt=Me.get(Be),jt;return I(Rt)||(jt=Rt.get(st)),I(jt)&&(jt=ft(Be,st),I(jt)||(I(Rt)&&(Rt=new h,Me.set(Be,Rt)),Rt.set(st,jt))),jt}function _e(Be){if(I(Be))throw new TypeError;return L===Be||q===Be||!I(ce)&&ce.has(Be)}function Re(Be,st,Rt){if(!_e(Rt))throw new Error("Metadata provider not registered.");var jt=me(Be,st);if(jt!==Rt){if(!I(jt))return!1;var Xr=Me.get(Be);I(Xr)&&(Xr=new h,Me.set(Be,Xr)),Xr.set(st,Rt)}return!0}}function od(){var P;return!I(S)&&le(t.Reflect)&&Object.isExtensible(t.Reflect)&&(P=t.Reflect[S]),I(P)&&(P=lf()),!I(S)&&le(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,S,{enumerable:!1,configurable:!1,writable:!1,value:P}),P}function hf(P){var L=new v,q={isProviderFor:function(_e,Re){var Be=L.get(_e);return I(Be)?!1:Be.has(Re)},OrdinaryDefineOwnMetadata:Wt,OrdinaryHasOwnMetadata:Me,OrdinaryGetOwnMetadata:Vt,OrdinaryOwnMetadataKeys:ft,OrdinaryDeleteMetadata:me};return C.registerProvider(q),q;function ce(_e,Re,Be){var st=L.get(_e),Rt=!1;if(I(st)){if(!Be)return;st=new h,L.set(_e,st),Rt=!0}var jt=st.get(Re);if(I(jt)){if(!Be)return;if(jt=new h,st.set(Re,jt),!P.setProvider(_e,Re,q))throw st.delete(Re),Rt&&L.delete(_e),new Error("Wrong provider for target.")}return jt}function Me(_e,Re,Be){var st=ce(Re,Be,!1);return I(st)?!1:Ot(st.has(_e))}function Vt(_e,Re,Be){var st=ce(Re,Be,!1);if(!I(st))return st.get(_e)}function Wt(_e,Re,Be,st){var Rt=ce(Be,st,!0);Rt.set(_e,Re)}function ft(_e,Re){var Be=[],st=ce(_e,Re,!1);if(I(st))return Be;for(var Rt=st.keys(),jt=uf(Rt),Xr=0;;){var cd=Ea(jt);if(!cd)return Be.length=Xr,Be;var Wp=In(cd);try{Be[Xr]=Wp}catch(yy){try{ff(jt)}finally{throw yy}}Xr++}}function me(_e,Re,Be){var st=ce(Re,Be,!1);if(I(st)||!st.delete(_e))return!1;if(st.size===0){var Rt=L.get(Re);I(Rt)||(Rt.delete(Be),Rt.size===0&&L.delete(Rt))}return!0}}function ad(P){var L=P.defineMetadata,q=P.hasOwnMetadata,ce=P.getOwnMetadata,Me=P.getOwnMetadataKeys,Vt=P.deleteMetadata,Wt=new v,ft={isProviderFor:function(me,_e){var Re=Wt.get(me);return!I(Re)&&Re.has(_e)?!0:Me(me,_e).length?(I(Re)&&(Re=new x,Wt.set(me,Re)),Re.add(_e),!0):!1},OrdinaryDefineOwnMetadata:L,OrdinaryHasOwnMetadata:q,OrdinaryGetOwnMetadata:ce,OrdinaryOwnMetadataKeys:Me,OrdinaryDeleteMetadata:Vt};return ft}function xi(P,L,q){var ce=C.getProvider(P,L);if(!I(ce))return ce;if(q){if(C.setProvider(P,L,D))return D;throw new Error("Illegal state.")}}function pf(){var P={},L=[],q=(function(){function ft(me,_e,Re){this._index=0,this._keys=me,this._values=_e,this._selector=Re}return ft.prototype["@@iterator"]=function(){return this},ft.prototype[o]=function(){return this},ft.prototype.next=function(){var me=this._index;if(me>=0&&me<this._keys.length){var _e=this._selector(this._keys[me],this._values[me]);return me+1>=this._keys.length?(this._index=-1,this._keys=L,this._values=L):this._index++,{value:_e,done:!1}}return{value:void 0,done:!0}},ft.prototype.throw=function(me){throw this._index>=0&&(this._index=-1,this._keys=L,this._values=L),me},ft.prototype.return=function(me){return this._index>=0&&(this._index=-1,this._keys=L,this._values=L),{value:me,done:!0}},ft})(),ce=(function(){function ft(){this._keys=[],this._values=[],this._cacheKey=P,this._cacheIndex=-2}return Object.defineProperty(ft.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),ft.prototype.has=function(me){return this._find(me,!1)>=0},ft.prototype.get=function(me){var _e=this._find(me,!1);return _e>=0?this._values[_e]:void 0},ft.prototype.set=function(me,_e){var Re=this._find(me,!0);return this._values[Re]=_e,this},ft.prototype.delete=function(me){var _e=this._find(me,!1);if(_e>=0){for(var Re=this._keys.length,Be=_e+1;Be<Re;Be++)this._keys[Be-1]=this._keys[Be],this._values[Be-1]=this._values[Be];return this._keys.length--,this._values.length--,cf(me,this._cacheKey)&&(this._cacheKey=P,this._cacheIndex=-2),!0}return!1},ft.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=P,this._cacheIndex=-2},ft.prototype.keys=function(){return new q(this._keys,this._values,Me)},ft.prototype.values=function(){return new q(this._keys,this._values,Vt)},ft.prototype.entries=function(){return new q(this._keys,this._values,Wt)},ft.prototype["@@iterator"]=function(){return this.entries()},ft.prototype[o]=function(){return this.entries()},ft.prototype._find=function(me,_e){if(!cf(this._cacheKey,me)){this._cacheIndex=-1;for(var Re=0;Re<this._keys.length;Re++)if(cf(this._keys[Re],me)){this._cacheIndex=Re;break}}return this._cacheIndex<0&&_e&&(this._cacheIndex=this._keys.length,this._keys.push(me),this._values.push(void 0)),this._cacheIndex},ft})();return ce;function Me(ft,me){return ft}function Vt(ft,me){return me}function Wt(ft,me){return[ft,me]}}function Kp(){var P=(function(){function L(){this._map=new h}return Object.defineProperty(L.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),L.prototype.has=function(q){return this._map.has(q)},L.prototype.add=function(q){return this._map.set(q,q),this},L.prototype.delete=function(q){return this._map.delete(q)},L.prototype.clear=function(){this._map.clear()},L.prototype.keys=function(){return this._map.keys()},L.prototype.values=function(){return this._map.keys()},L.prototype.entries=function(){return this._map.entries()},L.prototype["@@iterator"]=function(){return this.keys()},L.prototype[o]=function(){return this.keys()},L})();return P}function xy(){var P=16,L=u.create(),q=ce();return(function(){function me(){this._key=ce()}return me.prototype.has=function(_e){var Re=Me(_e,!1);return Re!==void 0?u.has(Re,this._key):!1},me.prototype.get=function(_e){var Re=Me(_e,!1);return Re!==void 0?u.get(Re,this._key):void 0},me.prototype.set=function(_e,Re){var Be=Me(_e,!0);return Be[this._key]=Re,this},me.prototype.delete=function(_e){var Re=Me(_e,!1);return Re!==void 0?delete Re[this._key]:!1},me.prototype.clear=function(){this._key=ce()},me})();function ce(){var me;do me="@@WeakMap@@"+ft();while(u.has(L,me));return L[me]=!0,me}function Me(me,_e){if(!s.call(me,q)){if(!_e)return;Object.defineProperty(me,q,{value:u.create()})}return me[q]}function Vt(me,_e){for(var Re=0;Re<_e;++Re)me[Re]=Math.random()*255|0;return me}function Wt(me){if(typeof Uint8Array=="function"){var _e=new Uint8Array(me);return typeof crypto<"u"?crypto.getRandomValues(_e):typeof msCrypto<"u"?msCrypto.getRandomValues(_e):Vt(_e,me),_e}return Vt(new Array(me),me)}function ft(){var me=Wt(P);me[6]=me[6]&79|64,me[8]=me[8]&191|128;for(var _e="",Re=0;Re<P;++Re){var Be=me[Re];(Re===4||Re===6||Re===8)&&(_e+="-"),Be<16&&(_e+="0"),_e+=Be.toString(16).toLowerCase()}return _e}}function Ta(P){return P.__=void 0,delete P.__,P}})})(u6||(u6={}))});function l6(...r){let e=r.map(n=>n.byteLength).reduce((n,i)=>n+i),t=new Uint8Array(e),s=0;return r.map(n=>new Uint8Array(n)).forEach(n=>{for(let i of n)t[s++]=i}),t.buffer}function h6(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),s=new Uint8Array(e);for(let n=0;n<r.byteLength;n++)if(t[n]!==s[n])return!1;return!0}var OD,xe,jb,LD,DD,MD,X0,Hs,Ue,Hb=T(()=>{"use strict";OD="[object ArrayBuffer]",xe=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===OD}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let s=r.toUint8Array(e),n=r.toUint8Array(t);if(s.length!==n.byteLength)return!1;for(let i=0;i<s.length;i++)if(s[i]!==n[i])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let s=0;for(let o of t)s+=o.byteLength;let n=new Uint8Array(s),i=0;for(let o of t){let a=this.toUint8Array(o);n.set(a,i),i+=a.length}return e[e.length-1]instanceof Function?this.toView(n,e[e.length-1]):n.buffer}},jb="string",LD=/^[0-9a-f\s]+$/i,DD=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,MD=/^[a-zA-Z0-9-_]+$/,X0=class{static fromString(e){let t=unescape(encodeURIComponent(e)),s=new Uint8Array(t.length);for(let n=0;n<t.length;n++)s[n]=t.charCodeAt(n);return s.buffer}static toString(e){let t=xe.toUint8Array(e),s="";for(let i=0;i<t.length;i++)s+=String.fromCharCode(t[i]);return decodeURIComponent(escape(s))}},Hs=class{static toString(e,t=!1){let s=xe.toArrayBuffer(e),n=new DataView(s),i="";for(let o=0;o<s.byteLength;o+=2){let a=n.getUint16(o,t);i+=String.fromCharCode(a)}return i}static fromString(e,t=!1){let s=new ArrayBuffer(e.length*2),n=new DataView(s);for(let i=0;i<e.length;i++)n.setUint16(i*2,e.charCodeAt(i),t);return s}},Ue=class r{static isHex(e){return typeof e===jb&&LD.test(e)}static isBase64(e){return typeof e===jb&&DD.test(e)}static isBase64Url(e){return typeof e===jb&&MD.test(e)}static ToString(e,t="utf8"){let s=xe.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(s);case"binary":return this.ToBinary(s);case"hex":return this.ToHex(s);case"base64":return this.ToBase64(s);case"base64url":return this.ToBase64Url(s);case"utf16le":return Hs.toString(s,!0);case"utf16":case"utf16be":return Hs.toString(s);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return Hs.fromString(e,!0);case"utf16":case"utf16be":return Hs.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=xe.toUint8Array(e);if(typeof btoa<"u"){let s=this.ToString(t,"binary");return btoa(s)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return X0.fromString(e);case"utf16":case"utf16be":return Hs.fromString(e);case"utf16le":case"usc2":return Hs.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return X0.toString(e);case"utf16":case"utf16be":return Hs.toString(e);case"utf16le":case"usc2":return Hs.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,s=new Uint8Array(t);for(let n=0;n<t;n++)s[n]=e.charCodeAt(n);return s.buffer}static ToBinary(e){let t=xe.toUint8Array(e),s="";for(let n=0;n<t.length;n++)s+=String.fromCharCode(t[n]);return s}static ToHex(e){let t=xe.toUint8Array(e),s="",n=t.length;for(let i=0;i<n;i++){let o=t[i];o<16&&(s+="0"),s+=o.toString(16)}return s}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let s=new Uint8Array(t.length/2);for(let n=0;n<t.length;n=n+2){let i=t.slice(n,n+2);s[n/2]=parseInt(i,16)}return s.buffer}static ToUtf16String(e,t=!1){return Hs.toString(e,t)}static FromUtf16String(e,t=!1){return Hs.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let s=0;s<t;s++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};Ue.DEFAULT_UTF8_ENCODING="utf8"});function La(r,e){let t=0;if(r.length===1)return r[0];for(let s=r.length-1;s>=0;s--)t+=r[r.length-1-s]*Math.pow(2,e*s);return t}function Co(r,e,t=-1){let s=t,n=r,i=0,o=Math.pow(2,e);for(let a=1;a<8;a++){if(r<o){let c;if(s<0)c=new ArrayBuffer(a),i=a;else{if(s<a)return new ArrayBuffer(0);c=new ArrayBuffer(s),i=s}let d=new Uint8Array(c);for(let u=a-1;u>=0;u--){let l=Math.pow(2,u*e);d[i-u-1]=Math.floor(n/l),n-=d[i-u-1]*l}return c}o*=Math.pow(2,e)}return new ArrayBuffer(0)}function Y0(...r){let e=0,t=0;for(let i of r)e+=i.length;let s=new ArrayBuffer(e),n=new Uint8Array(s);for(let i of r)n.set(i,t),t+=i.length;return n}function Fb(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a<this.valueHex.byteLength;a++)t[a]=0;t[0]=r[0]&128;let s=La(t,8),n=new ArrayBuffer(this.valueHex.byteLength),i=new Uint8Array(n);for(let a=0;a<this.valueHex.byteLength;a++)i[a]=r[a];return i[0]&=127,La(i,8)-s}function p6(r){let e=r<0?r*-1:r,t=128;for(let s=1;s<8;s++){if(e<=t){if(r<0){let o=t-e,a=Co(o,8,s),c=new Uint8Array(a);return c[0]|=128,a}let n=Co(e,8,s),i=new Uint8Array(n);if(i[0]&128){let o=n.slice(0),a=new Uint8Array(o);n=new ArrayBuffer(n.byteLength+1),i=new Uint8Array(n);for(let c=0;c<o.byteLength;c++)i[c+1]=a[c];i[0]=0}return n}t*=Math.pow(2,8)}return new ArrayBuffer(0)}function m6(r,e){if(r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),s=new Uint8Array(e);for(let n=0;n<t.length;n++)if(t[n]!==s[n])return!1;return!0}function cs(r,e){let t=r.toString(10);if(e<t.length)return"";let s=e-t.length,n=new Array(s);for(let o=0;o<s;o++)n[o]="0";return n.join("").concat(t)}var G$,g6=T(()=>{"use strict";G$=Math.log(2)});var jn={};mf(jn,{Any:()=>Dn,BaseBlock:()=>ur,BaseStringBlock:()=>Hf,BitString:()=>an,BmpString:()=>ja,Boolean:()=>Da,CharacterString:()=>Ga,Choice:()=>Md,Constructed:()=>fr,DATE:()=>Kf,DEFAULT_MAX_CONTENT_LENGTH:()=>T6,DEFAULT_MAX_DEPTH:()=>E6,DEFAULT_MAX_NODES:()=>C6,DateTime:()=>Gf,Duration:()=>Xf,EndOfContent:()=>Ff,Enumerated:()=>Ma,GeneralString:()=>Wa,GeneralizedTime:()=>Xa,GraphicString:()=>Ka,HexBlock:()=>Un,IA5String:()=>$a,Integer:()=>Ti,Null:()=>nn,NumericString:()=>Fa,ObjectIdentifier:()=>Ua,OctetString:()=>on,Primitive:()=>Ci,PrintableString:()=>qa,RawData:()=>zb,RelativeObjectIdentifier:()=>$f,Repeated:()=>Ya,Sequence:()=>$r,Set:()=>es,TIME:()=>Yf,TeletexString:()=>za,TimeOfDay:()=>Wf,UTCTime:()=>Ao,UniversalString:()=>Ha,Utf8String:()=>Fs,ValueBlock:()=>Er,VideotexString:()=>Va,ViewWriter:()=>Dd,VisibleString:()=>To,compareSchema:()=>_i,fromBER:()=>Ii,verifySchema:()=>nM});function Q0(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function Vb(r){let e=0,t=0;for(let n=0;n<r.length;n++){let i=r[n];e+=i.byteLength}let s=new Uint8Array(e);for(let n=0;n<r.length;n++){let i=r[n];s.set(new Uint8Array(i),t),t+=i.byteLength}return s.buffer}function Ai(r,e,t,s){return e instanceof Uint8Array?e.byteLength?t<0?(r.error="Wrong parameter: inputOffset less than zero",!1):s<0?(r.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-s<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}function Un(r){var e;return e=class extends r{get valueHex(){return this.valueHexView.slice().buffer}set valueHex(s){this.valueHexView=new Uint8Array(s)}constructor(...s){var n;super(...s);let i=s[0]||{};this.isHexOnly=(n=i.isHexOnly)!==null&&n!==void 0?n:!1,this.valueHexView=i.valueHex?xe.toUint8Array(i.valueHex):lm}fromBER(s,n,i,o){let a=s instanceof ArrayBuffer?new Uint8Array(s):s;if(!Ai(this,a,n,i))return-1;let c=n+i;return this.valueHexView=a.subarray(n,c),this.valueHexView.length?(this.blockLength=i,c):(this.warnings.push("Zero buffer length"),n)}toBER(s=!1){return this.isHexOnly?s?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",Mn)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:Ue.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}function S6(r){var e;if(r instanceof Ee.Constructed)for(let t of r.valueBlock.value)S6(t)&&(r.lenBlock.isIndefiniteForm=!0);return!!(!((e=r.lenBlock)===null||e===void 0)&&e.isIndefiniteForm)}function Qf(r={}){var e,t,s;return{depth:0,maxDepth:(e=r.maxDepth)!==null&&e!==void 0?e:E6,nodesCount:0,maxNodes:(t=r.maxNodes)!==null&&t!==void 0?t:C6,maxContentLength:(s=r.maxContentLength)!==null&&s!==void 0?s:T6}}function QD(r){let e=new ur({},Er);return e.error=r,{offset:-1,result:e}}function JD(r){if(r.nodesCount+=1,r.nodesCount>r.maxNodes)return XD}function ZD(r,e){if(r>e.maxContentLength)return YD}function $b(r,e,t,s){let n=s.depth+1;if(n>s.maxDepth)return QD(GD);s.depth=n;try{return hm(r,e,t,s)}finally{s.depth-=1}}function eM(r,e){if(r instanceof e)return r;let t=new e;return t.idBlock=r.idBlock,t.lenBlock=r.lenBlock,t.warnings=r.warnings,t.valueBeforeDecodeView=r.valueBeforeDecodeView,t}function hm(r,e=0,t=r.length,s=Qf()){let n=e,i=new ur({},Er),o=new Ei;if(!Ai(o,r,e,t))return i.error=o.error,{offset:-1,result:i};if(!r.subarray(e,e+t).length)return i.error="Zero buffer length",{offset:-1,result:i};let c=JD(s);if(c)return i.error=c,{offset:-1,result:i};let d=i.idBlock.fromBER(r,e,t);if(i.idBlock.warnings.length&&i.warnings.concat(i.idBlock.warnings),d===-1)return i.error=i.idBlock.error,{offset:-1,result:i};if(e=d,t-=i.idBlock.blockLength,d=i.lenBlock.fromBER(r,e,t),i.lenBlock.warnings.length&&i.warnings.concat(i.lenBlock.warnings),d===-1)return i.error=i.lenBlock.error,{offset:-1,result:i};e=d,t-=i.lenBlock.blockLength;let u=i.lenBlock.isIndefiniteForm?t:i.lenBlock.length,l=ZD(u,s);if(l)return i.error=l,{offset:-1,result:i};if(!i.idBlock.isConstructed&&i.lenBlock.isIndefiniteForm)return i.error="Indefinite length form used for primitive encoding form",{offset:-1,result:i};let h=ur;switch(i.idBlock.tagClass){case 1:if(i.idBlock.tagNumber>=37&&i.idBlock.isHexOnly===!1)return i.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:i};switch(i.idBlock.tagNumber){case 0:if(i.idBlock.isConstructed&&i.lenBlock.length>0)return i.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:i};h=Ee.EndOfContent;break;case 1:h=Ee.Boolean;break;case 2:h=Ee.Integer;break;case 3:h=Ee.BitString;break;case 4:h=Ee.OctetString;break;case 5:h=Ee.Null;break;case 6:h=Ee.ObjectIdentifier;break;case 10:h=Ee.Enumerated;break;case 12:h=Ee.Utf8String;break;case 13:h=Ee.RelativeObjectIdentifier;break;case 14:h=Ee.TIME;break;case 15:return i.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:i};case 16:h=Ee.Sequence;break;case 17:h=Ee.Set;break;case 18:h=Ee.NumericString;break;case 19:h=Ee.PrintableString;break;case 20:h=Ee.TeletexString;break;case 21:h=Ee.VideotexString;break;case 22:h=Ee.IA5String;break;case 23:h=Ee.UTCTime;break;case 24:h=Ee.GeneralizedTime;break;case 25:h=Ee.GraphicString;break;case 26:h=Ee.VisibleString;break;case 27:h=Ee.GeneralString;break;case 28:h=Ee.UniversalString;break;case 29:h=Ee.CharacterString;break;case 30:h=Ee.BmpString;break;case 31:h=Ee.DATE;break;case 32:h=Ee.TimeOfDay;break;case 33:h=Ee.DateTime;break;case 34:h=Ee.Duration;break;default:{let x=i.idBlock.isConstructed?new Ee.Constructed:new Ee.Primitive;x.idBlock=i.idBlock,x.lenBlock=i.lenBlock,x.warnings=i.warnings,i=x}}break;default:h=i.idBlock.isConstructed?Ee.Constructed:Ee.Primitive}return i=eM(i,h),d=i.fromBER(r,e,u,s),i.valueBeforeDecodeView=r.subarray(n,n+i.blockLength),{offset:d,result:i}}function Ii(r,e={}){if(!r.byteLength){let t=new ur({},Er);return t.error="Input buffer has zero length",{offset:-1,result:t}}return hm(xe.toUint8Array(r).slice(),0,r.byteLength,Qf(e))}function tM(r,e){return r?1:e}function rM(r,e){let t=new Uint8Array([0]),s=new Uint8Array(r),n=new Uint8Array(e),i=s.slice(0),o=i.length-1,a=n.slice(0),c=a.length-1,d=0,u=c<o?o:c,l=0;for(let h=u;h>=0;h--,l++)!0===l<a.length?d=i[o-l]+a[c-l]+t[0]:d=i[o-l]+t[0],t[0]=d/10,!0===l>=i.length?i=Y0(new Uint8Array([d%10]),i):i[o-l]=d%10;return t[0]>0&&(i=Y0(t,i)),i}function b6(r){if(r>=Mf.length)for(let e=Mf.length;e<=r;e++){let t=new Uint8Array([0]),s=Mf[e-1].slice(0);for(let n=s.length-1;n>=0;n--){let i=new Uint8Array([(s[n]<<1)+t[0]]);t[0]=i[0]/10,s[n]=i[0]%10}t[0]>0&&(s=Y0(t,s)),Mf.push(s)}return Mf[r]}function sM(r,e){let t=0,s=new Uint8Array(r),n=new Uint8Array(e),i=s.slice(0),o=i.length-1,a=n.slice(0),c=a.length-1,d,u=0;for(let l=c;l>=0;l--,u++)d=i[o-u]-a[c-u]-t,!0===d<0?(t=1,i[o-u]=d+10):(t=0,i[o-u]=d);if(t>0)for(let l=o-c+1;l>=0;l--,u++)if(d=i[o-u]-t,d<0)t=1,i[o-u]=d+10;else{t=0,i[o-u]=d;break}return i.slice()}function _i(r,e,t){if(t instanceof Md){for(let i of t.value)if(_i(r,e,i).verified)return{verified:!0,result:r};{let i={verified:!1,result:{error:"Wrong values for Choice type"}};return t.hasOwnProperty(qb)&&(i.name=t.name),i}}if(t instanceof Dn)return t.hasOwnProperty(qb)&&(r[t.name]=e),{verified:!0,result:r};if(!(r instanceof Object))return{verified:!1,result:{error:"Wrong root object"}};if(!(e instanceof Object))return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(!(t instanceof Object))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!(FD in t))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!($D in t.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!(KD in t.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let s=t.idBlock.toBER(!1);if(s.byteLength===0)return{verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(t.idBlock.fromBER(s,0,s.byteLength)===-1)return{verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(t.idBlock.hasOwnProperty(qD)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.tagClass!==e.idBlock.tagClass)return{verified:!1,result:r};if(t.idBlock.hasOwnProperty(zD)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.tagNumber!==e.idBlock.tagNumber)return{verified:!1,result:r};if(t.idBlock.hasOwnProperty(VD)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.isConstructed!==e.idBlock.isConstructed)return{verified:!1,result:r};if(!(HD in t.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.isHexOnly!==e.idBlock.isHexOnly)return{verified:!1,result:r};if(t.idBlock.isHexOnly){if(!(y6 in t.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let i=t.idBlock.valueHexView,o=e.idBlock.valueHexView;if(i.length!==o.length)return{verified:!1,result:r};for(let a=0;a<i.length;a++)if(i[a]!==o[1])return{verified:!1,result:r}}if(t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ds),t.name&&(r[t.name]=e)),t instanceof Ee.Constructed){let i=0,o={verified:!1,result:{error:"Unknown error"}},a=t.valueBlock.value.length;if(a>0&&t.valueBlock.value[0]instanceof Ya&&(a=e.valueBlock.value.length),a===0)return{verified:!0,result:r};if(e.valueBlock.value.length===0&&t.valueBlock.value.length!==0){let c=!0;for(let d=0;d<t.valueBlock.value.length;d++)c=c&&(t.valueBlock.value[d].optional||!1);return c?{verified:!0,result:r}:(t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ds),t.name&&delete r[t.name]),r.error="Inconsistent object length",{verified:!1,result:r})}for(let c=0;c<a;c++)if(c-i>=e.valueBlock.value.length){if(t.valueBlock.value[c].optional===!1){let d={verified:!1,result:r};return r.error="Inconsistent length between ASN.1 data and schema",t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ds),t.name&&(delete r[t.name],d.name=t.name)),d}}else if(t.valueBlock.value[0]instanceof Ya){if(o=_i(r,e.valueBlock.value[c],t.valueBlock.value[0].value),o.verified===!1)if(t.valueBlock.value[0].optional)i++;else return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ds),t.name&&delete r[t.name]),o;if(qb in t.valueBlock.value[0]&&t.valueBlock.value[0].name.length>0){let d={};WD in t.valueBlock.value[0]&&t.valueBlock.value[0].local?d=e:d=r,typeof d[t.valueBlock.value[0].name]>"u"&&(d[t.valueBlock.value[0].name]=[]),d[t.valueBlock.value[0].name].push(e.valueBlock.value[c])}}else if(o=_i(r,e.valueBlock.value[c-i],t.valueBlock.value[c]),o.verified===!1)if(t.valueBlock.value[c].optional)i++;else return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ds),t.name&&delete r[t.name]),o;if(o.verified===!1){let c={verified:!1,result:r};return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ds),t.name&&(delete r[t.name],c.name=t.name)),c}return{verified:!0,result:r}}if(t.primitiveSchema&&y6 in e.valueBlock){let i=hm(e.valueBlock.valueHexView);if(i.offset===-1){let o={verified:!1,result:i.result};return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ds),t.name&&(delete r[t.name],o.name=t.name)),o}return _i(r,i.result,t.primitiveSchema)}return{verified:!0,result:r}}function nM(r,e){if(!(e instanceof Object))return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};let t=hm(xe.toUint8Array(r));return t.offset===-1?{verified:!1,result:t.result}:_i(t.result,t.result,e)}var Dd,Mf,x6,qb,y6,HD,FD,qD,zD,VD,$D,KD,WD,ds,Mn,lm,jf,v6,w6,Ei,Er,J0,Z0,Ee,ur,Hf,em,_6,Ci,E6,C6,T6,GD,XD,YD,Ln,A6,fr,tm,I6,Ff,R6,nn,rm,k6,Da,sm,Kb,on,nm,P6,an,B6,qf,Uf,Ti,N6,Ma,zf,im,O6,Ua,Vf,om,L6,$f,D6,$r,M6,es,am,cm,ts,dm,U6,Fs,um,j6,ja,fm,H6,Ha,F6,Fa,q6,qa,z6,za,V6,Va,$6,$a,K6,Ka,W6,To,G6,Wa,X6,Ga,Y6,Ao,Q6,Xa,J6,Kf,Z6,Wf,e3,Gf,t3,Xf,r3,Yf,Dn,Md,Ya,zb,Io=T(()=>{"use strict";Hb();g6();Dd=class{constructor(){this.items=[]}write(e){this.items.push(e)}final(){return Vb(this.items)}},Mf=[new Uint8Array([1])],x6="0123456789",qb="name",y6="valueHexView",HD="isHexOnly",FD="idBlock",qD="tagClass",zD="tagNumber",VD="isConstructed",$D="fromBER",KD="toBER",WD="local",ds="",Mn=new ArrayBuffer(0),lm=new Uint8Array(0),jf="EndOfContent",v6="OCTET STRING",w6="BIT STRING";Ei=class{static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e)}constructor({blockLength:e=0,error:t=ds,warnings:s=[],valueBeforeDecode:n=lm}={}){this.blockLength=e,this.error=t,this.warnings=s,this.valueBeforeDecodeView=xe.toUint8Array(n)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:Ue.ToHex(this.valueBeforeDecodeView)}}};Ei.NAME="baseBlock";Er=class extends Ei{fromBER(e,t,s,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};Er.NAME="valueBlock";J0=class extends Un(Ei){constructor({idBlock:e={}}={}){var t,s,n,i;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?xe.toUint8Array(e.valueHex):lm,this.tagClass=(s=e.tagClass)!==null&&s!==void 0?s:-1,this.tagNumber=(n=e.tagNumber)!==null&&n!==void 0?n:-1,this.isConstructed=(i=e.isConstructed)!==null&&i!==void 0?i:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",Mn}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let n=new Uint8Array(1);if(!e){let i=this.tagNumber;i&=31,t|=i,n[0]=t}return n.buffer}if(!this.isHexOnly){let n=Co(this.tagNumber,7),i=new Uint8Array(n),o=n.byteLength,a=new Uint8Array(o+1);if(a[0]=t|31,!e){for(let c=0;c<o-1;c++)a[c+1]=i[c]|128;a[o]=i[o-1]}return a.buffer}let s=new Uint8Array(this.valueHexView.byteLength+1);if(s[0]=t|31,!e){let n=this.valueHexView;for(let i=0;i<n.length-1;i++)s[i+1]=n[i]|128;s[this.valueHexView.byteLength]=n[n.length-1]}return s.buffer}fromBER(e,t,s){let n=xe.toUint8Array(e);if(!Ai(this,n,t,s))return-1;let i=n.subarray(t,t+s);if(i.length===0)return this.error="Zero buffer length",-1;switch(i[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(i[0]&32)===32,this.isHexOnly=!1;let a=i[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=0;for(;;){let u=c+1;if(u>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c++,(i[u]&128)===0)break}this.blockLength=c+1;let d=this.valueHexView=new Uint8Array(c);for(let u=0;u<c;u++)d[u]=i[u+1]&127;this.blockLength<=9?this.tagNumber=La(d,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};J0.NAME="identificationBlock";Z0=class extends Ei{constructor({lenBlock:e={}}={}){var t,s,n;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(s=e.longFormUsed)!==null&&s!==void 0?s:!1,this.length=(n=e.length)!==null&&n!==void 0?n:0}fromBER(e,t,s){let n=xe.toUint8Array(e);if(!Ai(this,n,t,s))return-1;let i=n.subarray(t,t+s);if(i.length===0)return this.error="Zero buffer length",-1;if(i[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=i[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(i[0]&128),this.longFormUsed===!1)return this.length=i[0],this.blockLength=1,t+this.blockLength;let o=i[0]&127;if(o>8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=n.subarray(a,a+o);return c[o-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=La(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,t+this.blockLength}toBER(e=!1){let t,s;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(s=new Uint8Array(t),s[0]=128),t;if(this.longFormUsed){let n=Co(this.length,8);if(n.byteLength>127)return this.error="Too big length",Mn;if(t=new ArrayBuffer(n.byteLength+1),e)return t;let i=new Uint8Array(n);s=new Uint8Array(t),s[0]=n.byteLength|128;for(let o=0;o<n.byteLength;o++)s[o+1]=i[o];return t}return t=new ArrayBuffer(1),e===!1&&(s=new Uint8Array(t),s[0]=this.length),t}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};Z0.NAME="lengthBlock";Ee={},ur=class extends Ei{constructor({name:e=ds,optional:t=!1,primitiveSchema:s,...n}={},i){super(n),this.name=e,this.optional=t,s&&(this.primitiveSchema=s),this.idBlock=new J0(n),this.lenBlock=new Z0(n),this.valueBlock=i?new i(n):new Er(n)}fromBER(e,t,s,n){let i=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?s:this.lenBlock.length,n);return i===-1?(this.error=this.valueBlock.error,i):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),i)}toBER(e,t){let s=t||new Dd;t||S6(this);let n=this.idBlock.toBER(e);if(s.write(n),this.lenBlock.isIndefiniteForm)s.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,s),s.write(new ArrayBuffer(2));else{let i=this.valueBlock.toBER(e);this.lenBlock.length=i.byteLength;let o=this.lenBlock.toBER(e);s.write(o),s.write(i)}return t?Mn:s.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():Ue.ToHex(this.toBER())}onAsciiEncoding(){let e=this.constructor.NAME,t=Ue.ToHex(this.valueBlock.valueBeforeDecodeView);return`${e} : ${t}`}isEqual(e){if(this===e)return!0;if(!(e instanceof this.constructor))return!1;let t=this.toBER(),s=e.toBER();return m6(t,s)}};ur.NAME="BaseBlock";Hf=class extends ur{getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}constructor({value:e=ds,...t}={},s){super(t,s),e&&this.fromString(e)}fromBER(e,t,s){let n=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?s:this.lenBlock.length);return n===-1?(this.error=this.valueBlock.error,n):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),n)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};Hf.NAME="BaseStringBlock";em=class extends Un(Er){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e}};em.NAME="PrimitiveValueBlock";Ci=class extends ur{constructor(e={}){super(e,em),this.idBlock.isConstructed=!1}};_6=Ci;Ee.Primitive=_6;Ci.NAME="PRIMITIVE";E6=100,C6=1e4,T6=16*1024*1024,GD="Maximum ASN.1 nesting depth exceeded",XD="Maximum ASN.1 node count exceeded",YD="Maximum ASN.1 content length exceeded";Ln=class extends Er{constructor({value:e=[],isIndefiniteForm:t=!1,...s}={}){super(s),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,s,n){let i=xe.toUint8Array(e),o=n??Qf();if(!Ai(this,i,t,s))return-1;if(this.valueBeforeDecodeView=i.subarray(t,t+s),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let a=t;for(;tM(this.isIndefiniteForm,s)>0;){let c=$b(i,a,s,o);if(c.offset===-1)return this.error=c.result.error,this.warnings.concat(c.result.warnings),-1;if(a=c.offset,this.blockLength+=c.result.blockLength,s-=c.result.blockLength,this.value.push(c.result),this.isIndefiniteForm&&c.result.constructor.NAME===jf)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===jf?this.value.pop():this.warnings.push("No EndOfContent block encoded")),a}toBER(e,t){let s=t||new Dd;for(let n=0;n<this.value.length;n++)this.value[n].toBER(e,s);return t?Mn:s.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};Ln.NAME="ConstructedValueBlock";fr=class extends ur{constructor(e={}){super(e,Ln),this.idBlock.isConstructed=!0}fromBER(e,t,s,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let i=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?s:this.lenBlock.length,n);return i===-1?(this.error=this.valueBlock.error,i):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),i)}onAsciiEncoding(){let e=[];for(let s of this.valueBlock.value)e.push(s.toString("ascii").split(`
|
|
19
|
-
`).map(n=>` ${n}`).join(`
|
|
20
|
-
`));let t=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :
|
|
21
|
-
${e.join(`
|
|
22
|
-
`)}`:`${t} :`}};A6=fr;Ee.Constructed=A6;fr.NAME="CONSTRUCTED";tm=class extends Er{fromBER(e,t,s){return t}toBER(e){return Mn}};tm.override="EndOfContentValueBlock";Ff=class extends ur{constructor(e={}){super(e,tm),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};I6=Ff;Ee.EndOfContent=I6;Ff.NAME=jf;nn=class extends ur{constructor(e={}){super(e,Er),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,s){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=s,t+s>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+s}toBER(e,t){let s=new ArrayBuffer(2);if(!e){let n=new Uint8Array(s);n[0]=5,n[1]=0}return t&&t.write(s),s}onAsciiEncoding(){return`${this.constructor.NAME}`}};R6=nn;Ee.Null=R6;nn.NAME="NULL";rm=class extends Un(Er){get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=xe.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}fromBER(e,t,s){let n=xe.toUint8Array(e);return Ai(this,n,t,s)?(this.valueHexView=n.subarray(t,t+s),s>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Fb.call(this),this.blockLength=s,t+s):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};rm.NAME="BooleanValueBlock";Da=class extends ur{getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}constructor(e={}){super(e,rm),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};k6=Da;Ee.Boolean=k6;Da.NAME="BOOLEAN";sm=class extends Un(Ln){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,s,n){let i=0;if(this.isConstructed){if(this.isHexOnly=!1,i=Ln.prototype.fromBER.call(this,e,t,s,n),i===-1)return i;for(let o=0;o<this.value.length;o++){let a=this.value[o].constructor.NAME;if(a===jf){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(a!==v6)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,i=super.fromBER(e,t,s),this.blockLength=s;return i}toBER(e,t){return this.isConstructed?Ln.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};sm.NAME="OctetStringValueBlock";on=class extends ur{constructor({idBlock:e={},lenBlock:t={},...s}={}){var n,i;(n=s.isConstructed)!==null&&n!==void 0||(s.isConstructed=!!(!((i=s.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:s.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!s.isIndefiniteForm},...s},sm),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(e,t,s,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,s===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),t;if(!this.valueBlock.isConstructed){let o=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+s);try{if(o.byteLength){let a=n??Qf(),c=$b(o,0,o.byteLength,a);c.offset!==-1&&c.offset===s&&(this.valueBlock.value=[c.result])}}catch{}}return super.fromBER(e,t,s,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return fr.prototype.onAsciiEncoding.call(this);let e=this.constructor.NAME,t=Ue.ToHex(this.valueBlock.valueHexView);return`${e} : ${t}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof Kb&&e.push(t.valueBlock.valueHexView);return xe.concat(e)}};Kb=on;Ee.OctetString=Kb;on.NAME=v6;nm=class extends Un(Ln){constructor({unusedBits:e=0,isConstructed:t=!1,...s}={}){super(s),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength}fromBER(e,t,s,n){if(!s)return t;let i=-1;if(this.isConstructed){if(i=Ln.prototype.fromBER.call(this,e,t,s,n),i===-1)return i;for(let c of this.value){let d=c.constructor.NAME;if(d===jf){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(d!==w6)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let u=c.valueBlock;if(this.unusedBits>0&&u.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=u.unusedBits}return i}let o=xe.toUint8Array(e);if(!Ai(this,o,t,s))return-1;let a=o.subarray(t,t+s);if(this.unusedBits=a[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let c=a.subarray(1);try{if(c.byteLength){let d=n??Qf(),u=$b(c,0,c.byteLength,d);u.offset!==-1&&u.offset===s-1&&(this.value=[u.result])}}catch{}}return this.valueHexView=a.subarray(1),this.blockLength=a.length,t+s}toBER(e,t){if(this.isConstructed)return Ln.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let n=new Uint8Array(1);return n[0]=0,n.buffer}let s=new Uint8Array(this.valueHexView.length+1);return s[0]=this.unusedBits,s.set(this.valueHexView,1),s.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};nm.NAME="BitStringValueBlock";an=class extends ur{constructor({idBlock:e={},lenBlock:t={},...s}={}){var n,i;(n=s.isConstructed)!==null&&n!==void 0||(s.isConstructed=!!(!((i=s.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:s.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!s.isIndefiniteForm},...s},nm),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,s,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,s,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return fr.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let o of t)e.push(o.toString(2).padStart(8,"0"));let s=e.join(""),n=this.constructor.NAME,i=s.substring(0,s.length-this.valueBlock.unusedBits);return`${n} : ${i}`}}};P6=an;Ee.BitString=P6;an.NAME=w6;qf=class extends Un(Er){setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Fb.call(this)))}constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(p6(e))}get valueDec(){return this._valueDec}fromDER(e,t,s,n=0){let i=this.fromBER(e,t,s);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&(o[1]&128)!==0?this.valueHexView=o.subarray(1):n!==0&&o.length<n&&(n-o.length>1&&(n=o.length+1),this.valueHexView=o.subarray(n-o.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let s=new Uint8Array(this.valueHexView.length+1);s[0]=0,s.set(t,1),this.valueHexView=s}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,s){let n=super.fromBER(e,t,s);return n===-1||this.setValueHex(),n}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),s=0,n,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){n=i[c];for(let d=0;d<8;d++)(n&1)===1&&(s===e?(t=sM(b6(s),t),o="-"):t=rM(t,b6(s))),s++,n>>=1}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(o+=x6.charAt(t[c]));return a===!1&&(o+=x6.charAt(0)),o}};B6=qf;qf.NAME="IntegerValueBlock";Object.defineProperty(B6.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});Ti=class extends ur{constructor(e={}){super(e,qf),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Q0(),BigInt(this.valueBlock.toString())}static fromBigInt(e){Q0();let t=BigInt(e),s=new Dd,n=t.toString(16).replace(/^-/,""),i=new Uint8Array(Ue.FromHex(n));if(t<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let d=BigInt(`0x${Ue.ToHex(a)}`)+t,u=xe.toUint8Array(Ue.FromHex(d.toString(16)));u[0]|=128,s.write(u)}else i[0]&128&&s.write(new Uint8Array([0])),s.write(i);return new Uf({valueHex:s.final()})}convertToDER(){let e=new Uf({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}convertFromDER(){return new Uf({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};Uf=Ti;Ee.Integer=Uf;Ti.NAME="INTEGER";Ma=class extends Ti{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};N6=Ma;Ee.Enumerated=N6;Ma.NAME="ENUMERATED";zf=class extends Un(Er){constructor({valueDec:e=-1,isFirstSid:t=!1,...s}={}){super(s),this.valueDec=e,this.isFirstSid=t}fromBER(e,t,s){if(!s)return t;let n=xe.toUint8Array(e);if(!Ai(this,n,t,s))return-1;let i=n.subarray(t,t+s);this.valueHexView=new Uint8Array(s);for(let a=0;a<s&&(this.valueHexView[a]=i[a]&127,this.blockLength++,(i[a]&128)!==0);a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,(i[this.blockLength-1]&128)!==0?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=La(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){Q0();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let s=new Uint8Array(t.length/7);for(let n=0;n<s.length;n++)s[n]=parseInt(t.slice(n*7,n*7+7),2)+(n+1<s.length?128:0);this.fromBER(s.buffer,0,s.length)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let n=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=n[o]|128;return i[this.blockLength-1]=n[this.blockLength-1],i.buffer}let t=Co(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",Mn;let s=new Uint8Array(t.byteLength);if(!e){let n=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)s[o]=n[o]|128;s[i]=n[i]}return s}toString(){let e="";if(this.isHexOnly)e=Ue.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.valueDec.toString();return e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};zf.NAME="sidBlock";im=class extends Er{constructor({value:e=ds,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,s){let n=t;for(;s>0;){let i=new zf;if(n=i.fromBER(e,n,s),n===-1)return this.blockLength=0,this.error=i.error,n;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,s-=i.blockLength,this.value.push(i)}return n}toBER(e){let t=[];for(let s=0;s<this.value.length;s++){let n=this.value[s].toBER(e);if(n.byteLength===0)return this.error=this.value[s].error,Mn;t.push(n)}return Vb(t)}fromString(e){this.value=[];let t=0,s=0,n="",i=!1;do if(s=e.indexOf(".",t),s===-1?n=e.substring(t):n=e.substring(t,s),t=s+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(n,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new zf;if(n>Number.MAX_SAFE_INTEGER){Q0();let a=BigInt(n);o.valueBigInt=a}else if(o.valueDec=parseInt(n,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(s!==-1)}toString(){let e="",t=!1;for(let s=0;s<this.value.length;s++){t=this.value[s].isHexOnly;let n=this.value[s].toString();s!==0&&(e=`${e}.`),t?(n=`{${n}}`,this.value[s].isFirstSid?e=`2.{${n} - 80}`:e+=n):e+=n}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};im.NAME="ObjectIdentifierValueBlock";Ua=class extends ur{getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}constructor(e={}){super(e,im),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};O6=Ua;Ee.ObjectIdentifier=O6;Ua.NAME="OBJECT IDENTIFIER";Vf=class extends Un(Ei){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,s){if(s===0)return t;let n=xe.toUint8Array(e);if(!Ai(this,n,t,s))return-1;let i=n.subarray(t,t+s);this.valueHexView=new Uint8Array(s);for(let a=0;a<s&&(this.valueHexView[a]=i[a]&127,this.blockLength++,(i[a]&128)!==0);a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,(i[this.blockLength-1]&128)!==0?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=La(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let n=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=n[o]|128;return i[this.blockLength-1]=n[this.blockLength-1],i.buffer}let t=Co(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",Mn;let s=new Uint8Array(t.byteLength);if(!e){let n=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)s[o]=n[o]|128;s[i]=n[i]}return s.buffer}toString(){let e="";return this.isHexOnly?e=Ue.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Vf.NAME="relativeSidBlock";om=class extends Er{constructor({value:e=ds,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,s){let n=t;for(;s>0;){let i=new Vf;if(n=i.fromBER(e,n,s),n===-1)return this.blockLength=0,this.error=i.error,n;this.blockLength+=i.blockLength,s-=i.blockLength,this.value.push(i)}return n}toBER(e,t){let s=[];for(let n=0;n<this.value.length;n++){let i=this.value[n].toBER(e);if(i.byteLength===0)return this.error=this.value[n].error,Mn;s.push(i)}return Vb(s)}fromString(e){this.value=[];let t=0,s=0,n="";do{s=e.indexOf(".",t),s===-1?n=e.substring(t):n=e.substring(t,s),t=s+1;let i=new Vf;if(i.valueDec=parseInt(n,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(s!==-1);return!0}toString(){let e="",t=!1;for(let s=0;s<this.value.length;s++){t=this.value[s].isHexOnly;let n=this.value[s].toString();s!==0&&(e=`${e}.`),t&&(n=`{${n}}`),e+=n}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};om.NAME="RelativeObjectIdentifierValueBlock";$f=class extends ur{getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}constructor(e={}){super(e,om),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};L6=$f;Ee.RelativeObjectIdentifier=L6;$f.NAME="RelativeObjectIdentifier";$r=class extends fr{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};D6=$r;Ee.Sequence=D6;$r.NAME="SEQUENCE";es=class extends fr{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};M6=es;Ee.Set=M6;es.NAME="SET";am=class extends Un(Er){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=ds}toJSON(){return{...super.toJSON(),value:this.value}}};am.NAME="StringValueBlock";cm=class extends am{};cm.NAME="SimpleStringValueBlock";ts=class extends Hf{constructor({...e}={}){super(e,cm)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,xe.toUint8Array(e))}fromString(e){let t=e.length,s=this.valueBlock.valueHexView=new Uint8Array(t);for(let n=0;n<t;n++)s[n]=e.charCodeAt(n);this.valueBlock.value=e}};ts.NAME="SIMPLE STRING";dm=class extends ts{fromBuffer(e){this.valueBlock.valueHexView=xe.toUint8Array(e);try{this.valueBlock.value=Ue.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=Ue.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(Ue.FromUtf8String(e)),this.valueBlock.value=e}};dm.NAME="Utf8StringValueBlock";Fs=class extends dm{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};U6=Fs;Ee.Utf8String=U6;Fs.NAME="UTF8String";um=class extends ts{fromBuffer(e){this.valueBlock.value=Ue.ToUtf16String(e),this.valueBlock.valueHexView=xe.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(Ue.FromUtf16String(e))}};um.NAME="BmpStringValueBlock";ja=class extends um{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};j6=ja;Ee.BmpString=j6;ja.NAME="BMPString";fm=class extends ts{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),s=new Uint8Array(t);for(let n=0;n<s.length;n+=4)s[n]=s[n+3],s[n+1]=s[n+2],s[n+2]=0,s[n+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,s=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let n=0;n<t;n++){let i=Co(e.charCodeAt(n),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)s[n*4+c+a]=o[c]}this.valueBlock.value=e}};fm.NAME="UniversalStringValueBlock";Ha=class extends fm{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};H6=Ha;Ee.UniversalString=H6;Ha.NAME="UniversalString";Fa=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};F6=Fa;Ee.NumericString=F6;Fa.NAME="NumericString";qa=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};q6=qa;Ee.PrintableString=q6;qa.NAME="PrintableString";za=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};z6=za;Ee.TeletexString=z6;za.NAME="TeletexString";Va=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};V6=Va;Ee.VideotexString=V6;Va.NAME="VideotexString";$a=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};$6=$a;Ee.IA5String=$6;$a.NAME="IA5String";Ka=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};K6=Ka;Ee.GraphicString=K6;Ka.NAME="GraphicString";To=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};W6=To;Ee.VisibleString=W6;To.NAME="VisibleString";Wa=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};G6=Wa;Ee.GeneralString=G6;Wa.NAME="GeneralString";Ga=class extends ts{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};X6=Ga;Ee.CharacterString=X6;Ga.NAME="CharacterString";Ao=class extends To{constructor({value:e,valueDate:t,...s}={}){if(super(s),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let n=0;n<e.length;n++)this.valueBlock.valueHexView[n]=e.charCodeAt(n)}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,xe.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),s=new Uint8Array(t);for(let n=0;n<e.length;n++)s[n]=e.charCodeAt(n);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let s=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(s===null){this.error="Wrong input string for conversion";return}let n=parseInt(s[1],10);n>=50?this.year=1900+n:this.year=2e3+n,this.month=parseInt(s[2],10),this.day=parseInt(s[3],10),this.hour=parseInt(s[4],10),this.minute=parseInt(s[5],10),this.second=parseInt(s[6],10)}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=cs(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=cs(this.month,2),t[2]=cs(this.day,2),t[3]=cs(this.hour,2),t[4]=cs(this.minute,2),t[5]=cs(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Y6=Ao;Ee.UTCTime=Y6;Ao.NAME="UTCTime";Xa=class extends Ao{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){let e=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(e)}fromString(e){let t=!1,s="",n="",i=0,o,a=0,c=0;if(e[e.length-1]==="Z")s=e.substring(0,e.length-1),t=!0;else{let l=new Number(e[e.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");s=e}if(t){if(s.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(s.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let l=1,h=s.indexOf("+"),x="";if(h===-1&&(h=s.indexOf("-"),l=-1),h!==-1){if(x=s.substring(h+1),s=s.substring(0,h),x.length!==2&&x.length!==4)throw new Error("Wrong input string for conversion");let v=parseInt(x.substring(0,2),10);if(isNaN(v.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*v,x.length===4){if(v=parseInt(x.substring(2,4),10),isNaN(v.valueOf()))throw new Error("Wrong input string for conversion");c=l*v}}}let d=s.indexOf(".");if(d===-1&&(d=s.indexOf(",")),d!==-1){let l=new Number(`0${s.substring(d)}`);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");i=l.valueOf(),n=s.substring(0,d)}else n=s;switch(!0){case n.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,d!==-1)throw new Error("Wrong input string for conversion");break;case n.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,d!==-1){let l=60*i;this.minute=Math.floor(l),l=60*(l-this.minute),this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case n.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,d!==-1){let l=60*i;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case n.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,d!==-1){let l=1e3*i;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let u=o.exec(n);if(u===null)throw new Error("Wrong input string for conversion");for(let l=1;l<u.length;l++)switch(l){case 1:this.year=parseInt(u[l],10);break;case 2:this.month=parseInt(u[l],10);break;case 3:this.day=parseInt(u[l],10);break;case 4:this.hour=parseInt(u[l],10)+a;break;case 5:this.minute=parseInt(u[l],10)+c;break;case 6:this.second=parseInt(u[l],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let l=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=l.getUTCFullYear(),this.month=l.getUTCMonth(),this.day=l.getUTCDay(),this.hour=l.getUTCHours(),this.minute=l.getUTCMinutes(),this.second=l.getUTCSeconds(),this.millisecond=l.getUTCMilliseconds()}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(cs(this.year,4)),t.push(cs(this.month,2)),t.push(cs(this.day,2)),t.push(cs(this.hour,2)),t.push(cs(this.minute,2)),t.push(cs(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(cs(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Q6=Xa;Ee.GeneralizedTime=Q6;Xa.NAME="GeneralizedTime";Kf=class extends Fs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};J6=Kf;Ee.DATE=J6;Kf.NAME="DATE";Wf=class extends Fs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Z6=Wf;Ee.TimeOfDay=Z6;Wf.NAME="TimeOfDay";Gf=class extends Fs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};e3=Gf;Ee.DateTime=e3;Gf.NAME="DateTime";Xf=class extends Fs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};t3=Xf;Ee.Duration=t3;Xf.NAME="Duration";Yf=class extends Fs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};r3=Yf;Ee.TIME=r3;Yf.NAME="TIME";Dn=class{constructor({name:e=ds,optional:t=!1}={}){this.name=e,this.optional=t}},Md=class extends Dn{constructor({value:e=[],...t}={}){super(t),this.value=e}},Ya=class extends Dn{constructor({value:e=new Dn,local:t=!1,...s}={}){super(s),this.value=e,this.local=t}},zb=class{get data(){return this.dataView.slice().buffer}set data(e){this.dataView=xe.toUint8Array(e)}constructor({data:e=lm}={}){this.dataView=xe.toUint8Array(e)}fromBER(e,t,s){let n=t+s;return this.dataView=xe.toUint8Array(e).subarray(t,n),n}toBER(e){return this.dataView.slice().buffer}}});function s3(r){return Object.prototype.toString.call(r)}function aM(r){if(ArrayBuffer.isView(r))return!0;if(!r||typeof r!="object")return!1;let e=r;return typeof e.byteOffset=="number"&&typeof e.byteLength=="number"&&pm(e.buffer)}function Wb(r){return s3(r)===iM}function n3(r){return typeof SharedArrayBuffer<"u"&&s3(r)===oM}function pm(r){return Wb(r)||n3(r)}function i3(r){return aM(r)}function Ri(r){return pm(r)||i3(r)}function Gb(r){if(!Ri(r))throw new TypeError("Expected ArrayBuffer, SharedArrayBuffer, or ArrayBufferView")}function qs(r){return Gb(r),pm(r)?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function vr(r){if(Gb(r),Wb(r))return r;let e=new ArrayBuffer(r.byteLength);return new Uint8Array(e).set(qs(r)),e}var iM,oM,Jf=T(()=>{"use strict";iM="[object ArrayBuffer]",oM="[object SharedArrayBuffer]"});var o3=T(()=>{"use strict";Jf()});function Xb(r,e,t={}){let s=qs(r),n=qs(e);if(!t.constantTime&&s.byteLength!==n.byteLength)return!1;let i=Math.max(s.byteLength,n.byteLength),o=s.byteLength^n.byteLength;for(let a=0;a<i;a++)o|=(s[a]??0)^(n[a]??0);return o===0}var a3=T(()=>{"use strict";Jf()});var c3=T(()=>{"use strict";Jf()});var Cs=T(()=>{"use strict";Jf();o3();a3();c3()});var B,_,Qa=T(()=>{"use strict";(function(r){r[r.Sequence=0]="Sequence",r[r.Set=1]="Set",r[r.Choice=2]="Choice"})(B||(B={}));(function(r){r[r.Any=1]="Any",r[r.Boolean=2]="Boolean",r[r.OctetString=3]="OctetString",r[r.BitString=4]="BitString",r[r.Integer=5]="Integer",r[r.Enumerated=6]="Enumerated",r[r.ObjectIdentifier=7]="ObjectIdentifier",r[r.Utf8String=8]="Utf8String",r[r.BmpString=9]="BmpString",r[r.UniversalString=10]="UniversalString",r[r.NumericString=11]="NumericString",r[r.PrintableString=12]="PrintableString",r[r.TeletexString=13]="TeletexString",r[r.VideotexString=14]="VideotexString",r[r.IA5String=15]="IA5String",r[r.GraphicString=16]="GraphicString",r[r.VisibleString=17]="VisibleString",r[r.GeneralString=18]="GeneralString",r[r.CharacterString=19]="CharacterString",r[r.UTCTime=20]="UTCTime",r[r.GeneralizedTime=21]="GeneralizedTime",r[r.DATE=22]="DATE",r[r.TimeOfDay=23]="TimeOfDay",r[r.DateTime=24]="DateTime",r[r.Duration=25]="Duration",r[r.TIME=26]="TIME",r[r.Null=27]="Null"})(_||(_={}))});var Hn,d3=T(()=>{"use strict";Io();Cs();Hn=class{unusedBits=0;value=new ArrayBuffer(0);constructor(e,t=0){if(e)if(typeof e=="number")this.fromNumber(e);else if(Ri(e))this.unusedBits=t,this.value=vr(e);else throw TypeError("Unsupported type of 'params' argument for BitString")}fromASN(e){if(!(e instanceof an))throw new TypeError("Argument 'asn' is not instance of ASN.1 BitString");return this.unusedBits=e.valueBlock.unusedBits,this.value=vr(e.valueBlock.valueHex),this}toASN(){return new an({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(e){return new an({name:e})}toNumber(){let e="",t=new Uint8Array(this.value);for(let s of t)e+=s.toString(2).padStart(8,"0");return e=e.split("").reverse().join(""),this.unusedBits&&(e=e.slice(this.unusedBits).padStart(this.unusedBits,"0")),parseInt(e,2)}fromNumber(e){let t=e.toString(2),s=t.length+7>>3;this.unusedBits=(s<<3)-t.length;let n=new Uint8Array(s);t=t.padStart(s<<3,"0").split("").reverse().join("");let i=0;for(;i<s;)n[i]=parseInt(t.slice(i<<3,(i<<3)+8),2),i++;this.value=n.buffer}}});var qe,u3=T(()=>{"use strict";Io();Cs();qe=class{buffer;get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}constructor(e){typeof e=="number"?this.buffer=new ArrayBuffer(e):Ri(e)?this.buffer=vr(e):Array.isArray(e)?this.buffer=new Uint8Array(e).buffer:this.buffer=new ArrayBuffer(0)}fromASN(e){if(!(e instanceof on))throw new TypeError("Argument 'asn' is not instance of ASN.1 OctetString");return this.buffer=vr(e.valueBlock.valueHex),this}toASN(){return new on({valueHex:this.buffer})}toSchema(e){return new on({name:e})}}});var Yb=T(()=>{"use strict";d3();u3()});function zs(r){return{fromASN:e=>e.valueBlock.value,toASN:e=>new r({value:e})}}function Ro(r){switch(r){case _.Any:return uM;case _.BitString:return hM;case _.BmpString:return gM;case _.Boolean:return mM;case _.CharacterString:return TM;case _.Enumerated:return lM;case _.GeneralString:return CM;case _.GeneralizedTime:return IM;case _.GraphicString:return _M;case _.IA5String:return SM;case _.Integer:return fM;case _.Null:return RM;case _.NumericString:return yM;case _.ObjectIdentifier:return pM;case _.OctetString:return Ud;case _.PrintableString:return bM;case _.TeletexString:return vM;case _.UTCTime:return AM;case _.UniversalString:return xM;case _.Utf8String:return Qb;case _.VideotexString:return wM;case _.VisibleString:return EM;default:return null}}var uM,fM,lM,Et,hM,pM,mM,Ud,f3,Qb,gM,xM,yM,bM,vM,wM,SM,_M,EM,CM,TM,AM,IM,RM,Zf=T(()=>{"use strict";Io();Cs();Qa();Yb();uM={fromASN:r=>r instanceof nn?null:vr(r.valueBeforeDecodeView),toASN:r=>{if(r===null)return new nn;let e=Ii(r);if(e.result.error)throw new Error(e.result.error);return e.result}},fM={fromASN:r=>r.valueBlock.valueHexView.byteLength>=4?r.valueBlock.toString():r.valueBlock.valueDec,toASN:r=>new Ti({value:+r})},lM={fromASN:r=>r.valueBlock.valueDec,toASN:r=>new Ma({value:r})},Et={fromASN:r=>vr(r.valueBlock.valueHexView),toASN:r=>new Ti({valueHex:r})},hM={fromASN:r=>vr(r.valueBlock.valueHexView),toASN:r=>new an({valueHex:r})},pM={fromASN:r=>r.valueBlock.toString(),toASN:r=>new Ua({value:r})},mM={fromASN:r=>r.valueBlock.value,toASN:r=>new Da({value:r})},Ud={fromASN:r=>vr(r.valueBlock.valueHexView),toASN:r=>new on({valueHex:r})},f3={fromASN:r=>new qe(r.getValue()),toASN:r=>r.toASN()};Qb=zs(Fs),gM=zs(ja),xM=zs(Ha),yM=zs(Fa),bM=zs(qa),vM=zs(za),wM=zs(Va),SM=zs($a),_M=zs(Ka),EM=zs(To),CM=zs(Wa),TM=zs(Ga),AM={fromASN:r=>r.toDate(),toASN:r=>new Ao({valueDate:r})},IM={fromASN:r=>r.toDate(),toASN:r=>new Xa({valueDate:r})},RM={fromASN:()=>null,toASN:()=>new nn}});function Vs(r){return typeof r=="function"&&r.prototype?r.prototype.toASN&&r.prototype.fromASN?!0:Vs(r.prototype):!!(r&&typeof r=="object"&&"toASN"in r&&"fromASN"in r)}function Zb(r){if(r){let e=Object.getPrototypeOf(r);return e?.prototype?.constructor===Array?!0:Zb(e)}return!1}function l3(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),s=new Uint8Array(e);for(let n=0;n<r.byteLength;n++)if(t[n]!==s[n])return!1;return!0}var mm=T(()=>{"use strict"});var gm,h3=T(()=>{"use strict";Io();Qa();mm();gm=class{items=new WeakMap;has(e){return this.items.has(e)}get(e,t=!1){let s=this.items.get(e);if(!s)throw new Error(`Cannot get schema for '${e.prototype.constructor.name}' target`);if(t&&!s.schema)throw new Error(`Schema '${e.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);return s}cache(e){let t=this.get(e);t.schema||(t.schema=this.create(e,!0))}createDefault(e){let t={type:B.Sequence,items:{}},s=this.findParentSchema(e);return s&&(Object.assign(t,s),t.items=Object.assign({},t.items,s.items)),t}create(e,t){let s=this.items.get(e)||this.createDefault(e),n=[];for(let i in s.items){let o=s.items[i],a=t?i:"",c;if(typeof o.type=="number"){let u=_[o.type],l=jn[u];if(!l)throw new Error(`Cannot get ASN1 class by name '${u}'`);c=new l({name:a})}else Vs(o.type)?c=new o.type().toSchema(a):o.optional?this.get(o.type).type===B.Choice?c=new Dn({name:a}):(c=this.create(o.type,!1),c.name=a):c=new Dn({name:a});let d=!!o.optional||o.defaultValue!==void 0;if(o.repeated){c.name="";let u=o.repeated==="set"?es:$r;c=new u({name:"",value:[new Ya({name:a,value:c})]})}if(o.context!==null&&o.context!==void 0)if(o.implicit)if(typeof o.type=="number"||Vs(o.type)){let u=o.repeated?fr:Ci;n.push(new u({name:a,optional:d,idBlock:{tagClass:3,tagNumber:o.context}}))}else{this.cache(o.type);let u=!!o.repeated,l=u?c:this.get(o.type,!0).schema;l="valueBlock"in l?l.valueBlock.value:l.value,n.push(new fr({name:u?"":a,optional:d,idBlock:{tagClass:3,tagNumber:o.context},value:l}))}else n.push(new fr({optional:d,idBlock:{tagClass:3,tagNumber:o.context},value:[c]}));else c.optional=d,n.push(c)}switch(s.type){case B.Sequence:return new $r({value:n,name:""});case B.Set:return new es({value:n,name:""});case B.Choice:return new Md({value:n,name:""});default:throw new Error("Unsupported ASN1 type in use")}}set(e,t){return this.items.set(e,t),this}findParentSchema(e){let t=Object.getPrototypeOf(e);return t?this.items.get(t)||this.findParentSchema(t):null}}});var lr,xm=T(()=>{"use strict";h3();lr=new gm});var M,g,p3=T(()=>{"use strict";Zf();Qa();xm();M=r=>e=>{let t;lr.has(e)?t=lr.get(e):(t=lr.createDefault(e),lr.set(e,t)),Object.assign(t,r)},g=r=>(e,t)=>{let s;lr.has(e.constructor)?s=lr.get(e.constructor):(s=lr.createDefault(e.constructor),lr.set(e.constructor,s));let n=Object.assign({},r);if(typeof n.type=="number"&&!n.converter){let i=Ro(r.type);if(!i)throw new Error(`Cannot get default converter for property '${t}' of ${e.constructor.name}`);n.converter=i}n.raw=r.raw,s.items[t]=n}});var ko,m3=T(()=>{"use strict";ko=class extends Error{schemas=[]}});var e1=T(()=>{"use strict";m3()});var el,t1=T(()=>{"use strict";Io();Cs();Qa();Zf();e1();mm();xm();el=class{static parse(e,t,s){let n=Ii(vr(e),s?.berOptions);if(n.result.error)throw new Error(n.result.error);return this.fromASN(n.result,t,s)}static fromASN(e,t,s){try{if(Vs(t))return new t().fromASN(e);let n=lr.get(t);lr.cache(t);let i=n.schema,o=this.handleChoiceTypes(e,n,t,i,s);if(o?.result)return o.result;o?.targetSchema&&(i=o.targetSchema);let a=this.handleSequenceTypes(e,n,t,i),c=new t;return Zb(t)?this.handleArrayTypes(e,n,t,s):(this.processSchemaItems(n,a,c,s),c)}catch(n){throw n instanceof ko&&n.schemas.push(t.name),n}}static handleChoiceTypes(e,t,s,n,i){if(e.constructor===fr&&t.type===B.Choice&&e.idBlock.tagClass===3)for(let o in t.items){let a=t.items[o];if(a.context===e.idBlock.tagNumber&&a.implicit&&typeof a.type=="function"&&lr.has(a.type)){let c=lr.get(a.type);if(c&&c.type===B.Sequence){let d=new $r;if("value"in e.valueBlock&&Array.isArray(e.valueBlock.value)&&"value"in d.valueBlock){d.valueBlock.value=e.valueBlock.value;let u=this.fromASN(d,a.type,i),l=new s;return l[o]=u,{result:l}}}}}else if(e.constructor===fr&&t.type!==B.Choice){let o=new fr({idBlock:{tagClass:3,tagNumber:e.idBlock.tagNumber},value:t.schema.valueBlock.value});for(let a in t.items)delete e[a];return{targetSchema:o}}return null}static handleSequenceTypes(e,t,s,n){if(t.type===B.Sequence){let i=_i({},e,n);if(!i.verified)throw new ko(`Data does not match to ${s.name} ASN1 schema.${i.result.error?` ${i.result.error}`:""}`);return i}else{let i=_i({},e,n);if(!i.verified)throw new ko(`Data does not match to ${s.name} ASN1 schema.${i.result.error?` ${i.result.error}`:""}`);return i}}static processRepeatedField(e,t,s){let n=e.slice(t);if(n.length===1&&n[0].constructor.name==="Sequence"){let i=n[0];i.valueBlock&&i.valueBlock.value&&Array.isArray(i.valueBlock.value)&&(n=i.valueBlock.value)}if(typeof s.type=="number"){let i=Ro(s.type);if(!i)throw new Error(`No converter for ASN.1 type ${s.type}`);return n.filter(o=>o&&o.valueBlock).map(o=>{try{return i.fromASN(o)}catch{return}}).filter(o=>o!==void 0)}else return n.filter(i=>i&&i.valueBlock).map(i=>{try{return this.fromASN(i,s.type)}catch{return}}).filter(i=>i!==void 0)}static processPrimitiveField(e,t){let s=Ro(t.type);if(!s)throw new Error(`No converter for ASN.1 type ${t.type}`);return s.fromASN(e)}static isOptionalChoiceField(e){return e.optional&&typeof e.type=="function"&&lr.has(e.type)&&lr.get(e.type).type===B.Choice}static processOptionalChoiceField(e,t){try{return{processed:!0,value:this.fromASN(e,t.type)}}catch(s){if(s instanceof ko&&/Wrong values for Choice type/.test(s.message))return{processed:!1};throw s}}static handleArrayTypes(e,t,s,n){if(!("value"in e.valueBlock&&Array.isArray(e.valueBlock.value)))throw new Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let i=t.itemType;if(typeof i=="number"){let o=Ro(i);if(!o)throw new Error(`Cannot get default converter for array item of ${s.name} ASN1 schema`);return s.from(e.valueBlock.value,a=>o.fromASN(a))}else return s.from(e.valueBlock.value,o=>this.fromASN(o,i,n))}static processSchemaItems(e,t,s,n){for(let i in e.items){let o=t.result[i];if(!o)continue;let a=e.items[i],c=a.type,d;typeof c=="number"||Vs(c)?d=this.processPrimitiveSchemaItem(o,a,c,n):d=this.processComplexSchemaItem(o,a,c,n),d&&typeof d=="object"&&"value"in d&&"raw"in d?(s[i]=d.value,s[`${i}Raw`]=d.raw):s[i]=d}}static processPrimitiveSchemaItem(e,t,s,n){let i=t.converter??(Vs(s)?new s:null);if(!i)throw new Error("Converter is empty");return t.repeated?this.processRepeatedPrimitiveItem(e,t,i,n):this.processSinglePrimitiveItem(e,t,s,i,n)}static processRepeatedPrimitiveItem(e,t,s,n){if(t.implicit){let i=t.repeated==="sequence"?$r:es,o=new i;o.valueBlock=e.valueBlock;let a=Ii(o.toBER(!1),n?.berOptions);if(a.offset===-1)throw new Error(`Cannot parse the child item. ${a.result.error}`);if(!("value"in a.result.valueBlock&&Array.isArray(a.result.valueBlock.value)))throw new Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let c=a.result.valueBlock.value;return Array.from(c,d=>s.fromASN(d))}else return Array.from(e,i=>s.fromASN(i))}static processSinglePrimitiveItem(e,t,s,n,i){let o=e;if(t.implicit){let a;if(Vs(s))a=new s().toSchema("");else{let c=_[s],d=jn[c];if(!d)throw new Error(`Cannot get '${c}' class from asn1js module`);a=new d}a.valueBlock=o.valueBlock,o=Ii(a.toBER(!1),i?.berOptions).result}return n.fromASN(o)}static processComplexSchemaItem(e,t,s,n){if(t.repeated){if(!Array.isArray(e))throw new Error("Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.");return Array.from(e,i=>this.fromASN(i,s,n))}else{let i=this.handleImplicitTagging(e,t,s);if(this.isOptionalChoiceField(t))try{return this.fromASN(i,s,n)}catch(o){if(o instanceof ko&&/Wrong values for Choice type/.test(o.message))return;throw o}else{let o=this.fromASN(i,s,n);return t.raw?{value:o,raw:e.valueBeforeDecodeView}:o}}}static handleImplicitTagging(e,t,s){if(t.implicit&&typeof t.context=="number"){let n=lr.get(s);if(n.type===B.Sequence){let i=new $r;if("value"in e.valueBlock&&Array.isArray(e.valueBlock.value)&&"value"in i.valueBlock)return i.valueBlock.value=e.valueBlock.value,i}else if(n.type===B.Set){let i=new es;if("value"in e.valueBlock&&Array.isArray(e.valueBlock.value)&&"value"in i.valueBlock)return i.valueBlock.value=e.valueBlock.value,i}}return e}}});var tl,r1=T(()=>{"use strict";Io();Cs();Zf();Qa();mm();xm();tl=class r{static serialize(e){return e instanceof ur?e.toBER(!1):this.toASN(e).toBER(!1)}static toASN(e){if(e&&typeof e=="object"&&Vs(e))return e.toASN();if(!(e&&typeof e=="object"))throw new TypeError("Parameter 1 should be type of Object.");let t=e.constructor,s=lr.get(t);lr.cache(t);let n=[];if(s.itemType){if(!Array.isArray(e))throw new TypeError("Parameter 1 should be type of Array.");if(typeof s.itemType=="number"){let o=Ro(s.itemType);if(!o)throw new Error(`Cannot get default converter for array item of ${t.name} ASN1 schema`);n=e.map(a=>o.toASN(a))}else n=e.map(o=>this.toAsnItem({type:s.itemType},"[]",t,o))}else for(let o in s.items){let a=s.items[o],c=e[o];if(c===void 0||a.defaultValue===c||typeof a.defaultValue=="object"&&typeof c=="object"&&l3(this.serialize(a.defaultValue),this.serialize(c)))continue;let d=r.toAsnItem(a,o,t,c);if(typeof a.context=="number")if(a.implicit)if(!a.repeated&&(typeof a.type=="number"||Vs(a.type))){let u={};u.valueHex=d instanceof nn?vr(d.valueBeforeDecodeView):d.valueBlock.toBER(),n.push(new Ci({optional:a.optional,idBlock:{tagClass:3,tagNumber:a.context},...u}))}else n.push(new fr({optional:a.optional,idBlock:{tagClass:3,tagNumber:a.context},value:d.valueBlock.value}));else n.push(new fr({optional:a.optional,idBlock:{tagClass:3,tagNumber:a.context},value:[d]}));else a.repeated?n=n.concat(d):n.push(d)}let i;switch(s.type){case B.Sequence:i=new $r({value:n});break;case B.Set:i=new es({value:n});break;case B.Choice:if(!n[0])throw new Error(`Schema '${t.name}' has wrong data. Choice cannot be empty.`);i=n[0];break}return i}static toAsnItem(e,t,s,n){let i;if(typeof e.type=="number"){let o=e.converter;if(!o)throw new Error(`Property '${t}' doesn't have converter for type ${_[e.type]} in schema '${s.name}'`);if(e.repeated){if(!Array.isArray(n))throw new TypeError("Parameter 'objProp' should be type of Array.");let a=Array.from(n,d=>o.toASN(d)),c=e.repeated==="sequence"?$r:es;i=new c({value:a})}else i=o.toASN(n)}else if(e.repeated){if(!Array.isArray(n))throw new TypeError("Parameter 'objProp' should be type of Array.");let o=Array.from(n,c=>this.toASN(c)),a=e.repeated==="sequence"?$r:es;i=new a({value:o})}else i=this.toASN(n);return i}}});var je,g3=T(()=>{"use strict";je=class extends Array{constructor(e=[]){if(typeof e=="number")super(e);else{super();for(let t of e)this.push(t)}}}});var he,x3=T(()=>{"use strict";Io();Cs();t1();r1();he=class r{static serialize(e){return tl.serialize(e)}static parse(e,t,s){return el.parse(e,t,s)}static toString(e,t){let s=Ri(e)?vr(e):r.serialize(e),n=Ii(s,t?.berOptions);if(n.offset===-1)throw new Error(`Cannot decode ASN.1 data. ${n.result.error}`);return n.result.toString()}}});var X=T(()=>{"use strict";Zf();Yb();p3();Qa();t1();r1();e1();g3();x3()});function p(r,e,t,s){var n=arguments.length,i=n<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(r,e,t,s);else for(var a=r.length-1;a>=0;a--)(o=r[a])&&(i=(n<3?o(i):n>3?o(e,t,i):o(e,t))||i);return n>3&&i&&Object.defineProperty(e,t,i),i}function ht(r,e,t,s){if(t==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?s:t==="a"?s.call(r):s?s.value:e.get(r)}function Gt(r,e,t,s,n){if(s==="m")throw new TypeError("Private method is not writable");if(s==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return s==="a"?n.call(r,t):n?n.value=t:e.set(r,t),t}var J=T(()=>{"use strict"});var s1=T(()=>{"use strict";Cs()});var jd={};mf(jd,{decode:()=>i1,encode:()=>n1,format:()=>S3,formats:()=>_3,hex:()=>FM,is:()=>v3,normalize:()=>rl,parse:()=>w3});function NM(r){return r.separators==="none"?[]:!r.separators||r.separators==="common"?BM:r.separators}function OM(r){if(!r)throw new TypeError("Hex separators must be non-empty strings")}function LM(r,e,t){for(let s of t)if(r.startsWith(s,e))return s}function DM(r){let e=/[A-F]/.test(r),t=/[a-f]/.test(r);return e&&!t?"upper":"lower"}function MM(r){let e=/\r\n|\n/.exec(r);if(e)return e[0]===`\r
|
|
23
|
-
`?`\r
|
|
24
|
-
`:`
|
|
25
|
-
`}function y3(r){return r.replace(/[^0-9a-f]/gi,"")}function UM(r){let e=r.match(/[0-9A-Fa-f]+|[^0-9A-Fa-f]+/g)??[];if(e.length<3)return;let t=e.filter((o,a)=>a%2===0),s=e.filter((o,a)=>a%2===1),n=s[0];if(!n||s.some(o=>o!==n)||t.some(o=>o.length===0||o.length%2!==0))return;let i=t[0]?.length??0;if(i&&!t.slice(0,-1).some(o=>o.length!==i)&&!((t[t.length-1]?.length??0)>i))return{size:i/2,separator:n}}function jM(r){let e=r.trim(),t=/^0x/i.test(e)?"0x":"",s=t?e.slice(2):e,n=MM(s),i=s.split(/\r\n|\n/).filter(d=>d.length>0),o=i[0]?.trim()??"",a=UM(o),c={case:DM(e),prefix:t};if(a&&(c.group=a),n&&i.length>1){let d=y3(i[0]??"").length/2;d>0&&i.slice(0,-1).every(u=>y3(u).length/2===d)&&(c.line={bytesPerLine:d,separator:n})}return c}function HM(r,e){let t=e.allowPrefix??!0,s=[...NM(e)].sort((a,c)=>c.length-a.length);for(let a of s)OM(a);let n=r.trim();if(/^0x/i.test(n)){if(!t)throw new TypeError("Hexadecimal text must not include a 0x prefix");n=n.slice(2)}let i="",o=!1;for(let a=0;a<n.length;){let c=n[a]??"";if(PM.test(c)){i+=c,o=!1,a+=1;continue}let d=LM(n,a,s);if(!d)throw new TypeError("Input is not valid hexadecimal text");if(e.strict&&(o||i.length===0))throw new TypeError("Hexadecimal text contains misplaced separators");o=!0,a+=d.length}if(e.strict&&o&&i.length>0)throw new TypeError("Hexadecimal text must not end with a separator");if(i.length%2!==0){if(!e.allowOddLength)throw new TypeError("Hexadecimal text must contain an even number of characters");i=`0${i}`}return i.toLowerCase()}function b3(r,e){if(!e)return r.join("");if(!Number.isInteger(e.size)||e.size<1)throw new RangeError("Hex group size must be a positive integer");let t=[];for(let s=0;s<r.length;s+=e.size)t.push(r.slice(s,s+e.size).join(""));return t.join(e.separator)}function rl(r,e={}){return HM(r,e)}function v3(r,e={}){if(typeof r!="string")return!1;try{return rl(r,e),!0}catch{return!1}}function n1(r,e={}){let t=qs(r),s=e.case??"lower",n=Array.from(t,o=>{let a=o.toString(16).padStart(2,"0");return s==="upper"?a.toUpperCase():a}),i="";if(e.line){let o=e.line.bytesPerLine;if(!Number.isInteger(o)||o<1)throw new RangeError("Hex bytesPerLine must be a positive integer");let a=e.line.separator??`
|
|
26
|
-
`,c=[];for(let d=0;d<n.length;d+=o)c.push(b3(n.slice(d,d+o),e.group));i=c.join(a)}else i=b3(n,e.group);return`${e.prefix??""}${i}`}function i1(r,e={}){let t=rl(r,e),s=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)s[n/2]=Number.parseInt(t.slice(n,n+2),16);return s}function w3(r,e={}){let t=rl(r,e);return{bytes:i1(t),format:jM(r),normalized:t}}function S3(r,e){return n1(r,e)}var PM,BM,_3,FM,E3=T(()=>{"use strict";Cs();PM=/^[0-9a-f]$/i,BM=[" "," ",`
|
|
27
|
-
`,"\r",":","-","."];_3={compact:Object.freeze({}),upper:Object.freeze({case:"upper"}),colon:Object.freeze({group:{size:1,separator:":"}}),colonUpper:Object.freeze({case:"upper",group:{size:1,separator:":"}}),groupsOf4:Object.freeze({group:{size:4,separator:" "}}),prefixed:Object.freeze({prefix:"0x"})},FM={encode:n1,decode:i1,format:S3,formats:_3,is:v3,normalize:rl,parse:w3}});var C3=T(()=>{"use strict";Cs()});var T3=T(()=>{"use strict";Cs()});var o1=T(()=>{"use strict";Cs();s1()});var A3=T(()=>{"use strict";o1()});var a1=T(()=>{"use strict";s1();E3();C3();T3();o1();A3()});var sl,I3=T(()=>{"use strict";a1();sl=class{static isIPv4(e){return/^(\d{1,3}\.){3}\d{1,3}$/.test(e)}static parseIPv4(e){let t=e.split(".");if(t.length!==4)throw new Error("Invalid IPv4 address");return t.map(s=>{let n=parseInt(s,10);if(isNaN(n)||n<0||n>255)throw new Error("Invalid IPv4 address part");return n})}static parseIPv6(e){let s=this.expandIPv6(e).split(":");if(s.length!==8)throw new Error("Invalid IPv6 address");return s.reduce((n,i)=>{let o=parseInt(i,16);if(isNaN(o)||o<0||o>65535)throw new Error("Invalid IPv6 address part");return n.push(o>>8&255),n.push(o&255),n},[])}static expandIPv6(e){if(!e.includes("::"))return e;let t=e.split("::");if(t.length>2)throw new Error("Invalid IPv6 address");let s=t[0]?t[0].split(":"):[],n=t[1]?t[1].split(":"):[],i=8-(s.length+n.length);if(i<0)throw new Error("Invalid IPv6 address");return[...s,...Array(i).fill("0"),...n].join(":")}static formatIPv6(e){let t=[];for(let s=0;s<16;s+=2)t.push((e[s]<<8|e[s+1]).toString(16));return this.compressIPv6(t.join(":"))}static compressIPv6(e){let t=e.split(":"),s=-1,n=0,i=-1,o=0;for(let a=0;a<t.length;a++)t[a]==="0"?(i===-1&&(i=a),o++):(o>n&&(s=i,n=o),i=-1,o=0);if(o>n&&(s=i,n=o),n>1){let a=t.slice(0,s).join(":"),c=t.slice(s+n).join(":");return`${a}::${c}`}return e}static parseCIDR(e){let[t,s]=e.split("/"),n=parseInt(s,10);if(this.isIPv4(t)){if(n<0||n>32)throw new Error("Invalid IPv4 prefix length");return[this.parseIPv4(t),n]}else{if(n<0||n>128)throw new Error("Invalid IPv6 prefix length");return[this.parseIPv6(t),n]}}static decodeIP(e){if(e.length===64&&parseInt(e,16)===0)return"::/0";if(e.length!==16)return e;let t=parseInt(e.slice(8),16).toString(2).split("").reduce((n,i)=>n+ +i,0),s=e.slice(0,8).replace(/(.{2})/g,n=>`${parseInt(n,16)}.`);return s=s.slice(0,-1),`${s}/${t}`}static toString(e){let t=new Uint8Array(e);if(t.length===4)return Array.from(t).join(".");if(t.length===16)return this.formatIPv6(t);if(t.length===8||t.length===32){let s=t.length/2,n=t.slice(0,s),i=t.slice(s);if(t.every(c=>c===0))return t.length===8?"0.0.0.0/0":"::/0";let a=i.reduce((c,d)=>c+(d.toString(2).match(/1/g)||[]).length,0);return t.length===8?`${Array.from(n).join(".")}/${a}`:`${this.formatIPv6(n)}/${a}`}return this.decodeIP(jd.encode(e))}static fromString(e){if(e.includes("/")){let[s,n]=this.parseCIDR(e),i=new Uint8Array(s.length),o=n;for(let c=0;c<i.length;c++)o>=8?(i[c]=255,o-=8):o>0&&(i[c]=255<<8-o,o=0);let a=new Uint8Array(s.length*2);return a.set(s,0),a.set(i,s.length),a.buffer}let t=this.isIPv4(e)?this.parseIPv4(e):this.parseIPv6(e);return new Uint8Array(t).buffer}}});var c1,d1,u1,hr,Hd,Ja,Po,f1,Ft,Fd=T(()=>{"use strict";J();X();a1();hr=class{teletexString;printableString;universalString;utf8String;bmpString;constructor(e={}){Object.assign(this,e)}toString(){return this.bmpString||this.printableString||this.teletexString||this.universalString||this.utf8String||""}};p([g({type:_.TeletexString})],hr.prototype,"teletexString",void 0);p([g({type:_.PrintableString})],hr.prototype,"printableString",void 0);p([g({type:_.UniversalString})],hr.prototype,"universalString",void 0);p([g({type:_.Utf8String})],hr.prototype,"utf8String",void 0);p([g({type:_.BmpString})],hr.prototype,"bmpString",void 0);hr=p([M({type:B.Choice})],hr);Hd=class extends hr{ia5String;anyValue;constructor(e={}){super(e),Object.assign(this,e)}toString(){return this.ia5String||(this.anyValue?jd.encode(this.anyValue):super.toString())}};p([g({type:_.IA5String})],Hd.prototype,"ia5String",void 0);p([g({type:_.Any})],Hd.prototype,"anyValue",void 0);Hd=p([M({type:B.Choice})],Hd);Ja=class{type="";value=new Hd;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Ja.prototype,"type",void 0);p([g({type:Hd})],Ja.prototype,"value",void 0);Po=c1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,c1.prototype)}};Po=c1=p([M({type:B.Set,itemType:Ja})],Po);f1=d1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,d1.prototype)}};f1=d1=p([M({type:B.Sequence,itemType:Po})],f1);Ft=u1=class extends f1{constructor(e){super(e),Object.setPrototypeOf(this,u1.prototype)}};Ft=u1=p([M({type:B.Sequence})],Ft)});var KM,Bo,nl,We,Za=T(()=>{"use strict";J();X();I3();Fd();KM={fromASN:r=>sl.toString(Ud.fromASN(r)),toASN:r=>Ud.toASN(sl.fromString(r))},Bo=class{typeId="";value=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Bo.prototype,"typeId",void 0);p([g({type:_.Any,context:0})],Bo.prototype,"value",void 0);nl=class{nameAssigner;partyName=new hr;constructor(e={}){Object.assign(this,e)}};p([g({type:hr,optional:!0,context:0,implicit:!0})],nl.prototype,"nameAssigner",void 0);p([g({type:hr,context:1,implicit:!0})],nl.prototype,"partyName",void 0);We=class{otherName;rfc822Name;dNSName;x400Address;directoryName;ediPartyName;uniformResourceIdentifier;iPAddress;registeredID;constructor(e={}){Object.assign(this,e)}};p([g({type:Bo,context:0,implicit:!0})],We.prototype,"otherName",void 0);p([g({type:_.IA5String,context:1,implicit:!0})],We.prototype,"rfc822Name",void 0);p([g({type:_.IA5String,context:2,implicit:!0})],We.prototype,"dNSName",void 0);p([g({type:_.Any,context:3,implicit:!0})],We.prototype,"x400Address",void 0);p([g({type:Ft,context:4,implicit:!1})],We.prototype,"directoryName",void 0);p([g({type:nl,context:5})],We.prototype,"ediPartyName",void 0);p([g({type:_.IA5String,context:6,implicit:!0})],We.prototype,"uniformResourceIdentifier",void 0);p([g({type:_.OctetString,context:7,implicit:!0,converter:KM})],We.prototype,"iPAddress",void 0);p([g({type:_.ObjectIdentifier,context:8,implicit:!0})],We.prototype,"registeredID",void 0);We=p([M({type:B.Choice})],We)});var No,Oo,R3,ec,ym,GW,XW,l1,h1,p1,m1,at,$t=T(()=>{"use strict";No="1.3.6.1.5.5.7",Oo=`${No}.1`,R3=`${No}.2`,ec=`${No}.3`,ym=`${No}.48`,GW=`${R3}.1`,XW=`${R3}.2`,l1=`${ym}.1`,h1=`${ym}.2`,p1=`${ym}.3`,m1=`${ym}.5`,at="2.5.29"});var g1,bm,ki,tc,x1=T(()=>{"use strict";J();X();Za();$t();bm=`${Oo}.1`,ki=class{accessMethod="";accessLocation=new We;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],ki.prototype,"accessMethod",void 0);p([g({type:We})],ki.prototype,"accessLocation",void 0);tc=g1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,g1.prototype)}};tc=g1=p([M({type:B.Sequence,itemType:ki})],tc)});var vm,rc,Fn,y1=T(()=>{"use strict";J();X();Za();$t();vm=`${at}.35`,rc=class extends qe{},Fn=class{keyIdentifier;authorityCertIssuer;authorityCertSerialNumber;constructor(e={}){e&&Object.assign(this,e)}};p([g({type:rc,context:0,optional:!0,implicit:!0})],Fn.prototype,"keyIdentifier",void 0);p([g({type:We,context:1,optional:!0,implicit:!0,repeated:"sequence"})],Fn.prototype,"authorityCertIssuer",void 0);p([g({type:_.Integer,context:2,optional:!0,implicit:!0,converter:Et})],Fn.prototype,"authorityCertSerialNumber",void 0)});var wm,sc,k3=T(()=>{"use strict";J();X();$t();wm=`${at}.19`,sc=class{cA=!1;pathLenConstraint;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Boolean,defaultValue:!1})],sc.prototype,"cA",void 0);p([g({type:_.Integer,optional:!0})],sc.prototype,"pathLenConstraint",void 0)});var b1,Xt,il=T(()=>{"use strict";J();X();Za();Xt=b1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,b1.prototype)}};Xt=b1=p([M({type:B.Sequence,itemType:We})],Xt)});var v1,WM,P3,B3=T(()=>{"use strict";J();X();il();$t();WM=`${at}.29`,P3=v1=class extends Xt{constructor(e){super(e),Object.setPrototypeOf(this,v1.prototype)}};P3=v1=p([M({type:B.Sequence})],P3)});var w1,_m,TG,Pi,ol,al,Sm,cl,nc,dl,N3=T(()=>{"use strict";J();X();$t();_m=`${at}.32`,TG=`${_m}.0`,Pi=class{ia5String;visibleString;bmpString;utf8String;constructor(e={}){Object.assign(this,e)}toString(){return this.ia5String||this.visibleString||this.bmpString||this.utf8String||""}};p([g({type:_.IA5String})],Pi.prototype,"ia5String",void 0);p([g({type:_.VisibleString})],Pi.prototype,"visibleString",void 0);p([g({type:_.BmpString})],Pi.prototype,"bmpString",void 0);p([g({type:_.Utf8String})],Pi.prototype,"utf8String",void 0);Pi=p([M({type:B.Choice})],Pi);ol=class{organization=new Pi;noticeNumbers=[];constructor(e={}){Object.assign(this,e)}};p([g({type:Pi})],ol.prototype,"organization",void 0);p([g({type:_.Integer,repeated:"sequence"})],ol.prototype,"noticeNumbers",void 0);al=class{noticeRef;explicitText;constructor(e={}){Object.assign(this,e)}};p([g({type:ol,optional:!0})],al.prototype,"noticeRef",void 0);p([g({type:Pi,optional:!0})],al.prototype,"explicitText",void 0);Sm=class{cPSuri;userNotice;constructor(e={}){Object.assign(this,e)}};p([g({type:_.IA5String})],Sm.prototype,"cPSuri",void 0);p([g({type:al})],Sm.prototype,"userNotice",void 0);Sm=p([M({type:B.Choice})],Sm);cl=class{policyQualifierId="";qualifier=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],cl.prototype,"policyQualifierId",void 0);p([g({type:_.Any})],cl.prototype,"qualifier",void 0);nc=class{policyIdentifier="";policyQualifiers;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],nc.prototype,"policyIdentifier",void 0);p([g({type:cl,repeated:"sequence",optional:!0})],nc.prototype,"policyQualifiers",void 0);dl=w1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,w1.prototype)}};dl=w1=p([M({type:B.Sequence,itemType:nc})],dl)});var OG,ul,S1=T(()=>{"use strict";J();X();$t();OG=`${at}.20`,ul=class{value;constructor(e=0){this.value=e}};p([g({type:_.Integer})],ul.prototype,"value",void 0);ul=p([M({type:B.Choice})],ul)});var FG,O3,L3=T(()=>{"use strict";J();X();$t();S1();FG=`${at}.27`,O3=class extends ul{};O3=p([M({type:B.Choice})],O3)});var _1,Em,cn,fl,Bi,qn,Lo,Cm=T(()=>{"use strict";J();X();Fd();Za();$t();Em=`${at}.31`;(function(r){r[r.unused=1]="unused",r[r.keyCompromise=2]="keyCompromise",r[r.cACompromise=4]="cACompromise",r[r.affiliationChanged=8]="affiliationChanged",r[r.superseded=16]="superseded",r[r.cessationOfOperation=32]="cessationOfOperation",r[r.certificateHold=64]="certificateHold",r[r.privilegeWithdrawn=128]="privilegeWithdrawn",r[r.aACompromise=256]="aACompromise"})(cn||(cn={}));fl=class extends Hn{toJSON(){let e=[],t=this.toNumber();return t&cn.aACompromise&&e.push("aACompromise"),t&cn.affiliationChanged&&e.push("affiliationChanged"),t&cn.cACompromise&&e.push("cACompromise"),t&cn.certificateHold&&e.push("certificateHold"),t&cn.cessationOfOperation&&e.push("cessationOfOperation"),t&cn.keyCompromise&&e.push("keyCompromise"),t&cn.privilegeWithdrawn&&e.push("privilegeWithdrawn"),t&cn.superseded&&e.push("superseded"),t&cn.unused&&e.push("unused"),e}toString(){return`[${this.toJSON().join(", ")}]`}},Bi=class{fullName;nameRelativeToCRLIssuer;constructor(e={}){Object.assign(this,e)}};p([g({type:We,context:0,repeated:"sequence",implicit:!0})],Bi.prototype,"fullName",void 0);p([g({type:Po,context:1,implicit:!0})],Bi.prototype,"nameRelativeToCRLIssuer",void 0);Bi=p([M({type:B.Choice})],Bi);qn=class{distributionPoint;reasons;cRLIssuer;constructor(e={}){Object.assign(this,e)}};p([g({type:Bi,context:0,optional:!0})],qn.prototype,"distributionPoint",void 0);p([g({type:fl,context:1,optional:!0,implicit:!0})],qn.prototype,"reasons",void 0);p([g({type:We,context:2,optional:!0,repeated:"sequence",implicit:!0})],qn.prototype,"cRLIssuer",void 0);Lo=_1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,_1.prototype)}};Lo=_1=p([M({type:B.Sequence,itemType:qn})],Lo)});var E1,rX,D3,M3=T(()=>{"use strict";J();X();$t();Cm();rX=`${at}.46`,D3=E1=class extends Lo{constructor(e){super(e),Object.setPrototypeOf(this,E1.prototype)}};D3=E1=p([M({type:B.Sequence,itemType:qn})],D3)});var dX,$s,U3=T(()=>{"use strict";J();X();$t();Cm();dX=`${at}.28`,$s=class r{static ONLY=!1;distributionPoint;onlyContainsUserCerts=r.ONLY;onlyContainsCACerts=r.ONLY;onlySomeReasons;indirectCRL=r.ONLY;onlyContainsAttributeCerts=r.ONLY;constructor(e={}){Object.assign(this,e)}};p([g({type:Bi,context:0,optional:!0})],$s.prototype,"distributionPoint",void 0);p([g({type:_.Boolean,context:1,defaultValue:$s.ONLY,implicit:!0})],$s.prototype,"onlyContainsUserCerts",void 0);p([g({type:_.Boolean,context:2,defaultValue:$s.ONLY,implicit:!0})],$s.prototype,"onlyContainsCACerts",void 0);p([g({type:fl,context:3,optional:!0,implicit:!0})],$s.prototype,"onlySomeReasons",void 0);p([g({type:_.Boolean,context:4,defaultValue:$s.ONLY,implicit:!0})],$s.prototype,"indirectCRL",void 0);p([g({type:_.Boolean,context:5,defaultValue:$s.ONLY,implicit:!0})],$s.prototype,"onlyContainsAttributeCerts",void 0)});var j3,ll,hl,H3=T(()=>{"use strict";J();X();$t();j3=`${at}.21`;(function(r){r[r.unspecified=0]="unspecified",r[r.keyCompromise=1]="keyCompromise",r[r.cACompromise=2]="cACompromise",r[r.affiliationChanged=3]="affiliationChanged",r[r.superseded=4]="superseded",r[r.cessationOfOperation=5]="cessationOfOperation",r[r.certificateHold=6]="certificateHold",r[r.removeFromCRL=8]="removeFromCRL",r[r.privilegeWithdrawn=9]="privilegeWithdrawn",r[r.aACompromise=10]="aACompromise"})(ll||(ll={}));hl=class{reason=ll.unspecified;constructor(e=ll.unspecified){this.reason=e}toJSON(){return ll[this.reason]}toString(){return this.toJSON()}};p([g({type:_.Enumerated})],hl.prototype,"reason",void 0);hl=p([M({type:B.Choice})],hl)});var C1,Tm,pl,vX,F3,q3,z3,V3,$3,K3,W3=T(()=>{"use strict";J();X();$t();Tm=`${at}.37`,pl=C1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,C1.prototype)}};pl=C1=p([M({type:B.Sequence,itemType:_.ObjectIdentifier})],pl);vX=`${Tm}.0`,F3=`${ec}.1`,q3=`${ec}.2`,z3=`${ec}.3`,V3=`${ec}.4`,$3=`${ec}.8`,K3=`${ec}.9`});var CX,T1,G3=T(()=>{"use strict";J();X();$t();CX=`${at}.54`,T1=class{value;constructor(e=new ArrayBuffer(0)){this.value=e}};p([g({type:_.Integer,converter:Et})],T1.prototype,"value",void 0);T1=p([M({type:B.Choice})],T1)});var X3,ml,Y3=T(()=>{"use strict";J();X();$t();X3=`${at}.24`,ml=class{value=new Date;constructor(e){e&&(this.value=e)}};p([g({type:_.GeneralizedTime})],ml.prototype,"value",void 0);ml=p([M({type:B.Choice})],ml)});var A1,I1,Q3,J3=T(()=>{"use strict";J();X();il();$t();I1=`${at}.18`,Q3=A1=class extends Xt{constructor(e){super(e),Object.setPrototypeOf(this,A1.prototype)}};Q3=A1=p([M({type:B.Sequence})],Q3)});var Am,dn,qd,Z3=T(()=>{"use strict";X();$t();Am=`${at}.15`;(function(r){r[r.digitalSignature=1]="digitalSignature",r[r.nonRepudiation=2]="nonRepudiation",r[r.keyEncipherment=4]="keyEncipherment",r[r.dataEncipherment=8]="dataEncipherment",r[r.keyAgreement=16]="keyAgreement",r[r.keyCertSign=32]="keyCertSign",r[r.cRLSign=64]="cRLSign",r[r.encipherOnly=128]="encipherOnly",r[r.decipherOnly=256]="decipherOnly"})(dn||(dn={}));qd=class extends Hn{toJSON(){let e=this.toNumber(),t=[];return e&dn.cRLSign&&t.push("crlSign"),e&dn.dataEncipherment&&t.push("dataEncipherment"),e&dn.decipherOnly&&t.push("decipherOnly"),e&dn.digitalSignature&&t.push("digitalSignature"),e&dn.encipherOnly&&t.push("encipherOnly"),e&dn.keyAgreement&&t.push("keyAgreement"),e&dn.keyCertSign&&t.push("keyCertSign"),e&dn.keyEncipherment&&t.push("keyEncipherment"),e&dn.nonRepudiation&&t.push("nonRepudiation"),t}toString(){return`[${this.toJSON().join(", ")}]`}}});var R1,KX,zd,Im,Rm,e4=T(()=>{"use strict";J();X();Za();$t();KX=`${at}.30`,zd=class{base=new We;minimum=0;maximum;constructor(e={}){Object.assign(this,e)}};p([g({type:We})],zd.prototype,"base",void 0);p([g({type:_.Integer,context:0,defaultValue:0,implicit:!0})],zd.prototype,"minimum",void 0);p([g({type:_.Integer,context:1,optional:!0,implicit:!0})],zd.prototype,"maximum",void 0);Im=R1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,R1.prototype)}};Im=R1=p([M({type:B.Sequence,itemType:zd})],Im);Rm=class{permittedSubtrees;excludedSubtrees;constructor(e={}){Object.assign(this,e)}};p([g({type:Im,context:0,optional:!0,implicit:!0})],Rm.prototype,"permittedSubtrees",void 0);p([g({type:Im,context:1,optional:!0,implicit:!0})],Rm.prototype,"excludedSubtrees",void 0)});var JX,km,t4=T(()=>{"use strict";J();X();$t();JX=`${at}.36`,km=class{requireExplicitPolicy;inhibitPolicyMapping;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer,context:0,implicit:!0,optional:!0,converter:Et})],km.prototype,"requireExplicitPolicy",void 0);p([g({type:_.Integer,context:1,implicit:!0,optional:!0,converter:Et})],km.prototype,"inhibitPolicyMapping",void 0)});var k1,sY,gl,r4,s4=T(()=>{"use strict";J();X();$t();sY=`${at}.33`,gl=class{issuerDomainPolicy="";subjectDomainPolicy="";constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],gl.prototype,"issuerDomainPolicy",void 0);p([g({type:_.ObjectIdentifier})],gl.prototype,"subjectDomainPolicy",void 0);r4=k1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,k1.prototype)}};r4=k1=p([M({type:B.Sequence,itemType:gl})],r4)});var P1,B1,Pm,n4=T(()=>{"use strict";J();X();il();$t();B1=`${at}.17`,Pm=P1=class extends Xt{constructor(e){super(e),Object.setPrototypeOf(this,P1.prototype)}};Pm=P1=p([M({type:B.Sequence})],Pm)});var Ir,N1=T(()=>{"use strict";J();X();Ir=class{type="";values=[];constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Ir.prototype,"type",void 0);p([g({type:_.Any,repeated:"set"})],Ir.prototype,"values",void 0)});var O1,bY,i4,o4=T(()=>{"use strict";J();X();N1();$t();bY=`${at}.9`,i4=O1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,O1.prototype)}};i4=O1=p([M({type:B.Sequence,itemType:Ir})],i4)});var L1,us,a4=T(()=>{"use strict";$t();y1();L1=`${at}.14`,us=class extends rc{}});var IY,Bm,c4=T(()=>{"use strict";J();X();$t();IY=`${at}.16`,Bm=class{notBefore;notAfter;constructor(e={}){Object.assign(this,e)}};p([g({type:_.GeneralizedTime,context:0,implicit:!0,optional:!0})],Bm.prototype,"notBefore",void 0);p([g({type:_.GeneralizedTime,context:1,implicit:!0,optional:!0})],Bm.prototype,"notAfter",void 0)});var xl,Nm,Om,d4=T(()=>{"use strict";J();X();(function(r){r[r.keyUpdateAllowed=1]="keyUpdateAllowed",r[r.newExtensions=2]="newExtensions",r[r.pKIXCertificate=4]="pKIXCertificate"})(xl||(xl={}));Nm=class extends Hn{toJSON(){let e=[],t=this.toNumber();return t&xl.pKIXCertificate&&e.push("pKIXCertificate"),t&xl.newExtensions&&e.push("newExtensions"),t&xl.keyUpdateAllowed&&e.push("keyUpdateAllowed"),e}toString(){return`[${this.toJSON().join(", ")}]`}},Om=class{entrustVers="";entrustInfoFlags=new Nm;constructor(e={}){Object.assign(this,e)}};p([g({type:_.GeneralString})],Om.prototype,"entrustVers",void 0);p([g({type:Nm})],Om.prototype,"entrustInfoFlags",void 0)});var D1,MY,u4,f4=T(()=>{"use strict";J();X();$t();x1();MY=`${Oo}.11`,u4=D1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,D1.prototype)}};u4=D1=p([M({type:B.Sequence,itemType:ki})],u4)});var l4=T(()=>{"use strict";x1();y1();k3();B3();N3();L3();Cm();M3();U3();S1();H3();W3();G3();Y3();J3();Z3();e4();t4();s4();n4();o4();a4();c4();d4();f4()});var ue,ic=T(()=>{"use strict";J();X();Cs();ue=class r{algorithm="";parameters;constructor(e={}){Object.assign(this,e)}isEqual(e){return e instanceof r&&e.algorithm==this.algorithm&&(e.parameters&&this.parameters&&Xb(e.parameters,this.parameters)||e.parameters===this.parameters)}};p([g({type:_.ObjectIdentifier})],ue.prototype,"algorithm",void 0);p([g({type:_.Any,optional:!0})],ue.prototype,"parameters",void 0)});var Rr,M1=T(()=>{"use strict";J();X();ic();Rr=class{algorithm=new ue;subjectPublicKey=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:ue})],Rr.prototype,"algorithm",void 0);p([g({type:_.BitString})],Rr.prototype,"subjectPublicKey",void 0)});var or,Lm=T(()=>{"use strict";J();X();or=class{utcTime;generalTime;constructor(e){if(e)if(typeof e=="string"||typeof e=="number"||e instanceof Date){let t=new Date(e);t.setMilliseconds(0),t.getUTCFullYear()>2049?this.generalTime=t:this.utcTime=t}else Object.assign(this,e)}getTime(){let e=this.utcTime||this.generalTime;if(!e)throw new Error("Cannot get time from CHOICE object");return e}};p([g({type:_.UTCTime})],or.prototype,"utcTime",void 0);p([g({type:_.GeneralizedTime})],or.prototype,"generalTime",void 0);or=p([M({type:B.Choice})],or)});var Ni,U1=T(()=>{"use strict";J();X();Lm();Ni=class{notBefore=new or(new Date);notAfter=new or(new Date);constructor(e){e&&(this.notBefore=new or(e.notBefore),this.notAfter=new or(e.notAfter))}};p([g({type:or})],Ni.prototype,"notBefore",void 0);p([g({type:or})],Ni.prototype,"notAfter",void 0)});var j1,Kr,Ts,Dm=T(()=>{"use strict";J();X();Kr=class r{static CRITICAL=!1;extnID="";critical=r.CRITICAL;extnValue=new qe;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Kr.prototype,"extnID",void 0);p([g({type:_.Boolean,defaultValue:Kr.CRITICAL})],Kr.prototype,"critical",void 0);p([g({type:qe})],Kr.prototype,"extnValue",void 0);Ts=j1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,j1.prototype)}};Ts=j1=p([M({type:B.Sequence,itemType:Kr})],Ts)});var zn,H1=T(()=>{"use strict";(function(r){r[r.v1=0]="v1",r[r.v2=1]="v2",r[r.v3=2]="v3"})(zn||(zn={}))});var kr,F1=T(()=>{"use strict";J();X();ic();Fd();M1();U1();Dm();H1();kr=class{version=zn.v1;serialNumber=new ArrayBuffer(0);signature=new ue;issuer=new Ft;validity=new Ni;subject=new Ft;subjectPublicKeyInfo=new Rr;issuerUniqueID;subjectUniqueID;extensions;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer,context:0,defaultValue:zn.v1})],kr.prototype,"version",void 0);p([g({type:_.Integer,converter:Et})],kr.prototype,"serialNumber",void 0);p([g({type:ue})],kr.prototype,"signature",void 0);p([g({type:Ft})],kr.prototype,"issuer",void 0);p([g({type:Ni})],kr.prototype,"validity",void 0);p([g({type:Ft})],kr.prototype,"subject",void 0);p([g({type:Rr})],kr.prototype,"subjectPublicKeyInfo",void 0);p([g({type:_.BitString,context:1,implicit:!0,optional:!0})],kr.prototype,"issuerUniqueID",void 0);p([g({type:_.BitString,context:2,implicit:!0,optional:!0})],kr.prototype,"subjectUniqueID",void 0);p([g({type:Ts,context:3,optional:!0})],kr.prototype,"extensions",void 0)});var Ks,h4=T(()=>{"use strict";J();X();ic();F1();Ks=class{tbsCertificate=new kr;tbsCertificateRaw;signatureAlgorithm=new ue;signatureValue=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:kr,raw:!0})],Ks.prototype,"tbsCertificate",void 0);p([g({type:ue})],Ks.prototype,"signatureAlgorithm",void 0);p([g({type:_.BitString})],Ks.prototype,"signatureValue",void 0)});var oc,As,q1=T(()=>{"use strict";J();X();ic();Fd();Lm();Dm();oc=class{userCertificate=new ArrayBuffer(0);revocationDate=new or;crlEntryExtensions;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer,converter:Et})],oc.prototype,"userCertificate",void 0);p([g({type:or})],oc.prototype,"revocationDate",void 0);p([g({type:Kr,optional:!0,repeated:"sequence"})],oc.prototype,"crlEntryExtensions",void 0);As=class{version;signature=new ue;issuer=new Ft;thisUpdate=new or;nextUpdate;revokedCertificates;crlExtensions;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer,optional:!0})],As.prototype,"version",void 0);p([g({type:ue})],As.prototype,"signature",void 0);p([g({type:Ft})],As.prototype,"issuer",void 0);p([g({type:or})],As.prototype,"thisUpdate",void 0);p([g({type:or,optional:!0})],As.prototype,"nextUpdate",void 0);p([g({type:oc,repeated:"sequence",optional:!0})],As.prototype,"revokedCertificates",void 0);p([g({type:Kr,optional:!0,context:0,repeated:"sequence"})],As.prototype,"crlExtensions",void 0)});var ac,p4=T(()=>{"use strict";J();X();ic();q1();ac=class{tbsCertList=new As;tbsCertListRaw;signatureAlgorithm=new ue;signature=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:As,raw:!0})],ac.prototype,"tbsCertList",void 0);p([g({type:ue})],ac.prototype,"signatureAlgorithm",void 0);p([g({type:_.BitString})],ac.prototype,"signature",void 0)});var Ct=T(()=>{"use strict";l4();ic();N1();h4();p4();Dm();Za();il();Fd();$t();M1();q1();F1();Lm();H1();U1()});var un,yl=T(()=>{"use strict";J();X();Ct();un=class{issuer=new Ft;serialNumber=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:Ft})],un.prototype,"issuer",void 0);p([g({type:_.Integer,converter:Et})],un.prototype,"serialNumber",void 0)});var cc,z1=T(()=>{"use strict";J();X();Ct();yl();cc=class{subjectKeyIdentifier;issuerAndSerialNumber;constructor(e={}){Object.assign(this,e)}};p([g({type:us,context:0,implicit:!0})],cc.prototype,"subjectKeyIdentifier",void 0);p([g({type:un})],cc.prototype,"issuerAndSerialNumber",void 0);cc=p([M({type:B.Choice})],cc)});var Pr,dc,bl,fs,vl,g4,Mm,Vn=T(()=>{"use strict";J();Ct();X();(function(r){r[r.v0=0]="v0",r[r.v1=1]="v1",r[r.v2=2]="v2",r[r.v3=3]="v3",r[r.v4=4]="v4",r[r.v5=5]="v5"})(Pr||(Pr={}));dc=class extends ue{};dc=p([M({type:B.Sequence})],dc);bl=class extends ue{};bl=p([M({type:B.Sequence})],bl);fs=class extends ue{};fs=p([M({type:B.Sequence})],fs);vl=class extends ue{};vl=p([M({type:B.Sequence})],vl);g4=class extends ue{};g4=p([M({type:B.Sequence})],g4);Mm=class extends ue{};Mm=p([M({type:B.Sequence})],Mm)});var fn,Um=T(()=>{"use strict";J();X();fn=class{attrType="";attrValues=[];constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],fn.prototype,"attrType",void 0);p([g({type:_.Any,repeated:"set"})],fn.prototype,"attrValues",void 0)});var V1,ls,wl,jm=T(()=>{"use strict";J();X();z1();Vn();Um();ls=class{version=Pr.v0;sid=new cc;digestAlgorithm=new dc;signedAttrs;signedAttrsRaw;signatureAlgorithm=new bl;signature=new qe;unsignedAttrs;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],ls.prototype,"version",void 0);p([g({type:cc})],ls.prototype,"sid",void 0);p([g({type:dc})],ls.prototype,"digestAlgorithm",void 0);p([g({type:fn,repeated:"set",context:0,implicit:!0,optional:!0,raw:!0})],ls.prototype,"signedAttrs",void 0);p([g({type:bl})],ls.prototype,"signatureAlgorithm",void 0);p([g({type:qe})],ls.prototype,"signature",void 0);p([g({type:fn,repeated:"set",context:1,implicit:!0,optional:!0})],ls.prototype,"unsignedAttrs",void 0);wl=V1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,V1.prototype)}};wl=V1=p([M({type:B.Set,itemType:ls})],wl)});var x4,y4=T(()=>{"use strict";J();X();jm();x4=class extends ls{};x4=p([M({type:B.Sequence})],x4)});var b4=T(()=>{"use strict";X()});var v4,w4=T(()=>{"use strict";J();Ct();X();v4=class extends or{};v4=p([M({type:B.Choice})],v4)});var S4=T(()=>{"use strict";y4();b4();w4()});var Sl,_4=T(()=>{"use strict";J();X();Ct();Sl=class{acIssuer=new We;acSerial=0;attrs=[];constructor(e={}){Object.assign(this,e)}};p([g({type:We})],Sl.prototype,"acIssuer",void 0);p([g({type:_.Integer})],Sl.prototype,"acSerial",void 0);p([g({type:Ir,repeated:"sequence"})],Sl.prototype,"attrs",void 0)});var $1,_l,K1=T(()=>{"use strict";J();X();_l=$1=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,$1.prototype)}};_l=$1=p([M({type:B.Sequence,itemType:_.ObjectIdentifier})],_l)});var Vd,E4=T(()=>{"use strict";J();X();K1();Vd=class{pathLenConstraint;permittedAttrs;excludedAttrs;permitUnSpecified=!0;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer,optional:!0})],Vd.prototype,"pathLenConstraint",void 0);p([g({type:_l,implicit:!0,context:0,optional:!0})],Vd.prototype,"permittedAttrs",void 0);p([g({type:_l,implicit:!0,context:1,optional:!0})],Vd.prototype,"excludedAttrs",void 0);p([g({type:_.Boolean,defaultValue:!0})],Vd.prototype,"permitUnSpecified",void 0)});var Ws,El=T(()=>{"use strict";J();X();Ct();Ws=class{issuer=new Xt;serial=new ArrayBuffer(0);issuerUID=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:Xt})],Ws.prototype,"issuer",void 0);p([g({type:_.Integer,converter:Et})],Ws.prototype,"serial",void 0);p([g({type:_.BitString,optional:!0})],Ws.prototype,"issuerUID",void 0)});var W1,Gs,Cl=T(()=>{"use strict";J();X();Ct();(function(r){r[r.publicKey=0]="publicKey",r[r.publicKeyCert=1]="publicKeyCert",r[r.otherObjectTypes=2]="otherObjectTypes"})(W1||(W1={}));Gs=class{digestedObjectType=W1.publicKey;otherObjectTypeID;digestAlgorithm=new ue;objectDigest=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.Enumerated})],Gs.prototype,"digestedObjectType",void 0);p([g({type:_.ObjectIdentifier,optional:!0})],Gs.prototype,"otherObjectTypeID",void 0);p([g({type:ue})],Gs.prototype,"digestAlgorithm",void 0);p([g({type:_.BitString})],Gs.prototype,"objectDigest",void 0)});var uc,G1=T(()=>{"use strict";J();X();Ct();El();Cl();uc=class{issuerName;baseCertificateID;objectDigestInfo;constructor(e={}){Object.assign(this,e)}};p([g({type:Xt,optional:!0})],uc.prototype,"issuerName",void 0);p([g({type:Ws,context:0,implicit:!0,optional:!0})],uc.prototype,"baseCertificateID",void 0);p([g({type:Gs,context:1,implicit:!0,optional:!0})],uc.prototype,"objectDigestInfo",void 0)});var fc,X1=T(()=>{"use strict";J();X();Ct();G1();fc=class{v1Form;v2Form;constructor(e={}){Object.assign(this,e)}};p([g({type:We,repeated:"sequence"})],fc.prototype,"v1Form",void 0);p([g({type:uc,context:0,implicit:!0})],fc.prototype,"v2Form",void 0);fc=p([M({type:B.Choice})],fc)});var lc,Y1=T(()=>{"use strict";J();X();lc=class{notBeforeTime=new Date;notAfterTime=new Date;constructor(e={}){Object.assign(this,e)}};p([g({type:_.GeneralizedTime})],lc.prototype,"notBeforeTime",void 0);p([g({type:_.GeneralizedTime})],lc.prototype,"notAfterTime",void 0)});var Do,Q1=T(()=>{"use strict";J();X();Ct();El();Cl();Do=class{baseCertificateID;entityName;objectDigestInfo;constructor(e={}){Object.assign(this,e)}};p([g({type:Ws,implicit:!0,context:0,optional:!0})],Do.prototype,"baseCertificateID",void 0);p([g({type:Xt,implicit:!0,context:1,optional:!0})],Do.prototype,"entityName",void 0);p([g({type:Gs,implicit:!0,context:2,optional:!0})],Do.prototype,"objectDigestInfo",void 0)});var J1,hs,Z1=T(()=>{"use strict";J();X();Ct();Q1();X1();Y1();(function(r){r[r.v2=1]="v2"})(J1||(J1={}));hs=class{version=J1.v2;holder=new Do;issuer=new fc;signature=new ue;serialNumber=new ArrayBuffer(0);attrCertValidityPeriod=new lc;attributes=[];issuerUniqueID;extensions;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],hs.prototype,"version",void 0);p([g({type:Do})],hs.prototype,"holder",void 0);p([g({type:fc})],hs.prototype,"issuer",void 0);p([g({type:ue})],hs.prototype,"signature",void 0);p([g({type:_.Integer,converter:Et})],hs.prototype,"serialNumber",void 0);p([g({type:lc})],hs.prototype,"attrCertValidityPeriod",void 0);p([g({type:Ir,repeated:"sequence"})],hs.prototype,"attributes",void 0);p([g({type:_.BitString,optional:!0})],hs.prototype,"issuerUniqueID",void 0);p([g({type:Ts,optional:!0})],hs.prototype,"extensions",void 0)});var hc,C4=T(()=>{"use strict";J();X();Ct();Z1();hc=class{acinfo=new hs;signatureAlgorithm=new ue;signatureValue=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:hs})],hc.prototype,"acinfo",void 0);p([g({type:ue})],hc.prototype,"signatureAlgorithm",void 0);p([g({type:_.BitString})],hc.prototype,"signatureValue",void 0)});var Tl,$d,ev=T(()=>{"use strict";X();(function(r){r[r.unmarked=1]="unmarked",r[r.unclassified=2]="unclassified",r[r.restricted=4]="restricted",r[r.confidential=8]="confidential",r[r.secret=16]="secret",r[r.topSecret=32]="topSecret"})(Tl||(Tl={}));$d=class extends Hn{}});var Kd,tv=T(()=>{"use strict";J();X();Kd=class{type="";value=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier,implicit:!0,context:0})],Kd.prototype,"type",void 0);p([g({type:_.Any,implicit:!0,context:1})],Kd.prototype,"value",void 0)});var Al,T4=T(()=>{"use strict";J();X();ev();tv();Al=class{policyId="";classList=new $d(Tl.unclassified);securityCategories;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Al.prototype,"policyId",void 0);p([g({type:$d,defaultValue:new $d(Tl.unclassified)})],Al.prototype,"classList",void 0);p([g({type:Kd,repeated:"set"})],Al.prototype,"securityCategories",void 0)});var Wd,Hm,A4=T(()=>{"use strict";J();X();Ct();Wd=class{cotets;oid;string;constructor(e={}){Object.assign(this,e)}};p([g({type:qe})],Wd.prototype,"cotets",void 0);p([g({type:_.ObjectIdentifier})],Wd.prototype,"oid",void 0);p([g({type:_.Utf8String})],Wd.prototype,"string",void 0);Hm=class{policyAuthority;values=[];constructor(e={}){Object.assign(this,e)}};p([g({type:Xt,implicit:!0,context:0,optional:!0})],Hm.prototype,"policyAuthority",void 0);p([g({type:Wd,repeated:"sequence"})],Hm.prototype,"values",void 0)});var Aee,Iee,Ree,kee,Il,Pee,Bee,Nee,Oee,Lee,rv,Dee,I4=T(()=>{"use strict";Ct();Aee=`${Oo}.4`,Iee=`${Oo}.6`,Ree=`${Oo}.10`,kee=`${at}.55`,Il=`${No}.10`,Pee=`${Il}.1`,Bee=`${Il}.2`,Nee=`${Il}.3`,Oee=`${Il}.4`,Lee=`${Il}.6`,rv="2.5.4",Dee=`${rv}.72`});var sv,Gd,Xd,Fm,nv=T(()=>{"use strict";J();X();Ct();El();Cl();Gd=class{targetCertificate=new Ws;targetName;certDigestInfo;constructor(e={}){Object.assign(this,e)}};p([g({type:Ws})],Gd.prototype,"targetCertificate",void 0);p([g({type:We,optional:!0})],Gd.prototype,"targetName",void 0);p([g({type:Gs,optional:!0})],Gd.prototype,"certDigestInfo",void 0);Xd=class{targetName;targetGroup;targetCert;constructor(e={}){Object.assign(this,e)}};p([g({type:We,context:0,implicit:!0})],Xd.prototype,"targetName",void 0);p([g({type:We,context:1,implicit:!0})],Xd.prototype,"targetGroup",void 0);p([g({type:Gd,context:2,implicit:!0})],Xd.prototype,"targetCert",void 0);Xd=p([M({type:B.Choice})],Xd);Fm=sv=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,sv.prototype)}};Fm=sv=p([M({type:B.Sequence,itemType:Xd})],Fm)});var iv,R4,k4=T(()=>{"use strict";J();X();nv();R4=iv=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,iv.prototype)}};R4=iv=p([M({type:B.Sequence,itemType:Fm})],R4)});var qm,P4=T(()=>{"use strict";J();X();Ct();qm=class{roleAuthority;roleName;constructor(e={}){Object.assign(this,e)}};p([g({type:Xt,implicit:!0,context:0,optional:!0})],qm.prototype,"roleAuthority",void 0);p([g({type:We,implicit:!0,context:1})],qm.prototype,"roleName",void 0)});var Rl,B4=T(()=>{"use strict";J();X();Ct();Rl=class{service=new We;ident=new We;authInfo;constructor(e={}){Object.assign(this,e)}};p([g({type:We})],Rl.prototype,"service",void 0);p([g({type:We})],Rl.prototype,"ident",void 0);p([g({type:qe,optional:!0})],Rl.prototype,"authInfo",void 0)});var ov=T(()=>{"use strict";_4();E4();X1();Y1();K1();C4();Z1();ev();T4();Q1();A4();El();Cl();I4();k4();P4();tv();B4();nv();G1()});var av,kl,pc,mc,zm=T(()=>{"use strict";J();X();Ct();ov();kl=class{otherCertFormat="";otherCert=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],kl.prototype,"otherCertFormat",void 0);p([g({type:_.Any})],kl.prototype,"otherCert",void 0);pc=class{certificate;v2AttrCert;other;constructor(e={}){Object.assign(this,e)}};p([g({type:Ks})],pc.prototype,"certificate",void 0);p([g({type:hc,context:2,implicit:!0})],pc.prototype,"v2AttrCert",void 0);p([g({type:kl,context:3,implicit:!0})],pc.prototype,"other",void 0);pc=p([M({type:B.Choice})],pc);mc=av=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,av.prototype)}};mc=av=p([M({type:B.Set,itemType:pc})],mc)});var Xs,N4=T(()=>{"use strict";J();X();Xs=class{contentType="";content=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Xs.prototype,"contentType",void 0);p([g({type:_.Any,context:0})],Xs.prototype,"content",void 0)});var Yd,gc,cv=T(()=>{"use strict";J();X();Yd=class{single;any;constructor(e={}){Object.assign(this,e)}};p([g({type:qe})],Yd.prototype,"single",void 0);p([g({type:_.Any})],Yd.prototype,"any",void 0);Yd=p([M({type:B.Choice})],Yd);gc=class{eContentType="";eContent;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],gc.prototype,"eContentType",void 0);p([g({type:Yd,context:0,optional:!0})],gc.prototype,"eContent",void 0)});var Pl,Mo,dv=T(()=>{"use strict";J();X();Vn();Pl=class{value;constructedValue;constructor(e={}){Object.assign(this,e)}};p([g({type:qe,context:0,implicit:!0,optional:!0})],Pl.prototype,"value",void 0);p([g({type:qe,converter:f3,context:0,implicit:!0,optional:!0,repeated:"sequence"})],Pl.prototype,"constructedValue",void 0);Pl=p([M({type:B.Choice})],Pl);Mo=class{contentType="";contentEncryptionAlgorithm=new vl;encryptedContent;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Mo.prototype,"contentType",void 0);p([g({type:vl})],Mo.prototype,"contentEncryptionAlgorithm",void 0);p([g({type:Pl,optional:!0})],Mo.prototype,"encryptedContent",void 0)});var Uo,uv=T(()=>{"use strict";J();X();Uo=class{keyAttrId="";keyAttr;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Uo.prototype,"keyAttrId",void 0);p([g({type:_.Any,optional:!0})],Uo.prototype,"keyAttr",void 0)});var fv,Qd,Jd,Bl,Vm,Nl,xc,Oi,lv=T(()=>{"use strict";J();X();Ct();Vn();yl();uv();Qd=class{subjectKeyIdentifier=new us;date;other;constructor(e={}){Object.assign(this,e)}};p([g({type:us})],Qd.prototype,"subjectKeyIdentifier",void 0);p([g({type:_.GeneralizedTime,optional:!0})],Qd.prototype,"date",void 0);p([g({type:Uo,optional:!0})],Qd.prototype,"other",void 0);Jd=class{rKeyId;issuerAndSerialNumber;constructor(e={}){Object.assign(this,e)}};p([g({type:Qd,context:0,implicit:!0,optional:!0})],Jd.prototype,"rKeyId",void 0);p([g({type:un,optional:!0})],Jd.prototype,"issuerAndSerialNumber",void 0);Jd=p([M({type:B.Choice})],Jd);Bl=class{rid=new Jd;encryptedKey=new qe;constructor(e={}){Object.assign(this,e)}};p([g({type:Jd})],Bl.prototype,"rid",void 0);p([g({type:qe})],Bl.prototype,"encryptedKey",void 0);Vm=fv=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,fv.prototype)}};Vm=fv=p([M({type:B.Sequence,itemType:Bl})],Vm);Nl=class{algorithm=new ue;publicKey=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:ue})],Nl.prototype,"algorithm",void 0);p([g({type:_.BitString})],Nl.prototype,"publicKey",void 0);xc=class{subjectKeyIdentifier;originatorKey;issuerAndSerialNumber;constructor(e={}){Object.assign(this,e)}};p([g({type:us,context:0,implicit:!0,optional:!0})],xc.prototype,"subjectKeyIdentifier",void 0);p([g({type:Nl,context:1,implicit:!0,optional:!0})],xc.prototype,"originatorKey",void 0);p([g({type:un,optional:!0})],xc.prototype,"issuerAndSerialNumber",void 0);xc=p([M({type:B.Choice})],xc);Oi=class{version=Pr.v3;originator=new xc;ukm;keyEncryptionAlgorithm=new fs;recipientEncryptedKeys=new Vm;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],Oi.prototype,"version",void 0);p([g({type:xc,context:0})],Oi.prototype,"originator",void 0);p([g({type:qe,context:1,optional:!0})],Oi.prototype,"ukm",void 0);p([g({type:fs})],Oi.prototype,"keyEncryptionAlgorithm",void 0);p([g({type:Vm})],Oi.prototype,"recipientEncryptedKeys",void 0)});var Zd,jo,hv=T(()=>{"use strict";J();X();Ct();Vn();yl();Zd=class{subjectKeyIdentifier;issuerAndSerialNumber;constructor(e={}){Object.assign(this,e)}};p([g({type:us,context:0,implicit:!0})],Zd.prototype,"subjectKeyIdentifier",void 0);p([g({type:un})],Zd.prototype,"issuerAndSerialNumber",void 0);Zd=p([M({type:B.Choice})],Zd);jo=class{version=Pr.v0;rid=new Zd;keyEncryptionAlgorithm=new fs;encryptedKey=new qe;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],jo.prototype,"version",void 0);p([g({type:Zd})],jo.prototype,"rid",void 0);p([g({type:fs})],jo.prototype,"keyEncryptionAlgorithm",void 0);p([g({type:qe})],jo.prototype,"encryptedKey",void 0)});var yc,Ho,pv=T(()=>{"use strict";J();X();uv();Vn();yc=class{keyIdentifier=new qe;date;other;constructor(e={}){Object.assign(this,e)}};p([g({type:qe})],yc.prototype,"keyIdentifier",void 0);p([g({type:_.GeneralizedTime,optional:!0})],yc.prototype,"date",void 0);p([g({type:Uo,optional:!0})],yc.prototype,"other",void 0);Ho=class{version=Pr.v4;kekid=new yc;keyEncryptionAlgorithm=new fs;encryptedKey=new qe;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],Ho.prototype,"version",void 0);p([g({type:yc})],Ho.prototype,"kekid",void 0);p([g({type:fs})],Ho.prototype,"keyEncryptionAlgorithm",void 0);p([g({type:qe})],Ho.prototype,"encryptedKey",void 0)});var Fo,mv=T(()=>{"use strict";J();X();Vn();Fo=class{version=Pr.v0;keyDerivationAlgorithm;keyEncryptionAlgorithm=new fs;encryptedKey=new qe;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],Fo.prototype,"version",void 0);p([g({type:Mm,context:0,optional:!0})],Fo.prototype,"keyDerivationAlgorithm",void 0);p([g({type:fs})],Fo.prototype,"keyEncryptionAlgorithm",void 0);p([g({type:qe})],Fo.prototype,"encryptedKey",void 0)});var Ol,Li,gv=T(()=>{"use strict";J();X();lv();hv();pv();mv();Ol=class{oriType="";oriValue=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Ol.prototype,"oriType",void 0);p([g({type:_.Any})],Ol.prototype,"oriValue",void 0);Li=class{ktri;kari;kekri;pwri;ori;constructor(e={}){Object.assign(this,e)}};p([g({type:jo,optional:!0})],Li.prototype,"ktri",void 0);p([g({type:Oi,context:1,implicit:!0,optional:!0})],Li.prototype,"kari",void 0);p([g({type:Ho,context:2,implicit:!0,optional:!0})],Li.prototype,"kekri",void 0);p([g({type:Fo,context:3,implicit:!0,optional:!0})],Li.prototype,"pwri",void 0);p([g({type:Ol,context:4,implicit:!0,optional:!0})],Li.prototype,"ori",void 0);Li=p([M({type:B.Choice})],Li)});var xv,Ll,yv=T(()=>{"use strict";J();X();gv();Ll=xv=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,xv.prototype)}};Ll=xv=p([M({type:B.Set,itemType:Li})],Ll)});var bv,O4,Lre,Dre,eu,$m,tu,Km=T(()=>{"use strict";J();X();Ct();O4=`${No}.16`,Lre=`${O4}.2`,Dre=`${O4}.4`,eu=class{otherRevInfoFormat="";otherRevInfo=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],eu.prototype,"otherRevInfoFormat",void 0);p([g({type:_.Any})],eu.prototype,"otherRevInfo",void 0);$m=class{other=new eu;constructor(e={}){Object.assign(this,e)}};p([g({type:eu,context:1,implicit:!0})],$m.prototype,"other",void 0);$m=p([M({type:B.Choice})],$m);tu=bv=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,bv.prototype)}};tu=bv=p([M({type:B.Set,itemType:$m})],tu)});var ru,vv=T(()=>{"use strict";J();X();zm();Km();ru=class{certs;crls;constructor(e={}){Object.assign(this,e)}};p([g({type:mc,context:0,implicit:!0,optional:!0})],ru.prototype,"certs",void 0);p([g({type:tu,context:1,implicit:!0,optional:!0})],ru.prototype,"crls",void 0)});var wv,Sv,bc,L4=T(()=>{"use strict";J();X();Vn();Um();yv();vv();dv();Sv=wv=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,wv.prototype)}};Sv=wv=p([M({type:B.Set,itemType:fn})],Sv);bc=class{version=Pr.v0;originatorInfo;recipientInfos=new Ll;encryptedContentInfo=new Mo;unprotectedAttrs;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],bc.prototype,"version",void 0);p([g({type:ru,context:0,implicit:!0,optional:!0})],bc.prototype,"originatorInfo",void 0);p([g({type:Ll})],bc.prototype,"recipientInfos",void 0);p([g({type:Mo})],bc.prototype,"encryptedContentInfo",void 0);p([g({type:Sv,context:1,implicit:!0,optional:!0})],bc.prototype,"unprotectedAttrs",void 0)});var D4,M4=T(()=>{"use strict";D4="1.2.840.113549.1.7.2"});var _v,Wm,Di,U4=T(()=>{"use strict";J();X();zm();Vn();cv();Km();jm();Wm=_v=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,_v.prototype)}};Wm=_v=p([M({type:B.Set,itemType:dc})],Wm);Di=class{version=Pr.v0;digestAlgorithms=new Wm;encapContentInfo=new gc;certificates;crls;signerInfos=new wl;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],Di.prototype,"version",void 0);p([g({type:Wm})],Di.prototype,"digestAlgorithms",void 0);p([g({type:gc})],Di.prototype,"encapContentInfo",void 0);p([g({type:mc,context:0,implicit:!0,optional:!0})],Di.prototype,"certificates",void 0);p([g({type:tu,context:1,implicit:!0,optional:!0})],Di.prototype,"crls",void 0);p([g({type:wl})],Di.prototype,"signerInfos",void 0)});var Dl=T(()=>{"use strict";S4();Um();zm();N4();cv();dv();L4();yl();pv();lv();hv();M4();vv();mv();gv();yv();Km();U4();z1();jm();Vn()});var vc,Ml,Gm,Ul,jl,Hl,Ev,Cv,Tv,Av=T(()=>{"use strict";vc="1.2.840.10045.2.1",Ml="1.2.840.10045.4.1",Gm="1.2.840.10045.4.3.1",Ul="1.2.840.10045.4.3.2",jl="1.2.840.10045.4.3.3",Hl="1.2.840.10045.4.3.4",Ev="1.2.840.10045.3.1.7",Cv="1.3.132.0.34",Tv="1.3.132.0.35"});function Fl(r){return new ue({algorithm:r})}var H4,Bse,F4,q4,z4,V4=T(()=>{"use strict";Ct();Av();H4=Fl(Ml),Bse=Fl(Gm),F4=Fl(Ul),q4=Fl(jl),z4=Fl(Hl)});var ql,Iv,su,Rv,$n,kv=T(()=>{"use strict";J();X();ql=class{fieldType;parameters;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],ql.prototype,"fieldType",void 0);p([g({type:_.Any})],ql.prototype,"parameters",void 0);ql=p([M({type:B.Sequence})],ql);Iv=class extends qe{},su=class{a;b;seed;constructor(e={}){Object.assign(this,e)}};p([g({type:_.OctetString})],su.prototype,"a",void 0);p([g({type:_.OctetString})],su.prototype,"b",void 0);p([g({type:_.BitString,optional:!0})],su.prototype,"seed",void 0);su=p([M({type:B.Sequence})],su);(function(r){r[r.ecpVer1=1]="ecpVer1"})(Rv||(Rv={}));$n=class{version=Rv.ecpVer1;fieldID;curve;base;order;cofactor;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],$n.prototype,"version",void 0);p([g({type:ql})],$n.prototype,"fieldID",void 0);p([g({type:su})],$n.prototype,"curve",void 0);p([g({type:Iv})],$n.prototype,"base",void 0);p([g({type:_.Integer,converter:Et})],$n.prototype,"order",void 0);p([g({type:_.Integer,optional:!0})],$n.prototype,"cofactor",void 0);$n=p([M({type:B.Sequence})],$n)});var Kn,Pv=T(()=>{"use strict";J();X();kv();Kn=class{namedCurve;implicitCurve;specifiedCurve;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],Kn.prototype,"namedCurve",void 0);p([g({type:_.Null})],Kn.prototype,"implicitCurve",void 0);p([g({type:$n})],Kn.prototype,"specifiedCurve",void 0);Kn=p([M({type:B.Choice})],Kn)});var nu,$4=T(()=>{"use strict";J();X();Pv();nu=class{version=1;privateKey=new qe;parameters;publicKey;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],nu.prototype,"version",void 0);p([g({type:qe})],nu.prototype,"privateKey",void 0);p([g({type:Kn,context:0,optional:!0})],nu.prototype,"parameters",void 0);p([g({type:_.BitString,context:1,optional:!0})],nu.prototype,"publicKey",void 0)});var wc,K4=T(()=>{"use strict";J();X();wc=class{r=new ArrayBuffer(0);s=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer,converter:Et})],wc.prototype,"r",void 0);p([g({type:_.Integer,converter:Et})],wc.prototype,"s",void 0)});var Bv=T(()=>{"use strict";V4();Pv();$4();K4();Av();kv()});var ps,Wn,W4,G4,qo,X4,Y4,iu,Q4,Xm,ou,au,Nv,Ov,Sc,Ym,_c,Ec,Cc,J4,Z4,e8,t8,zo,zl=T(()=>{"use strict";ps="1.2.840.113549.1.1",Wn=`${ps}.1`,W4=`${ps}.7`,G4=`${ps}.9`,qo=`${ps}.10`,X4=`${ps}.2`,Y4=`${ps}.4`,iu=`${ps}.5`,Q4=`${ps}.14`,Xm=`${ps}.11`,ou=`${ps}.12`,au=`${ps}.13`,Nv=`${ps}.15`,Ov=`${ps}.16`,Sc="1.3.14.3.2.26",Ym="2.16.840.1.101.3.4.2.4",_c="2.16.840.1.101.3.4.2.1",Ec="2.16.840.1.101.3.4.2.2",Cc="2.16.840.1.101.3.4.2.3",J4="2.16.840.1.101.3.4.2.5",Z4="2.16.840.1.101.3.4.2.6",e8="1.2.840.113549.2.2",t8="1.2.840.113549.2.5",zo=`${ps}.8`});function wr(r){return new ue({algorithm:r,parameters:null})}var one,ane,Mi,cne,dne,une,fne,lne,hne,Qm,Lv,pne,mne,gne,xne,yne,bne,vne,wne,Sne,_ne,Jm=T(()=>{"use strict";X();Ct();zl();one=wr(e8),ane=wr(t8),Mi=wr(Sc),cne=wr(Ym),dne=wr(_c),une=wr(Ec),fne=wr(Cc),lne=wr(J4),hne=wr(Z4),Qm=new ue({algorithm:zo,parameters:he.serialize(Mi)}),Lv=new ue({algorithm:G4,parameters:he.serialize(Ud.toASN(new Uint8Array([218,57,163,238,94,107,75,13,50,85,191,239,149,96,24,144,175,216,7,9]).buffer))}),pne=wr(Wn),mne=wr(X4),gne=wr(Y4),xne=wr(iu),yne=wr(Nv),bne=wr(Ov),vne=wr(ou),wne=wr(au),Sne=wr(Nv),_ne=wr(Ov)});var cu,kne,r8=T(()=>{"use strict";J();X();Ct();zl();Jm();cu=class{hashAlgorithm=new ue(Mi);maskGenAlgorithm=new ue({algorithm:zo,parameters:he.serialize(Mi)});pSourceAlgorithm=new ue(Lv);constructor(e={}){Object.assign(this,e)}};p([g({type:ue,context:0,defaultValue:Mi})],cu.prototype,"hashAlgorithm",void 0);p([g({type:ue,context:1,defaultValue:Qm})],cu.prototype,"maskGenAlgorithm",void 0);p([g({type:ue,context:2,defaultValue:Lv})],cu.prototype,"pSourceAlgorithm",void 0);kne=new ue({algorithm:W4,parameters:he.serialize(new cu)})});var Gn,Mne,s8=T(()=>{"use strict";J();X();Ct();zl();Jm();Gn=class{hashAlgorithm=new ue(Mi);maskGenAlgorithm=new ue({algorithm:zo,parameters:he.serialize(Mi)});saltLength=20;trailerField=1;constructor(e={}){Object.assign(this,e)}};p([g({type:ue,context:0,defaultValue:Mi})],Gn.prototype,"hashAlgorithm",void 0);p([g({type:ue,context:1,defaultValue:Qm})],Gn.prototype,"maskGenAlgorithm",void 0);p([g({type:_.Integer,context:2,defaultValue:20})],Gn.prototype,"saltLength",void 0);p([g({type:_.Integer,context:3,defaultValue:1})],Gn.prototype,"trailerField",void 0);Mne=new ue({algorithm:qo,parameters:he.serialize(new Gn)})});var Tc,n8=T(()=>{"use strict";J();Ct();X();Tc=class{digestAlgorithm=new ue;digest=new qe;constructor(e={}){Object.assign(this,e)}};p([g({type:ue})],Tc.prototype,"digestAlgorithm",void 0);p([g({type:qe})],Tc.prototype,"digest",void 0)});var i8=T(()=>{"use strict";r8();s8();n8()});var Dv,du,Zm,Mv=T(()=>{"use strict";J();X();du=class{prime=new ArrayBuffer(0);exponent=new ArrayBuffer(0);coefficient=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer,converter:Et})],du.prototype,"prime",void 0);p([g({type:_.Integer,converter:Et})],du.prototype,"exponent",void 0);p([g({type:_.Integer,converter:Et})],du.prototype,"coefficient",void 0);Zm=Dv=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,Dv.prototype)}};Zm=Dv=p([M({type:B.Sequence,itemType:du})],Zm)});var Ys,o8=T(()=>{"use strict";J();X();Mv();Ys=class{version=0;modulus=new ArrayBuffer(0);publicExponent=new ArrayBuffer(0);privateExponent=new ArrayBuffer(0);prime1=new ArrayBuffer(0);prime2=new ArrayBuffer(0);exponent1=new ArrayBuffer(0);exponent2=new ArrayBuffer(0);coefficient=new ArrayBuffer(0);otherPrimeInfos;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],Ys.prototype,"version",void 0);p([g({type:_.Integer,converter:Et})],Ys.prototype,"modulus",void 0);p([g({type:_.Integer,converter:Et})],Ys.prototype,"publicExponent",void 0);p([g({type:_.Integer,converter:Et})],Ys.prototype,"privateExponent",void 0);p([g({type:_.Integer,converter:Et})],Ys.prototype,"prime1",void 0);p([g({type:_.Integer,converter:Et})],Ys.prototype,"prime2",void 0);p([g({type:_.Integer,converter:Et})],Ys.prototype,"exponent1",void 0);p([g({type:_.Integer,converter:Et})],Ys.prototype,"exponent2",void 0);p([g({type:_.Integer,converter:Et})],Ys.prototype,"coefficient",void 0);p([g({type:Zm,optional:!0})],Ys.prototype,"otherPrimeInfos",void 0)});var uu,a8=T(()=>{"use strict";J();X();uu=class{modulus=new ArrayBuffer(0);publicExponent=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer,converter:Et})],uu.prototype,"modulus",void 0);p([g({type:_.Integer,converter:Et})],uu.prototype,"publicExponent",void 0)});var eg=T(()=>{"use strict";i8();Jm();zl();Mv();o8();a8()});var Uv,Br,jv=T(()=>{"use strict";(function(r){r[r.Transient=0]="Transient",r[r.Singleton=1]="Singleton",r[r.ResolutionScoped=2]="ResolutionScoped",r[r.ContainerScoped=3]="ContainerScoped"})(Uv||(Uv={}));Br=Uv});var c8=T(()=>{"use strict";jv()});function Vl(r,e){Hv(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function d8(r,e,t,s){function n(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(u){try{d(s.next(u))}catch(l){o(l)}}function c(u){try{d(s.throw(u))}catch(l){o(l)}}function d(u){u.done?i(u.value):n(u.value).then(a,c)}d((s=s.apply(r,e||[])).next())})}function u8(r,e){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},s,n,i,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(d){return function(u){return c([d,u])}}function c(d){if(s)throw new TypeError("Generator is already executing.");for(;t;)try{if(s=1,n&&(i=d[0]&2?n.return:d[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,d[1])).done)return i;switch(n=0,i&&(d=[d[0]&2,i.value]),d[0]){case 0:case 1:i=d;break;case 4:return t.label++,{value:d[1],done:!1};case 5:t.label++,n=d[1],d=[0];continue;case 7:d=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(d[0]===6||d[0]===2)){t=0;continue}if(d[0]===3&&(!i||d[1]>i[0]&&d[1]<i[3])){t.label=d[1];break}if(d[0]===6&&t.label<i[1]){t.label=i[1],i=d;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(d);break}i[2]&&t.ops.pop(),t.trys.pop();continue}d=e.call(r,t)}catch(u){d=[6,u],n=0}finally{s=i=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}}function $l(r){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&r[e],s=0;if(t)return t.call(r);if(r&&typeof r.length=="number")return{next:function(){return r&&s>=r.length&&(r=void 0),{value:r&&r[s++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function fu(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var s=t.call(r),n,i=[],o;try{for(;(e===void 0||e-- >0)&&!(n=s.next()).done;)i.push(n.value)}catch(a){o={error:a}}finally{try{n&&!n.done&&(t=s.return)&&t.call(s)}finally{if(o)throw o.error}}return i}function Xn(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(fu(arguments[e]));return r}var Hv,lu=T(()=>{"use strict";Hv=function(r,e){return Hv=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,s){t.__proto__=s}||function(t,s){for(var n in s)s.hasOwnProperty(n)&&(t[n]=s[n])},Hv(r,e)}});function Fv(r){var e=Reflect.getMetadata("design:paramtypes",r)||[],t=Reflect.getOwnMetadata(ZM,r)||{};return Object.keys(t).forEach(function(s){e[+s]=t[s]}),e}var ZM,Ac=T(()=>{"use strict";ZM="injectionTokens"});function Kl(r){return!!r.useClass}var qv=T(()=>{"use strict"});function hu(r){return!!r.useFactory}var zv=T(()=>{"use strict"});var tg,rg=T(()=>{"use strict";lu();tg=(function(){function r(e){this.wrap=e,this.reflectMethods=["get","getPrototypeOf","setPrototypeOf","getOwnPropertyDescriptor","defineProperty","has","set","deleteProperty","apply","construct","ownKeys"]}return r.prototype.createProxy=function(e){var t=this,s={},n=!1,i,o=function(){return n||(i=e(t.wrap()),n=!0),i};return new Proxy(s,this.createHandler(o))},r.prototype.createHandler=function(e){var t={},s=function(n){t[n]=function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];i[0]=e();var a=Reflect[n];return a.apply(void 0,Xn(i))}};return this.reflectMethods.forEach(s),t},r})()});function Vo(r){return typeof r=="string"||typeof r=="symbol"}function Vv(r){return typeof r=="object"&&"token"in r&&"multiple"in r}function sg(r){return typeof r=="object"&&"token"in r&&"transform"in r}function f8(r){return typeof r=="function"||r instanceof tg}var ng=T(()=>{"use strict";rg()});function Ic(r){return!!r.useToken}var $v=T(()=>{"use strict"});function Rc(r){return r.useValue!=null}var Kv=T(()=>{"use strict"});var Wv=T(()=>{"use strict";qv();zv();ng();$v();Kv()});function l8(r){return Kl(r)||Rc(r)||Ic(r)||hu(r)}var h8=T(()=>{"use strict";qv();Kv();$v();zv()});var eU,Wl,Gv=T(()=>{"use strict";eU=(function(){function r(){this._registryMap=new Map}return r.prototype.entries=function(){return this._registryMap.entries()},r.prototype.getAll=function(e){return this.ensure(e),this._registryMap.get(e)},r.prototype.get=function(e){this.ensure(e);var t=this._registryMap.get(e);return t[t.length-1]||null},r.prototype.set=function(e,t){this.ensure(e),this._registryMap.get(e).push(t)},r.prototype.setAll=function(e,t){this._registryMap.set(e,t)},r.prototype.has=function(e){return this.ensure(e),this._registryMap.get(e).length>0},r.prototype.clear=function(){this._registryMap.clear()},r.prototype.ensure=function(e){this._registryMap.has(e)||this._registryMap.set(e,[])},r})(),Wl=eU});var tU,p8,m8=T(()=>{"use strict";lu();Gv();tU=(function(r){Vl(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e})(Wl),p8=tU});var rU,Gl,g8=T(()=>{"use strict";rU=(function(){function r(){this.scopedResolutions=new Map}return r})(),Gl=rU});function sU(r,e){if(r===null)return"at position #"+e;var t=r.split(",")[e].trim();return'"'+t+'" at position #'+e}function nU(r,e,t){return t===void 0&&(t=" "),Xn([r],e.message.split(`
|
|
28
|
-
`).map(function(s){return t+s})).join(`
|
|
29
|
-
`)}function Xv(r,e,t){var s=fu(r.toString().match(/constructor\(([\w, ]+)\)/)||[],2),n=s[1],i=n===void 0?null:n,o=sU(i,e);return nU("Cannot inject the dependency "+o+' of "'+r.name+'" constructor. Reason:',t)}var Yv=T(()=>{"use strict";lu()});function x8(r){if(typeof r.dispose!="function")return!1;var e=r.dispose;return!(e.length>0)}var y8=T(()=>{"use strict"});var iU,oU,aU,b8,v8=T(()=>{"use strict";lu();Gv();iU=(function(r){Vl(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e})(Wl),oU=(function(r){Vl(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e})(Wl),aU=(function(){function r(){this.preResolution=new iU,this.postResolution=new oU}return r})(),b8=aU});var Qv,cU,Kt,$o=T(()=>{"use strict";lu();Wv();h8();ng();m8();jv();g8();Yv();rg();y8();v8();Qv=new Map,cU=(function(){function r(e){this.parent=e,this._registry=new p8,this.interceptors=new b8,this.disposed=!1,this.disposables=new Set}return r.prototype.register=function(e,t,s){s===void 0&&(s={lifecycle:Br.Transient}),this.ensureNotDisposed();var n;if(l8(t)?n=t:n={useClass:t},Ic(n))for(var i=[e],o=n;o!=null;){var a=o.useToken;if(i.includes(a))throw new Error("Token registration cycle detected! "+Xn(i,[a]).join(" -> "));i.push(a);var c=this._registry.get(a);c&&Ic(c.provider)?o=c.provider:o=null}if((s.lifecycle===Br.Singleton||s.lifecycle==Br.ContainerScoped||s.lifecycle==Br.ResolutionScoped)&&(Rc(n)||hu(n)))throw new Error('Cannot use lifecycle "'+Br[s.lifecycle]+'" with ValueProviders or FactoryProviders');return this._registry.set(e,{provider:n,options:s}),this},r.prototype.registerType=function(e,t){return this.ensureNotDisposed(),Vo(t)?this.register(e,{useToken:t}):this.register(e,{useClass:t})},r.prototype.registerInstance=function(e,t){return this.ensureNotDisposed(),this.register(e,{useValue:t})},r.prototype.registerSingleton=function(e,t){if(this.ensureNotDisposed(),Vo(e)){if(Vo(t))return this.register(e,{useToken:t},{lifecycle:Br.Singleton});if(t)return this.register(e,{useClass:t},{lifecycle:Br.Singleton});throw new Error('Cannot register a type name as a singleton without a "to" token')}var s=e;return t&&!Vo(t)&&(s=t),this.register(e,{useClass:s},{lifecycle:Br.Singleton})},r.prototype.resolve=function(e,t,s){t===void 0&&(t=new Gl),s===void 0&&(s=!1),this.ensureNotDisposed();var n=this.getRegistration(e);if(!n&&Vo(e)){if(s)return;throw new Error('Attempted to resolve unregistered dependency token: "'+e.toString()+'"')}if(this.executePreResolutionInterceptor(e,"Single"),n){var i=this.resolveRegistration(n,t);return this.executePostResolutionInterceptor(e,i,"Single"),i}if(f8(e)){var i=this.construct(e,t);return this.executePostResolutionInterceptor(e,i,"Single"),i}throw new Error("Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function.")},r.prototype.executePreResolutionInterceptor=function(e,t){var s,n;if(this.interceptors.preResolution.has(e)){var i=[];try{for(var o=$l(this.interceptors.preResolution.getAll(e)),a=o.next();!a.done;a=o.next()){var c=a.value;c.options.frequency!="Once"&&i.push(c),c.callback(e,t)}}catch(d){s={error:d}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(s)throw s.error}}this.interceptors.preResolution.setAll(e,i)}},r.prototype.executePostResolutionInterceptor=function(e,t,s){var n,i;if(this.interceptors.postResolution.has(e)){var o=[];try{for(var a=$l(this.interceptors.postResolution.getAll(e)),c=a.next();!c.done;c=a.next()){var d=c.value;d.options.frequency!="Once"&&o.push(d),d.callback(e,t,s)}}catch(u){n={error:u}}finally{try{c&&!c.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}this.interceptors.postResolution.setAll(e,o)}},r.prototype.resolveRegistration=function(e,t){if(this.ensureNotDisposed(),e.options.lifecycle===Br.ResolutionScoped&&t.scopedResolutions.has(e))return t.scopedResolutions.get(e);var s=e.options.lifecycle===Br.Singleton,n=e.options.lifecycle===Br.ContainerScoped,i=s||n,o;return Rc(e.provider)?o=e.provider.useValue:Ic(e.provider)?o=i?e.instance||(e.instance=this.resolve(e.provider.useToken,t)):this.resolve(e.provider.useToken,t):Kl(e.provider)?o=i?e.instance||(e.instance=this.construct(e.provider.useClass,t)):this.construct(e.provider.useClass,t):hu(e.provider)?o=e.provider.useFactory(this):o=this.construct(e.provider,t),e.options.lifecycle===Br.ResolutionScoped&&t.scopedResolutions.set(e,o),o},r.prototype.resolveAll=function(e,t,s){var n=this;t===void 0&&(t=new Gl),s===void 0&&(s=!1),this.ensureNotDisposed();var i=this.getAllRegistrations(e);if(!i&&Vo(e)){if(s)return[];throw new Error('Attempted to resolve unregistered dependency token: "'+e.toString()+'"')}if(this.executePreResolutionInterceptor(e,"All"),i){var o=i.map(function(c){return n.resolveRegistration(c,t)});return this.executePostResolutionInterceptor(e,o,"All"),o}var a=[this.construct(e,t)];return this.executePostResolutionInterceptor(e,a,"All"),a},r.prototype.isRegistered=function(e,t){return t===void 0&&(t=!1),this.ensureNotDisposed(),this._registry.has(e)||t&&(this.parent||!1)&&this.parent.isRegistered(e,!0)},r.prototype.reset=function(){this.ensureNotDisposed(),this._registry.clear(),this.interceptors.preResolution.clear(),this.interceptors.postResolution.clear()},r.prototype.clearInstances=function(){var e,t;this.ensureNotDisposed();try{for(var s=$l(this._registry.entries()),n=s.next();!n.done;n=s.next()){var i=fu(n.value,2),o=i[0],a=i[1];this._registry.setAll(o,a.filter(function(c){return!Rc(c.provider)}).map(function(c){return c.instance=void 0,c}))}}catch(c){e={error:c}}finally{try{n&&!n.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},r.prototype.createChildContainer=function(){var e,t;this.ensureNotDisposed();var s=new r(this);try{for(var n=$l(this._registry.entries()),i=n.next();!i.done;i=n.next()){var o=fu(i.value,2),a=o[0],c=o[1];c.some(function(d){var u=d.options;return u.lifecycle===Br.ContainerScoped})&&s._registry.setAll(a,c.map(function(d){return d.options.lifecycle===Br.ContainerScoped?{provider:d.provider,options:d.options}:d}))}}catch(d){e={error:d}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return s},r.prototype.beforeResolution=function(e,t,s){s===void 0&&(s={frequency:"Always"}),this.interceptors.preResolution.set(e,{callback:t,options:s})},r.prototype.afterResolution=function(e,t,s){s===void 0&&(s={frequency:"Always"}),this.interceptors.postResolution.set(e,{callback:t,options:s})},r.prototype.dispose=function(){return d8(this,void 0,void 0,function(){var e;return u8(this,function(t){switch(t.label){case 0:return this.disposed=!0,e=[],this.disposables.forEach(function(s){var n=s.dispose();n&&e.push(n)}),[4,Promise.all(e)];case 1:return t.sent(),[2]}})})},r.prototype.getRegistration=function(e){return this.isRegistered(e)?this._registry.get(e):this.parent?this.parent.getRegistration(e):null},r.prototype.getAllRegistrations=function(e){return this.isRegistered(e)?this._registry.getAll(e):this.parent?this.parent.getAllRegistrations(e):null},r.prototype.construct=function(e,t){var s=this;if(e instanceof tg)return e.createProxy(function(i){return s.resolve(i,t)});var n=(function(){var i=Qv.get(e);if(!i||i.length===0){if(e.length===0)return new e;throw new Error('TypeInfo not known for "'+e.name+'"')}var o=i.map(s.resolveParams(t,e));return new(e.bind.apply(e,Xn([void 0],o)))})();return x8(n)&&this.disposables.add(n),n},r.prototype.resolveParams=function(e,t){var s=this;return function(n,i){var o,a,c;try{return Vv(n)?sg(n)?n.multiple?(o=s.resolve(n.transform)).transform.apply(o,Xn([s.resolveAll(n.token,new Gl,n.isOptional)],n.transformArgs)):(a=s.resolve(n.transform)).transform.apply(a,Xn([s.resolve(n.token,e,n.isOptional)],n.transformArgs)):n.multiple?s.resolveAll(n.token,new Gl,n.isOptional):s.resolve(n.token,e,n.isOptional):sg(n)?(c=s.resolve(n.transform,e)).transform.apply(c,Xn([s.resolve(n.token,e)],n.transformArgs)):s.resolve(n,e)}catch(d){throw new Error(Xv(t,i,d))}}},r.prototype.ensureNotDisposed=function(){if(this.disposed)throw new Error("This container has been disposed, you cannot interact with a disposed container")},r})(),Kt=new cU});var w8=T(()=>{"use strict";Ac();$o();ng();Yv()});var S8=T(()=>{"use strict";Ac()});function dU(r){return function(e){Qv.set(e,Fv(e)),r&&r.token&&(Array.isArray(r.token)?r.token.forEach(function(t){Kt.register(t,e)}):Kt.register(r.token,e))}}var Ko,ig=T(()=>{"use strict";Ac();$o();$o();Ko=dU});var _8=T(()=>{"use strict";$o()});var E8=T(()=>{"use strict";ig();$o()});var C8=T(()=>{"use strict";Ac()});var T8=T(()=>{"use strict";Ac()});var A8=T(()=>{"use strict";Ac()});var I8=T(()=>{"use strict";ig();$o()});var R8=T(()=>{"use strict";w8();S8();ig();_8();E8();C8();T8();A8();I8()});var k8=T(()=>{"use strict"});var P8=T(()=>{"use strict"});var B8=T(()=>{"use strict"});var N8=T(()=>{"use strict";k8();P8();B8()});var O8=T(()=>{"use strict";c8();R8();N8();Wv();rg();$o();if(typeof Reflect>"u"||!Reflect.getMetadata)throw new Error(`tsyringe requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`)});var Zv,kc,L8,ew=T(()=>{"use strict";J();X();kc=class{attrId="";attrValues=[];constructor(e={}){Object.assign(e)}};p([g({type:_.ObjectIdentifier})],kc.prototype,"attrId",void 0);p([g({type:_.Any,repeated:"set"})],kc.prototype,"attrValues",void 0);L8=Zv=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,Zv.prototype)}};L8=Zv=p([M({type:B.Sequence,itemType:kc})],L8)});var tw,D8,M8=T(()=>{"use strict";J();X();Dl();D8=tw=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,tw.prototype)}};D8=tw=p([M({type:B.Sequence,itemType:Xs})],D8)});var uU,fU,U8,pu,vae,wae,Sae,_ae,Eae,Cae,Pc,rw=T(()=>{"use strict";uU="1.2.840.113549",fU=`${uU}.1`,U8=`${fU}.12`,pu=`${U8}.1`,vae=`${pu}.1`,wae=`${pu}.2`,Sae=`${pu}.3`,_ae=`${pu}.4`,Eae=`${pu}.5`,Cae=`${pu}.6`,Pc=`${U8}.10.1`});var Iae,Rae,kae,Pae,Bae,Nae,og,ag=T(()=>{"use strict";rw();Iae=`${Pc}.1`,Rae=`${Pc}.2`,kae=`${Pc}.3`,Pae=`${Pc}.4`,Bae=`${Pc}.5`,Nae=`${Pc}.6`,og="1.2.840.113549.1.9"});var cg,j8,Uae,jae,H8=T(()=>{"use strict";J();X();ag();cg=class{certId="";certValue=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],cg.prototype,"certId",void 0);p([g({type:_.Any,context:0})],cg.prototype,"certValue",void 0);j8=`${og}.22`,Uae=`${j8}.1`,jae=`${j8}.2`});var dg,lU,Vae,F8=T(()=>{"use strict";J();X();ag();dg=class{crlId="";crltValue=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],dg.prototype,"crlId",void 0);p([g({type:_.Any,context:0})],dg.prototype,"crltValue",void 0);lU=`${og}.23`,Vae=`${lU}.1`});var ug,Wo,q8=T(()=>{"use strict";J();X();Ct();ug=class extends qe{},Wo=class{encryptionAlgorithm=new ue;encryptedData=new ug;constructor(e={}){Object.assign(this,e)}};p([g({type:ue})],Wo.prototype,"encryptionAlgorithm",void 0);p([g({type:ug})],Wo.prototype,"encryptedData",void 0)});var sw,nw,fg,iw,Go,z8=T(()=>{"use strict";J();X();Ct();(function(r){r[r.v1=0]="v1"})(nw||(nw={}));fg=class extends qe{},iw=sw=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,sw.prototype)}};iw=sw=p([M({type:B.Sequence,itemType:Ir})],iw);Go=class{version=nw.v1;privateKeyAlgorithm=new ue;privateKey=new fg;attributes;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],Go.prototype,"version",void 0);p([g({type:ue})],Go.prototype,"privateKeyAlgorithm",void 0);p([g({type:fg})],Go.prototype,"privateKey",void 0);p([g({type:iw,implicit:!0,context:0,optional:!0})],Go.prototype,"attributes",void 0)});var lg=T(()=>{"use strict";q8();z8()});var V8,$8=T(()=>{"use strict";J();lg();X();V8=class extends Go{};V8=p([M({type:B.Sequence})],V8)});var K8,W8=T(()=>{"use strict";J();lg();X();K8=class extends Wo{};K8=p([M({type:B.Sequence})],K8)});var hg,G8=T(()=>{"use strict";J();X();hg=class{secretTypeId="";secretValue=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],hg.prototype,"secretTypeId",void 0);p([g({type:_.Any,context:0})],hg.prototype,"secretValue",void 0)});var X8=T(()=>{"use strict";H8();F8();$8();W8();G8();ag()});var Xo,ow=T(()=>{"use strict";J();eg();X();Xo=class{mac=new Tc;macSalt=new qe;iterations=1;constructor(e={}){Object.assign(this,e)}};p([g({type:Tc})],Xo.prototype,"mac",void 0);p([g({type:qe})],Xo.prototype,"macSalt",void 0);p([g({type:_.Integer,defaultValue:1})],Xo.prototype,"iterations",void 0)});var Bc,Y8=T(()=>{"use strict";J();X();Dl();ow();Bc=class{version=3;authSafe=new Xs;macData=new Xo;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],Bc.prototype,"version",void 0);p([g({type:Xs})],Bc.prototype,"authSafe",void 0);p([g({type:Xo,optional:!0})],Bc.prototype,"macData",void 0)});var aw,mu,Q8,J8=T(()=>{"use strict";J();X();ew();mu=class{bagId="";bagValue=new ArrayBuffer(0);bagAttributes;constructor(e={}){Object.assign(this,e)}};p([g({type:_.ObjectIdentifier})],mu.prototype,"bagId",void 0);p([g({type:_.Any,context:0})],mu.prototype,"bagValue",void 0);p([g({type:kc,repeated:"set",optional:!0})],mu.prototype,"bagAttributes",void 0);Q8=aw=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,aw.prototype)}};Q8=aw=p([M({type:B.Sequence,itemType:mu})],Q8)});var Z8=T(()=>{"use strict";ew();M8();X8();ow();rw();Y8();J8()});var cw,dw,uw,ar,Kce,hT,Yl,pT,mT,Wce,Gce,Xce,Yce,Qce,Jce,Zce,ede,yw,tde,rde,sde,Ql,nde,ide,ode,ade,cde,dde,ude,fde,Jl,lde,hde,pde,mde,gde,xde,yde,bde,vde,wde,Sde,_de,Ede,pg,eT,tT,rT,fw,sT,nT,lw,iT,hw,mg,oT,aT,pw,cT,mw,dT,Xl,uT,fT,gw,xw,lT,bw=T(()=>{"use strict";J();X();Dl();Z8();lg();Ct();ov();ar="1.2.840.113549.1.9",Kce=`${ar}.0`,hT=`${ar}.24`,Yl=`${ar}.25`,pT=`${ar}.26`,mT=`${ar}.27`,Wce=`${hT}.1`,Gce=`${hT}.2`,Xce=`${ar}.1`,Yce=`${ar}.2`,Qce=`${ar}.3`,Jce=`${ar}.4`,Zce=`${ar}.5`,ede=`${ar}.6`,yw=`${ar}.7`,tde=`${ar}.8`,rde=`${ar}.9`,sde=`${ar}.13`,Ql=`${ar}.14`,nde=`${ar}.15`,ide=`${ar}.20`,ode=`${ar}.21`,ade=`${Yl}.1`,cde=`${Yl}.2`,dde=`${Yl}.3`,ude=`${Yl}.4`,fde=`${Yl}.5`,Jl="1.3.6.1.5.5.7.9",lde=`${Jl}.1`,hde=`${Jl}.2`,pde=`${Jl}.3`,mde=`${Jl}.4`,gde=`${Jl}.5`,xde=`${pT}.1`,yde=`${pT}.2`,bde=`${mT}.1`,vde=`${mT}.2`,wde=`${ar}.16`,Sde=`${ar}.22`,_de=`${ar}.23`,Ede=`${rv}.65`,pg=class extends hr{ia5String;constructor(e={}){super(e)}toString(){return{}.toString(),this.ia5String||super.toString()}};p([g({type:_.IA5String})],pg.prototype,"ia5String",void 0);pg=p([M({type:B.Choice})],pg);eT=class extends Xs{};eT=p([M({type:B.Sequence})],eT);tT=class extends Bc{};tT=p([M({type:B.Sequence})],tT);rT=class extends Wo{};rT=p([M({type:B.Sequence})],rT);fw=class{value;constructor(e=""){this.value=e}toString(){return this.value}};p([g({type:_.IA5String})],fw.prototype,"value",void 0);fw=p([M({type:B.Choice})],fw);sT=class extends pg{};sT=p([M({type:B.Choice})],sT);nT=class extends hr{};nT=p([M({type:B.Choice})],nT);lw=class{value;constructor(e=new Date){this.value=e}};p([g({type:_.GeneralizedTime})],lw.prototype,"value",void 0);lw=p([M({type:B.Choice})],lw);iT=class extends hr{};iT=p([M({type:B.Choice})],iT);hw=class{value;constructor(e="M"){this.value=e}toString(){return this.value}};p([g({type:_.PrintableString})],hw.prototype,"value",void 0);hw=p([M({type:B.Choice})],hw);mg=class{value;constructor(e=""){this.value=e}toString(){return this.value}};p([g({type:_.PrintableString})],mg.prototype,"value",void 0);mg=p([M({type:B.Choice})],mg);oT=class extends mg{};oT=p([M({type:B.Choice})],oT);aT=class extends hr{};aT=p([M({type:B.Choice})],aT);pw=class{value;constructor(e=""){this.value=e}toString(){return this.value}};p([g({type:_.ObjectIdentifier})],pw.prototype,"value",void 0);pw=p([M({type:B.Choice})],pw);cT=class extends or{};cT=p([M({type:B.Choice})],cT);mw=class{value;constructor(e=0){this.value=e}toString(){return this.value.toString()}};p([g({type:_.Integer})],mw.prototype,"value",void 0);mw=p([M({type:B.Choice})],mw);dT=class extends ls{};dT=p([M({type:B.Sequence})],dT);Xl=class extends hr{};Xl=p([M({type:B.Choice})],Xl);uT=cw=class extends Ts{constructor(e){super(e),Object.setPrototypeOf(this,cw.prototype)}};uT=cw=p([M({type:B.Sequence})],uT);fT=dw=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,dw.prototype)}};fT=dw=p([M({type:B.Set,itemType:fn})],fT);gw=class{value;constructor(e=""){this.value=e}toString(){return this.value}};p([g({type:_.BmpString})],gw.prototype,"value",void 0);gw=p([M({type:B.Choice})],gw);xw=class extends ue{};xw=p([M({type:B.Sequence})],xw);lT=uw=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,uw.prototype)}};lT=uw=p([M({type:B.Sequence,itemType:xw})],lT)});var vw,Zl,ww=T(()=>{"use strict";J();X();Ct();Zl=vw=class extends je{constructor(e){super(e),Object.setPrototypeOf(this,vw.prototype)}};Zl=vw=p([M({type:B.Sequence,itemType:Ir})],Zl)});var Yn,Sw=T(()=>{"use strict";J();X();Ct();ww();Yn=class{version=0;subject=new Ft;subjectPKInfo=new Rr;attributes=new Zl;constructor(e={}){Object.assign(this,e)}};p([g({type:_.Integer})],Yn.prototype,"version",void 0);p([g({type:Ft})],Yn.prototype,"subject",void 0);p([g({type:Rr})],Yn.prototype,"subjectPKInfo",void 0);p([g({type:Zl,implicit:!0,context:0,optional:!0})],Yn.prototype,"attributes",void 0)});var Yo,gT=T(()=>{"use strict";J();X();Ct();Sw();Yo=class{certificationRequestInfo=new Yn;certificationRequestInfoRaw;signatureAlgorithm=new ue;signature=new ArrayBuffer(0);constructor(e={}){Object.assign(this,e)}};p([g({type:Yn,raw:!0})],Yo.prototype,"certificationRequestInfo",void 0);p([g({type:ue})],Yo.prototype,"signatureAlgorithm",void 0);p([g({type:_.BitString})],Yo.prototype,"signature",void 0)});var xT=T(()=>{"use strict";ww();gT();Sw()});function xU(r){return new RegExp(gU).test(r)}function yU(r,e){return`\\${Ue.ToHex(Ue.FromUtf8String(e)).toUpperCase()}`}function bU(r){return r.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,yU)}function IU(r,e){return r.algorithm=new ue({algorithm:Wn,parameters:null}),e=he.serialize(r),e}function xg(r,e,t){if(t.length===1)r[e]=t[0].toTextObject();else{let s=new It("");t.forEach((n,i)=>{let o=n.toTextObject(),a=`${o[It.NAME]} ${i+1}`,c=s[a];Array.isArray(c)||(c=[],s[a]=c),c.push(o)}),r[e]=s}}function yg(r,e,t,s){let n=e[s];n&&(Array.isArray(n)?n:[n]).forEach(o=>{typeof o=="string"&&(o=new Qn("url",o)),r.push(new ki({accessMethod:t,accessLocation:he.parse(o.rawData,We)}))})}function RU(r,e=pr.get()){let t=xe.toUint8Array(Ue.FromHex(r||"")),s=t&&t.length&&t.some(i=>i>0)?new Uint8Array(t):void 0;s||(s=e.getRandomValues(new Uint8Array(16)));let n=0;for(;n<s.length-1&&s[n]===0;)n++;if(s=s.slice(n),s[0]>127){let i=new Uint8Array(s.length+1);i[0]=0,i.set(s,1),s=i}return s.buffer}var pue,_h,Bw,Nc,bg,gs,yT,bT,vT,wT,ST,_T,ET,CT,TT,AT,IT,RT,kT,PT,BT,NT,OT,LT,DT,MT,UT,jT,HT,FT,qT,zT,VT,$T,tr,bh,r5,s5,It,Nw,Jn,ji,gu,Qo,Is,n5,vh,pr,gU,wg,ms,ln,i5,KT,vU,WT,GT,XT,_w,Ew,Cw,Tw,Aw,Iw,Rw,gg,Qn,Hi,yh,wh,wU,SU,_U,bu,EU,CU,TU,AU,YT,Nr,Jo,Ui,Sg,_g,QT,Eg,JT,Cg,Tg,Ag,rs,Ig,Rg,kg,Pg,vu,Bg,Sh,wu,Eh,Ow,vg,Lw,Dw,Fi,kw,ZT,Pw,e5,Mw,eh,th,rh,sh,nh,ih,oh,xu,Uw,ah,ch,dh,uh,fh,lh,hh,ph,mh,gh,yu,xh,Ng,Og,kU,PU,BU,NU,OU,t5,LU,DU,MU,UU,jU,HU,FU,o5=T(()=>{"use strict";pue=Xe(f6());X();Ct();Ct();Hb();J();Dl();Bv();Bv();eg();eg();O8();bw();bw();xT();_h="crypto.algorithm",Bw=class{getAlgorithms(){return Kt.resolveAll(_h)}toAsnAlgorithm(e){({...e});for(let t of this.getAlgorithms()){let s=t.toAsnAlgorithm(e);if(s)return s}if(/^[0-9.]+$/.test(e.name)){let t=new ue({algorithm:e.name});if("parameters"in e){let s=e;t.parameters=s.parameters}return t}throw new Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm")}toWebAlgorithm(e){for(let s of this.getAlgorithms()){let n=s.toWebAlgorithm(e);if(n)return n}return{name:e.algorithm,parameters:e.parameters}}},Nc="crypto.algorithmProvider";Kt.registerSingleton(Nc,Bw);gs="1.3.36.3.3.2.8.1.1",yT=`${gs}.1`,bT=`${gs}.2`,vT=`${gs}.3`,wT=`${gs}.4`,ST=`${gs}.5`,_T=`${gs}.6`,ET=`${gs}.7`,CT=`${gs}.8`,TT=`${gs}.9`,AT=`${gs}.10`,IT=`${gs}.11`,RT=`${gs}.12`,kT=`${gs}.13`,PT=`${gs}.14`,BT="brainpoolP160r1",NT="brainpoolP160t1",OT="brainpoolP192r1",LT="brainpoolP192t1",DT="brainpoolP224r1",MT="brainpoolP224t1",UT="brainpoolP256r1",jT="brainpoolP256t1",HT="brainpoolP320r1",FT="brainpoolP320t1",qT="brainpoolP384r1",zT="brainpoolP384t1",VT="brainpoolP512r1",$T="brainpoolP512t1",tr="ECDSA",bh=bg=class{toAsnAlgorithm(e){switch(e.name.toLowerCase()){case tr.toLowerCase():if("hash"in e)switch((typeof e.hash=="string"?e.hash:e.hash.name).toLowerCase()){case"sha-1":return H4;case"sha-256":return F4;case"sha-384":return q4;case"sha-512":return z4}else if("namedCurve"in e){let t="";switch(e.namedCurve){case"P-256":t=Ev;break;case"K-256":t=bg.SECP256K1;break;case"P-384":t=Cv;break;case"P-521":t=Tv;break;case BT:t=yT;break;case NT:t=bT;break;case OT:t=vT;break;case LT:t=wT;break;case DT:t=ST;break;case MT:t=_T;break;case UT:t=ET;break;case jT:t=CT;break;case HT:t=TT;break;case FT:t=AT;break;case qT:t=IT;break;case zT:t=RT;break;case VT:t=kT;break;case $T:t=PT;break}if(t)return new ue({algorithm:vc,parameters:he.serialize(new Kn({namedCurve:t}))})}}return null}toWebAlgorithm(e){switch(e.algorithm){case Ml:return{name:tr,hash:{name:"SHA-1"}};case Ul:return{name:tr,hash:{name:"SHA-256"}};case jl:return{name:tr,hash:{name:"SHA-384"}};case Hl:return{name:tr,hash:{name:"SHA-512"}};case vc:{if(!e.parameters)throw new TypeError("Cannot get required parameters from EC algorithm");switch(he.parse(e.parameters,Kn).namedCurve){case Ev:return{name:tr,namedCurve:"P-256"};case bg.SECP256K1:return{name:tr,namedCurve:"K-256"};case Cv:return{name:tr,namedCurve:"P-384"};case Tv:return{name:tr,namedCurve:"P-521"};case yT:return{name:tr,namedCurve:BT};case bT:return{name:tr,namedCurve:NT};case vT:return{name:tr,namedCurve:OT};case wT:return{name:tr,namedCurve:LT};case ST:return{name:tr,namedCurve:DT};case _T:return{name:tr,namedCurve:MT};case ET:return{name:tr,namedCurve:UT};case CT:return{name:tr,namedCurve:jT};case TT:return{name:tr,namedCurve:HT};case AT:return{name:tr,namedCurve:FT};case IT:return{name:tr,namedCurve:qT};case RT:return{name:tr,namedCurve:zT};case kT:return{name:tr,namedCurve:VT};case PT:return{name:tr,namedCurve:$T}}}}return null}};bh.SECP256K1="1.3.132.0.10";bh=bg=p([Ko()],bh);Kt.registerSingleton(_h,bh);r5=Symbol("name"),s5=Symbol("value"),It=class{constructor(e,t={},s=""){this[r5]=e,this[s5]=s;for(let n in t)this[n]=t[n]}};It.NAME=r5;It.VALUE=s5;Nw=class{static toTextObject(e){let t=new It("Algorithm Identifier",{},Jn.toString(e.algorithm));if(e.parameters)if(e.algorithm===vc){let s=new bh().toWebAlgorithm(e);s&&"namedCurve"in s?t["Named Curve"]=s.namedCurve:t.Parameters=e.parameters}else t.Parameters=e.parameters;return t}},Jn=class{static toString(e){let t=this.items[e];return t||e}};Jn.items={[Sc]:"sha1",[Ym]:"sha224",[_c]:"sha256",[Ec]:"sha384",[Cc]:"sha512",[Wn]:"rsaEncryption",[iu]:"sha1WithRSAEncryption",[Q4]:"sha224WithRSAEncryption",[Xm]:"sha256WithRSAEncryption",[ou]:"sha384WithRSAEncryption",[au]:"sha512WithRSAEncryption",[vc]:"ecPublicKey",[Ml]:"ecdsaWithSHA1",[Gm]:"ecdsaWithSHA224",[Ul]:"ecdsaWithSHA256",[jl]:"ecdsaWithSHA384",[Hl]:"ecdsaWithSHA512",[F3]:"TLS WWW server authentication",[q3]:"TLS WWW client authentication",[z3]:"Code Signing",[V3]:"E-mail Protection",[$3]:"Time Stamping",[K3]:"OCSP Signing",[D4]:"Signed Data"};ji=class{static serialize(e){return this.serializeObj(e).join(`
|
|
30
|
-
`)}static pad(e=0){return"".padStart(2*e," ")}static serializeObj(e,t=0){let s=[],n=this.pad(t++),i="",o=e[It.VALUE];o&&(i=` ${o}`),s.push(`${n}${e[It.NAME]}:${i}`),n=this.pad(t);for(let a in e){if(typeof a=="symbol")continue;let c=e[a],d=a?`${a}: `:"";if(typeof c=="string"||typeof c=="number"||typeof c=="boolean")s.push(`${n}${d}${c}`);else if(c instanceof Date)s.push(`${n}${d}${c.toUTCString()}`);else if(Array.isArray(c))for(let u of c)u[It.NAME]=a,s.push(...this.serializeObj(u,t));else if(c instanceof It)c[It.NAME]=a,s.push(...this.serializeObj(c,t));else if(xe.isBufferSource(c))a?(s.push(`${n}${d}`),s.push(...this.serializeBufferSource(c,t+1))):s.push(...this.serializeBufferSource(c,t));else if("toTextObject"in c){let u=c.toTextObject();u[It.NAME]=a,s.push(...this.serializeObj(u,t))}else throw new TypeError("Cannot serialize data in text format. Unsupported type.")}return s}static serializeBufferSource(e,t=0){let s=this.pad(t),n=xe.toUint8Array(e),i=[];for(let o=0;o<n.length;){let a=[];for(let c=0;c<16&&o<n.length;c++){c===8&&a.push("");let d=n[o++].toString(16).padStart(2,"0");a.push(d)}i.push(`${s}${a.join(" ")}`)}return i}static serializeAlgorithm(e){return this.algorithmSerializer.toTextObject(e)}};ji.oidSerializer=Jn;ji.algorithmSerializer=Nw;Qo=class r{get rawData(){return ht(this,gu,"f")||Gt(this,gu,he.serialize(this.asn),"f"),ht(this,gu,"f")}constructor(...e){gu.set(this,void 0),xe.isBufferSource(e[0])?(this.asn=he.parse(e[0],e[1]),Gt(this,gu,xe.toArrayBuffer(e[0]),"f"),this.onInit(this.asn)):(this.asn=e[0],this.onInit(this.asn))}equal(e){return e instanceof r?h6(e.rawData,this.rawData):!1}toString(e="text"){switch(e){case"asn":return he.toString(this.rawData);case"text":return ji.serialize(this.toTextObject());case"hex":return Ue.ToHex(this.rawData);case"base64":return Ue.ToBase64(this.rawData);case"base64url":return Ue.ToBase64Url(this.rawData);default:throw TypeError("Argument 'format' is unsupported value")}}getTextName(){return this.constructor.NAME}toTextObject(){let e=this.toTextObjectEmpty();return e[""]=this.rawData,e}toTextObjectEmpty(e){return new It(this.getTextName(),{},e)}};gu=new WeakMap;Qo.NAME="ASN";Is=class r extends Qo{constructor(...e){let t;xe.isBufferSource(e[0])?t=xe.toArrayBuffer(e[0]):t=he.serialize(new Kr({extnID:e[0],critical:e[1],extnValue:new qe(xe.toArrayBuffer(e[2]))})),super(t,Kr)}onInit(e){this.type=e.extnID,this.critical=e.critical,this.value=e.extnValue.buffer}toTextObject(){let e=this.toTextObjectWithoutValue();return e[""]=this.value,e}toTextObjectWithoutValue(){let e=this.toTextObjectEmpty(this.critical?"critical":void 0);return e[It.NAME]===r.NAME&&(e[It.NAME]=Jn.toString(this.type)),e}},vh=class r{static isCryptoKeyPair(e){return e&&e.privateKey&&e.publicKey}static isCryptoKey(e){return e&&e.usages&&e.type&&e.algorithm&&e.extractable!==void 0}constructor(){this.items=new Map,this[n5]="CryptoProvider",typeof self<"u"&&typeof crypto<"u"?this.set(r.DEFAULT,crypto):typeof global<"u"&&global.crypto&&global.crypto.subtle&&this.set(r.DEFAULT,global.crypto)}clear(){this.items.clear()}delete(e){return this.items.delete(e)}forEach(e,t){return this.items.forEach(e,t)}has(e){return this.items.has(e)}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(e=r.DEFAULT){let t=this.items.get(e.toLowerCase());if(!t)throw new Error(`Cannot get Crypto by name '${e}'`);return t}set(e,t){if(typeof e=="string"){if(!t)throw new TypeError("Argument 'value' is required");this.items.set(e.toLowerCase(),t)}else this.items.set(r.DEFAULT,e);return this}};n5=Symbol.toStringTag;vh.DEFAULT="default";pr=new vh,gU=/^[0-2](?:\.[1-9][0-9]*)+$/;wg=class{constructor(e={}){this.items={};for(let t in e)this.register(t,e[t])}get(e){return this.items[e]||null}findId(e){return xU(e)?e:this.get(e)}register(e,t){this.items[e]=t,this.items[t]=e}},ms=new wg;ms.register("CN","2.5.4.3");ms.register("L","2.5.4.7");ms.register("ST","2.5.4.8");ms.register("O","2.5.4.10");ms.register("OU","2.5.4.11");ms.register("C","2.5.4.6");ms.register("DC","0.9.2342.19200300.100.1.25");ms.register("E","1.2.840.113549.1.9.1");ms.register("G","2.5.4.42");ms.register("I","2.5.4.43");ms.register("SN","2.5.4.4");ms.register("T","2.5.4.12");ln=class r{static isASCII(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>255)return!1;return!0}static isPrintableString(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(e)}constructor(e,t={}){this.extraNames=new wg,this.asn=new Ft;for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s)){let n=t[s];this.extraNames.register(s,n)}typeof e=="string"?this.asn=this.fromString(e):e instanceof Ft?this.asn=e:xe.isBufferSource(e)?this.asn=he.parse(e,Ft):this.asn=this.fromJSON(e)}getField(e){let t=this.extraNames.findId(e)||ms.findId(e),s=[];for(let n of this.asn)for(let i of n)i.type===t&&s.push(i.value.toString());return s}getName(e){return this.extraNames.get(e)||ms.get(e)}toString(){return this.asn.map(e=>e.map(t=>{let s=this.getName(t.type)||t.type,n=t.value.anyValue?`#${Ue.ToHex(t.value.anyValue)}`:bU(t.value.toString());return`${s}=${n}`}).join("+")).join(", ")}toJSON(){var e;let t=[];for(let s of this.asn){let n={};for(let i of s){let o=this.getName(i.type)||i.type;(e=n[o])!==null&&e!==void 0||(n[o]=[]),n[o].push(i.value.anyValue?`#${Ue.ToHex(i.value.anyValue)}`:i.value.toString())}t.push(n)}return t}fromString(e){let t=new Ft,s=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g,n=null,i=",";for(;n=s.exec(`${e},`);){let[,o,a]=n,c=a[a.length-1];(c===","||c==="+")&&(a=a.slice(0,a.length-1),n[3]=c);let d=n[3];o=this.getTypeOid(o);let u=this.createAttribute(o,a);i==="+"?t[t.length-1].push(u):t.push(new Po([u])),i=d}return t}fromJSON(e){let t=new Ft;for(let s of e){let n=new Po;for(let i in s){let o=this.getTypeOid(i),a=s[i];for(let c of a){let d=this.createAttribute(o,c);n.push(d)}}t.push(n)}return t}getTypeOid(e){if(/[\d.]+/.test(e)||(e=this.getName(e)||""),!e)throw new Error(`Cannot get OID for name type '${e}'`);return e}createAttribute(e,t){let s=new Ja({type:e});if(typeof t=="object")for(let n in t)switch(n){case"ia5String":s.value.ia5String=t[n];break;case"utf8String":s.value.utf8String=t[n];break;case"universalString":s.value.universalString=t[n];break;case"bmpString":s.value.bmpString=t[n];break;case"printableString":s.value.printableString=t[n];break}else if(t[0]==="#")s.value.anyValue=Ue.FromHex(t.slice(1));else{let n=this.processStringValue(t);e===this.getName("E")||e===this.getName("DC")?s.value.ia5String=n:r.isPrintableString(n)?s.value.printableString=n:s.value.utf8String=n}return s}processStringValue(e){let t=/"(.*?[^\\])?"/.exec(e);return t&&(e=t[1]),e.replace(/\\0a/ig,`
|
|
31
|
-
`).replace(/\\0d/ig,"\r").replace(/\\0g/ig," ").replace(/\\(.)/g,"$1")}toArrayBuffer(){return he.serialize(this.asn)}async getThumbprint(...e){var t;let s,n="SHA-1";return e.length>=1&&!(!((t=e[0])===null||t===void 0)&&t.subtle)?(n=e[0]||n,s=e[1]||pr.get()):s=e[0]||pr.get(),await s.subtle.digest(n,this.toArrayBuffer())}},i5="Cannot initialize GeneralName from ASN.1 data.",KT=`${i5} Unsupported string format in use.`,vU=`${i5} Value doesn't match to GUID regular expression.`,WT=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,GT="1.3.6.1.4.1.311.25.1",XT="1.3.6.1.4.1.311.20.2.3",_w="dns",Ew="dn",Cw="email",Tw="ip",Aw="url",Iw="guid",Rw="upn",gg="id",Qn=class extends Qo{constructor(...e){let t;if(e.length===2)switch(e[0]){case Ew:{let s=new ln(e[1]).toArrayBuffer(),n=he.parse(s,Ft);t=new We({directoryName:n});break}case _w:t=new We({dNSName:e[1]});break;case Cw:t=new We({rfc822Name:e[1]});break;case Iw:{let s=new RegExp(WT,"i").exec(e[1]);if(!s)throw new Error("Cannot parse GUID value. Value doesn't match to regular expression");let n=s.slice(1).map((i,o)=>o<3?Ue.ToHex(new Uint8Array(Ue.FromHex(i)).reverse()):i).join("");t=new We({otherName:new Bo({typeId:GT,value:he.serialize(new qe(Ue.FromHex(n)))})});break}case Tw:t=new We({iPAddress:e[1]});break;case gg:t=new We({registeredID:e[1]});break;case Rw:{t=new We({otherName:new Bo({typeId:XT,value:he.serialize(Qb.toASN(e[1]))})});break}case Aw:t=new We({uniformResourceIdentifier:e[1]});break;default:throw new Error("Cannot create GeneralName. Unsupported type of the name")}else xe.isBufferSource(e[0])?t=he.parse(e[0],We):t=e[0];super(t)}onInit(e){if(e.dNSName!=null)this.type=_w,this.value=e.dNSName;else if(e.rfc822Name!=null)this.type=Cw,this.value=e.rfc822Name;else if(e.iPAddress!=null)this.type=Tw,this.value=e.iPAddress;else if(e.uniformResourceIdentifier!=null)this.type=Aw,this.value=e.uniformResourceIdentifier;else if(e.registeredID!=null)this.type=gg,this.value=e.registeredID;else if(e.directoryName!=null)this.type=Ew,this.value=new ln(e.directoryName).toString();else if(e.otherName!=null)if(e.otherName.typeId===GT){this.type=Iw;let t=he.parse(e.otherName.value,qe),s=new RegExp(WT,"i").exec(Ue.ToHex(t));if(!s)throw new Error(vU);this.value=s.slice(1).map((n,i)=>i<3?Ue.ToHex(new Uint8Array(Ue.FromHex(n)).reverse()):n).join("-")}else if(e.otherName.typeId===XT)this.type=Rw,this.value=he.parse(e.otherName.value,hr).toString();else throw new Error(KT);else throw new Error(KT)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let e;switch(this.type){case Ew:case _w:case Iw:case Tw:case gg:case Rw:case Aw:e=this.type.toUpperCase();break;case Cw:e="Email";break;default:throw new Error("Unsupported GeneralName type")}let t=this.value;return this.type===gg&&(t=Jn.toString(t)),new It(e,void 0,t)}},Hi=class extends Qo{constructor(e){let t;if(e instanceof Xt)t=e;else if(Array.isArray(e)){let s=[];for(let n of e)if(n instanceof We)s.push(n);else{let i=he.parse(new Qn(n.type,n.value).rawData,We);s.push(i)}t=new Xt(s)}else if(xe.isBufferSource(e))t=he.parse(e,Xt);else throw new Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(t)}onInit(e){let t=[];for(let s of e){let n=null;try{n=new Qn(s)}catch{continue}t.push(n)}this.items=t}toJSON(){return this.items.map(e=>e.toJSON())}toTextObject(){let e=super.toTextObjectEmpty();for(let t of this.items){let s=t.toTextObject(),n=e[s[It.NAME]];Array.isArray(n)||(n=[],e[s[It.NAME]]=n),n.push(s)}return e}};Hi.NAME="GeneralNames";yh="-{5}",wh="\\n",wU=`[^${wh}]+`,SU=`${yh}BEGIN (${wU}(?=${yh}))${yh}`,_U=`${yh}END \\1${yh}`,bu="\\n",EU=`[^:${wh}]+`,CU=`(?:[^${wh}]+${bu}(?: +[^${wh}]+${bu})*)`,TU="[a-zA-Z0-9=+/]+",AU=`(?:${TU}${bu})+`,YT=`${SU}${bu}(?:((?:${EU}: ${CU})+))?${bu}?(${AU})${_U}`,Nr=class{static isPem(e){return typeof e=="string"&&new RegExp(YT,"g").test(e.replace(/\r/g,""))}static decodeWithHeaders(e){e=e.replace(/\r/g,"");let t=new RegExp(YT,"g"),s=[],n=null;for(;n=t.exec(e);){let i=n[3].replace(new RegExp(`[${wh}]+`,"g"),""),o={type:n[1],headers:[],rawData:Ue.FromBase64(i)},a=n[2];if(a){let c=a.split(new RegExp(bu,"g")),d=null;for(let u of c){let[l,h]=u.split(/:(.*)/);if(h===void 0){if(!d)throw new Error("Cannot parse PEM string. Incorrect header value");d.value+=l.trim()}else d&&o.headers.push(d),d={key:l,value:h.trim()}}d&&o.headers.push(d)}s.push(o)}return s}static decode(e){return this.decodeWithHeaders(e).map(s=>s.rawData)}static decodeFirst(e){let t=this.decode(e);if(!t.length)throw new RangeError("PEM string doesn't contain any objects");return t[0]}static encode(e,t){if(Array.isArray(e)){let s=new Array;return t?e.forEach(n=>{if(!xe.isBufferSource(n))throw new TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");s.push(this.encodeStruct({type:t,rawData:xe.toArrayBuffer(n)}))}):e.forEach(n=>{if(!("type"in n))throw new TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");s.push(this.encodeStruct(n))}),s.join(`
|
|
32
|
-
`)}else{if(!t)throw new Error("Required argument 'tag' is missed");return this.encodeStruct({type:t,rawData:xe.toArrayBuffer(e)})}}static encodeStruct(e){var t;let s=e.type.toLocaleUpperCase(),n=[];if(n.push(`-----BEGIN ${s}-----`),!((t=e.headers)===null||t===void 0)&&t.length){for(let d of e.headers)n.push(`${d.key}: ${d.value}`);n.push("")}let i=Ue.ToBase64(e.rawData),o,a=0,c=Array();for(;a<i.length&&(i.length-a<64?o=i.substring(a):(o=i.substring(a,a+64),a+=64),o.length!==0);)if(c.push(o),o.length<64)break;return n.push(...c),n.push(`-----END ${s}-----`),n.join(`
|
|
33
|
-
`)}};Nr.CertificateTag="CERTIFICATE";Nr.CrlTag="CRL";Nr.CertificateRequestTag="CERTIFICATE REQUEST";Nr.PublicKeyTag="PUBLIC KEY";Nr.PrivateKeyTag="PRIVATE KEY";Jo=class r extends Qo{static isAsnEncoded(e){return xe.isBufferSource(e)||typeof e=="string"}static toArrayBuffer(e){if(typeof e=="string"){if(Nr.isPem(e))return Nr.decode(e)[0];if(Ue.isHex(e))return Ue.FromHex(e);if(Ue.isBase64(e))return Ue.FromBase64(e);if(Ue.isBase64Url(e))return Ue.FromBase64Url(e);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}else{let t=xe.toUint8Array(e);if(t.length>0&&t[0]===48)return xe.toArrayBuffer(e);let s=Ue.ToBinary(e);if(Nr.isPem(s))return Nr.decode(s)[0];if(Ue.isHex(s))return Ue.FromHex(s);if(Ue.isBase64(s))return Ue.FromBase64(s);if(Ue.isBase64Url(s))return Ue.FromBase64Url(s);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...e){r.isAsnEncoded(e[0])?super(r.toArrayBuffer(e[0]),e[1]):super(e[0])}toString(e="pem"){return e==="pem"?Nr.encode(this.rawData,this.tag):super.toString(e)}},Ui=class r extends Jo{static async create(e,t=pr.get()){if(e instanceof r)return e;if(vh.isCryptoKey(e)){if(e.type!=="public")throw new TypeError("Public key is required");let s=await t.subtle.exportKey("spki",e);return new r(s)}else{if(e.publicKey)return e.publicKey;if(xe.isBufferSource(e))return new r(e);throw new TypeError("Unsupported PublicKeyType")}}constructor(e){Jo.isAsnEncoded(e)?super(e,Rr):super(e),this.tag=Nr.PublicKeyTag}async export(...e){let t,s=["verify"],n={hash:"SHA-256",...this.algorithm};e.length>1?(n=e[0]||n,s=e[1]||s,t=e[2]||pr.get()):t=e[0]||pr.get();let i=this.rawData,o=he.parse(this.rawData,Rr);return o.algorithm.algorithm===qo&&(i=IU(o,i)),t.subtle.importKey("spki",i,n,!0,s)}onInit(e){let t=Kt.resolve(Nc),s=this.algorithm=t.toWebAlgorithm(e.algorithm);if(e.algorithm.algorithm===Wn){let n=he.parse(e.subjectPublicKey,uu),i=xe.toUint8Array(n.modulus);s.publicExponent=xe.toUint8Array(n.publicExponent),s.modulusLength=(i[0]?i:i.slice(1)).byteLength<<3}}async getThumbprint(...e){var t;let s,n="SHA-1";return e.length>=1&&!(!((t=e[0])===null||t===void 0)&&t.subtle)?(n=e[0]||n,s=e[1]||pr.get()):s=e[0]||pr.get(),await s.subtle.digest(n,this.rawData)}async getKeyIdentifier(...e){let t,s="SHA-1";e.length===1?typeof e[0]=="string"?(s=e[0],t=pr.get()):t=e[0]:e.length===2?(s=e[0],t=e[1]):t=pr.get();let n=he.parse(this.rawData,Rr);return await t.subtle.digest(s,n.subjectPublicKey)}toTextObject(){let e=this.toTextObjectEmpty(),t=he.parse(this.rawData,Rr);switch(e.Algorithm=ji.serializeAlgorithm(t.algorithm),t.algorithm.algorithm){case vc:e["EC Point"]=t.subjectPublicKey;break;case Wn:default:e["Raw Data"]=t.subjectPublicKey}return e}};Sg=class r extends Is{static async create(e,t=!1,s=pr.get()){if("name"in e&&"serialNumber"in e)return new r(e,t);let i=await(await Ui.create(e,s)).getKeyIdentifier(s);return new r(Ue.ToHex(i),t)}constructor(...e){if(xe.isBufferSource(e[0]))super(e[0]);else if(typeof e[0]=="string"){let t=new Fn({keyIdentifier:new rc(Ue.FromHex(e[0]))});super(vm,e[1],he.serialize(t))}else{let t=e[0],s=t.name instanceof Hi?he.parse(t.name.rawData,Xt):t.name,n=new Fn({authorityCertIssuer:s,authorityCertSerialNumber:Ue.FromHex(t.serialNumber)});super(vm,e[1],he.serialize(n))}}onInit(e){super.onInit(e);let t=he.parse(e.extnValue,Fn);t.keyIdentifier&&(this.keyId=Ue.ToHex(t.keyIdentifier)),(t.authorityCertIssuer||t.authorityCertSerialNumber)&&(this.certId={name:t.authorityCertIssuer||[],serialNumber:t.authorityCertSerialNumber?Ue.ToHex(t.authorityCertSerialNumber):""})}toTextObject(){let e=this.toTextObjectWithoutValue(),t=he.parse(this.value,Fn);return t.authorityCertIssuer&&(e["Authority Issuer"]=new Hi(t.authorityCertIssuer).toTextObject()),t.authorityCertSerialNumber&&(e["Authority Serial Number"]=t.authorityCertSerialNumber),t.keyIdentifier&&(e[""]=t.keyIdentifier),e}};Sg.NAME="Authority Key Identifier";_g=class extends Is{constructor(...e){if(xe.isBufferSource(e[0])){super(e[0]);let t=he.parse(this.value,sc);this.ca=t.cA,this.pathLength=t.pathLenConstraint}else{let t=new sc({cA:e[0],pathLenConstraint:e[1]});super(wm,e[2],he.serialize(t)),this.ca=e[0],this.pathLength=e[1]}}toTextObject(){let e=this.toTextObjectWithoutValue();return this.ca&&(e.CA=this.ca),this.pathLength!==void 0&&(e["Path Length"]=this.pathLength),e}};_g.NAME="Basic Constraints";(function(r){r.serverAuth="1.3.6.1.5.5.7.3.1",r.clientAuth="1.3.6.1.5.5.7.3.2",r.codeSigning="1.3.6.1.5.5.7.3.3",r.emailProtection="1.3.6.1.5.5.7.3.4",r.timeStamping="1.3.6.1.5.5.7.3.8",r.ocspSigning="1.3.6.1.5.5.7.3.9"})(QT||(QT={}));Eg=class extends Is{constructor(...e){if(xe.isBufferSource(e[0])){super(e[0]);let t=he.parse(this.value,pl);this.usages=t.map(s=>s)}else{let t=new pl(e[0]);super(Tm,e[1],he.serialize(t)),this.usages=e[0]}}toTextObject(){let e=this.toTextObjectWithoutValue();return e[""]=this.usages.map(t=>Jn.toString(t)).join(", "),e}};Eg.NAME="Extended Key Usages";(function(r){r[r.digitalSignature=1]="digitalSignature",r[r.nonRepudiation=2]="nonRepudiation",r[r.keyEncipherment=4]="keyEncipherment",r[r.dataEncipherment=8]="dataEncipherment",r[r.keyAgreement=16]="keyAgreement",r[r.keyCertSign=32]="keyCertSign",r[r.cRLSign=64]="cRLSign",r[r.encipherOnly=128]="encipherOnly",r[r.decipherOnly=256]="decipherOnly"})(JT||(JT={}));Cg=class extends Is{constructor(...e){if(xe.isBufferSource(e[0])){super(e[0]);let t=he.parse(this.value,qd);this.usages=t.toNumber()}else{let t=new qd(e[0]);super(Am,e[1],he.serialize(t)),this.usages=e[0]}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=he.parse(this.value,qd);return e[""]=t.toJSON().join(", "),e}};Cg.NAME="Key Usages";Tg=class r extends Is{static async create(e,t=!1,s=pr.get()){let i=await(await Ui.create(e,s)).getKeyIdentifier(s);return new r(Ue.ToHex(i),t)}constructor(...e){if(xe.isBufferSource(e[0])){super(e[0]);let t=he.parse(this.value,us);this.keyId=Ue.ToHex(t)}else{let t=typeof e[0]=="string"?Ue.FromHex(e[0]):e[0],s=new us(t);super(L1,e[1],he.serialize(s)),this.keyId=Ue.ToHex(t)}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=he.parse(this.value,us);return e[""]=t,e}};Tg.NAME="Subject Key Identifier";Ag=class extends Is{constructor(...e){xe.isBufferSource(e[0])?super(e[0]):super(B1,e[1],new Hi(e[0]||[]).rawData)}onInit(e){super.onInit(e);let t=he.parse(e.extnValue,Pm);this.names=new Hi(t)}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.names.toTextObject();for(let s in t)e[s]=t[s];return e}};Ag.NAME="Subject Alternative Name";rs=class{static register(e,t){this.items.set(e,t)}static create(e){let t=new Is(e),s=this.items.get(t.type);return s?new s(e):t}};rs.items=new Map;Ig=class extends Is{constructor(...e){var t;if(xe.isBufferSource(e[0])){super(e[0]);let s=he.parse(this.value,dl);this.policies=s.map(n=>n.policyIdentifier)}else{let s=e[0],n=(t=e[1])!==null&&t!==void 0?t:!1,i=new dl(s.map(o=>new nc({policyIdentifier:o})));super(_m,n,he.serialize(i)),this.policies=s}}toTextObject(){let e=this.toTextObjectWithoutValue();return e.Policy=this.policies.map(t=>new It("",{},Jn.toString(t))),e}};Ig.NAME="Certificate Policies";rs.register(_m,Ig);Rg=class extends Is{constructor(...e){var t;if(xe.isBufferSource(e[0]))super(e[0]);else if(Array.isArray(e[0])&&typeof e[0][0]=="string"){let n=e[0].map(o=>new qn({distributionPoint:new Bi({fullName:[new We({uniformResourceIdentifier:o})]})})),i=new Lo(n);super(Em,e[1],he.serialize(i))}else{let s=new Lo(e[0]);super(Em,e[1],he.serialize(s))}(t=this.distributionPoints)!==null&&t!==void 0||(this.distributionPoints=[])}onInit(e){super.onInit(e);let t=he.parse(e.extnValue,Lo);this.distributionPoints=t}toTextObject(){let e=this.toTextObjectWithoutValue();return e["Distribution Point"]=this.distributionPoints.map(t=>{var s;let n={};return t.distributionPoint&&(n[""]=(s=t.distributionPoint.fullName)===null||s===void 0?void 0:s.map(i=>new Qn(i).toString()).join(", ")),t.reasons&&(n.Reasons=t.reasons.toString()),t.cRLIssuer&&(n["CRL Issuer"]=t.cRLIssuer.map(i=>i.toString()).join(", ")),n}),e}};Rg.NAME="CRL Distribution Points";kg=class extends Is{constructor(...e){var t,s,n,i;if(xe.isBufferSource(e[0]))super(e[0]);else if(e[0]instanceof tc){let o=new tc(e[0]);super(bm,e[1],he.serialize(o))}else{let o=e[0],a=new tc;yg(a,o,l1,"ocsp"),yg(a,o,h1,"caIssuers"),yg(a,o,p1,"timeStamping"),yg(a,o,m1,"caRepository"),super(bm,e[1],he.serialize(a))}(t=this.ocsp)!==null&&t!==void 0||(this.ocsp=[]),(s=this.caIssuers)!==null&&s!==void 0||(this.caIssuers=[]),(n=this.timeStamping)!==null&&n!==void 0||(this.timeStamping=[]),(i=this.caRepository)!==null&&i!==void 0||(this.caRepository=[])}onInit(e){super.onInit(e),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],he.parse(e.extnValue,tc).forEach(s=>{switch(s.accessMethod){case l1:this.ocsp.push(new Qn(s.accessLocation));break;case h1:this.caIssuers.push(new Qn(s.accessLocation));break;case p1:this.timeStamping.push(new Qn(s.accessLocation));break;case m1:this.caRepository.push(new Qn(s.accessLocation));break}})}toTextObject(){let e=this.toTextObjectWithoutValue();return this.ocsp.length&&xg(e,"OCSP",this.ocsp),this.caIssuers.length&&xg(e,"CA Issuers",this.caIssuers),this.timeStamping.length&&xg(e,"Time Stamping",this.timeStamping),this.caRepository.length&&xg(e,"CA Repository",this.caRepository),e}};kg.NAME="Authority Info Access";Pg=class extends Is{constructor(...e){xe.isBufferSource(e[0])?super(e[0]):super(I1,e[1],new Hi(e[0]||[]).rawData)}onInit(e){super.onInit(e);let t=he.parse(e.extnValue,Xt);this.names=new Hi(t)}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.names.toTextObject();for(let s in t)e[s]=t[s];return e}};Pg.NAME="Issuer Alternative Name";vu=class r extends Qo{constructor(...e){let t;if(xe.isBufferSource(e[0]))t=xe.toArrayBuffer(e[0]);else{let s=e[0],n=Array.isArray(e[1])?e[1].map(i=>xe.toArrayBuffer(i)):[];t=he.serialize(new Ir({type:s,values:n}))}super(t,Ir)}onInit(e){this.type=e.type,this.values=e.values}toTextObject(){let e=this.toTextObjectWithoutValue();return e.Value=this.values.map(t=>new It("",{"":t})),e}toTextObjectWithoutValue(){let e=this.toTextObjectEmpty();return e[It.NAME]===r.NAME&&(e[It.NAME]=Jn.toString(this.type)),e}};vu.NAME="Attribute";Bg=class extends vu{constructor(...e){var t;if(xe.isBufferSource(e[0]))super(e[0]);else{let s=new Xl({printableString:e[0]});super(yw,[he.serialize(s)])}(t=this.password)!==null&&t!==void 0||(this.password="")}onInit(e){if(super.onInit(e),this.values[0]){let t=he.parse(this.values[0],Xl);this.password=t.toString()}}toTextObject(){let e=this.toTextObjectWithoutValue();return e[It.VALUE]=this.password,e}};Bg.NAME="Challenge Password";Sh=class extends vu{constructor(...e){var t;if(xe.isBufferSource(e[0]))super(e[0]);else{let s=e[0],n=new Ts;for(let i of s)n.push(he.parse(i.rawData,Kr));super(Ql,[he.serialize(n)])}(t=this.items)!==null&&t!==void 0||(this.items=[])}onInit(e){if(super.onInit(e),this.values[0]){let t=he.parse(this.values[0],Ts);this.items=t.map(s=>rs.create(he.serialize(s)))}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.items.map(s=>s.toTextObject());for(let s of t)e[s[It.NAME]]=s;return e}};Sh.NAME="Extensions";wu=class{static register(e,t){this.items.set(e,t)}static create(e){let t=new vu(e),s=this.items.get(t.type);return s?new s(e):t}};wu.items=new Map;Eh="crypto.signatureFormatter",Ow=class{toAsnSignature(e,t){return xe.toArrayBuffer(t)}toWebSignature(e,t){return xe.toArrayBuffer(t)}},Lw=vg=class{static createPssParams(e,t){let s=vg.getHashAlgorithm(e);return s?new Gn({hashAlgorithm:s,maskGenAlgorithm:new ue({algorithm:zo,parameters:he.serialize(s)}),saltLength:t}):null}static getHashAlgorithm(e){let t=Kt.resolve(Nc);return typeof e=="string"?t.toAsnAlgorithm({name:e}):typeof e=="object"&&e&&"name"in e?t.toAsnAlgorithm(e):null}toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in e){let t;if(typeof e.hash=="string")t=e.hash;else if(e.hash&&typeof e.hash=="object"&&"name"in e.hash&&typeof e.hash.name=="string")t=e.hash.name.toUpperCase();else throw new Error("Cannot get hash algorithm name");switch(t.toLowerCase()){case"sha-1":return new ue({algorithm:iu,parameters:null});case"sha-256":return new ue({algorithm:Xm,parameters:null});case"sha-384":return new ue({algorithm:ou,parameters:null});case"sha-512":return new ue({algorithm:au,parameters:null})}}else return new ue({algorithm:Wn,parameters:null});break;case"rsa-pss":if("hash"in e){if(!("saltLength"in e&&typeof e.saltLength=="number"))throw new Error("Cannot get 'saltLength' from 'alg' argument");let t=vg.createPssParams(e.hash,e.saltLength);if(!t)throw new Error("Cannot create PSS parameters");return new ue({algorithm:qo,parameters:he.serialize(t)})}else return new ue({algorithm:qo,parameters:null})}return null}toWebAlgorithm(e){switch(e.algorithm){case Wn:return{name:"RSASSA-PKCS1-v1_5"};case iu:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case Xm:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case ou:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case au:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case qo:if(e.parameters){let t=he.parse(e.parameters,Gn);return{name:"RSA-PSS",hash:Kt.resolve(Nc).toWebAlgorithm(t.hashAlgorithm),saltLength:t.saltLength}}else return{name:"RSA-PSS"}}return null}};Lw=vg=p([Ko()],Lw);Kt.registerSingleton(_h,Lw);Dw=class{toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"sha-1":return new ue({algorithm:Sc});case"sha-256":return new ue({algorithm:_c});case"sha-384":return new ue({algorithm:Ec});case"sha-512":return new ue({algorithm:Cc})}return null}toWebAlgorithm(e){switch(e.algorithm){case Sc:return{name:"SHA-1"};case _c:return{name:"SHA-256"};case Ec:return{name:"SHA-384"};case Cc:return{name:"SHA-512"}}return null}};Dw=p([Ko()],Dw);Kt.registerSingleton(_h,Dw);Fi=class r{addPadding(e,t){let s=xe.toUint8Array(t),n=new Uint8Array(e);return n.set(s,e-s.length),n.buffer}removePadding(e,t=!1){let s=xe.toUint8Array(e);for(let n=0;n<s.length;n++)if(s[n]){s=s.slice(n);break}if(t&&s[0]>127){let n=new Uint8Array(s.length+1);return n.set(s,1),n.buffer}return s.buffer}toAsnSignature(e,t){if(e.name==="ECDSA"){let s=e.namedCurve,n=r.namedCurveSize.get(s)||r.defaultNamedCurveSize,i=new wc,o=xe.toUint8Array(t);return i.r=this.removePadding(o.slice(0,n),!0),i.s=this.removePadding(o.slice(n,n+n),!0),he.serialize(i)}return null}toWebSignature(e,t){if(e.name==="ECDSA"){let s=he.parse(t,wc),n=e.namedCurve,i=r.namedCurveSize.get(n)||r.defaultNamedCurveSize,o=this.addPadding(i,this.removePadding(s.r)),a=this.addPadding(i,this.removePadding(s.s));return l6(o,a)}return null}};Fi.namedCurveSize=new Map;Fi.defaultNamedCurveSize=32;kw="1.3.101.110",ZT="1.3.101.111",Pw="1.3.101.112",e5="1.3.101.113",Mw=class{toAsnAlgorithm(e){let t=null;switch(e.name.toLowerCase()){case"ed25519":t=Pw;break;case"x25519":t=kw;break;case"eddsa":switch(e.namedCurve.toLowerCase()){case"ed25519":t=Pw;break;case"ed448":t=e5;break}break;case"ecdh-es":switch(e.namedCurve.toLowerCase()){case"x25519":t=kw;break;case"x448":t=ZT;break}}return t?new ue({algorithm:t}):null}toWebAlgorithm(e){switch(e.algorithm){case Pw:return{name:"Ed25519"};case e5:return{name:"EdDSA",namedCurve:"Ed448"};case kw:return{name:"X25519"};case ZT:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Mw=p([Ko()],Mw);Kt.registerSingleton(_h,Mw);Uw=class extends Jo{get subjectName(){return ht(this,th,"f")||Gt(this,th,new ln(this.asn.certificationRequestInfo.subject),"f"),ht(this,th,"f")}get subject(){return ht(this,rh,"f")||Gt(this,rh,this.subjectName.toString(),"f"),ht(this,rh,"f")}get signatureAlgorithm(){if(!ht(this,sh,"f")){let e=Kt.resolve(Nc);Gt(this,sh,e.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return ht(this,sh,"f")}get signature(){return ht(this,nh,"f")||Gt(this,nh,this.asn.signature,"f"),ht(this,nh,"f")}get publicKey(){return ht(this,ih,"f")||Gt(this,ih,new Ui(this.asn.certificationRequestInfo.subjectPKInfo),"f"),ht(this,ih,"f")}get attributes(){return ht(this,oh,"f")||Gt(this,oh,this.asn.certificationRequestInfo.attributes.map(e=>wu.create(he.serialize(e))),"f"),ht(this,oh,"f")}get extensions(){if(!ht(this,xu,"f")){Gt(this,xu,[],"f");let e=this.getAttribute(Ql);e instanceof Sh&&Gt(this,xu,e.items,"f")}return ht(this,xu,"f")}get tbs(){return ht(this,eh,"f")||Gt(this,eh,this.asn.certificationRequestInfoRaw||he.serialize(this.asn.certificationRequestInfo),"f"),ht(this,eh,"f")}constructor(e){let t=Jo.isAsnEncoded(e)?[e,Yo]:[e];super(t[0],t[1]),eh.set(this,void 0),th.set(this,void 0),rh.set(this,void 0),sh.set(this,void 0),nh.set(this,void 0),ih.set(this,void 0),oh.set(this,void 0),xu.set(this,void 0),this.tag=Nr.CertificateRequestTag}onInit(e){}getAttribute(e){for(let t of this.attributes)if(t.type===e)return t;return null}getAttributes(e){return this.attributes.filter(t=>t.type===e)}getExtension(e){for(let t of this.extensions)if(t.type===e)return t;return null}getExtensions(e){return this.extensions.filter(t=>t.type===e)}async verify(e=pr.get()){let t={...this.publicKey.algorithm,...this.signatureAlgorithm},s=await this.publicKey.export(t,["verify"],e),n=Kt.resolveAll(Eh).reverse(),i=null;for(let a of n)if(i=a.toWebSignature(t,this.signature),i)break;if(!i)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await e.subtle.verify(this.signatureAlgorithm,s,i,this.tbs)}toTextObject(){let e=this.toTextObjectEmpty(),t=he.parse(this.rawData,Yo),s=t.certificationRequestInfo,n=new It("",{Version:`${zn[s.version]} (${s.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let i=new It("");for(let o of this.attributes){let a=o.toTextObject();i[a[It.NAME]]=a}n.Attributes=i}return e.Data=n,e.Signature=new It("",{Algorithm:ji.serializeAlgorithm(t.signatureAlgorithm),"":t.signature}),e}};eh=new WeakMap,th=new WeakMap,rh=new WeakMap,sh=new WeakMap,nh=new WeakMap,ih=new WeakMap,oh=new WeakMap,xu=new WeakMap;Uw.NAME="PKCS#10 Certificate Request";Ng=class extends Jo{get publicKey(){return ht(this,xh,"f")||Gt(this,xh,new Ui(this.asn.tbsCertificate.subjectPublicKeyInfo),"f"),ht(this,xh,"f")}get serialNumber(){if(!ht(this,ch,"f")){let e=this.asn.tbsCertificate,t=new Uint8Array(e.serialNumber);t.length>1&&t[0]===0&&t[1]>127&&(t=t.slice(1)),Gt(this,ch,Ue.ToHex(t),"f")}return ht(this,ch,"f")}get subjectName(){return ht(this,dh,"f")||Gt(this,dh,new ln(this.asn.tbsCertificate.subject),"f"),ht(this,dh,"f")}get subject(){return ht(this,uh,"f")||Gt(this,uh,this.subjectName.toString(),"f"),ht(this,uh,"f")}get issuerName(){return ht(this,fh,"f")||Gt(this,fh,new ln(this.asn.tbsCertificate.issuer),"f"),ht(this,fh,"f")}get issuer(){return ht(this,lh,"f")||Gt(this,lh,this.issuerName.toString(),"f"),ht(this,lh,"f")}get notBefore(){if(!ht(this,hh,"f")){let e=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!e)throw new Error("Cannot get 'notBefore' value");Gt(this,hh,e,"f")}return ht(this,hh,"f")}get notAfter(){if(!ht(this,ph,"f")){let e=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!e)throw new Error("Cannot get 'notAfter' value");Gt(this,ph,e,"f")}return ht(this,ph,"f")}get signatureAlgorithm(){if(!ht(this,mh,"f")){let e=Kt.resolve(Nc);Gt(this,mh,e.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return ht(this,mh,"f")}get signature(){return ht(this,gh,"f")||Gt(this,gh,this.asn.signatureValue,"f"),ht(this,gh,"f")}get extensions(){return ht(this,yu,"f")||(Gt(this,yu,[],"f"),this.asn.tbsCertificate.extensions&&Gt(this,yu,this.asn.tbsCertificate.extensions.map(e=>rs.create(he.serialize(e))),"f")),ht(this,yu,"f")}get tbs(){return ht(this,ah,"f")||Gt(this,ah,this.asn.tbsCertificateRaw||he.serialize(this.asn.tbsCertificate),"f"),ht(this,ah,"f")}constructor(e){let t=Jo.isAsnEncoded(e)?[e,Ks]:[e];super(t[0],t[1]),ah.set(this,void 0),ch.set(this,void 0),dh.set(this,void 0),uh.set(this,void 0),fh.set(this,void 0),lh.set(this,void 0),hh.set(this,void 0),ph.set(this,void 0),mh.set(this,void 0),gh.set(this,void 0),yu.set(this,void 0),xh.set(this,void 0),this.tag=Nr.CertificateTag}onInit(e){}getExtension(e){for(let t of this.extensions)if(typeof e=="string"){if(t.type===e)return t}else if(t instanceof e)return t;return null}getExtensions(e){return this.extensions.filter(t=>typeof e=="string"?t.type===e:t instanceof e)}async verify(e={},t=pr.get()){let s,n,i=e.publicKey;try{if(!i)s={...this.publicKey.algorithm,...this.signatureAlgorithm},n=await this.publicKey.export(s,["verify"],t);else if("publicKey"in i)s={...i.publicKey.algorithm,...this.signatureAlgorithm},n=await i.publicKey.export(s,["verify"],t);else if(i instanceof Ui)s={...i.algorithm,...this.signatureAlgorithm},n=await i.export(s,["verify"],t);else if(xe.isBufferSource(i)){let d=new Ui(i);s={...d.algorithm,...this.signatureAlgorithm},n=await d.export(s,["verify"],t)}else s={...i.algorithm,...this.signatureAlgorithm},n=i}catch{return!1}let o=Kt.resolveAll(Eh).reverse(),a=null;for(let d of o)if(a=d.toWebSignature(s,this.signature),a)break;if(!a)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let c=await t.subtle.verify(this.signatureAlgorithm,n,a,this.tbs);if(e.signatureOnly)return c;{let u=(e.date||new Date).getTime();return c&&this.notBefore.getTime()<u&&u<this.notAfter.getTime()}}async getThumbprint(...e){let t,s="SHA-1";return e[0]&&(e[0].subtle?t=e[0]:(s=e[0]||s,t=e[1])),t??(t=pr.get()),await t.subtle.digest(s,this.rawData)}async isSelfSigned(e=pr.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},e)}toTextObject(){let e=this.toTextObjectEmpty(),t=he.parse(this.rawData,Ks),s=t.tbsCertificate,n=new It("",{Version:`${zn[s.version]} (${s.version})`,"Serial Number":s.serialNumber,"Signature Algorithm":ji.serializeAlgorithm(s.signature),Issuer:this.issuer,Validity:new It("",{"Not Before":s.validity.notBefore.getTime(),"Not After":s.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(s.issuerUniqueID&&(n["Issuer Unique ID"]=s.issuerUniqueID),s.subjectUniqueID&&(n["Subject Unique ID"]=s.subjectUniqueID),this.extensions.length){let i=new It("");for(let o of this.extensions){let a=o.toTextObject();i[a[It.NAME]]=a}n.Extensions=i}return e.Data=n,e.Signature=new It("",{Algorithm:ji.serializeAlgorithm(t.signatureAlgorithm),"":t.signatureValue}),e}};ah=new WeakMap,ch=new WeakMap,dh=new WeakMap,uh=new WeakMap,fh=new WeakMap,lh=new WeakMap,hh=new WeakMap,ph=new WeakMap,mh=new WeakMap,gh=new WeakMap,yu=new WeakMap,xh=new WeakMap;Ng.NAME="Certificate";Og=class{static async createSelfSigned(e,t=pr.get()){if(!e.keys.privateKey)throw new Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!e.keys.publicKey)throw new Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:e.serialNumber,subject:e.name,issuer:e.name,notBefore:e.notBefore,notAfter:e.notAfter,publicKey:e.keys.publicKey,signingKey:e.keys.privateKey,signingAlgorithm:e.signingAlgorithm,extensions:e.extensions},t)}static async create(e,t=pr.get()){var s;let n;e.publicKey instanceof Ui?n=e.publicKey.rawData:"publicKey"in e.publicKey?n=e.publicKey.publicKey.rawData:xe.isBufferSource(e.publicKey)?n=e.publicKey:n=await t.subtle.exportKey("spki",e.publicKey);let i=RU(e.serialNumber,t),o=e.notBefore||new Date,a=e.notAfter||new Date(o.getTime()+31536e6),c=new Ks({tbsCertificate:new kr({version:zn.v3,serialNumber:i,validity:new Ni({notBefore:o,notAfter:a}),extensions:new Ts(((s=e.extensions)===null||s===void 0?void 0:s.map(C=>he.parse(C.rawData,Kr)))||[]),subjectPublicKeyInfo:he.parse(n,Rr)})});if(e.subject){let C=e.subject instanceof ln?e.subject:new ln(e.subject);c.tbsCertificate.subject=he.parse(C.toArrayBuffer(),Ft)}if(e.issuer){let C=e.issuer instanceof ln?e.issuer:new ln(e.issuer);c.tbsCertificate.issuer=he.parse(C.toArrayBuffer(),Ft)}let d={hash:"SHA-256"},u="signingKey"in e?{...d,...e.signingAlgorithm,...e.signingKey.algorithm}:{...d,...e.signingAlgorithm},l=Kt.resolve(Nc);c.tbsCertificate.signature=c.signatureAlgorithm=l.toAsnAlgorithm(u);let h=he.serialize(c.tbsCertificate),x="signingKey"in e?await t.subtle.sign(u,e.signingKey,h):e.signature,v=Kt.resolveAll(Eh).reverse(),S=null;for(let C of v)if(S=C.toAsnSignature(u,x),S)break;if(!S)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return c.signatureValue=S,new Ng(he.serialize(c))}};(function(r){r[r.unspecified=0]="unspecified",r[r.keyCompromise=1]="keyCompromise",r[r.cACompromise=2]="cACompromise",r[r.affiliationChanged=3]="affiliationChanged",r[r.superseded=4]="superseded",r[r.cessationOfOperation=5]="cessationOfOperation",r[r.certificateHold=6]="certificateHold",r[r.removeFromCRL=8]="removeFromCRL",r[r.privilegeWithdrawn=9]="privilegeWithdrawn",r[r.aACompromise=10]="aACompromise"})(t5||(t5={}));kU=new WeakMap,PU=new WeakMap,BU=new WeakMap,NU=new WeakMap,OU=new WeakMap;LU=new WeakMap,DU=new WeakMap,MU=new WeakMap,UU=new WeakMap,jU=new WeakMap,HU=new WeakMap,FU=new WeakMap;rs.register(wm,_g);rs.register(Tm,Eg);rs.register(Am,Cg);rs.register(L1,Tg);rs.register(vm,Sg);rs.register(B1,Ag);rs.register(Em,Rg);rs.register(bm,kg);rs.register(I1,Pg);wu.register(yw,Bg);wu.register(Ql,Sh);Kt.registerSingleton(Eh,Ow);Kt.registerSingleton(Eh,Fi);Fi.namedCurveSize.set("P-256",32);Fi.namedCurveSize.set("K-256",32);Fi.namedCurveSize.set("P-384",48);Fi.namedCurveSize.set("P-521",66)});var c5=ee((Iue,a5)=>{"use strict";function zU(r){return/^[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]*$/.test(r)}a5.exports=zU});var Ch=ee((Rue,x5)=>{"use strict";var d5=require("util"),h5=c5(),u5=/[\{\[]/,f5=/[\}\]]/,l5=["do","if","in","for","let","new","try","var","case","else","enum","eval","null","this","true","void","with","await","break","catch","class","const","false","super","throw","while","yield","delete","export","import","public","return","static","switch","typeof","default","extends","finally","package","private","continue","debugger","function","arguments","interface","protected","implements","instanceof","NaN","undefined"],p5={};for(Lg=0;Lg<l5.length;Lg++)p5[l5[Lg]]=!0;var Lg,VU=function(r){return h5(r)&&!p5.hasOwnProperty(r)},m5={s:function(r){return""+r},d:function(r){return""+Number(r)},o:function(r){return JSON.stringify(r)}},g5=function(){var r=[],e=0,t={},s=function(o){for(var a="";a.length<e*2;)a+=" ";r.push(a+o)},n=function(o){if(f5.test(o.trim()[0])&&u5.test(o[o.length-1])){e--,s(o),e++;return}if(u5.test(o[o.length-1])){s(o),e++;return}if(f5.test(o.trim()[0])){e--,s(o);return}s(o)},i=function(o){if(!o)return i;if(arguments.length===1&&o.indexOf(`
|
|
34
|
-
`)>-1)for(var a=o.trim().split(`
|
|
35
|
-
`),c=0;c<a.length;c++)n(a[c].trim());else n(d5.format.apply(d5,arguments));return i};return i.scope={},i.formats=m5,i.sym=function(o){return(!o||!VU(o))&&(o="tmp"),t[o]||(t[o]=0),o+(t[o]++||"")},i.property=function(o,a){return arguments.length===1&&(a=o,o=""),a=a+"",h5(a)?o?o+"."+a:a:o?o+"["+JSON.stringify(a)+"]":JSON.stringify(a)},i.toString=function(){return r.join(`
|
|
36
|
-
`)},i.toFunction=function(o){o||(o={});var a="return ("+i.toString()+")";Object.keys(i.scope).forEach(function(u){o[u]||(o[u]=i.scope[u])});var c=Object.keys(o).map(function(u){return u}),d=c.map(function(u){return o[u]});return Function.apply(null,c.concat(a)).apply(null,d)},arguments.length&&i.apply(null,arguments),i};g5.formats=m5;x5.exports=g5});var b5=ee((kue,y5)=>{"use strict";var Mg=class{constructor(){this.next=null,this.buffer=null}};y5.exports=class Dg{constructor(){this.head=null,this.tail=null,this.length=0,this.count=0}push(e){let t=new Mg;t.buffer=e,this.length>0?this.tail.next=t:this.head=t,this.tail=t,this.length+=e.length,this.count+=1}unshift(e){let t=new Mg;t.buffer=e,t.next=this.head,this.isEmpty()&&(this.tail=t),this.head=t,this.length+=e.length,this.count+=1}shift(){if(this.isEmpty())return null;let e=this.head.buffer;return this.head===this.tail?(this.head=null,this.tail=null):this.head=this.head.next,this.length-=e.length,this.length=Math.max(this.length,0),this.count-=1,e}get first(){return this.isEmpty()?null:this.head.buffer}get last(){return this.isEmpty()?null:this.tail.buffer}isEmpty(){return this.length===0}clear(){this.head=null,this.tail=null,this.length=0,this.count=0}slice(e,t){if(e<0||e>=this.length)return new Dg;if(t<0||t>this.length||t<e)return new Dg;let s=new Dg,n=this.head,i=e,o=t;for(;n;){if(n.buffer.length>i){i===0&&n.buffer.length<=o?s.push(n.buffer):n.buffer.length>=o?s.push(n.buffer.slice(i,o)):s.push(n.buffer.slice(i));break}i-=n.buffer.length,o-=n.buffer.length,n=n.next}if(n.buffer.length<o)for(;n;){if(n.buffer.length===o){s.push(n.buffer);break}else if(n.buffer.length>o){s.push(n.buffer.slice(0,o));break}else i<0&&n.buffer.length<o&&s.push(n.buffer);i-=n.buffer.length,o-=n.buffer.length,n=n.next}return s}}});var _5=ee((Pue,S5)=>{"use strict";var Ug=Ch(),$U=b5(),Oc=class r{constructor(){this.queue=new $U,this.offset=0}get length(){return this.queue.length-this.offset}append(e){if(Buffer.isBuffer(e)){if(this.offset>0){let t=this.queue.shift();this.queue.unshift(t.slice(this.offset)),this.offset=0}this.queue.push(e)}else if(Array.isArray(e))for(let t=0;t<e.length;t+=1)this.append(e[t]);else if(e instanceof r){if(this.offset>0){let s=this.queue.shift();this.queue.unshift(s.slice(this.offset)),this.offset=0}if(e.offset>0){let s=e.queue.shift();e.queue.unshift(s.slice(e.offset)),e.offset=0}let t=e.queue.head;for(;t;)this.queue.push(t.buffer),t=t.next}}get(e){let t=e;for(;t>=this.length;)t-=this.length;for(;t<0;)t+=this.length;let s=this.queue.head,{offset:n}=this;for(;s;){if(s.buffer.length-n>t)return s.buffer[t+n];t-=s.buffer.length-n,n=0,s=s.next}}slice(e,t){for(typeof e!="number"&&(e=0),typeof t!="number"&&(t=this.length);e<0;)e+=this.length;for(;t<0;)t+=this.length;if(t=Math.min(t,this.length),e>=this.length||t===0)return Buffer.alloc(0);let s=e;e=Math.min(s,t),t=Math.max(s,t);let n=this.queue.slice(e+this.offset,t+this.offset);if(n.count===1)return n.first;let i=n.head,o=Buffer.allocUnsafe(n.length),a=0;for(let c=0;c<n.count;c+=1)o.set(i.buffer,a),a+=i.buffer.length,i=i.next;return o}toString(e,t,s){return this.slice(t,s).toString(e)}consume(e){let t=e;for(;this.length>0;){let s=this.queue.first.length-this.offset;if(t>=s)this.queue.shift(),t-=s,this.offset=0;else{this.offset+=t;break}}}indexOf(e,t=0){if(!Number.isInteger(e))throw new TypeError("Invalid argument 1");if(e<0||e>255)throw new Error("Invalid argument 1");for(Number.isInteger(t)||(t=0);t>=this.length;)t-=this.length;for(;t<0;)t+=this.length;let s=this.queue.head,n=0,i=()=>{n+=s.buffer.length,s=s.next};for(;s;){let o=0;if(s===this.queue.head&&(o+=this.offset),t>=s.buffer.length-o){t-=s.buffer.length-o,i();continue}t<s.buffer.length&&(o+=t);let a=s.buffer.indexOf(e,o);if(a>-1)return a+n-this.offset;i(),o>this.offset&&(t=0)}return-1}},v5={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};Object.keys(v5).forEach(r=>{let e=Ug();e(`
|
|
37
|
-
function bufferlist_${r}(offset = 0) {
|
|
38
|
-
const start = offset + this.offset;
|
|
39
|
-
const head = this.queue.first;
|
|
40
|
-
const size = ${e.formats.d(v5[r])};
|
|
41
|
-
const isFirtsChunkEnough = head.length - start >= size;
|
|
42
|
-
|
|
43
|
-
return isFirtsChunkEnough
|
|
44
|
-
? head.${r}(start)
|
|
45
|
-
: this.slice(offset, offset + size).${r}(0)
|
|
46
|
-
}
|
|
47
|
-
`),Oc.prototype[r]=e.toFunction()});var KU=["readIntBE","readIntLE","readUIntBE","readUIntLE"];KU.forEach(r=>{let e=Ug();e(`
|
|
48
|
-
function bufferlist_${r}(size, offset = 0) {
|
|
49
|
-
const start = offset + this.offset;
|
|
50
|
-
const head = this.queue.first;
|
|
51
|
-
const isFirtsChunkEnough = head.length - start >= size;
|
|
52
|
-
|
|
53
|
-
return isFirtsChunkEnough
|
|
54
|
-
? head.${r}(start, size)
|
|
55
|
-
: this.slice(offset, offset + size).${r}(0, size)
|
|
56
|
-
}
|
|
57
|
-
`),Oc.prototype[r]=e.toFunction()});var w5={writeDoubleBE:8,writeDoubleLE:8,writeFloatBE:4,writeFloatLE:4,writeInt32BE:4,writeInt32LE:4,writeUInt32BE:4,writeUInt32LE:4,writeInt16BE:2,writeInt16LE:2,writeUInt16BE:2,writeUInt16LE:2,writeInt8:1,writeUInt8:1};Object.keys(w5).forEach(r=>{let e=Ug();e(`
|
|
58
|
-
function bufferlist_${r}(value) {
|
|
59
|
-
const size = ${e.formats.d(w5[r])};
|
|
60
|
-
const buf = Buffer.allocUnsafe(size);
|
|
61
|
-
buf.${r}(value, 0);
|
|
62
|
-
this.append(buf);
|
|
63
|
-
}
|
|
64
|
-
`),Oc.prototype[r]=e.toFunction()});var WU=["writeIntBE","writeIntLE","writeUIntBE","writeUIntLE"];WU.forEach(r=>{let e=Ug();e(`
|
|
65
|
-
function bufferlist_${r}(value, size) {
|
|
66
|
-
const buf = Buffer.allocUnsafe(size);
|
|
67
|
-
buf.${r}(value, 0, size);
|
|
68
|
-
this.append(buf);
|
|
69
|
-
}
|
|
70
|
-
`),Oc.prototype[r]=e.toFunction()});S5.exports=Oc});var Su=ee((Nue,E5)=>{"use strict";E5.exports=class extends Error{constructor(e,t){let s=`requested ${e} bytes but only ${t} available`;super(s),this.name="NotEnoughDataError"}}});var Th=ee((Oue,A5)=>{"use strict";var{Transform:GU}=require("stream"),jg=Ch(),XU=_5(),YU=Su(),C5=Symbol("buffer"),Lc=class extends GU{constructor(e={}){super(e),this[C5]=new XU}get buffer(){return this[C5]}get length(){return this.buffer.length}append(e){this.buffer.append(e)}get(e){return this.buffer.get(e)}slice(e,t){return this.buffer.slice(e,t)}consume(e){this.buffer.consume(e)}toString(e,t,s){return this.buffer.toString(e,t,s)}indexOf(e,t=0){return this.buffer.indexOf(e,t)}readBuffer(e){jw(e,this.length);let t=this.slice(0,e);return this.consume(e),t}writeBuffer(e){this.append(e)}},T5={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1},QU=["readIntBE","readIntLE","readUIntBE","readUIntLE"];Object.keys(T5).forEach(r=>{let e=jg();e(`
|
|
71
|
-
function binary_${r}() {
|
|
72
|
-
const bytes = ${e.formats.d(T5[r])};
|
|
73
|
-
assertSize(bytes, this.length);
|
|
74
|
-
|
|
75
|
-
const res = this.buffer.${r}(0);
|
|
76
|
-
this.consume(bytes);
|
|
77
|
-
|
|
78
|
-
return res;
|
|
79
|
-
}
|
|
80
|
-
`),Lc.prototype[r]=e.toFunction({assertSize:jw})});QU.forEach(r=>{let e=jg();e(`
|
|
81
|
-
function binary_${r}(size) {
|
|
82
|
-
assertSize(size, this.length);
|
|
83
|
-
|
|
84
|
-
const res = this.buffer.${r}(size, 0);
|
|
85
|
-
this.consume(size);
|
|
86
|
-
return res;
|
|
87
|
-
}
|
|
88
|
-
`),Lc.prototype[r]=e.toFunction({assertSize:jw})});var JU=["writeDoubleBE","writeDoubleLE","writeFloatBE","writeFloatLE","writeInt32BE","writeInt32LE","writeUInt32BE","writeUInt32LE","writeInt16BE","writeInt16LE","writeUInt16BE","writeUInt16LE","writeInt8","writeUInt8"];JU.forEach(r=>{let e=jg();e(`
|
|
89
|
-
function binary_${r}(value) {
|
|
90
|
-
this.buffer.${r}(value);
|
|
91
|
-
}
|
|
92
|
-
`),Lc.prototype[r]=e.toFunction()});var ZU=["writeIntBE","writeIntLE","writeUIntBE","writeUIntLE"];ZU.forEach(r=>{let e=jg();e(`
|
|
93
|
-
function binary_${r}(value, size) {
|
|
94
|
-
this.buffer.${r}(value, size);
|
|
95
|
-
}
|
|
96
|
-
`),Lc.prototype[r]=e.toFunction()});function jw(r,e){if(r>e)throw new YU(r,e)}A5.exports=Lc});var R5=ee((Lue,I5)=>{"use strict";I5.exports=function(e){return e!=null&&typeof e=="object"&&Array.isArray(e)===!1}});var B5=ee((Due,P5)=>{"use strict";var ej=R5();function k5(r){return ej(r)===!0&&Object.prototype.toString.call(r)==="[object Object]"}P5.exports=function(e){var t,s;return!(k5(e)===!1||(t=e.constructor,typeof t!="function")||(s=t.prototype,k5(s)===!1)||s.hasOwnProperty("isPrototypeOf")===!1)}});var Zn=ee((Mue,N5)=>{"use strict";var tj=B5();N5.exports={isType:rj,isUserType:tj,isFunction:Ah,isDecodeType:sj,isEncodeType:nj};function rj(r){return Hw(r)&&Ah(r.encode)&&Ah(r.decode)}function Ah(r){return typeof r=="function"}function Hw(r){return typeof r=="object"&&r!==null}function sj(r){return Hw(r)&&Ah(r.decode)}function nj(r){return Hw(r)&&Ah(r.encode)}});var Zo=ee((Uue,O5)=>{"use strict";var ij=Symbol("skip"),oj=Symbol("bytes");O5.exports={skip:ij,bytes:oj}});var ea=ee((jue,D5)=>{"use strict";var L5=Zo();D5.exports=class Hg{constructor(){this[L5.bytes]=0,this.node=void 0,this.current=void 0}get bytes(){return this[L5.bytes]}static clone(e){let t=new Hg;return e instanceof Hg&&(t.node=e.node,t.current=e.current),t}static clean(e){e instanceof Hg&&(e.node=void 0,e.current=void 0)}}});var _u=ee((Hue,F5)=>{"use strict";var{isType:aj,isUserType:cj,isDecodeType:dj}=Zn(),uj=Th(),Fw=Zo(),M5=ea();F5.exports={decode:U5,decodeCommon:j5};function U5(r,e){let t=r;Buffer.isBuffer(r)&&(t=new uj,t.append(r));let s=new M5,n=j5(t,e,s);return U5.bytes=s.bytes,M5.clean(s),n}function j5(r,e,t){if(aj(e)){let s=e.decode.call(t,r);return t[Fw.bytes]+=e.decode.bytes,s}return H5(r,e,t)}function H5(r,e,t){fj(e);let s=Object.create(null);t.node===void 0&&(t.node=s),t.current=s;let n=Object.keys(e);for(let i=0;i<n.length;i+=1){let o=n[i],a=e[o];if(!dj(a)){s[o]=H5(r,a,t),t.current=s;continue}let c=a.decode.call(t,r);t[Fw.bytes]+=a.decode.bytes,a[Fw.skip]!==!0&&(s[o]=c)}return s}function fj(r){if(!cj(r))throw new TypeError("Argument #2 should be a plain object.")}});var Ih=ee((Fue,W5)=>{"use strict";var{isUserType:lj,isEncodeType:hj,isType:pj}=Zn(),z5=Zo(),q5=ea(),qw=Th();W5.exports={encode:V5,encodeCommon:$5};function V5(r,e,t){let s=new q5;if(e instanceof qw){let n=t;t=e,e=n}return t instanceof qw||(t=new qw),$5(r,t,e,s),V5.bytes=s.bytes,q5.clean(s),t}function $5(r,e,t,s){pj(t)?(t.encode.call(s,r,e),s[z5.bytes]+=t.encode.bytes):K5(r,e,t,s)}function K5(r,e,t,s){mj(t),s.node===void 0&&(s.node=r),s.current=r;let n=Object.keys(t);for(let i=0;i<n.length;i+=1){let o=n[i],a=t[o],c=r[o];if(!hj(a)){K5(c,e,a,s),s.current=r;continue}a.encode.call(s,c,e),s[z5.bytes]+=a.encode.bytes}}function mj(r){if(!lj(r))throw new TypeError("Argument `schema` should be a plain object.")}});var Rh=ee((que,Z5)=>{"use strict";var{isUserType:gj,isType:X5}=Zn(),G5=ea(),Y5=Zo();Z5.exports={encodingLength:xj,encodingLengthCommon:Q5};function xj(r,e){let t=new G5;return Q5(r,e,t),G5.clean(t),t.bytes}function Q5(r,e,t){X5(e)?t[Y5.bytes]+=e.encodingLength.call(t,r):J5(r,e,t)}function J5(r,e,t){if(!gj(e))throw new TypeError("Argument `schema` should be a plain object.");t.node===void 0&&(t.node=r),t.current=r;let s=Object.keys(e);for(let n=0;n<s.length;n+=1){let i=s[n],o=e[i],a=r[i];if(!X5(o)){J5(a,o,t),t.current=r;continue}t[Y5.bytes]+=o.encodingLength.call(t,a)}}});var aA=ee((zue,oA)=>{"use strict";var{decodeCommon:iA}=_u(),{encodeCommon:yj}=Ih(),{encodingLengthCommon:eA}=Rh(),{isType:tA,isUserType:bj,isFunction:vj}=Zn(),ta=ea();oA.exports=wj;function wj(r,e,t="count"){if(!tA(r)&&!bj(r))throw new TypeError("Argument #1 should be a valid type.");let s=t==="bytes",n=typeof e=="number",i=tA(e),o=vj(e);if(!n&&!i&&!o)throw new TypeError("Unknown type of argument #1.");return{encode:a,decode:c,encodingLength:d};function a(u,l){rA(u);let h=ta.clone(this);a.bytes=0;let x=0;if(i?x=u.length:n?x=e:o&&(x=e(h),sA(x)),s||nA(x,u.length),s){let v=ta.clone(h);for(let S of u)eA(S,r,v);i&&(x=v.bytes),nA(v.bytes,x),ta.clean(v)}i&&(e.encode.call(h,x,l),a.bytes+=e.encode.bytes),u.forEach(v=>{yj(v,l,r,h)}),a.bytes+=h.bytes,ta.clean(h)}function c(u){let l=0;c.bytes=0;let h=ta.clone(this);n?l=e:i?(l=e.decode.call(h,u),c.bytes+=e.decode.bytes):o&&(l=e(h)),sA(l);let x;return s?x=Sj(r,l,u,h):x=_j(r,l,u,h),c.bytes+=h.bytes,ta.clean(h),x}function d(u){rA(u);let l=ta.clone(this),h=0;if(n&&s)return e;i&&!s&&(h=e.encodingLength(u.length));for(let x of u)eA(x,r,l);return ta.clean(l),h+=l.bytes,i&&s&&(h+=e.encodingLength(h)),h}}function rA(r){if(!Array.isArray(r))throw new TypeError("Argument #1 should be an Array.")}function sA(r){if(typeof r!="number")throw new TypeError("Length of an array should be a number.")}function nA(r,e){if(r!==e)throw new Error(`Argument #1 required length ${r} instead of ${e}`)}function Sj(r,e,t,s){let n=[],i=s.bytes,o=0;for(;o<e;)n.push(iA(t,r,s)),o=s.bytes-i;if(o>e)throw new Error("Incorrect length of an array.");return n}function _j(r,e,t,s){let n=new Array(e);for(let i=0;i<e;i+=1)n[i]=iA(t,r,s);return n}});var fA=ee((Vue,uA)=>{"use strict";var{isType:Ej,isFunction:Cj}=Zn(),Tj=Su(),Aj=Th();uA.exports=Ij;function Ij(r){let e=typeof r=="number",t=Ej(r),s=Cj(r),n=r===null;if(!e&&!t&&!s&&!n)throw new TypeError("Unknown type of argument #1.");return{encode:i,decode:o,encodingLength:a};function i(c,d){cA(c),i.bytes=0;let u=this;if(e&&dA(r,c.length),t&&(r.encode.call(u,c.length,d),i.bytes+=r.encode.bytes),s){let l=r(u);zw(l),dA(l,c.length)}d.writeBuffer(Buffer.isBuffer(c)?c:c.buffer),i.bytes+=c.length,n&&(d.writeUInt8(0),i.bytes+=1)}function o(c){let d=0;o.bytes=0;let u=this;if(e)d=r;else if(t)d=r.decode.call(u,c),o.bytes+=r.decode.bytes,zw(d);else if(s)d=r(u),zw(d);else if(n&&(d=c.indexOf(0),d===-1))throw new Tj(c.length+1,c.length);let l=c.readBuffer(d);return o.bytes+=d,n&&(o.bytes+=1,c.consume(1)),l}function a(c){cA(c);let d=0;return e?r:(n?d=1:t&&(d=r.encodingLength(c.length)),d+c.length)}}function cA(r){if(!Buffer.isBuffer(r)&&!(r instanceof Aj))throw new TypeError("Argument 1 should be a Buffer or a BinaryStream.")}function dA(r,e){if(r!==e)throw new Error(`Buffer required length ${r} instead of ${e}`)}function zw(r){if(typeof r!="number")throw new TypeError("Length of a buffer should be a number.")}});var hA=ee(($ue,lA)=>{"use strict";var{isType:Rj}=Zn();lA.exports=kj;function kj(r){if(!Rj(r))throw new TypeError("Argument #1 should be valid type.");function e(s){let n=this,i=r.decode.call(n,s);return e.bytes=r.decode.bytes,!!i}function t(s,n){let i=this;r.encode.call(i,s?1:0,n),t.bytes=r.encode.bytes}return{encode:t,decode:e,encodingLength:r.encodingLength}}});var mA=ee((Kue,pA)=>{"use strict";var{decodeCommon:Pj}=_u(),{encodeCommon:Bj}=Ih(),{encodingLengthCommon:Nj}=Rh(),{isType:Oj,isFunction:Fg}=Zn(),Lj=Zo(),ra=ea();pA.exports=Dj;function Dj(r,e=1){if(!Oj(r))throw new TypeError("Invalid data type.");if(!Number.isInteger(e)&&!Fg(e))throw new TypeError("Argument #2 should be a valid integer or function.");return{[Lj.skip]:!0,encodingLength:t,decode:s,encode:n};function t(i){let o=ra.clone(this),a=Fg(e)?e(o):e;return Nj(i,r,o),ra.clean(o),o.bytes*a}function s(i){let o=ra.clone(this);s.bytes=0;let a=Fg(e)?e(o):e;if(a===0){ra.clean(o);return}for(let c=a;c>0;c-=1)Pj(i,r,o);s.bytes=o.bytes,ra.clean(o)}function n(i,o){n.bytes=0;let a=ra.clone(this),c=Fg(e)?e(a):e;if(c===0){ra.clean(a);return}for(let d=c;d>0;d-=1)Bj(0,o,r,a);n.bytes=a.bytes,ra.clean(a)}}});var yA=ee((Wue,xA)=>{"use strict";var{isType:Mj}=Zn(),Uj=Su();xA.exports=jj;function jj(r,e="ascii"){if(!Buffer.isEncoding(e))throw new Error("Argument #2 should be an encoding name.");if(typeof r=="number")return{encode:qj(r,e),decode:zj(r,e),encodingLength:()=>r};if(Mj(r))return{encode:Vj(r,e),decode:$j(r,e),encodingLength:Kj(r,e)};if(r===null)return{encode:Hj(e),decode:Fj(e),encodingLength(t){return Buffer.byteLength(t,e)+1}};if(typeof r=="function")return{encode:Wj(r,e),decode:Gj(r,e),encodingLength(t){return Buffer.byteLength(t,e)}};throw new TypeError("Unknown type of argument #1.")}function Hj(r){return function e(t,s){let n=Buffer.from(t.toString(),r);s.writeBuffer(n),s.writeInt8(0),e.bytes=n.length+1}}function Fj(r){return function e(t){let s=t.indexOf(0);if(s===-1)throw new Uj(t.length+1,t.length);let n=s+1,i=t.readBuffer(n);return e.bytes=n,i.toString(r,0,s)}}function qj(r,e){return function t(s,n){if(s=s.toString(),Buffer.byteLength(s,e)!==r)throw new Error(`Size of string should be ${r} in bytes.`);let i=Buffer.from(s,e);n.writeBuffer(i),t.bytes=i.length}}function zj(r,e){return function t(s){let n=s.readBuffer(r);return t.bytes=r,n.toString(e)}}function Vj(r,e){return function t(s,n){s=s.toString();let i=this;r.encode.call(i,Buffer.byteLength(s,e),n),t.bytes=r.encode.bytes;let o=Buffer.from(s,e);n.writeBuffer(o),t.bytes+=o.length}}function $j(r,e){return function t(s){let n=r.decode.call(this,s);if(typeof n!="number")throw new TypeError("Size of a string should be a number.");let i=s.readBuffer(n);return t.bytes=r.decode.bytes+i.length,i.toString(e)}}function Kj(r,e){return function(s){let n=Buffer.byteLength(s,e);return r.encodingLength(n)+n}}function Wj(r,e){return function t(s,n){t.bytes=0;let o=r(this),a=Buffer.from(s.toString(),e);gA(o),Xj(o,a.length),n.writeBuffer(a),t.bytes+=a.length}}function Gj(r,e){return function t(s){let n=r(this);gA(n);let i=s.readBuffer(n);return t.bytes=n,i.toString(e)}}function gA(r){if(typeof r!="number")throw new TypeError("Length of a buffer should be a number.")}function Xj(r,e){if(r!==e)throw new Error(`Buffer required length ${r} instead of ${e}`)}});var vA=ee((Gue,bA)=>{"use strict";var qg=Ch();bA.exports={doublebe:xs(8,"writeDoubleBE","readDoubleBE"),doublele:xs(8,"writeDoubleLE","readDoubleLE"),floatbe:xs(4,"writeFloatBE","readFloatBE"),floatle:xs(4,"writeFloatLE","readFloatLE"),int8:xs(1,"writeInt8","readInt8"),uint8:xs(1,"writeUInt8","readUInt8"),int16be:xs(2,"writeInt16BE","readInt16BE"),uint16be:xs(2,"writeUInt16BE","readUInt16BE"),int16le:xs(2,"writeInt16LE","readInt16LE"),uint16le:xs(2,"writeUInt16LE","readUInt16LE"),int32be:xs(4,"writeInt32BE","readInt32BE"),uint32be:xs(4,"writeUInt32BE","readUInt32BE"),int32le:xs(4,"writeInt32LE","readInt32LE"),uint32le:xs(4,"writeUInt32LE","readUInt32LE"),int24be:Qs(3,"writeIntBE","readIntBE"),uint24be:Qs(3,"writeUIntBE","readUIntBE"),int24le:Qs(3,"writeIntLE","readIntLE"),uint24le:Qs(3,"writeUIntLE","readUIntLE"),int40be:Qs(5,"writeIntBE","readIntBE"),uint40be:Qs(5,"writeUIntBE","readUIntBE"),int40le:Qs(5,"writeIntLE","readIntLE"),uint40le:Qs(5,"writeUIntLE","readUIntLE"),int48be:Qs(6,"writeIntBE","readIntBE"),uint48be:Qs(6,"writeUIntBE","readUIntBE"),int48le:Qs(6,"writeIntLE","readIntLE"),uint48le:Qs(6,"writeUIntLE","readUIntLE")};function xs(r,e,t){let s=qg(),n=qg();return s(`
|
|
97
|
-
function decode_${t}(rstream) {
|
|
98
|
-
decode_${t}.bytes = ${s.formats.d(r)};
|
|
99
|
-
return rstream.${t}()
|
|
100
|
-
}
|
|
101
|
-
`),n(`
|
|
102
|
-
function encode_${e}(value, wstream) {
|
|
103
|
-
wstream.${e}(value);
|
|
104
|
-
encode_${e}.bytes = ${s.formats.d(r)};
|
|
105
|
-
}
|
|
106
|
-
`),{encodingLength:()=>r,encode:n.toFunction(),decode:s.toFunction()}}function Qs(r,e,t){let s=qg(),n=qg();return s(`
|
|
107
|
-
function decode_${t}(rstream) {
|
|
108
|
-
decode_${t}.bytes = ${s.formats.d(r)};
|
|
109
|
-
return rstream.${t}(${s.formats.d(r)})
|
|
110
|
-
}
|
|
111
|
-
`),n(`
|
|
112
|
-
function encode_${e}(value, wstream) {
|
|
113
|
-
wstream.${e}(value, ${s.formats.d(r)});
|
|
114
|
-
encode_${e}.bytes = ${s.formats.d(r)};
|
|
115
|
-
}
|
|
116
|
-
`),{encodingLength:()=>r,encode:n.toFunction(),decode:s.toFunction()}}});var SA=ee((Xue,wA)=>{"use strict";var{isType:Yj,isFunction:Vw,isUserType:Qj}=Zn(),$w=Zo(),{decodeCommon:Jj}=_u(),{encodeCommon:Zj}=Ih(),{encodingLengthCommon:eH}=Rh(),sa=ea();wA.exports=tH;function tH(r,e){if(!Yj(e)&&!Qj(e))throw new TypeError("Argument #2 should be a valid type.");let t={encode:s,decode:n,encodingLength:i,[$w.skip]:!1};return t;function s(o,a){let c=sa.clone(this);s.bytes=0;let d=Vw(r)?!!r(c):!!r;if(t[$w.skip]=!d,!d){sa.clean(c);return}Zj(o,a,e,c),s.bytes=c.bytes,sa.clean(c)}function n(o){let a=sa.clone(this);n.bytes=0;let c=Vw(r)?!!r(a):!!r;if(t[$w.skip]=!c,!c){sa.clean(a);return}let d=Jj(o,e,a);return n.bytes=a.bytes,sa.clean(a),d}function i(o){let a=sa.clone(this);return(Vw(r)?r(a):r)&&eH(o,e,a),sa.clean(a),a.bytes}}});var CA=ee((Yue,EA)=>{"use strict";var zg=Zo(),{decodeCommon:rH}=_u(),_A=ea();EA.exports=sH;function sH(...r){if(r.length===0)throw new TypeError("You should set at least one condition type.");let e={decode:t,encode:()=>{},[zg.skip]:!0};return e;function t(s){t.bytes=0;let n=_A.clone(this);for(let i of r){let o=rH(s,i,n);if(i[zg.skip]!==!0)return t.bytes=n.bytes,_A.clean(n),e[zg.skip]=!1,o}e[zg.skip]=!0}}});var RA=ee((Que,IA)=>{"use strict";var AA=Ch(),nH=Su(),kh=class{constructor(e){this.stream=e,this.index=0}append(e){this.stream.append(e)}commit(){this.stream.consume(this.index)}get(e=0){return this.stream.get(this.index+e)}get length(){return this.stream.length}slice(e,t){return this.stream.slice(e,t)}toString(e,t,s){return this.stream.toString(e,t,s)}readBuffer(e){Kw(this.index+e,this.length);let t=this.stream.slice(this.index,this.index+e);return this.index+=e,t}indexOf(e,t=0){return this.stream.indexOf(e,this.index+t)-this.index}},TA={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};Object.keys(TA).forEach(r=>{let e=AA(),t=TA[r];e(`
|
|
117
|
-
function transaction_${r}() {
|
|
118
|
-
assertSize(this.index + ${e.formats.d(t)}, this.length);
|
|
119
|
-
const value = this.stream.buffer.${r}(this.index);
|
|
120
|
-
this.index += ${e.formats.d(t)};
|
|
121
|
-
return value;
|
|
122
|
-
}
|
|
123
|
-
`),kh.prototype[r]=e.toFunction({assertSize:Kw})});["readIntBE","readIntLE","readUIntBE","readUIntLE"].forEach(r=>{let e=AA();e(`
|
|
124
|
-
function transaction_${r}(bytes) {
|
|
125
|
-
assertSize(this.index + bytes, this.length);
|
|
126
|
-
const value = this.stream.buffer.${r}(bytes, this.index);
|
|
127
|
-
this.index += bytes;
|
|
128
|
-
return value;
|
|
129
|
-
}
|
|
130
|
-
`),kh.prototype[r]=e.toFunction({assertSize:Kw})});IA.exports=kh;function Kw(r,e){if(r>e)throw new nH(r,e)}});var Zt=ee((Jue,MA)=>{"use strict";var Ww=Th(),iH=aA(),oH=fA(),aH=hA(),cH=mA(),dH=yA(),kA=vA(),uH=SA(),fH=CA(),{encode:NA}=Ih(),{decode:OA}=_u(),{encodingLength:lH}=Rh(),hH=RA(),LA=Su(),DA={array:iH,bool:aH,buffer:oH,reserved:cH,string:dH,when:uH,select:fH};for(let r of Object.keys(kA))DA[r]=kA[r];var Vg=Symbol("schema");function PA(r){let e=new Ww({readableObjectMode:!1,writableObjectMode:!0,transform:pH});return e[Vg]=r,e}function BA(r){let e=null,t=Buffer.isBuffer(r);t||(e=r);let s=new Ww({transform:mH,readableObjectMode:!0,writableObjectMode:!1});return s[Vg]=e,t&&s.append(r),s}function pH(r,e,t){try{NA(r,this[Vg],this);let s=this.slice();this.consume(s.length),t(null,s)}catch(s){t(s)}}function mH(r,e,t){this.append(r);try{for(;this.length>0;){let s=new hH(this),n=OA(s,this[Vg]);s.commit(),this.push(n)}t()}catch(s){s instanceof LA?t():t(s)}}MA.exports={createEncodeStream:PA,createDecodeStream:BA,encode:NA,decode:OA,encodingLength:lH,createEncode:PA,createDecode:BA,types:DA,BinaryStream:Ww,NotEnoughDataError:LA}});var qi,Dc,UA=T(()=>{"use strict";qi=Xe(require("crypto"),1),Dc=qi&&typeof qi=="object"&&"webcrypto"in qi?qi.webcrypto:qi&&typeof qi=="object"&&"randomBytes"in qi?qi:void 0});function Mc(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Ph(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function hn(r,...e){if(!Mc(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function $g(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");Ph(r.outputLen),Ph(r.blockLen)}function Cu(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function HA(r,e){hn(r);let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function Vi(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function Kg(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function pn(r,e){return r<<32-e|r>>>e}function $i(r){if(hn(r),FA)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=gH[r[t]];return e}function jA(r){if(r>=zi._0&&r<=zi._9)return r-zi._0;if(r>=zi.A&&r<=zi.F)return r-(zi.A-10);if(r>=zi.a&&r<=zi.f)return r-(zi.a-10)}function Uc(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);if(FA)return Uint8Array.fromHex(r);let e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let s=new Uint8Array(t);for(let n=0,i=0;n<t;n++,i+=2){let o=jA(r.charCodeAt(i)),a=jA(r.charCodeAt(i+1));if(o===void 0||a===void 0){let c=r[i]+r[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}s[n]=o*16+a}return s}function qA(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function Bh(r){return typeof r=="string"&&(r=qA(r)),hn(r),r}function mn(...r){let e=0;for(let s=0;s<r.length;s++){let n=r[s];hn(n),e+=n.length}let t=new Uint8Array(e);for(let s=0,n=0;s<r.length;s++){let i=r[s];t.set(i,n),n+=i.length}return t}function Wg(r){let e=s=>r().update(Bh(s)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Gg(r=32){if(Dc&&typeof Dc.getRandomValues=="function")return Dc.getRandomValues(new Uint8Array(r));if(Dc&&typeof Dc.randomBytes=="function")return Uint8Array.from(Dc.randomBytes(r));throw new Error("crypto.getRandomValues must be defined")}var FA,gH,zi,Eu,jc=T(()=>{"use strict";UA();FA=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",gH=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));zi={_0:48,_9:57,A:65,F:70,a:97,f:102};Eu=class{}});function Nh(r,e=""){if(typeof r!="boolean"){let t=e&&`"${e}"`;throw new Error(t+"expected boolean, got type="+typeof r)}return r}function na(r,e,t=""){let s=Mc(r),n=r?.length,i=e!==void 0;if(!s||i&&n!==e){let o=t&&`"${t}" `,a=i?` of length ${e}`:"",c=s?`length=${n}`:`type=${typeof r}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return r}function Oh(r){let e=r.toString(16);return e.length&1?"0"+e:e}function zA(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?Yw:BigInt("0x"+r)}function Tu(r){return zA($i(r))}function Qw(r){return hn(r),zA($i(Uint8Array.from(r).reverse()))}function Xg(r,e){return Uc(r.toString(16).padStart(e*2,"0"))}function Jw(r,e){return Xg(r,e).reverse()}function Wr(r,e,t){let s;if(typeof e=="string")try{s=Uc(e)}catch(i){throw new Error(r+" must be hex string or Uint8Array, cause: "+i)}else if(Mc(e))s=Uint8Array.from(e);else throw new Error(r+" must be hex string or Uint8Array");let n=s.length;if(typeof t=="number"&&n!==t)throw new Error(r+" of length "+t+" expected, got "+n);return s}function VA(r,e,t){return Gw(r)&&Gw(e)&&Gw(t)&&e<=r&&r<t}function $A(r,e,t,s){if(!VA(e,t,s))throw new Error("expected valid "+r+": "+t+" <= n < "+s+", got "+e)}function Yg(r){let e;for(e=0;r>Yw;r>>=Xw,e+=1);return e}function KA(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let s=x=>new Uint8Array(x),n=x=>Uint8Array.of(x),i=s(r),o=s(r),a=0,c=()=>{i.fill(1),o.fill(0),a=0},d=(...x)=>t(o,i,...x),u=(x=s(0))=>{o=d(n(0),x),i=d(),x.length!==0&&(o=d(n(1),x),i=d())},l=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let x=0,v=[];for(;x<e;){i=d();let S=i.slice();v.push(S),x+=i.length}return mn(...v)};return(x,v)=>{c(),u(x);let S;for(;!(S=v(l()));)u();return c(),S}}function Lh(r,e,t={}){if(!r||typeof r!="object")throw new Error("expected valid options object");function s(n,i,o){let a=r[n];if(o&&a===void 0)return;let c=typeof a;if(c!==i||a===null)throw new Error(`param "${n}" is invalid: expected ${i}, got ${c}`)}Object.entries(e).forEach(([n,i])=>s(n,i,!1)),Object.entries(t).forEach(([n,i])=>s(n,i,!0))}function Zw(r){let e=new WeakMap;return(t,...s)=>{let n=e.get(t);if(n!==void 0)return n;let i=r(t,...s);return e.set(t,i),i}}var Yw,Xw,Gw,ia,Qg=T(()=>{"use strict";jc();jc();Yw=BigInt(0),Xw=BigInt(1);Gw=r=>typeof r=="bigint"&&Yw<=r;ia=r=>(Xw<<BigInt(r))-Xw});function gn(r,e){let t=r%e;return t>=ys?t:e+t}function WA(r,e){if(r===ys)throw new Error("invert: expected non-zero number");if(e<=ys)throw new Error("invert: expected positive modulus, got "+e);let t=gn(r,e),s=e,n=ys,i=Gr,o=Gr,a=ys;for(;t!==ys;){let d=s/t,u=s%t,l=n-o*d,h=i-a*d;s=t,t=u,n=o,i=a,o=l,a=h}if(s!==Gr)throw new Error("invert: does not exist");return gn(n,e)}function eS(r,e,t){if(!r.eql(r.sqr(e),t))throw new Error("Cannot find square root")}function eI(r,e){let t=(r.ORDER+Gr)/YA,s=r.pow(e,t);return eS(r,s,e),s}function bH(r,e){let t=(r.ORDER-QA)/JA,s=r.mul(e,Hc),n=r.pow(s,t),i=r.mul(e,n),o=r.mul(r.mul(i,Hc),n),a=r.mul(i,r.sub(o,r.ONE));return eS(r,a,e),a}function vH(r){let e=ei(r),t=tI(r),s=t(e,e.neg(e.ONE)),n=t(e,s),i=t(e,e.neg(s)),o=(r+xH)/ZA;return(a,c)=>{let d=a.pow(c,o),u=a.mul(d,s),l=a.mul(d,n),h=a.mul(d,i),x=a.eql(a.sqr(u),c),v=a.eql(a.sqr(l),c);d=a.cmov(d,u,x),u=a.cmov(h,l,v);let S=a.eql(a.sqr(u),c),C=a.cmov(d,u,S);return eS(a,C,c),C}}function tI(r){if(r<XA)throw new Error("sqrt is not defined for small field");let e=r-Gr,t=0;for(;e%Hc===ys;)e/=Hc,t++;let s=Hc,n=ei(r);for(;GA(n,s)===1;)if(s++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return eI;let i=n.pow(s,e),o=(e+Gr)/Hc;return function(c,d){if(c.is0(d))return d;if(GA(c,d)!==1)throw new Error("Cannot find square root");let u=t,l=c.mul(c.ONE,i),h=c.pow(d,e),x=c.pow(d,o);for(;!c.eql(h,c.ONE);){if(c.is0(h))return c.ZERO;let v=1,S=c.sqr(h);for(;!c.eql(S,c.ONE);)if(v++,S=c.sqr(S),v===u)throw new Error("Cannot find square root");let C=Gr<<BigInt(u-v-1),D=c.pow(l,C);u=v,l=c.sqr(D),h=c.mul(h,l),x=c.mul(x,D)}return x}}function wH(r){return r%YA===XA?eI:r%JA===QA?bH:r%ZA===yH?vH(r):tI(r)}function tS(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},t=SH.reduce((s,n)=>(s[n]="function",s),e);return Lh(r,t),r}function _H(r,e,t){if(t<ys)throw new Error("invalid exponent, negatives unsupported");if(t===ys)return r.ONE;if(t===Gr)return e;let s=r.ONE,n=e;for(;t>ys;)t&Gr&&(s=r.mul(s,n)),n=r.sqr(n),t>>=Gr;return s}function Jg(r,e,t=!1){let s=new Array(e.length).fill(t?r.ZERO:void 0),n=e.reduce((o,a,c)=>r.is0(a)?o:(s[c]=o,r.mul(o,a)),r.ONE),i=r.inv(n);return e.reduceRight((o,a,c)=>r.is0(a)?o:(s[c]=r.mul(o,s[c]),r.mul(o,a)),i),s}function GA(r,e){let t=(r.ORDER-Gr)/Hc,s=r.pow(e,t),n=r.eql(s,r.ONE),i=r.eql(s,r.ZERO),o=r.eql(s,r.neg(r.ONE));if(!n&&!i&&!o)throw new Error("invalid Legendre symbol result");return n?1:i?0:-1}function Zg(r,e){e!==void 0&&Ph(e);let t=e!==void 0?e:r.toString(2).length,s=Math.ceil(t/8);return{nBitLength:t,nByteLength:s}}function ei(r,e,t=!1,s={}){if(r<=ys)throw new Error("invalid field: expected ORDER > 0, got "+r);let n,i,o=!1,a;if(typeof e=="object"&&e!=null){if(s.sqrt||t)throw new Error("cannot specify opts in two arguments");let h=e;h.BITS&&(n=h.BITS),h.sqrt&&(i=h.sqrt),typeof h.isLE=="boolean"&&(t=h.isLE),typeof h.modFromBytes=="boolean"&&(o=h.modFromBytes),a=h.allowedLengths}else typeof e=="number"&&(n=e),s.sqrt&&(i=s.sqrt);let{nBitLength:c,nByteLength:d}=Zg(r,n);if(d>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let u,l=Object.freeze({ORDER:r,isLE:t,BITS:c,BYTES:d,MASK:ia(c),ZERO:ys,ONE:Gr,allowedLengths:a,create:h=>gn(h,r),isValid:h=>{if(typeof h!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof h);return ys<=h&&h<r},is0:h=>h===ys,isValidNot0:h=>!l.is0(h)&&l.isValid(h),isOdd:h=>(h&Gr)===Gr,neg:h=>gn(-h,r),eql:(h,x)=>h===x,sqr:h=>gn(h*h,r),add:(h,x)=>gn(h+x,r),sub:(h,x)=>gn(h-x,r),mul:(h,x)=>gn(h*x,r),pow:(h,x)=>_H(l,h,x),div:(h,x)=>gn(h*WA(x,r),r),sqrN:h=>h*h,addN:(h,x)=>h+x,subN:(h,x)=>h-x,mulN:(h,x)=>h*x,inv:h=>WA(h,r),sqrt:i||(h=>(u||(u=wH(r)),u(l,h))),toBytes:h=>t?Jw(h,d):Xg(h,d),fromBytes:(h,x=!0)=>{if(a){if(!a.includes(h.length)||h.length>d)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+h.length);let S=new Uint8Array(d);S.set(h,t?0:S.length-h.length),h=S}if(h.length!==d)throw new Error("Field.fromBytes: expected "+d+" bytes, got "+h.length);let v=t?Qw(h):Tu(h);if(o&&(v=gn(v,r)),!x&&!l.isValid(v))throw new Error("invalid field element: outside of range 0..ORDER");return v},invertBatch:h=>Jg(l,h),cmov:(h,x,v)=>v?x:h});return Object.freeze(l)}function rI(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function rS(r){let e=rI(r);return e+Math.ceil(e/2)}function sI(r,e,t=!1){let s=r.length,n=rI(e),i=rS(e);if(s<16||s<i||s>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+s);let o=t?Qw(r):Tu(r),a=gn(o,e-Gr)+Gr;return t?Jw(a,n):Xg(a,n)}var ys,Gr,Hc,XA,YA,QA,xH,JA,yH,ZA,SH,ex=T(()=>{"use strict";Qg();ys=BigInt(0),Gr=BigInt(1),Hc=BigInt(2),XA=BigInt(3),YA=BigInt(4),QA=BigInt(5),xH=BigInt(7),JA=BigInt(8),yH=BigInt(9),ZA=BigInt(16);SH=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"]});function EH(r,e,t,s){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,s);let n=BigInt(32),i=BigInt(4294967295),o=Number(t>>n&i),a=Number(t&i),c=s?4:0,d=s?0:4;r.setUint32(e+c,o,s),r.setUint32(e+d,a,s)}function nI(r,e,t){return r&e^~r&t}function iI(r,e,t){return r&e^r&t^e&t}var Dh,Ki,Or,Lr,oI=T(()=>{"use strict";jc();Dh=class extends Eu{constructor(e,t,s,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=s,this.isLE=n,this.buffer=new Uint8Array(e),this.view=Kg(this.buffer)}update(e){Cu(this),e=Bh(e),hn(e);let{view:t,buffer:s,blockLen:n}=this,i=e.length;for(let o=0;o<i;){let a=Math.min(n-this.pos,i-o);if(a===n){let c=Kg(e);for(;n<=i-o;o+=n)this.process(c,o);continue}s.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Cu(this),HA(e,this),this.finished=!0;let{buffer:t,view:s,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,Vi(this.buffer.subarray(o)),this.padOffset>n-o&&(this.process(s,0),o=0);for(let l=o;l<n;l++)t[l]=0;EH(s,n-8,BigInt(this.length*8),i),this.process(s,0);let a=Kg(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let d=c/4,u=this.get();if(d>u.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<d;l++)a.setUint32(4*l,u[l],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let s=e.slice(0,t);return this.destroy(),s}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:s,length:n,finished:i,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=i,e.length=n,e.pos=a,n%t&&e.buffer.set(s),e}clone(){return this._cloneInto()}},Ki=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Or=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Lr=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])});function CH(r,e=!1){return e?{h:Number(r&tx),l:Number(r>>aI&tx)}:{h:Number(r>>aI&tx)|0,l:Number(r&tx)|0}}function cI(r,e=!1){let t=r.length,s=new Uint32Array(t),n=new Uint32Array(t);for(let i=0;i<t;i++){let{h:o,l:a}=CH(r[i],e);[s[i],n[i]]=[o,a]}return[s,n]}function ti(r,e,t,s){let n=(e>>>0)+(s>>>0);return{h:r+t+(n/2**32|0)|0,l:n|0}}var tx,aI,sS,nS,Fc,qc,Mh,Uh,dI,uI,fI,lI,hI,pI,mI=T(()=>{"use strict";tx=BigInt(4294967295),aI=BigInt(32);sS=(r,e,t)=>r>>>t,nS=(r,e,t)=>r<<32-t|e>>>t,Fc=(r,e,t)=>r>>>t|e<<32-t,qc=(r,e,t)=>r<<32-t|e>>>t,Mh=(r,e,t)=>r<<64-t|e>>>t-32,Uh=(r,e,t)=>r>>>t-32|e<<64-t;dI=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),uI=(r,e,t,s)=>e+t+s+(r/2**32|0)|0,fI=(r,e,t,s)=>(r>>>0)+(e>>>0)+(t>>>0)+(s>>>0),lI=(r,e,t,s,n)=>e+t+s+n+(r/2**32|0)|0,hI=(r,e,t,s,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(s>>>0)+(n>>>0),pI=(r,e,t,s,n,i)=>e+t+s+n+i+(r/2**32|0)|0});var AH,oa,iS,gI,IH,RH,aa,ca,rx,oS,xI,yI,bI,vI=T(()=>{"use strict";oI();mI();jc();AH=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]),oa=new Uint32Array(64),iS=class extends Dh{constructor(e=32){super(64,e,8,!1),this.A=Ki[0]|0,this.B=Ki[1]|0,this.C=Ki[2]|0,this.D=Ki[3]|0,this.E=Ki[4]|0,this.F=Ki[5]|0,this.G=Ki[6]|0,this.H=Ki[7]|0}get(){let{A:e,B:t,C:s,D:n,E:i,F:o,G:a,H:c}=this;return[e,t,s,n,i,o,a,c]}set(e,t,s,n,i,o,a,c){this.A=e|0,this.B=t|0,this.C=s|0,this.D=n|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)oa[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let h=oa[l-15],x=oa[l-2],v=pn(h,7)^pn(h,18)^h>>>3,S=pn(x,17)^pn(x,19)^x>>>10;oa[l]=S+oa[l-7]+v+oa[l-16]|0}let{A:s,B:n,C:i,D:o,E:a,F:c,G:d,H:u}=this;for(let l=0;l<64;l++){let h=pn(a,6)^pn(a,11)^pn(a,25),x=u+h+nI(a,c,d)+AH[l]+oa[l]|0,S=(pn(s,2)^pn(s,13)^pn(s,22))+iI(s,n,i)|0;u=d,d=c,c=a,a=o+x|0,o=i,i=n,n=s,s=x+S|0}s=s+this.A|0,n=n+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,d=d+this.G|0,u=u+this.H|0,this.set(s,n,i,o,a,c,d,u)}roundClean(){Vi(oa)}destroy(){this.set(0,0,0,0,0,0,0,0),Vi(this.buffer)}},gI=cI(["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(r=>BigInt(r))),IH=gI[0],RH=gI[1],aa=new Uint32Array(80),ca=new Uint32Array(80),rx=class extends Dh{constructor(e=64){super(128,e,16,!1),this.Ah=Lr[0]|0,this.Al=Lr[1]|0,this.Bh=Lr[2]|0,this.Bl=Lr[3]|0,this.Ch=Lr[4]|0,this.Cl=Lr[5]|0,this.Dh=Lr[6]|0,this.Dl=Lr[7]|0,this.Eh=Lr[8]|0,this.El=Lr[9]|0,this.Fh=Lr[10]|0,this.Fl=Lr[11]|0,this.Gh=Lr[12]|0,this.Gl=Lr[13]|0,this.Hh=Lr[14]|0,this.Hl=Lr[15]|0}get(){let{Ah:e,Al:t,Bh:s,Bl:n,Ch:i,Cl:o,Dh:a,Dl:c,Eh:d,El:u,Fh:l,Fl:h,Gh:x,Gl:v,Hh:S,Hl:C}=this;return[e,t,s,n,i,o,a,c,d,u,l,h,x,v,S,C]}set(e,t,s,n,i,o,a,c,d,u,l,h,x,v,S,C){this.Ah=e|0,this.Al=t|0,this.Bh=s|0,this.Bl=n|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=d|0,this.El=u|0,this.Fh=l|0,this.Fl=h|0,this.Gh=x|0,this.Gl=v|0,this.Hh=S|0,this.Hl=C|0}process(e,t){for(let G=0;G<16;G++,t+=4)aa[G]=e.getUint32(t),ca[G]=e.getUint32(t+=4);for(let G=16;G<80;G++){let te=aa[G-15]|0,ae=ca[G-15]|0,se=Fc(te,ae,1)^Fc(te,ae,8)^sS(te,ae,7),Ie=qc(te,ae,1)^qc(te,ae,8)^nS(te,ae,7),ve=aa[G-2]|0,Y=ca[G-2]|0,tt=Fc(ve,Y,19)^Mh(ve,Y,61)^sS(ve,Y,6),Nt=qc(ve,Y,19)^Uh(ve,Y,61)^nS(ve,Y,6),Ke=fI(Ie,Nt,ca[G-7],ca[G-16]),z=lI(Ke,se,tt,aa[G-7],aa[G-16]);aa[G]=z|0,ca[G]=Ke|0}let{Ah:s,Al:n,Bh:i,Bl:o,Ch:a,Cl:c,Dh:d,Dl:u,Eh:l,El:h,Fh:x,Fl:v,Gh:S,Gl:C,Hh:D,Hl:re}=this;for(let G=0;G<80;G++){let te=Fc(l,h,14)^Fc(l,h,18)^Mh(l,h,41),ae=qc(l,h,14)^qc(l,h,18)^Uh(l,h,41),se=l&x^~l&S,Ie=h&v^~h&C,ve=hI(re,ae,Ie,RH[G],ca[G]),Y=pI(ve,D,te,se,IH[G],aa[G]),tt=ve|0,Nt=Fc(s,n,28)^Mh(s,n,34)^Mh(s,n,39),Ke=qc(s,n,28)^Uh(s,n,34)^Uh(s,n,39),z=s&i^s&a^i&a,V=n&o^n&c^o&c;D=S|0,re=C|0,S=x|0,C=v|0,x=l|0,v=h|0,{h:l,l:h}=ti(d|0,u|0,Y|0,tt|0),d=a|0,u=c|0,a=i|0,c=o|0,i=s|0,o=n|0;let H=dI(tt,Ke,V);s=uI(H,Y,Nt,z),n=H|0}({h:s,l:n}=ti(this.Ah|0,this.Al|0,s|0,n|0)),{h:i,l:o}=ti(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=ti(this.Ch|0,this.Cl|0,a|0,c|0),{h:d,l:u}=ti(this.Dh|0,this.Dl|0,d|0,u|0),{h:l,l:h}=ti(this.Eh|0,this.El|0,l|0,h|0),{h:x,l:v}=ti(this.Fh|0,this.Fl|0,x|0,v|0),{h:S,l:C}=ti(this.Gh|0,this.Gl|0,S|0,C|0),{h:D,l:re}=ti(this.Hh|0,this.Hl|0,D|0,re|0),this.set(s,n,i,o,a,c,d,u,l,h,x,v,S,C,D,re)}roundClean(){Vi(aa,ca)}destroy(){Vi(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},oS=class extends rx{constructor(){super(48),this.Ah=Or[0]|0,this.Al=Or[1]|0,this.Bh=Or[2]|0,this.Bl=Or[3]|0,this.Ch=Or[4]|0,this.Cl=Or[5]|0,this.Dh=Or[6]|0,this.Dl=Or[7]|0,this.Eh=Or[8]|0,this.El=Or[9]|0,this.Fh=Or[10]|0,this.Fl=Or[11]|0,this.Gh=Or[12]|0,this.Gl=Or[13]|0,this.Hh=Or[14]|0,this.Hl=Or[15]|0}},xI=Wg(()=>new iS),yI=Wg(()=>new rx),bI=Wg(()=>new oS)});var sx,aS,wI=T(()=>{"use strict";jc();sx=class extends Eu{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,$g(e);let s=Bh(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,i=new Uint8Array(n);i.set(s.length>n?e.create().update(s).digest():s);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=e.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),Vi(i)}update(e){return Cu(this),this.iHash.update(e),this}digestInto(e){Cu(this),hn(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:s,finished:n,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=n,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=s._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},aS=(r,e,t)=>new sx(r,e).update(t).digest();aS.create=(r,e)=>new sx(r,e)});function jh(r,e){let t=e.negate();return r?t:e}function ix(r,e){let t=Jg(r.Fp,e.map(s=>s.Z));return e.map((s,n)=>r.fromAffine(s.toAffine(t[n])))}function CI(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function cS(r,e){CI(r,e);let t=Math.ceil(e/r)+1,s=2**(r-1),n=2**r,i=ia(r),o=BigInt(r);return{windows:t,windowSize:s,mask:i,maxNumber:n,shiftBy:o}}function SI(r,e,t){let{windowSize:s,mask:n,maxNumber:i,shiftBy:o}=t,a=Number(r&n),c=r>>o;a>s&&(a-=i,c+=zc);let d=e*s,u=d+Math.abs(a)-1,l=a===0,h=a<0,x=e%2!==0;return{nextN:c,offset:u,isZero:l,isNeg:h,isNegF:x,offsetF:d}}function kH(r,e){if(!Array.isArray(r))throw new Error("array expected");r.forEach((t,s)=>{if(!(t instanceof e))throw new Error("invalid point at index "+s)})}function PH(r,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((t,s)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+s)})}function uS(r){return TI.get(r)||1}function _I(r){if(r!==Au)throw new Error("invalid wNAF")}function AI(r,e,t,s){let n=e,i=r.ZERO,o=r.ZERO;for(;t>Au||s>Au;)t&zc&&(i=i.add(n)),s&zc&&(o=o.add(n)),n=n.double(),t>>=zc,s>>=zc;return{p1:i,p2:o}}function II(r,e,t,s){kH(t,r),PH(s,e);let n=t.length,i=s.length;if(n!==i)throw new Error("arrays of points and scalars must have equal length");let o=r.ZERO,a=Yg(BigInt(n)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let d=ia(c),u=new Array(Number(d)+1).fill(o),l=Math.floor((e.BITS-1)/c)*c,h=o;for(let x=l;x>=0;x-=c){u.fill(o);for(let S=0;S<i;S++){let C=s[S],D=Number(C>>BigInt(x)&d);u[D]=u[D].add(t[S])}let v=o;for(let S=u.length-1,C=o;S>0;S--)C=C.add(u[S]),v=v.add(C);if(h=h.add(v),x!==0)for(let S=0;S<c;S++)h=h.double()}return h}function EI(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return tS(e),e}else return ei(r,{isLE:t})}function RI(r,e,t={},s){if(s===void 0&&(s=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let d=e[c];if(!(typeof d=="bigint"&&d>Au))throw new Error(`CURVE.${c} must be positive bigint`)}let n=EI(e.p,t.Fp,s),i=EI(e.n,t.Fn,s),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!n.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:n,Fn:i}}var Au,zc,dS,TI,nx,kI=T(()=>{"use strict";Qg();ex();Au=BigInt(0),zc=BigInt(1);dS=new WeakMap,TI=new WeakMap;nx=class{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,s=this.ZERO){let n=e;for(;t>Au;)t&zc&&(s=s.add(n)),n=n.double(),t>>=zc;return s}precomputeWindow(e,t){let{windows:s,windowSize:n}=cS(t,this.bits),i=[],o=e,a=o;for(let c=0;c<s;c++){a=o,i.push(a);for(let d=1;d<n;d++)a=a.add(o),i.push(a);o=a.double()}return i}wNAF(e,t,s){if(!this.Fn.isValid(s))throw new Error("invalid scalar");let n=this.ZERO,i=this.BASE,o=cS(e,this.bits);for(let a=0;a<o.windows;a++){let{nextN:c,offset:d,isZero:u,isNeg:l,isNegF:h,offsetF:x}=SI(s,a,o);s=c,u?i=i.add(jh(h,t[x])):n=n.add(jh(l,t[d]))}return _I(s),{p:n,f:i}}wNAFUnsafe(e,t,s,n=this.ZERO){let i=cS(e,this.bits);for(let o=0;o<i.windows&&s!==Au;o++){let{nextN:a,offset:c,isZero:d,isNeg:u}=SI(s,o,i);if(s=a,!d){let l=t[c];n=n.add(u?l.negate():l)}}return _I(s),n}getPrecomputes(e,t,s){let n=dS.get(t);return n||(n=this.precomputeWindow(t,e),e!==1&&(typeof s=="function"&&(n=s(n)),dS.set(t,n))),n}cached(e,t,s){let n=uS(e);return this.wNAF(n,this.getPrecomputes(n,e,s),t)}unsafe(e,t,s,n){let i=uS(e);return i===1?this._unsafeLadder(e,t,n):this.wNAFUnsafe(i,this.getPrecomputes(i,e,s),t,n)}createCache(e,t){CI(t,this.bits),TI.set(e,t),dS.delete(e)}hasCache(e){return uS(e)!==1}}});function BH(r,e,t){let[[s,n],[i,o]]=e,a=PI(o*r,t),c=PI(-n*r,t),d=r-a*s-c*i,u=-a*n-c*o,l=d<Gi,h=u<Gi;l&&(d=-d),h&&(u=-u);let x=ia(Math.ceil(Yg(t)/2))+Ru;if(d<Gi||d>=x||u<Gi||u>=x)throw new Error("splitScalar (endomorphism): failed, k="+r);return{k1neg:l,k1:d,k2neg:h,k2:u}}function lS(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function fS(r,e){let t={};for(let s of Object.keys(e))t[s]=r[s]===void 0?e[s]:r[s];return Nh(t.lowS,"lowS"),Nh(t.prehash,"prehash"),t.format!==void 0&&lS(t.format),t}function Iu(r,e){let{BYTES:t}=r,s;if(typeof e=="bigint")s=e;else{let n=Wr("private key",e);try{s=r.fromBytes(n)}catch{throw new Error(`invalid private key: expected ui8a of size ${t}, got ${typeof e}`)}}if(!r.isValidNot0(s))throw new Error("invalid private key: out of range [1..N-1]");return s}function OH(r,e={}){let t=RI("weierstrass",r,e),{Fp:s,Fn:n}=t,i=t.CURVE,{h:o,n:a}=i;Lh(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:c}=e;if(c&&(!s.is0(i.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let d=OI(s,n);function u(){if(!s.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function l(Ke,z,V){let{x:H,y:pe}=z.toAffine(),Te=s.toBytes(H);if(Nh(V,"isCompressed"),V){u();let Oe=!s.isOdd(pe);return mn(NI(Oe),Te)}else return mn(Uint8Array.of(4),Te,s.toBytes(pe))}function h(Ke){na(Ke,void 0,"Point");let{publicKey:z,publicKeyUncompressed:V}=d,H=Ke.length,pe=Ke[0],Te=Ke.subarray(1);if(H===z&&(pe===2||pe===3)){let Oe=s.fromBytes(Te);if(!s.isValid(Oe))throw new Error("bad point: is not on curve, wrong x");let A=S(Oe),R;try{R=s.sqrt(A)}catch(O){let oe=O instanceof Error?": "+O.message:"";throw new Error("bad point: is not on curve, sqrt error"+oe)}u();let F=s.isOdd(R);return(pe&1)===1!==F&&(R=s.neg(R)),{x:Oe,y:R}}else if(H===V&&pe===4){let Oe=s.BYTES,A=s.fromBytes(Te.subarray(0,Oe)),R=s.fromBytes(Te.subarray(Oe,Oe*2));if(!C(A,R))throw new Error("bad point: is not on curve");return{x:A,y:R}}else throw new Error(`bad point: got length ${H}, expected compressed=${z} or uncompressed=${V}`)}let x=e.toBytes||l,v=e.fromBytes||h;function S(Ke){let z=s.sqr(Ke),V=s.mul(z,Ke);return s.add(s.add(V,s.mul(Ke,i.a)),i.b)}function C(Ke,z){let V=s.sqr(z),H=S(Ke);return s.eql(V,H)}if(!C(i.Gx,i.Gy))throw new Error("bad curve params: generator point");let D=s.mul(s.pow(i.a,ox),NH),re=s.mul(s.sqr(i.b),BigInt(27));if(s.is0(s.add(D,re)))throw new Error("bad curve params: a or b");function G(Ke,z,V=!1){if(!s.isValid(z)||V&&s.is0(z))throw new Error(`bad point coordinate ${Ke}`);return z}function te(Ke){if(!(Ke instanceof Y))throw new Error("ProjectivePoint expected")}function ae(Ke){if(!c||!c.basises)throw new Error("no endo");return BH(Ke,c.basises,n.ORDER)}let se=Zw((Ke,z)=>{let{X:V,Y:H,Z:pe}=Ke;if(s.eql(pe,s.ONE))return{x:V,y:H};let Te=Ke.is0();z==null&&(z=Te?s.ONE:s.inv(pe));let Oe=s.mul(V,z),A=s.mul(H,z),R=s.mul(pe,z);if(Te)return{x:s.ZERO,y:s.ZERO};if(!s.eql(R,s.ONE))throw new Error("invZ was invalid");return{x:Oe,y:A}}),Ie=Zw(Ke=>{if(Ke.is0()){if(e.allowInfinityPoint&&!s.is0(Ke.Y))return;throw new Error("bad point: ZERO")}let{x:z,y:V}=Ke.toAffine();if(!s.isValid(z)||!s.isValid(V))throw new Error("bad point: x or y not field elements");if(!C(z,V))throw new Error("bad point: equation left != right");if(!Ke.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function ve(Ke,z,V,H,pe){return V=new Y(s.mul(V.X,Ke),V.Y,V.Z),z=jh(H,z),V=jh(pe,V),z.add(V)}class Y{constructor(z,V,H){this.X=G("x",z),this.Y=G("y",V,!0),this.Z=G("z",H),Object.freeze(this)}static CURVE(){return i}static fromAffine(z){let{x:V,y:H}=z||{};if(!z||!s.isValid(V)||!s.isValid(H))throw new Error("invalid affine point");if(z instanceof Y)throw new Error("projective point not allowed");return s.is0(V)&&s.is0(H)?Y.ZERO:new Y(V,H,s.ONE)}static fromBytes(z){let V=Y.fromAffine(v(na(z,void 0,"point")));return V.assertValidity(),V}static fromHex(z){return Y.fromBytes(Wr("pointHex",z))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(z=8,V=!0){return Nt.createCache(this,z),V||this.multiply(ox),this}assertValidity(){Ie(this)}hasEvenY(){let{y:z}=this.toAffine();if(!s.isOdd)throw new Error("Field doesn't support isOdd");return!s.isOdd(z)}equals(z){te(z);let{X:V,Y:H,Z:pe}=this,{X:Te,Y:Oe,Z:A}=z,R=s.eql(s.mul(V,A),s.mul(Te,pe)),F=s.eql(s.mul(H,A),s.mul(Oe,pe));return R&&F}negate(){return new Y(this.X,s.neg(this.Y),this.Z)}double(){let{a:z,b:V}=i,H=s.mul(V,ox),{X:pe,Y:Te,Z:Oe}=this,A=s.ZERO,R=s.ZERO,F=s.ZERO,I=s.mul(pe,pe),O=s.mul(Te,Te),oe=s.mul(Oe,Oe),le=s.mul(pe,Te);return le=s.add(le,le),F=s.mul(pe,Oe),F=s.add(F,F),A=s.mul(z,F),R=s.mul(H,oe),R=s.add(A,R),A=s.sub(O,R),R=s.add(O,R),R=s.mul(A,R),A=s.mul(le,A),F=s.mul(H,F),oe=s.mul(z,oe),le=s.sub(I,oe),le=s.mul(z,le),le=s.add(le,F),F=s.add(I,I),I=s.add(F,I),I=s.add(I,oe),I=s.mul(I,le),R=s.add(R,I),oe=s.mul(Te,Oe),oe=s.add(oe,oe),I=s.mul(oe,le),A=s.sub(A,I),F=s.mul(oe,O),F=s.add(F,F),F=s.add(F,F),new Y(A,R,F)}add(z){te(z);let{X:V,Y:H,Z:pe}=this,{X:Te,Y:Oe,Z:A}=z,R=s.ZERO,F=s.ZERO,I=s.ZERO,O=i.a,oe=s.mul(i.b,ox),le=s.mul(V,Te),ct=s.mul(H,Oe),yt=s.mul(pe,A),Ot=s.add(V,H),St=s.add(Te,Oe);Ot=s.mul(Ot,St),St=s.add(le,ct),Ot=s.sub(Ot,St),St=s.add(V,pe);let Dt=s.add(Te,A);return St=s.mul(St,Dt),Dt=s.add(le,yt),St=s.sub(St,Dt),Dt=s.add(H,pe),R=s.add(Oe,A),Dt=s.mul(Dt,R),R=s.add(ct,yt),Dt=s.sub(Dt,R),I=s.mul(O,St),R=s.mul(oe,yt),I=s.add(R,I),R=s.sub(ct,I),I=s.add(ct,I),F=s.mul(R,I),ct=s.add(le,le),ct=s.add(ct,le),yt=s.mul(O,yt),St=s.mul(oe,St),ct=s.add(ct,yt),yt=s.sub(le,yt),yt=s.mul(O,yt),St=s.add(St,yt),le=s.mul(ct,St),F=s.add(F,le),le=s.mul(Dt,St),R=s.mul(Ot,R),R=s.sub(R,le),le=s.mul(Ot,ct),I=s.mul(Dt,I),I=s.add(I,le),new Y(R,F,I)}subtract(z){return this.add(z.negate())}is0(){return this.equals(Y.ZERO)}multiply(z){let{endo:V}=e;if(!n.isValidNot0(z))throw new Error("invalid scalar: out of range");let H,pe,Te=Oe=>Nt.cached(this,Oe,A=>ix(Y,A));if(V){let{k1neg:Oe,k1:A,k2neg:R,k2:F}=ae(z),{p:I,f:O}=Te(A),{p:oe,f:le}=Te(F);pe=O.add(le),H=ve(V.beta,I,oe,Oe,R)}else{let{p:Oe,f:A}=Te(z);H=Oe,pe=A}return ix(Y,[H,pe])[0]}multiplyUnsafe(z){let{endo:V}=e,H=this;if(!n.isValid(z))throw new Error("invalid scalar: out of range");if(z===Gi||H.is0())return Y.ZERO;if(z===Ru)return H;if(Nt.hasCache(this))return this.multiply(z);if(V){let{k1neg:pe,k1:Te,k2neg:Oe,k2:A}=ae(z),{p1:R,p2:F}=AI(Y,H,Te,A);return ve(V.beta,R,F,pe,Oe)}else return Nt.unsafe(H,z)}multiplyAndAddUnsafe(z,V,H){let pe=this.multiplyUnsafe(V).add(z.multiplyUnsafe(H));return pe.is0()?void 0:pe}toAffine(z){return se(this,z)}isTorsionFree(){let{isTorsionFree:z}=e;return o===Ru?!0:z?z(Y,this):Nt.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:z}=e;return o===Ru?this:z?z(Y,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(z=!0){return Nh(z,"isCompressed"),this.assertValidity(),x(Y,this,z)}toHex(z=!0){return $i(this.toBytes(z))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(z=!0){return this.toBytes(z)}_setWindowSize(z){this.precompute(z)}static normalizeZ(z){return ix(Y,z)}static msm(z,V){return II(Y,n,z,V)}static fromPrivateKey(z){return Y.BASE.multiply(Iu(n,z))}}Y.BASE=new Y(i.Gx,i.Gy,s.ONE),Y.ZERO=new Y(s.ZERO,s.ONE,s.ZERO),Y.Fp=s,Y.Fn=n;let tt=n.BITS,Nt=new nx(Y,e.endo?Math.ceil(tt/2):tt);return Y.BASE.precompute(8),Y}function NI(r){return Uint8Array.of(r?2:3)}function OI(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function LH(r,e={}){let{Fn:t}=r,s=e.randomBytes||Gg,n=Object.assign(OI(r.Fp,t),{seed:rS(t.ORDER)});function i(x){try{return!!Iu(t,x)}catch{return!1}}function o(x,v){let{publicKey:S,publicKeyUncompressed:C}=n;try{let D=x.length;return v===!0&&D!==S||v===!1&&D!==C?!1:!!r.fromBytes(x)}catch{return!1}}function a(x=s(n.seed)){return sI(na(x,n.seed,"seed"),t.ORDER)}function c(x,v=!0){return r.BASE.multiply(Iu(t,x)).toBytes(v)}function d(x){let v=a(x);return{secretKey:v,publicKey:c(v)}}function u(x){if(typeof x=="bigint")return!1;if(x instanceof r)return!0;let{secretKey:v,publicKey:S,publicKeyUncompressed:C}=n;if(t.allowedLengths||v===S)return;let D=Wr("key",x).length;return D===S||D===C}function l(x,v,S=!0){if(u(x)===!0)throw new Error("first arg must be private key");if(u(v)===!1)throw new Error("second arg must be public key");let C=Iu(t,x);return r.fromHex(v).multiply(C).toBytes(S)}return Object.freeze({getPublicKey:c,getSharedSecret:l,keygen:d,Point:r,utils:{isValidSecretKey:i,isValidPublicKey:o,randomSecretKey:a,isValidPrivateKey:i,randomPrivateKey:a,normPrivateKeyToScalar:x=>Iu(t,x),precompute(x=8,v=r.BASE){return v.precompute(x,!1)}},lengths:n})}function DH(r,e,t={}){$g(e),Lh(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let s=t.randomBytes||Gg,n=t.hmac||((V,...H)=>aS(e,V,mn(...H))),{Fp:i,Fn:o}=r,{ORDER:a,BITS:c}=o,{keygen:d,getPublicKey:u,getSharedSecret:l,utils:h,lengths:x}=LH(r,t),v={prehash:!1,lowS:typeof t.lowS=="boolean"?t.lowS:!1,format:void 0,extraEntropy:!1},S="compact";function C(V){let H=a>>Ru;return V>H}function D(V,H){if(!o.isValidNot0(H))throw new Error(`invalid signature ${V}: out of range 1..Point.Fn.ORDER`);return H}function re(V,H){lS(H);let pe=x.signature,Te=H==="compact"?pe:H==="recovered"?pe+1:void 0;return na(V,Te,`${H} signature`)}class G{constructor(H,pe,Te){this.r=D("r",H),this.s=D("s",pe),Te!=null&&(this.recovery=Te),Object.freeze(this)}static fromBytes(H,pe=S){re(H,pe);let Te;if(pe==="der"){let{r:F,s:I}=Wi.toSig(na(H));return new G(F,I)}pe==="recovered"&&(Te=H[0],pe="compact",H=H.subarray(1));let Oe=o.BYTES,A=H.subarray(0,Oe),R=H.subarray(Oe,Oe*2);return new G(o.fromBytes(A),o.fromBytes(R),Te)}static fromHex(H,pe){return this.fromBytes(Uc(H),pe)}addRecoveryBit(H){return new G(this.r,this.s,H)}recoverPublicKey(H){let pe=i.ORDER,{r:Te,s:Oe,recovery:A}=this;if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");if(a*BI<pe&&A>1)throw new Error("recovery id is ambiguous for h>1 curve");let F=A===2||A===3?Te+a:Te;if(!i.isValid(F))throw new Error("recovery id 2 or 3 invalid");let I=i.toBytes(F),O=r.fromBytes(mn(NI((A&1)===0),I)),oe=o.inv(F),le=ae(Wr("msgHash",H)),ct=o.create(-le*oe),yt=o.create(Oe*oe),Ot=r.BASE.multiplyUnsafe(ct).add(O.multiplyUnsafe(yt));if(Ot.is0())throw new Error("point at infinify");return Ot.assertValidity(),Ot}hasHighS(){return C(this.s)}toBytes(H=S){if(lS(H),H==="der")return Uc(Wi.hexFromSig(this));let pe=o.toBytes(this.r),Te=o.toBytes(this.s);if(H==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return mn(Uint8Array.of(this.recovery),pe,Te)}return mn(pe,Te)}toHex(H){return $i(this.toBytes(H))}assertValidity(){}static fromCompact(H){return G.fromBytes(Wr("sig",H),"compact")}static fromDER(H){return G.fromBytes(Wr("sig",H),"der")}normalizeS(){return this.hasHighS()?new G(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return $i(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return $i(this.toBytes("compact"))}}let te=t.bits2int||function(H){if(H.length>8192)throw new Error("input is too large");let pe=Tu(H),Te=H.length*8-c;return Te>0?pe>>BigInt(Te):pe},ae=t.bits2int_modN||function(H){return o.create(te(H))},se=ia(c);function Ie(V){return $A("num < 2^"+c,V,Gi,se),o.toBytes(V)}function ve(V,H){return na(V,void 0,"message"),H?na(e(V),void 0,"prehashed message"):V}function Y(V,H,pe){if(["recovered","canonical"].some(ct=>ct in pe))throw new Error("sign() legacy options not supported");let{lowS:Te,prehash:Oe,extraEntropy:A}=fS(pe,v);V=ve(V,Oe);let R=ae(V),F=Iu(o,H),I=[Ie(F),Ie(R)];if(A!=null&&A!==!1){let ct=A===!0?s(x.secretKey):A;I.push(Wr("extraEntropy",ct))}let O=mn(...I),oe=R;function le(ct){let yt=te(ct);if(!o.isValidNot0(yt))return;let Ot=o.inv(yt),St=r.BASE.multiply(yt).toAffine(),Dt=o.create(St.x);if(Dt===Gi)return;let Bs=o.create(Ot*o.create(oe+Dt*F));if(Bs===Gi)return;let Ns=(St.x===Dt?0:2)|Number(St.y&Ru),_a=Bs;return Te&&C(Bs)&&(_a=o.neg(Bs),Ns^=1),new G(Dt,_a,Ns)}return{seed:O,k2sig:le}}function tt(V,H,pe={}){V=Wr("message",V);let{seed:Te,k2sig:Oe}=Y(V,H,pe);return KA(e.outputLen,o.BYTES,n)(Te,Oe)}function Nt(V){let H,pe=typeof V=="string"||Mc(V),Te=!pe&&V!==null&&typeof V=="object"&&typeof V.r=="bigint"&&typeof V.s=="bigint";if(!pe&&!Te)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(Te)H=new G(V.r,V.s);else if(pe){try{H=G.fromBytes(Wr("sig",V),"der")}catch(Oe){if(!(Oe instanceof Wi.Err))throw Oe}if(!H)try{H=G.fromBytes(Wr("sig",V),"compact")}catch{return!1}}return H||!1}function Ke(V,H,pe,Te={}){let{lowS:Oe,prehash:A,format:R}=fS(Te,v);if(pe=Wr("publicKey",pe),H=ve(Wr("message",H),A),"strict"in Te)throw new Error("options.strict was renamed to lowS");let F=R===void 0?Nt(V):G.fromBytes(Wr("sig",V),R);if(F===!1)return!1;try{let I=r.fromBytes(pe);if(Oe&&F.hasHighS())return!1;let{r:O,s:oe}=F,le=ae(H),ct=o.inv(oe),yt=o.create(le*ct),Ot=o.create(O*ct),St=r.BASE.multiplyUnsafe(yt).add(I.multiplyUnsafe(Ot));return St.is0()?!1:o.create(St.x)===O}catch{return!1}}function z(V,H,pe={}){let{prehash:Te}=fS(pe,v);return H=ve(H,Te),G.fromBytes(V,"recovered").recoverPublicKey(H).toBytes()}return Object.freeze({keygen:d,getPublicKey:u,getSharedSecret:l,utils:h,lengths:x,Point:r,sign:tt,verify:Ke,recoverPublicKey:z,Signature:G,hash:e})}function MH(r){let e={a:r.a,b:r.b,p:r.Fp.ORDER,n:r.n,h:r.h,Gx:r.Gx,Gy:r.Gy},t=r.Fp,s=r.allowedPrivateKeyLengths?Array.from(new Set(r.allowedPrivateKeyLengths.map(o=>Math.ceil(o/2)))):void 0,n=ei(e.n,{BITS:r.nBitLength,allowedLengths:s,modFromBytes:r.wrapPrivateKey}),i={Fp:t,Fn:n,allowInfinityPoint:r.allowInfinityPoint,endo:r.endo,isTorsionFree:r.isTorsionFree,clearCofactor:r.clearCofactor,fromBytes:r.fromBytes,toBytes:r.toBytes};return{CURVE:e,curveOpts:i}}function UH(r){let{CURVE:e,curveOpts:t}=MH(r),s={hmac:r.hmac,randomBytes:r.randomBytes,lowS:r.lowS,bits2int:r.bits2int,bits2int_modN:r.bits2int_modN};return{CURVE:e,curveOpts:t,hash:r.hash,ecdsaOpts:s}}function jH(r,e){let t=e.Point;return Object.assign({},e,{ProjectivePoint:t,CURVE:Object.assign({},r,Zg(t.Fn.ORDER,t.Fn.BITS))})}function LI(r){let{CURVE:e,curveOpts:t,hash:s,ecdsaOpts:n}=UH(r),i=OH(e,t),o=DH(i,s,n);return jH(r,o)}var PI,hS,Wi,Gi,Ru,BI,ox,NH,DI=T(()=>{"use strict";wI();jc();Qg();kI();ex();PI=(r,e)=>(r+(r>=0?e:-e)/BI)/e;hS=class extends Error{constructor(e=""){super(e)}},Wi={Err:hS,_tlv:{encode:(r,e)=>{let{Err:t}=Wi;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let s=e.length/2,n=Oh(s);if(n.length/2&128)throw new t("tlv.encode: long form length too big");let i=s>127?Oh(n.length/2|128):"";return Oh(r)+i+n+e},decode(r,e){let{Err:t}=Wi,s=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[s++]!==r)throw new t("tlv.decode: wrong tlv");let n=e[s++],i=!!(n&128),o=0;if(!i)o=n;else{let c=n&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let d=e.subarray(s,s+c);if(d.length!==c)throw new t("tlv.decode: length bytes not complete");if(d[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let u of d)o=o<<8|u;if(s+=c,o<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(s,s+o);if(a.length!==o)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(s+o)}}},_int:{encode(r){let{Err:e}=Wi;if(r<Gi)throw new e("integer: negative integers are not allowed");let t=Oh(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=Wi;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Tu(r)}},toSig(r){let{Err:e,_int:t,_tlv:s}=Wi,n=Wr("signature",r),{v:i,l:o}=s.decode(48,n);if(o.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=s.decode(2,i),{v:d,l:u}=s.decode(2,c);if(u.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(d)}},hexFromSig(r){let{_tlv:e,_int:t}=Wi,s=e.encode(2,t.encode(r.r)),n=e.encode(2,t.encode(r.s)),i=s+n;return e.encode(48,i)}},Gi=BigInt(0),Ru=BigInt(1),BI=BigInt(2),ox=BigInt(3),NH=BigInt(4)});function ax(r,e){let t=s=>LI({...r,hash:s});return{...t(e),create:t}}var MI=T(()=>{"use strict";DI();});var UI,jI,HI,HH,FH,qH,FI,Pfe,Bfe,qI=T(()=>{"use strict";vI();MI();ex();UI={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},jI={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},HI={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},HH=ei(UI.p),FH=ei(jI.p),qH=ei(HI.p),FI=ax({...UI,Fp:HH,lowS:!1},xI),Pfe=ax({...jI,Fp:FH,lowS:!1},bI),Bfe=ax({...HI,Fp:qH,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},yI)});var cx,zI=T(()=>{"use strict";qI();cx=FI});var $I=ee(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.LEB128=da.SignedLEB128=da.UnsignedLEB128=void 0;var ku;(function(r){r[r.LOWER_7=127]="LOWER_7",r[r.UPPER_1=128]="UPPER_1"})(ku||(ku={}));var VI=r=>Number.isSafeInteger(r),Vc=class{static decode(e,t=0){let s=this.$scanForNullBytes(e,t),n=0,i=0;for(let o=0;o<=s-t;o++){let a=e[t+o]&ku.LOWER_7;n|=a<<i,i+=7}return n}static encode(e){if(this.check(e),e<0)throw new Error(`An unsigned number must NOT be negative, ${e} is!`);let t=[],s=e;do{let n=s&ku.LOWER_7;s>>=7,s&&(n=n|ku.UPPER_1),t.push(n)}while(s);return Uint8Array.from(t)}static check(e){if(!VI(e))throw new Error(`${e} is not a safe integer!`)}static $scanForNullBytes(e,t=0){let s=t,n=0;do{if(s>=e.byteLength)throw new Error("This is not a LEB128-encoded Uint8Array, no ending found!");n=e.slice(s,s+1)[0],s++}while(n&ku.UPPER_1);return s-1}static getLength(e,t=0){return this.$scanForNullBytes(e,t)-t}};da.UnsignedLEB128=Vc;var Hh=class{static $ceil7mul(e){let t=e;for(;t%7;)t++;return t}static check(e){if(!VI(e))throw new Error(`${e} is not a safe integer!`)}static encode(e){if(this.check(e),e>=0)throw new Error(`A signed number must be negative, ${e} isn't!`);let t=Math.ceil(Math.log2(-e));return Vc.encode((1<<this.$ceil7mul(t))+e)}static decode(e,t=0){let s=Vc.decode(e,t);return-((1<<Math.ceil(Math.log2(s)))-s)}};da.SignedLEB128=Hh;var Fh=class{};da.LEB128=Fh;Fh.encode=r=>(r>=0?Vc:Hh).encode(r);Fh.decode=(r,e=0,t=!1)=>(t?Hh:Vc).decode(r,e)});var WI=ee((pS,KI)=>{"use strict";(function(r){"use strict";function e(A){return parseInt(A)===A}function t(A){if(!e(A.length))return!1;for(var R=0;R<A.length;R++)if(!e(A[R])||A[R]<0||A[R]>255)return!1;return!0}function s(A,R){if(A.buffer&&A.name==="Uint8Array")return R&&(A.slice?A=A.slice():A=Array.prototype.slice.call(A)),A;if(Array.isArray(A)){if(!t(A))throw new Error("Array contains invalid value: "+A);return new Uint8Array(A)}if(e(A.length)&&t(A))return new Uint8Array(A);throw new Error("unsupported array-like object")}function n(A){return new Uint8Array(A)}function i(A,R,F,I,O){(I!=null||O!=null)&&(A.slice?A=A.slice(I,O):A=Array.prototype.slice.call(A,I,O)),R.set(A,F)}var o=(function(){function A(F){var I=[],O=0;for(F=encodeURI(F);O<F.length;){var oe=F.charCodeAt(O++);oe===37?(I.push(parseInt(F.substr(O,2),16)),O+=2):I.push(oe)}return s(I)}function R(F){for(var I=[],O=0;O<F.length;){var oe=F[O];oe<128?(I.push(String.fromCharCode(oe)),O++):oe>191&&oe<224?(I.push(String.fromCharCode((oe&31)<<6|F[O+1]&63)),O+=2):(I.push(String.fromCharCode((oe&15)<<12|(F[O+1]&63)<<6|F[O+2]&63)),O+=3)}return I.join("")}return{toBytes:A,fromBytes:R}})(),a=(function(){function A(I){for(var O=[],oe=0;oe<I.length;oe+=2)O.push(parseInt(I.substr(oe,2),16));return O}var R="0123456789abcdef";function F(I){for(var O=[],oe=0;oe<I.length;oe++){var le=I[oe];O.push(R[(le&240)>>4]+R[le&15])}return O.join("")}return{toBytes:A,fromBytes:F}})(),c={16:10,24:12,32:14},d=[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],u=[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],l=[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],x=[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],v=[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],S=[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],C=[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],D=[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],re=[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,1047239e3,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],G=[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,679998e3,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],te=[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],ae=[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],se=[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,1047239e3,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],Ie=[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,679998e3,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 ve(A){for(var R=[],F=0;F<A.length;F+=4)R.push(A[F]<<24|A[F+1]<<16|A[F+2]<<8|A[F+3]);return R}var Y=function(A){if(!(this instanceof Y))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:s(A,!0)}),this._prepare()};Y.prototype._prepare=function(){var A=c[this.key.length];if(A==null)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var R=0;R<=A;R++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);for(var F=(A+1)*4,I=this.key.length/4,O=ve(this.key),oe,R=0;R<I;R++)oe=R>>2,this._Ke[oe][R%4]=O[R],this._Kd[A-oe][R%4]=O[R];for(var le=0,ct=I,yt;ct<F;){if(yt=O[I-1],O[0]^=u[yt>>16&255]<<24^u[yt>>8&255]<<16^u[yt&255]<<8^u[yt>>24&255]^d[le]<<24,le+=1,I!=8)for(var R=1;R<I;R++)O[R]^=O[R-1];else{for(var R=1;R<I/2;R++)O[R]^=O[R-1];yt=O[I/2-1],O[I/2]^=u[yt&255]^u[yt>>8&255]<<8^u[yt>>16&255]<<16^u[yt>>24&255]<<24;for(var R=I/2+1;R<I;R++)O[R]^=O[R-1]}for(var R=0,Ot,St;R<I&&ct<F;)Ot=ct>>2,St=ct%4,this._Ke[Ot][St]=O[R],this._Kd[A-Ot][St]=O[R++],ct++}for(var Ot=1;Ot<A;Ot++)for(var St=0;St<4;St++)yt=this._Kd[Ot][St],this._Kd[Ot][St]=te[yt>>24&255]^ae[yt>>16&255]^se[yt>>8&255]^Ie[yt&255]},Y.prototype.encrypt=function(A){if(A.length!=16)throw new Error("invalid plaintext size (must be 16 bytes)");for(var R=this._Ke.length-1,F=[0,0,0,0],I=ve(A),O=0;O<4;O++)I[O]^=this._Ke[0][O];for(var oe=1;oe<R;oe++){for(var O=0;O<4;O++)F[O]=h[I[O]>>24&255]^x[I[(O+1)%4]>>16&255]^v[I[(O+2)%4]>>8&255]^S[I[(O+3)%4]&255]^this._Ke[oe][O];I=F.slice()}for(var le=n(16),ct,O=0;O<4;O++)ct=this._Ke[R][O],le[4*O]=(u[I[O]>>24&255]^ct>>24)&255,le[4*O+1]=(u[I[(O+1)%4]>>16&255]^ct>>16)&255,le[4*O+2]=(u[I[(O+2)%4]>>8&255]^ct>>8)&255,le[4*O+3]=(u[I[(O+3)%4]&255]^ct)&255;return le},Y.prototype.decrypt=function(A){if(A.length!=16)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var R=this._Kd.length-1,F=[0,0,0,0],I=ve(A),O=0;O<4;O++)I[O]^=this._Kd[0][O];for(var oe=1;oe<R;oe++){for(var O=0;O<4;O++)F[O]=C[I[O]>>24&255]^D[I[(O+3)%4]>>16&255]^re[I[(O+2)%4]>>8&255]^G[I[(O+1)%4]&255]^this._Kd[oe][O];I=F.slice()}for(var le=n(16),ct,O=0;O<4;O++)ct=this._Kd[R][O],le[4*O]=(l[I[O]>>24&255]^ct>>24)&255,le[4*O+1]=(l[I[(O+3)%4]>>16&255]^ct>>16)&255,le[4*O+2]=(l[I[(O+2)%4]>>8&255]^ct>>8)&255,le[4*O+3]=(l[I[(O+1)%4]&255]^ct)&255;return le};var tt=function(A){if(!(this instanceof tt))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new Y(A)};tt.prototype.encrypt=function(A){if(A=s(A),A.length%16!==0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var R=n(A.length),F=n(16),I=0;I<A.length;I+=16)i(A,F,0,I,I+16),F=this._aes.encrypt(F),i(F,R,I);return R},tt.prototype.decrypt=function(A){if(A=s(A),A.length%16!==0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var R=n(A.length),F=n(16),I=0;I<A.length;I+=16)i(A,F,0,I,I+16),F=this._aes.decrypt(F),i(F,R,I);return R};var Nt=function(A,R){if(!(this instanceof Nt))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!R)R=n(16);else if(R.length!=16)throw new Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=s(R,!0),this._aes=new Y(A)};Nt.prototype.encrypt=function(A){if(A=s(A),A.length%16!==0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var R=n(A.length),F=n(16),I=0;I<A.length;I+=16){i(A,F,0,I,I+16);for(var O=0;O<16;O++)F[O]^=this._lastCipherblock[O];this._lastCipherblock=this._aes.encrypt(F),i(this._lastCipherblock,R,I)}return R},Nt.prototype.decrypt=function(A){if(A=s(A),A.length%16!==0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var R=n(A.length),F=n(16),I=0;I<A.length;I+=16){i(A,F,0,I,I+16),F=this._aes.decrypt(F);for(var O=0;O<16;O++)R[I+O]=F[O]^this._lastCipherblock[O];i(A,this._lastCipherblock,0,I,I+16)}return R};var Ke=function(A,R,F){if(!(this instanceof Ke))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!R)R=n(16);else if(R.length!=16)throw new Error("invalid initialation vector size (must be 16 size)");F||(F=1),this.segmentSize=F,this._shiftRegister=s(R,!0),this._aes=new Y(A)};Ke.prototype.encrypt=function(A){if(A.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var R=s(A,!0),F,I=0;I<R.length;I+=this.segmentSize){F=this._aes.encrypt(this._shiftRegister);for(var O=0;O<this.segmentSize;O++)R[I+O]^=F[O];i(this._shiftRegister,this._shiftRegister,0,this.segmentSize),i(R,this._shiftRegister,16-this.segmentSize,I,I+this.segmentSize)}return R},Ke.prototype.decrypt=function(A){if(A.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var R=s(A,!0),F,I=0;I<R.length;I+=this.segmentSize){F=this._aes.encrypt(this._shiftRegister);for(var O=0;O<this.segmentSize;O++)R[I+O]^=F[O];i(this._shiftRegister,this._shiftRegister,0,this.segmentSize),i(A,this._shiftRegister,16-this.segmentSize,I,I+this.segmentSize)}return R};var z=function(A,R){if(!(this instanceof z))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!R)R=n(16);else if(R.length!=16)throw new Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=s(R,!0),this._lastPrecipherIndex=16,this._aes=new Y(A)};z.prototype.encrypt=function(A){for(var R=s(A,!0),F=0;F<R.length;F++)this._lastPrecipherIndex===16&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),R[F]^=this._lastPrecipher[this._lastPrecipherIndex++];return R},z.prototype.decrypt=z.prototype.encrypt;var V=function(A){if(!(this instanceof V))throw Error("Counter must be instanitated with `new`");A!==0&&!A&&(A=1),typeof A=="number"?(this._counter=n(16),this.setValue(A)):this.setBytes(A)};V.prototype.setValue=function(A){if(typeof A!="number"||parseInt(A)!=A)throw new Error("invalid counter value (must be an integer)");if(A>Number.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var R=15;R>=0;--R)this._counter[R]=A%256,A=parseInt(A/256)},V.prototype.setBytes=function(A){if(A=s(A,!0),A.length!=16)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=A},V.prototype.increment=function(){for(var A=15;A>=0;A--)if(this._counter[A]===255)this._counter[A]=0;else{this._counter[A]++;break}};var H=function(A,R){if(!(this instanceof H))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",R instanceof V||(R=new V(R)),this._counter=R,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new Y(A)};H.prototype.encrypt=function(A){for(var R=s(A,!0),F=0;F<R.length;F++)this._remainingCounterIndex===16&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),R[F]^=this._remainingCounter[this._remainingCounterIndex++];return R},H.prototype.decrypt=H.prototype.encrypt;function pe(A){A=s(A,!0);var R=16-A.length%16,F=n(A.length+R);i(A,F);for(var I=A.length;I<F.length;I++)F[I]=R;return F}function Te(A){if(A=s(A,!0),A.length<16)throw new Error("PKCS#7 invalid length");var R=A[A.length-1];if(R>16)throw new Error("PKCS#7 padding byte out of range");for(var F=A.length-R,I=0;I<R;I++)if(A[F+I]!==R)throw new Error("PKCS#7 invalid padding byte");var O=n(F);return i(A,O,0,0,F),O}var Oe={AES:Y,Counter:V,ModeOfOperation:{ecb:tt,cbc:Nt,cfb:Ke,ofb:z,ctr:H},utils:{hex:a,utf8:o},padding:{pkcs7:{pad:pe,strip:Te}},_arrayTest:{coerceArray:s,createArray:n,copyArray:i}};typeof pS<"u"?KI.exports=Oe:typeof define=="function"&&define.amd?define([],function(){return Oe}):(r.aesjs&&(Oe._aesjs=r.aesjs),r.aesjs=Oe)})(pS)});function YI(r,e,t){var s=e?0:4,n=e?4:0,i=e?0:3,o=e?1:2,a=e?2:1,c=e?3:0,d=e?WH:XH,u=e?GH:YH,l=v.prototype,h="is"+r,x="_"+h;return l.buffer=void 0,l.offset=0,l[x]=!0,l.toNumber=re,l.toString=G,l.toJSON=re,l.toArray=$H,Nu&&(l.toBuffer=KH),Bu&&(l.toArrayBuffer=QI),v[h]=S,v;function v(se,Ie,ve,Y){return this instanceof v?C(this,se,Ie,ve,Y):new v(se,Ie,ve,Y)}function S(se){return!!(se&&se[x])}function C(se,Ie,ve,Y,tt){if(Bu&&dx&&(Ie instanceof dx&&(Ie=new Bu(Ie)),Y instanceof dx&&(Y=new Bu(Y))),!Ie&&!ve&&!Y&&!Ou){se.buffer=JI(GI,0);return}if(!XI(Ie,ve)){var Nt=Ou||Array;tt=ve,Y=Ie,ve=0,Ie=Ou===Nu?Nu.alloc(8):new Nt(8)}se.buffer=Ie,se.offset=ve|=0,ux!==typeof Y&&(typeof Y=="string"?D(Ie,ve,Y,tt||10):XI(Y,tt)?mS(Ie,ve,Y,tt):typeof tt=="number"?(te(Ie,ve+s,Y),te(Ie,ve+n,tt)):Y>0?d(Ie,ve,Y):Y<0?u(Ie,ve,Y):mS(Ie,ve,GI,0))}function D(se,Ie,ve,Y){var tt=0,Nt=ve.length,Ke=0,z=0;ve[0]==="-"&&tt++;for(var V=tt;tt<Nt;){var H=parseInt(ve[tt++],Y);if(!(H>=0))break;z=z*Y+H,Ke=Ke*Y+Math.floor(z/Pu),z%=Pu}V&&(Ke=~Ke,z?z=Pu-z:Ke++),te(se,Ie+s,Ke),te(se,Ie+n,z)}function re(){var se=this.buffer,Ie=this.offset,ve=ae(se,Ie+s),Y=ae(se,Ie+n);return t||(ve|=0),ve?ve*Pu+Y:Y}function G(se){var Ie=this.buffer,ve=this.offset,Y=ae(Ie,ve+s),tt=ae(Ie,ve+n),Nt="",Ke=!t&&Y&2147483648;for(Ke&&(Y=~Y,tt=Pu-tt),se=se||10;;){var z=Y%se*Pu+tt;if(Y=Math.floor(Y/se),tt=Math.floor(z/se),Nt=(z%se).toString(se)+Nt,!Y&&!tt)break}return Ke&&(Nt="-"+Nt),Nt}function te(se,Ie,ve){se[Ie+c]=ve&255,ve=ve>>8,se[Ie+a]=ve&255,ve=ve>>8,se[Ie+o]=ve&255,ve=ve>>8,se[Ie+i]=ve&255}function ae(se,Ie){return se[Ie+i]*VH+(se[Ie+o]<<16)+(se[Ie+a]<<8)+se[Ie+c]}}function $H(r){var e=this.buffer,t=this.offset;return Ou=null,r!==!1&&zH(e)?e.length===8?e:e.slice(t,t+8):JI(e,t)}function KH(r){var e=this.buffer,t=this.offset;return Ou=Nu,r!==!1&&Nu.isBuffer(e)?e.length===8?e:e.slice(t,t+8):Nu.from(QI.call(this,r))}function QI(r){var e=this.buffer,t=this.offset,s=e.buffer;if(Ou=Bu,r!==!1&&!e.offset&&s instanceof dx)return s.byteLength===8?s:s.slice(t,t+8);var n=new Bu(8);return mS(n,0,e,t),n.buffer}function XI(r,e){var t=r&&r.length;return e|=0,t&&e+8<=t&&typeof r[e]!="string"}function mS(r,e,t,s){e|=0,s|=0;for(var n=0;n<8;n++)r[e++]=t[s++]&255}function JI(r,e){return Array.prototype.slice.call(r,e,e+8)}function WH(r,e,t){for(var s=e+8;s>e;)r[--s]=t&255,t/=256}function GH(r,e,t){var s=e+8;for(t++;s>e;)r[--s]=-t&255^255,t/=256}function XH(r,e,t){for(var s=e+8;e<s;)r[e++]=t&255,t/=256}function YH(r,e,t){var s=e+8;for(t++;e<s;)r[e++]=-t&255^255,t/=256}function QH(r){return!!r&&Object.prototype.toString.call(r)=="[object Array]"}var ux,Nu,Bu,dx,GI,zH,Pu,VH,Ou,fx,gS,lx=T(()=>{"use strict";ux="undefined",Nu=ux!==typeof Buffer&&Buffer,Bu=ux!==typeof Uint8Array&&Uint8Array,dx=ux!==typeof ArrayBuffer&&ArrayBuffer,GI=[0,0,0,0,0,0,0,0],zH=Array.isArray||QH,Pu=4294967296,VH=16777216,fx=YI("Uint64BE",!0,!0),gS=YI("Int64BE",!0,!1)});var yS=ee(ZI=>{"use strict";var ze=ZI,{Buffer:hx}=require("buffer"),JH=require("os");ze.toBuffer=function(r,e,t){t=~~t;let s;if(this.isV4Format(r))s=e||hx.alloc(t+4),r.split(/\./g).map(n=>{s[t++]=parseInt(n,10)&255});else if(this.isV6Format(r)){let n=r.split(":",8),i;for(i=0;i<n.length;i++){let o=this.isV4Format(n[i]),a;o&&(a=this.toBuffer(n[i]),n[i]=a.slice(0,2).toString("hex")),a&&++i<8&&n.splice(i,0,a.slice(2,4).toString("hex"))}if(n[0]==="")for(;n.length<8;)n.unshift("0");else if(n[n.length-1]==="")for(;n.length<8;)n.push("0");else if(n.length<8){for(i=0;i<n.length&&n[i]!=="";i++);let o=[i,1];for(i=9-n.length;i>0;i--)o.push("0");n.splice(...o)}for(s=e||hx.alloc(t+16),i=0;i<n.length;i++){let o=parseInt(n[i],16);s[t++]=o>>8&255,s[t++]=o&255}}if(!s)throw Error(`Invalid ip address: ${r}`);return s};ze.toString=function(r,e,t){e=~~e,t=t||r.length-e;let s=[];if(t===4){for(let n=0;n<t;n++)s.push(r[e+n]);s=s.join(".")}else if(t===16){for(let n=0;n<t;n+=2)s.push(r.readUInt16BE(e+n).toString(16));s=s.join(":"),s=s.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),s=s.replace(/:{3,4}/,"::")}return s};var ZH=/^(\d{1,3}\.){3,3}\d{1,3}$/,eF=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;ze.isV4Format=function(r){return ZH.test(r)};ze.isV6Format=function(r){return eF.test(r)};function qh(r){return r===4?"ipv4":r===6?"ipv6":r?r.toLowerCase():"ipv4"}ze.fromPrefixLen=function(r,e){r>32?e="ipv6":e=qh(e);let t=4;e==="ipv6"&&(t=16);let s=hx.alloc(t);for(let n=0,i=s.length;n<i;++n){let o=8;r<8&&(o=r),r-=o,s[n]=~(255>>o)&255}return ze.toString(s)};ze.mask=function(r,e){r=ze.toBuffer(r),e=ze.toBuffer(e);let t=hx.alloc(Math.max(r.length,e.length)),s;if(r.length===e.length)for(s=0;s<r.length;s++)t[s]=r[s]&e[s];else if(e.length===4)for(s=0;s<e.length;s++)t[s]=r[r.length-4+s]&e[s];else{for(s=0;s<t.length-6;s++)t[s]=0;for(t[10]=255,t[11]=255,s=0;s<r.length;s++)t[s+12]=r[s]&e[s+12];s+=12}for(;s<t.length;s++)t[s]=0;return ze.toString(t)};ze.cidr=function(r){let e=r.split("/"),t=e[0];if(e.length!==2)throw new Error(`invalid CIDR subnet: ${t}`);let s=ze.fromPrefixLen(parseInt(e[1],10));return ze.mask(t,s)};ze.subnet=function(r,e){let t=ze.toLong(ze.mask(r,e)),s=ze.toBuffer(e),n=0;for(let o=0;o<s.length;o++)if(s[o]===255)n+=8;else{let a=s[o]&255;for(;a;)a=a<<1&255,n++}let i=2**(32-n);return{networkAddress:ze.fromLong(t),firstAddress:i<=2?ze.fromLong(t):ze.fromLong(t+1),lastAddress:i<=2?ze.fromLong(t+i-1):ze.fromLong(t+i-2),broadcastAddress:ze.fromLong(t+i-1),subnetMask:e,subnetMaskLength:n,numHosts:i<=2?i:i-2,length:i,contains(o){return t===ze.toLong(ze.mask(o,e))}}};ze.cidrSubnet=function(r){let e=r.split("/"),t=e[0];if(e.length!==2)throw new Error(`invalid CIDR subnet: ${t}`);let s=ze.fromPrefixLen(parseInt(e[1],10));return ze.subnet(t,s)};ze.not=function(r){let e=ze.toBuffer(r);for(let t=0;t<e.length;t++)e[t]=255^e[t];return ze.toString(e)};ze.or=function(r,e){if(r=ze.toBuffer(r),e=ze.toBuffer(e),r.length===e.length){for(let i=0;i<r.length;++i)r[i]|=e[i];return ze.toString(r)}let t=r,s=e;e.length>r.length&&(t=e,s=r);let n=t.length-s.length;for(let i=n;i<t.length;++i)t[i]|=s[i-n];return ze.toString(t)};ze.isEqual=function(r,e){if(r=ze.toBuffer(r),e=ze.toBuffer(e),r.length===e.length){for(let s=0;s<r.length;s++)if(r[s]!==e[s])return!1;return!0}if(e.length===4){let s=e;e=r,r=s}for(let s=0;s<10;s++)if(e[s]!==0)return!1;let t=e.readUInt16BE(10);if(t!==0&&t!==65535)return!1;for(let s=0;s<4;s++)if(r[s]!==e[s+12])return!1;return!0};ze.isPrivate=function(r){if(ze.isLoopback(r))return!0;if(!ze.isV6Format(r)){let e=ze.normalizeToLong(r);if(e<0)throw new Error("invalid ipv4 address");r=ze.fromLong(e)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^f[cd][0-9a-f]{2}:/i.test(r)||/^fe80:/i.test(r)||/^::1$/.test(r)||/^::$/.test(r)};ze.isPublic=function(r){return!ze.isPrivate(r)};ze.isLoopback=function(r){return!/\./.test(r)&&!/:/.test(r)&&(r=ze.fromLong(Number(r))),/^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(r)||/^0177\./.test(r)||/^0x7f\./i.test(r)||/^fe80::1$/i.test(r)||/^::1$/.test(r)||/^::$/.test(r)};ze.loopback=function(r){if(r=qh(r),r!=="ipv4"&&r!=="ipv6")throw new Error("family must be ipv4 or ipv6");return r==="ipv4"?"127.0.0.1":"fe80::1"};ze.address=function(r,e){let t=JH.networkInterfaces();if(e=qh(e),r&&r!=="private"&&r!=="public"){let n=t[r].filter(i=>qh(i.family)===e);return n.length===0?void 0:n[0].address}let s=Object.keys(t).map(n=>{let i=t[n].filter(o=>(o.family=qh(o.family),o.family!==e||ze.isLoopback(o.address)?!1:r?r==="public"?ze.isPrivate(o.address):ze.isPublic(o.address):!0));return i.length?i[0].address:void 0}).filter(Boolean);return s.length?s[0]:ze.loopback(e)};ze.toLong=function(r){let e=0;return r.split(".").forEach(t=>{e<<=8,e+=parseInt(t)}),e>>>0};ze.fromLong=function(r){return`${r>>>24}.${r>>16&255}.${r>>8&255}.${r&255}`};ze.normalizeToLong=function(r){let e=r.split(".").map(n=>n.startsWith("0x")||n.startsWith("0X")?parseInt(n,16):n.startsWith("0")&&n!=="0"&&/^[0-7]+$/.test(n)?parseInt(n,8):/^[1-9]\d*$/.test(n)||n==="0"?parseInt(n,10):NaN);if(e.some(isNaN))return-1;let t=0;switch(e.length){case 1:t=e[0];break;case 2:if(e[0]>255||e[1]>16777215)return-1;t=e[0]<<24|e[1]&16777215;break;case 3:if(e[0]>255||e[1]>255||e[2]>65535)return-1;t=e[0]<<24|e[1]<<16|e[2]&65535;break;case 4:if(e.some(n=>n>255))return-1;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3];break;default:return-1}return t>>>0}});var tR=ee((jfe,eR)=>{"use strict";eR.exports=function r(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var s,n,i;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(n=s;n--!==0;)if(!r(e[n],t[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(i=Object.keys(e),s=i.length,s!==Object.keys(t).length)return!1;for(n=s;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[n]))return!1;for(n=s;n--!==0;){var o=i[n];if(!r(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}});var rR=ee(bS=>{"use strict";bS.toString=function(r){switch(r){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_"+r};bS.toType=function(r){switch(r.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}return r.toUpperCase().startsWith("UNKNOWN_")?parseInt(r.slice(8)):0}});var sR=ee(vS=>{"use strict";vS.toString=function(r){switch(r){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_"+r};vS.toRcode=function(r){switch(r.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 nR=ee(wS=>{"use strict";wS.toString=function(r){switch(r){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_"+r};wS.toOpcode=function(r){switch(r.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 iR=ee(SS=>{"use strict";SS.toString=function(r){switch(r){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+r};SS.toClass=function(r){switch(r.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var oR=ee(_S=>{"use strict";_S.toString=function(r){switch(r){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"}return r<0?null:`OPTION_${r}`};_S.toCode=function(r){if(typeof r=="number")return r;if(!r)return-1;switch(r.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 e=r.match(/_(\d+)$/);return e?parseInt(e[1],10):-1}});var dR=ee((cR,ES)=>{"use strict";var aR=(function(r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.decode=l,r.encode=u,r.familyOf=d,r.name=void 0,r.sizeOf=c,r.v6=r.v4=void 0;let e=/^(\d{1,3}\.){3,3}\d{1,3}$/,t=4,s=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,n=16,i={name:"v4",size:t,isFormat:h=>e.test(h),encode(h,x,v){v=~~v,x=x||new Uint8Array(v+t);let S=h.length,C=0;for(let D=0;D<S;){let re=h.charCodeAt(D++);re===46?(x[v++]=C,C=0):C=C*10+(re-48)}return x[v]=C,x},decode(h,x){return x=~~x,`${h[x++]}.${h[x++]}.${h[x++]}.${h[x]}`}};r.v4=i;let o={name:"v6",size:n,isFormat:h=>h.length>0&&s.test(h),encode(h,x,v){v=~~v;let S=v+n,C=-1,D=0,re=0,G=!0,te=!1;x=x||new Uint8Array(v+n);for(let ae=0;ae<h.length;ae++){let se=h.charCodeAt(ae);se===58?(G?C!==-1?(v<S&&(x[v]=0),v<S-1&&(x[v+1]=0),v+=2):v<S&&(C=v):(te===!0?(v<S&&(x[v]=re),v++):(v<S&&(x[v]=D>>8),v<S-1&&(x[v+1]=D&255),v+=2),D=0,re=0),G=!0,te=!1):se===46?(v<S&&(x[v]=re),v++,re=0,D=0,G=!1,te=!0):(G=!1,se>=97?se-=87:se>=65?se-=55:(se-=48,re=re*10+se),D=(D<<4)+se)}if(G===!1)te===!0?(v<S&&(x[v]=re),v++):(v<S&&(x[v]=D>>8),v<S-1&&(x[v+1]=D&255),v+=2);else if(C===0)v<S&&(x[v]=0),v<S-1&&(x[v+1]=0),v+=2;else if(C!==-1){v+=2;for(let ae=Math.min(v-1,S-1);ae>=C+2;ae--)x[ae]=x[ae-2];x[C]=0,x[C+1]=0,C=v}if(C!==v&&C!==-1)for(v>S-2&&(v=S-2);S>C;)x[--S]=v<S&&v>C?x[--v]:0;else for(;v<S;)x[v++]=0;return x},decode(h,x){x=~~x;let v="";for(let S=0;S<n;S+=2)S!==0&&(v+=":"),v+=(h[x+S]<<8|h[x+S+1]).toString(16);return v.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};r.v6=o;let a="ip";r.name=a;function c(h){if(i.isFormat(h))return i.size;if(o.isFormat(h))return o.size;throw Error(`Invalid ip address: ${h}`)}function d(h){return c(h)===i.size?1:2}function u(h,x,v){v=~~v;let S=c(h);return typeof x=="function"&&(x=x(v+S)),S===i.size?i.encode(h,x,v):o.encode(h,x,v)}function l(h,x,v){if(x=~~x,v=v||h.length-x,v===i.size)return i.decode(h,x,v);if(v===o.size)return o.decode(h,x,v);throw Error(`Invalid buffer size needs to be ${i.size} for v4 or ${o.size} for v6.`)}return"default"in r?r.default:r})({});typeof define=="function"&&define.amd?define([],function(){return aR}):typeof ES=="object"&&typeof cR=="object"&&(ES.exports=aR)});var lR=ee(Ve=>{"use strict";var $e=require("buffer").Buffer,no=rR(),tF=sR(),rF=nR(),mx=iR(),CS=oR(),$c=dR(),sF=0,uR=32768,TS=32768,nF=~TS,fR=32768,iF=~fR,be=Ve.name={};be.encode=function(r,e,t,{mail:s=!1}={}){e||(e=$e.alloc(be.encodingLength(r))),t||(t=0);let n=t,i=r.replace(/^\.|\.$/gm,"");if(i.length){let o=[];if(s){let a="";i.split(".").forEach(c=>{c.endsWith("\\")?a+=(a.length?".":"")+c.slice(0,-1):o.length===0&&a.length?o.push(a+"."+c):o.push(c)})}else o=i.split(".");for(let a=0;a<o.length;a++){let c=e.write(o[a],t+1);e[t]=c,t+=c+1}}return e[t++]=0,be.encode.bytes=t-n,e};be.encode.bytes=0;be.decode=function(r,e,{mail:t=!1}={}){e||(e=0);let s=[],n=e,i=0,o=0,a=!1;for(;;){if(e>=r.length)throw new Error("Cannot decode name (buffer overflow)");let c=r[e++];if(o+=a?0:1,c===0)break;if((c&192)===0){if(e+c>r.length)throw new Error("Cannot decode name (buffer overflow)");if(i+=c+1,i>254)throw new Error("Cannot decode name (name too long)");let d=r.toString("utf-8",e,e+c);t&&(d=d.replace(/\./g,"\\.")),s.push(d),e+=c,o+=a?0:c}else if((c&192)===192){if(e+1>r.length)throw new Error("Cannot decode name (buffer overflow)");let d=r.readUInt16BE(e-1)-49152;if(d>=n)throw new Error("Cannot decode name (bad pointer)");e=d,n=d,o+=a?0:1,a=!0}else throw new Error("Cannot decode name (bad label)")}return be.decode.bytes=o,s.length===0?".":s.join(".")};be.decode.bytes=0;be.encodingLength=function(r){return r==="."||r===".."?1:$e.byteLength(r.replace(/^\.|\.$/gm,""))+2};var wt={};wt.encode=function(r,e,t){e||(e=$e.alloc(wt.encodingLength(r))),t||(t=0);let s=e.write(r,t+1);return e[t]=s,wt.encode.bytes=s+1,e};wt.encode.bytes=0;wt.decode=function(r,e){e||(e=0);let t=r[e],s=r.toString("utf-8",e+1,e+1+t);return wt.decode.bytes=t+1,s};wt.decode.bytes=0;wt.encodingLength=function(r){return $e.byteLength(r)+1};var bn={};bn.encode=function(r,e,t){e||(e=bn.encodingLength(r)),t||(t=0);let s=(r.flags||0)&32767,n=r.type==="response"?uR:sF;return e.writeUInt16BE(r.id||0,t),e.writeUInt16BE(s|n,t+2),e.writeUInt16BE(r.questions.length,t+4),e.writeUInt16BE(r.answers.length,t+6),e.writeUInt16BE(r.authorities.length,t+8),e.writeUInt16BE(r.additionals.length,t+10),e};bn.encode.bytes=12;bn.decode=function(r,e){if(e||(e=0),r.length<12)throw new Error("Header must be 12 bytes");let t=r.readUInt16BE(e+2);return{id:r.readUInt16BE(e),type:t&uR?"response":"query",flags:t&32767,flag_qr:(t>>15&1)===1,opcode:rF.toString(t>>11&15),flag_aa:(t>>10&1)===1,flag_tc:(t>>9&1)===1,flag_rd:(t>>8&1)===1,flag_ra:(t>>7&1)===1,flag_z:(t>>6&1)===1,flag_ad:(t>>5&1)===1,flag_cd:(t>>4&1)===1,rcode:tF.toString(t&15),questions:new Array(r.readUInt16BE(e+4)),answers:new Array(r.readUInt16BE(e+6)),authorities:new Array(r.readUInt16BE(e+8)),additionals:new Array(r.readUInt16BE(e+10))}};bn.decode.bytes=12;bn.encodingLength=function(){return 12};var Xi=Ve.unknown={};Xi.encode=function(r,e,t){return e||(e=$e.alloc(Xi.encodingLength(r))),t||(t=0),e.writeUInt16BE(r.length,t),r.copy(e,t+2),Xi.encode.bytes=r.length+2,e};Xi.encode.bytes=0;Xi.decode=function(r,e){e||(e=0);let t=r.readUInt16BE(e),s=r.slice(e+2,e+2+t);return Xi.decode.bytes=t+2,s};Xi.decode.bytes=0;Xi.encodingLength=function(r){return r.length+2};var Yi=Ve.ns={};Yi.encode=function(r,e,t){return e||(e=$e.alloc(Yi.encodingLength(r))),t||(t=0),be.encode(r,e,t+2),e.writeUInt16BE(be.encode.bytes,t),Yi.encode.bytes=be.encode.bytes+2,e};Yi.encode.bytes=0;Yi.decode=function(r,e){e||(e=0);let t=r.readUInt16BE(e),s=be.decode(r,e+2);return Yi.decode.bytes=t+2,s};Yi.decode.bytes=0;Yi.encodingLength=function(r){return be.encodingLength(r)+2};var Qi=Ve.soa={};Qi.encode=function(r,e,t){e||(e=$e.alloc(Qi.encodingLength(r))),t||(t=0);let s=t;return t+=2,be.encode(r.mname,e,t),t+=be.encode.bytes,be.encode(r.rname,e,t,{mail:!0}),t+=be.encode.bytes,e.writeUInt32BE(r.serial||0,t),t+=4,e.writeUInt32BE(r.refresh||0,t),t+=4,e.writeUInt32BE(r.retry||0,t),t+=4,e.writeUInt32BE(r.expire||0,t),t+=4,e.writeUInt32BE(r.minimum||0,t),t+=4,e.writeUInt16BE(t-s-2,s),Qi.encode.bytes=t-s,e};Qi.encode.bytes=0;Qi.decode=function(r,e){e||(e=0);let t=e,s={};return e+=2,s.mname=be.decode(r,e),e+=be.decode.bytes,s.rname=be.decode(r,e,{mail:!0}),e+=be.decode.bytes,s.serial=r.readUInt32BE(e),e+=4,s.refresh=r.readUInt32BE(e),e+=4,s.retry=r.readUInt32BE(e),e+=4,s.expire=r.readUInt32BE(e),e+=4,s.minimum=r.readUInt32BE(e),e+=4,Qi.decode.bytes=e-t,s};Qi.decode.bytes=0;Qi.encodingLength=function(r){return 22+be.encodingLength(r.mname)+be.encodingLength(r.rname)};var Ji=Ve.txt={};Ji.encode=function(r,e,t){Array.isArray(r)||(r=[r]);for(let n=0;n<r.length;n++)if(typeof r[n]=="string"&&(r[n]=$e.from(r[n])),!$e.isBuffer(r[n]))throw new Error("Must be a Buffer");e||(e=$e.alloc(Ji.encodingLength(r))),t||(t=0);let s=t;return t+=2,r.forEach(function(n){e[t++]=n.length,n.copy(e,t,0,n.length),t+=n.length}),e.writeUInt16BE(t-s-2,s),Ji.encode.bytes=t-s,e};Ji.encode.bytes=0;Ji.decode=function(r,e){e||(e=0);let t=e,s=r.readUInt16BE(e);e+=2;let n=[];for(;s>0;){let i=r[e++];if(--s,s<i)throw new Error("Buffer overflow");n.push(r.slice(e,e+i)),e+=i,s-=i}return Ji.decode.bytes=e-t,n};Ji.decode.bytes=0;Ji.encodingLength=function(r){Array.isArray(r)||(r=[r]);let e=2;return r.forEach(function(t){typeof t=="string"?e+=$e.byteLength(t)+1:e+=t.length+1}),e};var Zi=Ve.null={};Zi.encode=function(r,e,t){e||(e=$e.alloc(Zi.encodingLength(r))),t||(t=0),typeof r=="string"&&(r=$e.from(r)),r||(r=$e.alloc(0));let s=t;t+=2;let n=r.length;return r.copy(e,t,0,n),t+=n,e.writeUInt16BE(t-s-2,s),Zi.encode.bytes=t-s,e};Zi.encode.bytes=0;Zi.decode=function(r,e){e||(e=0);let t=e,s=r.readUInt16BE(e);e+=2;let n=r.slice(e,e+s);return e+=s,Zi.decode.bytes=e-t,n};Zi.decode.bytes=0;Zi.encodingLength=function(r){return r?($e.isBuffer(r)?r.length:$e.byteLength(r))+2:2};var eo=Ve.hinfo={};eo.encode=function(r,e,t){e||(e=$e.alloc(eo.encodingLength(r))),t||(t=0);let s=t;return t+=2,wt.encode(r.cpu,e,t),t+=wt.encode.bytes,wt.encode(r.os,e,t),t+=wt.encode.bytes,e.writeUInt16BE(t-s-2,s),eo.encode.bytes=t-s,e};eo.encode.bytes=0;eo.decode=function(r,e){e||(e=0);let t=e,s={};return e+=2,s.cpu=wt.decode(r,e),e+=wt.decode.bytes,s.os=wt.decode(r,e),e+=wt.decode.bytes,eo.decode.bytes=e-t,s};eo.decode.bytes=0;eo.encodingLength=function(r){return wt.encodingLength(r.cpu)+wt.encodingLength(r.os)+2};var xn=Ve.ptr={},oF=Ve.cname=xn,aF=Ve.dname=xn;xn.encode=function(r,e,t){return e||(e=$e.alloc(xn.encodingLength(r))),t||(t=0),be.encode(r,e,t+2),e.writeUInt16BE(be.encode.bytes,t),xn.encode.bytes=be.encode.bytes+2,e};xn.encode.bytes=0;xn.decode=function(r,e){e||(e=0);let t=be.decode(r,e+2);return xn.decode.bytes=be.decode.bytes+2,t};xn.decode.bytes=0;xn.encodingLength=function(r){return be.encodingLength(r)+2};var to=Ve.srv={};to.encode=function(r,e,t){e||(e=$e.alloc(to.encodingLength(r))),t||(t=0),e.writeUInt16BE(r.priority||0,t+2),e.writeUInt16BE(r.weight||0,t+4),e.writeUInt16BE(r.port||0,t+6),be.encode(r.target,e,t+8);let s=be.encode.bytes+6;return e.writeUInt16BE(s,t),to.encode.bytes=s+2,e};to.encode.bytes=0;to.decode=function(r,e){e||(e=0);let t=r.readUInt16BE(e),s={};return s.priority=r.readUInt16BE(e+2),s.weight=r.readUInt16BE(e+4),s.port=r.readUInt16BE(e+6),s.target=be.decode(r,e+8),to.decode.bytes=t+2,s};to.decode.bytes=0;to.encodingLength=function(r){return 8+be.encodingLength(r.target)};var Rs=Ve.caa={};Rs.ISSUER_CRITICAL=128;Rs.encode=function(r,e,t){let s=Rs.encodingLength(r);return e||(e=$e.alloc(Rs.encodingLength(r))),t||(t=0),r.issuerCritical&&(r.flags=Rs.ISSUER_CRITICAL),e.writeUInt16BE(s-2,t),t+=2,e.writeUInt8(r.flags||0,t),t+=1,wt.encode(r.tag,e,t),t+=wt.encode.bytes,e.write(r.value,t),t+=$e.byteLength(r.value),Rs.encode.bytes=s,e};Rs.encode.bytes=0;Rs.decode=function(r,e){e||(e=0);let t=r.readUInt16BE(e);e+=2;let s=e,n={};return n.flags=r.readUInt8(e),e+=1,n.tag=wt.decode(r,e),e+=wt.decode.bytes,n.value=r.toString("utf-8",e,s+t),n.issuerCritical=!!(n.flags&Rs.ISSUER_CRITICAL),Rs.decode.bytes=t+2,n};Rs.decode.bytes=0;Rs.encodingLength=function(r){return wt.encodingLength(r.tag)+wt.encodingLength(r.value)+2};var ua=Ve.mx={};ua.encode=function(r,e,t){e||(e=$e.alloc(ua.encodingLength(r))),t||(t=0);let s=t;return t+=2,e.writeUInt16BE(r.preference||0,t),t+=2,be.encode(r.exchange,e,t),t+=be.encode.bytes,e.writeUInt16BE(t-s-2,s),ua.encode.bytes=t-s,e};ua.encode.bytes=0;ua.decode=function(r,e){e||(e=0);let t=e,s={};return e+=2,s.preference=r.readUInt16BE(e),e+=2,s.exchange=be.decode(r,e),e+=be.decode.bytes,ua.decode.bytes=e-t,s};ua.encodingLength=function(r){return 4+be.encodingLength(r.exchange)};var ro=Ve.a={};ro.encode=function(r,e,t){return e||(e=$e.alloc(ro.encodingLength(r))),t||(t=0),e.writeUInt16BE(4,t),t+=2,$c.v4.encode(r,e,t),ro.encode.bytes=6,e};ro.encode.bytes=0;ro.decode=function(r,e){e||(e=0),e+=2;let t=$c.v4.decode(r,e);return ro.decode.bytes=6,t};ro.decode.bytes=0;ro.encodingLength=function(){return 6};var so=Ve.aaaa={};so.encode=function(r,e,t){return e||(e=$e.alloc(so.encodingLength(r))),t||(t=0),e.writeUInt16BE(16,t),t+=2,$c.v6.encode(r,e,t),so.encode.bytes=18,e};so.encode.bytes=0;so.decode=function(r,e){e||(e=0),e+=2;let t=$c.v6.decode(r,e);return so.decode.bytes=18,t};so.decode.bytes=0;so.encodingLength=function(){return 18};var bs=Ve.option={};bs.encode=function(r,e,t){e||(e=$e.alloc(bs.encodingLength(r))),t||(t=0);let s=t,n=CS.toCode(r.code);if(e.writeUInt16BE(n,t),t+=2,r.data)e.writeUInt16BE(r.data.length,t),t+=2,r.data.copy(e,t),t+=r.data.length;else switch(n){case 8:let i=r.sourcePrefixLength||0,o=r.family||$c.familyOf(r.ip),a=$c.encode(r.ip,$e.alloc),c=Math.ceil(i/8);e.writeUInt16BE(c+4,t),t+=2,e.writeUInt16BE(o,t),t+=2,e.writeUInt8(i,t++),e.writeUInt8(r.scopePrefixLength||0,t++),a.copy(e,t,0,c),t+=c;break;case 11:r.timeout?(e.writeUInt16BE(2,t),t+=2,e.writeUInt16BE(r.timeout,t),t+=2):(e.writeUInt16BE(0,t),t+=2);break;case 12:let d=r.length||0;e.writeUInt16BE(d,t),t+=2,e.fill(0,t,t+d),t+=d;break;case 14:let u=r.tags.length*2;e.writeUInt16BE(u,t),t+=2;for(let l of r.tags)e.writeUInt16BE(l,t),t+=2;break;default:throw new Error(`Unknown roption code: ${r.code}`)}return bs.encode.bytes=t-s,e};bs.encode.bytes=0;bs.decode=function(r,e){e||(e=0);let t={};t.code=r.readUInt16BE(e),t.type=CS.toString(t.code),e+=2;let s=r.readUInt16BE(e);switch(e+=2,t.data=r.slice(e,e+s),t.code){case 8:t.family=r.readUInt16BE(e),e+=2,t.sourcePrefixLength=r.readUInt8(e++),t.scopePrefixLength=r.readUInt8(e++);let n=$e.alloc(t.family===1?4:16);r.copy(n,0,e,e+s-4),t.ip=$c.decode(n);break;case 11:s>0&&(t.timeout=r.readUInt16BE(e),e+=2);break;case 14:t.tags=[];for(let i=0;i<s;i+=2)t.tags.push(r.readUInt16BE(e)),e+=2}return bs.decode.bytes=s+4,t};bs.decode.bytes=0;bs.encodingLength=function(r){if(r.data)return r.data.length+4;switch(CS.toCode(r.code)){case 8:let t=r.sourcePrefixLength||0;return Math.ceil(t/8)+8;case 11:return typeof r.timeout=="number"?6:4;case 12:return r.length+4;case 14:return 4+r.tags.length*2}throw new Error(`Unknown roption code: ${r.code}`)};var Ps=Ve.opt={};Ps.encode=function(r,e,t){e||(e=$e.alloc(Ps.encodingLength(r))),t||(t=0);let s=t,n=Lu(r,bs);return e.writeUInt16BE(n,t),t=zh(r,bs,e,t+2),Ps.encode.bytes=t-s,e};Ps.encode.bytes=0;Ps.decode=function(r,e){e||(e=0);let t=e,s=[],n=r.readUInt16BE(e);e+=2;let i=0;for(;n>0;)s[i++]=bs.decode(r,e),e+=bs.decode.bytes,n-=bs.decode.bytes;return Ps.decode.bytes=e-t,s};Ps.decode.bytes=0;Ps.encodingLength=function(r){return 2+Lu(r||[],bs)};var ss=Ve.dnskey={};ss.PROTOCOL_DNSSEC=3;ss.ZONE_KEY=128;ss.SECURE_ENTRYPOINT=32768;ss.encode=function(r,e,t){e||(e=$e.alloc(ss.encodingLength(r))),t||(t=0);let s=t,n=r.key;if(!$e.isBuffer(n))throw new Error("Key must be a Buffer");return t+=2,e.writeUInt16BE(r.flags,t),t+=2,e.writeUInt8(ss.PROTOCOL_DNSSEC,t),t+=1,e.writeUInt8(r.algorithm,t),t+=1,n.copy(e,t,0,n.length),t+=n.length,ss.encode.bytes=t-s,e.writeUInt16BE(ss.encode.bytes-2,s),e};ss.encode.bytes=0;ss.decode=function(r,e){e||(e=0);let t=e;var s={},n=r.readUInt16BE(e);if(e+=2,s.flags=r.readUInt16BE(e),e+=2,r.readUInt8(e)!==ss.PROTOCOL_DNSSEC)throw new Error("Protocol must be 3");return e+=1,s.algorithm=r.readUInt8(e),e+=1,s.key=r.slice(e,t+n+2),e+=s.key.length,ss.decode.bytes=e-t,s};ss.decode.bytes=0;ss.encodingLength=function(r){return 6+$e.byteLength(r.key)};var ri=Ve.rrsig={};ri.encode=function(r,e,t){e||(e=$e.alloc(ri.encodingLength(r))),t||(t=0);let s=t,n=r.signature;if(!$e.isBuffer(n))throw new Error("Signature must be a Buffer");return t+=2,e.writeUInt16BE(no.toType(r.typeCovered),t),t+=2,e.writeUInt8(r.algorithm,t),t+=1,e.writeUInt8(r.labels,t),t+=1,e.writeUInt32BE(r.originalTTL,t),t+=4,e.writeUInt32BE(r.expiration,t),t+=4,e.writeUInt32BE(r.inception,t),t+=4,e.writeUInt16BE(r.keyTag,t),t+=2,be.encode(r.signersName,e,t),t+=be.encode.bytes,n.copy(e,t,0,n.length),t+=n.length,ri.encode.bytes=t-s,e.writeUInt16BE(ri.encode.bytes-2,s),e};ri.encode.bytes=0;ri.decode=function(r,e){e||(e=0);let t=e;var s={},n=r.readUInt16BE(e);return e+=2,s.typeCovered=no.toString(r.readUInt16BE(e)),e+=2,s.algorithm=r.readUInt8(e),e+=1,s.labels=r.readUInt8(e),e+=1,s.originalTTL=r.readUInt32BE(e),e+=4,s.expiration=r.readUInt32BE(e),e+=4,s.inception=r.readUInt32BE(e),e+=4,s.keyTag=r.readUInt16BE(e),e+=2,s.signersName=be.decode(r,e),e+=be.decode.bytes,s.signature=r.slice(e,t+n+2),e+=s.signature.length,ri.decode.bytes=e-t,s};ri.decode.bytes=0;ri.encodingLength=function(r){return 20+be.encodingLength(r.signersName)+$e.byteLength(r.signature)};var si=Ve.rp={};si.encode=function(r,e,t){e||(e=$e.alloc(si.encodingLength(r))),t||(t=0);let s=t;return t+=2,be.encode(r.mbox||".",e,t,{mail:!0}),t+=be.encode.bytes,be.encode(r.txt||".",e,t),t+=be.encode.bytes,si.encode.bytes=t-s,e.writeUInt16BE(si.encode.bytes-2,s),e};si.encode.bytes=0;si.decode=function(r,e){e||(e=0);let t=e,s={};return e+=2,s.mbox=be.decode(r,e,{mail:!0})||".",e+=be.decode.bytes,s.txt=be.decode(r,e)||".",e+=be.decode.bytes,si.decode.bytes=e-t,s};si.decode.bytes=0;si.encodingLength=function(r){return 2+be.encodingLength(r.mbox||".")+be.encodingLength(r.txt||".")};var Cr={};Cr.encode=function(r,e,t){e||(e=$e.alloc(Cr.encodingLength(r))),t||(t=0);let s=t;for(var n=[],i=0;i<r.length;i++){var o=no.toType(r[i]);n[o>>8]===void 0&&(n[o>>8]=[]),n[o>>8][o>>3&31]|=1<<7-(o&7)}for(i=0;i<n.length;i++)if(n[i]!==void 0){var a=$e.from(n[i]);e.writeUInt8(i,t),t+=1,e.writeUInt8(a.length,t),t+=1,a.copy(e,t),t+=a.length}return Cr.encode.bytes=t-s,e};Cr.encode.bytes=0;Cr.decode=function(r,e,t){e||(e=0);let s=e;for(var n=[];e-s<t;){var i=r.readUInt8(e);e+=1;var o=r.readUInt8(e);e+=1;for(var a=0;a<o;a++)for(var c=r.readUInt8(e+a),d=0;d<8;d++)if(c&1<<7-d){var u=no.toString(i<<8|a<<3|d);n.push(u)}e+=o}return Cr.decode.bytes=e-s,n};Cr.decode.bytes=0;Cr.encodingLength=function(r){for(var e=[],t=0;t<r.length;t++){var s=no.toType(r[t]);e[s>>8]=Math.max(e[s>>8]||0,s&255)}var n=0;for(t=0;t<e.length;t++)e[t]!==void 0&&(n+=2+Math.ceil((e[t]+1)/8));return n};var ni=Ve.nsec={};ni.encode=function(r,e,t){e||(e=$e.alloc(ni.encodingLength(r))),t||(t=0);let s=t;return t+=2,be.encode(r.nextDomain,e,t),t+=be.encode.bytes,Cr.encode(r.rrtypes,e,t),t+=Cr.encode.bytes,ni.encode.bytes=t-s,e.writeUInt16BE(ni.encode.bytes-2,s),e};ni.encode.bytes=0;ni.decode=function(r,e){e||(e=0);let t=e;var s={},n=r.readUInt16BE(e);return e+=2,s.nextDomain=be.decode(r,e),e+=be.decode.bytes,s.rrtypes=Cr.decode(r,e,n-(e-t)),e+=Cr.decode.bytes,ni.decode.bytes=e-t,s};ni.decode.bytes=0;ni.encodingLength=function(r){return 2+be.encodingLength(r.nextDomain)+Cr.encodingLength(r.rrtypes)};var ii=Ve.nsec3={};ii.encode=function(r,e,t){e||(e=$e.alloc(ii.encodingLength(r))),t||(t=0);let s=t,n=r.salt;if(!$e.isBuffer(n))throw new Error("salt must be a Buffer");let i=r.nextDomain;if(!$e.isBuffer(i))throw new Error("nextDomain must be a Buffer");return t+=2,e.writeUInt8(r.algorithm,t),t+=1,e.writeUInt8(r.flags,t),t+=1,e.writeUInt16BE(r.iterations,t),t+=2,e.writeUInt8(n.length,t),t+=1,n.copy(e,t,0,n.length),t+=n.length,e.writeUInt8(i.length,t),t+=1,i.copy(e,t,0,i.length),t+=i.length,Cr.encode(r.rrtypes,e,t),t+=Cr.encode.bytes,ii.encode.bytes=t-s,e.writeUInt16BE(ii.encode.bytes-2,s),e};ii.encode.bytes=0;ii.decode=function(r,e){e||(e=0);let t=e;var s={},n=r.readUInt16BE(e);e+=2,s.algorithm=r.readUInt8(e),e+=1,s.flags=r.readUInt8(e),e+=1,s.iterations=r.readUInt16BE(e),e+=2;let i=r.readUInt8(e);e+=1,s.salt=r.slice(e,e+i),e+=i;let o=r.readUInt8(e);return e+=1,s.nextDomain=r.slice(e,e+o),e+=o,s.rrtypes=Cr.decode(r,e,n-(e-t)),e+=Cr.decode.bytes,ii.decode.bytes=e-t,s};ii.decode.bytes=0;ii.encodingLength=function(r){return 8+r.salt.length+r.nextDomain.length+Cr.encodingLength(r.rrtypes)};var oi=Ve.ds={};oi.encode=function(r,e,t){e||(e=$e.alloc(oi.encodingLength(r))),t||(t=0);let s=t,n=r.digest;if(!$e.isBuffer(n))throw new Error("Digest must be a Buffer");return t+=2,e.writeUInt16BE(r.keyTag,t),t+=2,e.writeUInt8(r.algorithm,t),t+=1,e.writeUInt8(r.digestType,t),t+=1,n.copy(e,t,0,n.length),t+=n.length,oi.encode.bytes=t-s,e.writeUInt16BE(oi.encode.bytes-2,s),e};oi.encode.bytes=0;oi.decode=function(r,e){e||(e=0);let t=e;var s={},n=r.readUInt16BE(e);return e+=2,s.keyTag=r.readUInt16BE(e),e+=2,s.algorithm=r.readUInt8(e),e+=1,s.digestType=r.readUInt8(e),e+=1,s.digest=r.slice(e,t+n+2),e+=s.digest.length,oi.decode.bytes=e-t,s};oi.decode.bytes=0;oi.encodingLength=function(r){return 6+$e.byteLength(r.digest)};var ks=Ve.sshfp={};ks.getFingerprintLengthForHashType=function(e){switch(e){case 1:return 20;case 2:return 32}};ks.encode=function(e,t,s){t||(t=$e.alloc(ks.encodingLength(e))),s||(s=0);let n=s;s+=2,t[s]=e.algorithm,s+=1,t[s]=e.hash,s+=1;let i=$e.from(e.fingerprint.toUpperCase(),"hex");if(i.length!==ks.getFingerprintLengthForHashType(e.hash))throw new Error("Invalid fingerprint length");return i.copy(t,s),s+=i.byteLength,ks.encode.bytes=s-n,t.writeUInt16BE(ks.encode.bytes-2,n),t};ks.encode.bytes=0;ks.decode=function(e,t){t||(t=0);let s=t,n={};t+=2,n.algorithm=e[t],t+=1,n.hash=e[t],t+=1;let i=ks.getFingerprintLengthForHashType(n.hash);return n.fingerprint=e.slice(t,t+i).toString("hex").toUpperCase(),t+=i,ks.decode.bytes=t-s,n};ks.decode.bytes=0;ks.encodingLength=function(r){return 4+$e.from(r.fingerprint,"hex").byteLength};var ai=Ve.naptr={};ai.encode=function(r,e,t){e||(e=$e.alloc(ai.encodingLength(r))),t||(t=0);let s=t;return t+=2,e.writeUInt16BE(r.order||0,t),t+=2,e.writeUInt16BE(r.preference||0,t),t+=2,wt.encode(r.flags,e,t),t+=wt.encode.bytes,wt.encode(r.services,e,t),t+=wt.encode.bytes,wt.encode(r.regexp,e,t),t+=wt.encode.bytes,be.encode(r.replacement,e,t),t+=be.encode.bytes,ai.encode.bytes=t-s,e.writeUInt16BE(ai.encode.bytes-2,s),e};ai.encode.bytes=0;ai.decode=function(r,e){e||(e=0);let t=e,s={};return e+=2,s.order=r.readUInt16BE(e),e+=2,s.preference=r.readUInt16BE(e),e+=2,s.flags=wt.decode(r,e),e+=wt.decode.bytes,s.services=wt.decode(r,e),e+=wt.decode.bytes,s.regexp=wt.decode(r,e),e+=wt.decode.bytes,s.replacement=be.decode(r,e),e+=be.decode.bytes,ai.decode.bytes=e-t,s};ai.decode.bytes=0;ai.encodingLength=function(r){return wt.encodingLength(r.flags)+wt.encodingLength(r.services)+wt.encodingLength(r.regexp)+be.encodingLength(r.replacement)+6};var ci=Ve.tlsa={};ci.encode=function(r,e,t){e||(e=$e.alloc(ci.encodingLength(r))),t||(t=0);let s=t,n=r.certificate;if(!$e.isBuffer(n))throw new Error("Certificate must be a Buffer");return t+=2,e.writeUInt8(r.usage,t),t+=1,e.writeUInt8(r.selector,t),t+=1,e.writeUInt8(r.matchingType,t),t+=1,n.copy(e,t,0,n.length),t+=n.length,ci.encode.bytes=t-s,e.writeUInt16BE(ci.encode.bytes-2,s),e};ci.encode.bytes=0;ci.decode=function(r,e){e||(e=0);let t=e,s={},n=r.readUInt16BE(e);return e+=2,s.usage=r.readUInt8(e),e+=1,s.selector=r.readUInt8(e),e+=1,s.matchingType=r.readUInt8(e),e+=1,s.certificate=r.slice(e,t+n+2),e+=s.certificate.length,ci.decode.bytes=e-t,s};ci.decode.bytes=0;ci.encodingLength=function(r){return 5+$e.byteLength(r.certificate)};var AS=Ve.record=function(r){switch(r.toUpperCase()){case"A":return ro;case"PTR":return xn;case"CNAME":return oF;case"DNAME":return aF;case"TXT":return Ji;case"NULL":return Zi;case"AAAA":return so;case"SRV":return to;case"HINFO":return eo;case"CAA":return Rs;case"NS":return Yi;case"SOA":return Qi;case"MX":return ua;case"OPT":return Ps;case"DNSKEY":return ss;case"RRSIG":return ri;case"RP":return si;case"NSEC":return ni;case"NSEC3":return ii;case"SSHFP":return ks;case"DS":return oi;case"NAPTR":return ai;case"TLSA":return ci}return Xi},Dr=Ve.answer={};Dr.encode=function(r,e,t){e||(e=$e.alloc(Dr.encodingLength(r))),t||(t=0);let s=t;if(be.encode(r.name,e,t),t+=be.encode.bytes,e.writeUInt16BE(no.toType(r.type),t),r.type.toUpperCase()==="OPT"){if(r.name!==".")throw new Error("OPT name must be root.");e.writeUInt16BE(r.udpPayloadSize||4096,t+2),e.writeUInt8(r.extendedRcode||0,t+4),e.writeUInt8(r.ednsVersion||0,t+5),e.writeUInt16BE(r.flags||0,t+6),t+=8,Ps.encode(r.options||[],e,t),t+=Ps.encode.bytes}else{let n=mx.toClass(r.class===void 0?"IN":r.class);r.flush&&(n|=TS),e.writeUInt16BE(n,t+2),e.writeUInt32BE(r.ttl||0,t+4),t+=8;let i=AS(r.type);i.encode(r.data,e,t),t+=i.encode.bytes}return Dr.encode.bytes=t-s,e};Dr.encode.bytes=0;Dr.decode=function(r,e){e||(e=0);let t={},s=e;if(t.name=be.decode(r,e),e+=be.decode.bytes,t.type=no.toString(r.readUInt16BE(e)),t.type==="OPT")t.udpPayloadSize=r.readUInt16BE(e+2),t.extendedRcode=r.readUInt8(e+4),t.ednsVersion=r.readUInt8(e+5),t.flags=r.readUInt16BE(e+6),t.flag_do=(t.flags>>15&1)===1,t.options=Ps.decode(r,e+8),e+=8+Ps.decode.bytes;else{let n=r.readUInt16BE(e+2);t.ttl=r.readUInt32BE(e+4),t.class=mx.toString(n&nF),t.flush=!!(n&TS);let i=AS(t.type);t.data=i.decode(r,e+8),e+=8+i.decode.bytes}return Dr.decode.bytes=e-s,t};Dr.decode.bytes=0;Dr.encodingLength=function(r){let e=r.data!==null&&r.data!==void 0?r.data:r.options;return be.encodingLength(r.name)+8+AS(r.type).encodingLength(e)};var yn=Ve.question={};yn.encode=function(r,e,t){e||(e=$e.alloc(yn.encodingLength(r))),t||(t=0);let s=t;return be.encode(r.name,e,t),t+=be.encode.bytes,e.writeUInt16BE(no.toType(r.type),t),t+=2,e.writeUInt16BE(mx.toClass(r.class===void 0?"IN":r.class),t),t+=2,yn.encode.bytes=t-s,r};yn.encode.bytes=0;yn.decode=function(r,e){e||(e=0);let t=e,s={};return s.name=be.decode(r,e),e+=be.decode.bytes,s.type=no.toString(r.readUInt16BE(e)),e+=2,s.class=mx.toString(r.readUInt16BE(e)),e+=2,s.class&fR&&(s.class&=iF),yn.decode.bytes=e-t,s};yn.decode.bytes=0;yn.encodingLength=function(r){return be.encodingLength(r.name)+4};Ve.AUTHORITATIVE_ANSWER=1024;Ve.TRUNCATED_RESPONSE=512;Ve.RECURSION_DESIRED=256;Ve.RECURSION_AVAILABLE=128;Ve.AUTHENTIC_DATA=32;Ve.CHECKING_DISABLED=16;Ve.DNSSEC_OK=32768;Ve.encode=function(r,e,t){let s=!e;s&&(e=$e.alloc(Ve.encodingLength(r))),t||(t=0);let n=t;return r.questions||(r.questions=[]),r.answers||(r.answers=[]),r.authorities||(r.authorities=[]),r.additionals||(r.additionals=[]),bn.encode(r,e,t),t+=bn.encode.bytes,t=zh(r.questions,yn,e,t),t=zh(r.answers,Dr,e,t),t=zh(r.authorities,Dr,e,t),t=zh(r.additionals,Dr,e,t),Ve.encode.bytes=t-n,s&&Ve.encode.bytes!==e.length?e.slice(0,Ve.encode.bytes):e};Ve.encode.bytes=0;Ve.decode=function(r,e){e||(e=0);let t=e,s=bn.decode(r,e);return e+=bn.decode.bytes,e=px(s.questions,yn,r,e),e=px(s.answers,Dr,r,e),e=px(s.authorities,Dr,r,e),e=px(s.additionals,Dr,r,e),Ve.decode.bytes=e-t,s};Ve.decode.bytes=0;Ve.encodingLength=function(r){return bn.encodingLength(r)+Lu(r.questions||[],yn)+Lu(r.answers||[],Dr)+Lu(r.authorities||[],Dr)+Lu(r.additionals||[],Dr)};Ve.streamEncode=function(r){let e=Ve.encode(r),t=$e.alloc(2);t.writeUInt16BE(e.byteLength);let s=$e.concat([t,e]);return Ve.streamEncode.bytes=s.byteLength,s};Ve.streamEncode.bytes=0;Ve.streamDecode=function(r){let e=r.readUInt16BE(0);if(r.byteLength<e+2)return null;let t=Ve.decode(r.slice(2));return Ve.streamDecode.bytes=Ve.decode.bytes,t};Ve.streamDecode.bytes=0;function Lu(r,e){let t=0;for(let s=0;s<r.length;s++)t+=e.encodingLength(r[s]);return t}function zh(r,e,t,s){for(let n=0;n<r.length;n++)e.encode(r[n],t,s),s+=e.encode.bytes;return s}function px(r,e,t,s){for(let n=0;n<r.length;n++)r[n]=e.decode(t,s),s+=e.decode.bytes;return s}});var mR=ee((Kfe,pR)=>{"use strict";var hR=hF;process.nextTick(lF,42);pR.exports=cF;function cF(r){var e=s;return t;function t(n){e(n||uF)}function s(n){var i=[n];e=o,r(a);function o(c){i.push(c)}function a(c){var d=arguments;for(e=dF(c)?s:u;i.length;)u(i.shift());function u(l){hR(fF,l,d)}}}}function dF(r){return Object.prototype.toString.call(r)==="[object Error]"}function uF(){}function fF(r,e){r.apply(null,e)}function lF(r){r===42&&(hR=process.nextTick)}function hF(r,e,t){process.nextTick(function(){r(e,t)})}});var yR=ee((Wfe,xR)=>{"use strict";var IS=lR(),pF=require("dgram"),mF=mR(),gF=require("events"),kS=require("os"),RS=function(){};xR.exports=function(r){r||(r={});var e=new gF.EventEmitter,t=typeof r.port=="number"?r.port:5353,s=r.type||"udp4",n=r.ip||r.host||(s==="udp4"?"224.0.0.251":null),i={address:n,port:t},o={},a=!1,c=null;if(s==="udp6"&&(!n||!r.interface))throw new Error("For IPv6 multicast you must specify `ip` and `interface`");var d=r.socket||pF.createSocket({type:s,reuseAddr:r.reuseAddr!==!1,toString:function(){return s}});d.on("error",function(l){l.code==="EACCES"||l.code==="EADDRINUSE"?e.emit("error",l):e.emit("warning",l)}),d.on("message",function(l,h){try{l=IS.decode(l)}catch(x){e.emit("warning",x);return}e.emit("packet",l,h),l.type==="query"&&e.emit("query",l,h),l.type==="response"&&e.emit("response",l,h)}),d.on("listening",function(){t||(t=i.port=d.address().port),r.multicast!==!1&&(e.update(),c=setInterval(e.update,5e3),d.setMulticastTTL(r.ttl||255),d.setMulticastLoopback(r.loopback!==!1))});var u=mF(function(l){if(!t||r.bind===!1)return l(null);d.once("error",l),d.bind(t,r.bind||r.interface,function(){d.removeListener("error",l),l(null)})});return u(function(l){if(l)return e.emit("error",l);e.emit("ready")}),e.send=function(l,h,x){if(typeof h=="function")return e.send(l,null,h);x||(x=RS),h?!h.host&&!h.address&&(h.address=i.address):h=i,u(v);function v(S){if(a)return x();if(S)return x(S);var C=IS.encode(l);d.send(C,0,C.length,h.port,h.address||h.host,x)}},e.response=e.respond=function(l,h,x){Array.isArray(l)&&(l={answers:l}),l.type="response",l.flags=(l.flags||0)|IS.AUTHORITATIVE_ANSWER,e.send(l,h,x)},e.query=function(l,h,x,v){if(typeof h=="function")return e.query(l,null,null,h);if(typeof h=="object"&&h&&h.port)return e.query(l,null,h,x);if(typeof x=="function")return e.query(l,h,null,x);v||(v=RS),typeof l=="string"&&(l=[{name:l,type:h||"ANY"}]),Array.isArray(l)&&(l={type:"query",questions:l}),l.type="query",e.send(l,x,v)},e.destroy=function(l){if(l||(l=RS),a)return process.nextTick(l);a=!0,clearInterval(c);for(var h in o)try{d.dropMembership(n,h)}catch{}o={},d.close(l)},e.update=function(){for(var l=r.interface?[].concat(r.interface):yF(),h=!1,x=0;x<l.length;x++){var v=l[x];if(!o[v])try{d.addMembership(n,v),o[v]=!0,h=!0}catch(S){e.emit("warning",S)}}if(h){if(d.setMulticastInterface)try{d.setMulticastInterface(r.interface||xF())}catch(S){e.emit("warning",S)}e.emit("networkInterface")}},e};function xF(){for(var r=kS.networkInterfaces(),e=Object.keys(r),t=0;t<e.length;t++)for(var s=r[e[t]],n=0;n<s.length;n++){var i=s[n];if(gR(i.family)&&!i.internal)return kS.platform()==="darwin"&&e[t]==="en0"?i.address:"0.0.0.0"}return"127.0.0.1"}function yF(){for(var r=kS.networkInterfaces(),e=Object.keys(r),t=[],s=0;s<e.length;s++)for(var n=r[e[s]],i=0;i<n.length;i++){var o=n[i];if(gR(o.family)){t.push(o.address);break}}return t}function gR(r){return r===4||r==="IPv4"}});var xB={};mf(xB,{AV1Obu:()=>x9,AV1RtpPayload:()=>ZS,AttributeKeys:()=>Hq,BitStream:()=>xa,BitWriter:()=>mp,BitWriter2:()=>Zx,BufferChain:()=>SF,CONSENT_FAILURES:()=>C2,CONSENT_INTERVAL:()=>$P,COOKIE:()=>uy,Candidate:()=>va,CandidatePair:()=>_2,CandidatePairState:()=>KP,CipherContext:()=>bp,CipherSuite:()=>Hx,CipherSuiteList:()=>jk,Connection:()=>e7,ConnectionStates:()=>vV,CurveType:()=>o_,DEFAULT_MAX_MESSAGE_SIZE:()=>Vu,DePacketizerBase:()=>hq,Directions:()=>Rx,DtlsClient:()=>m2,DtlsServer:()=>bP,DtlsSocket:()=>g_,DtlsStates:()=>Lz,Event:()=>Ce,EventDisposer:()=>Bk,ExtensionProfiles:()=>ma,FINGERPRINT_LENGTH:()=>vP,FINGERPRINT_XOR:()=>wP,GenericNack:()=>Cp,GroupDescription:()=>Gu,H264RtpPayload:()=>w9,HEADER_LENGTH:()=>ao,HashAlgorithm:()=>yp,ICE_COMPLETED:()=>E2,ICE_FAILED:()=>dp,INTEGRITY_LENGTH:()=>x_,IPV4_PROTOCOL:()=>y_,IPV6_PROTOCOL:()=>b_,IceCandidate:()=>$_,IceGathererStates:()=>Fz,IceTransportStates:()=>Hz,Inactive:()=>x7,Int:()=>Sp,MediaDescription:()=>Qx,MediaStream:()=>y7,MediaStreamTrack:()=>kp,MediaStreamTrackFactory:()=>Rz,Message:()=>Js,NalUnitType:()=>pa,NamedCurveAlgorithm:()=>lo,NamedCurveAlgorithmList:()=>i_,OpusRtpPayload:()=>_9,PacketChunk:()=>L9,PacketResult:()=>M9,PacketStatus:()=>D9,PictureLossIndication:()=>_p,Profiles:()=>aq,PromiseQueue:()=>kF,ProtectionProfileAeadAes128Gcm:()=>id,ProtectionProfileAes128CmHmacSha1_80:()=>sf,RETRY_MAX:()=>SP,RETRY_RTO:()=>_P,RTCCertificate:()=>V_,RTCDataChannel:()=>I_,RTCDataChannelParameters:()=>R_,RTCDtlsFingerprint:()=>Gx,RTCDtlsParameters:()=>Xx,RTCDtlsTransport:()=>P2,RTCIceCandidate:()=>L7,RTCIceGatherer:()=>N7,RTCIceParameters:()=>K_,RTCIceTransport:()=>B7,RTCP_HEADER_SIZE:()=>zx,RTCPeerConnection:()=>gV,RTCRtcpFeedback:()=>n7,RTCRtcpParameters:()=>az,RTCRtpCodecParameters:()=>wa,RTCRtpCodingParameters:()=>o7,RTCRtpHeaderExtensionParameters:()=>mi,RTCRtpReceiver:()=>Q_,RTCRtpRtxParameters:()=>i7,RTCRtpSender:()=>lB,RTCRtpSimulcastParameters:()=>k_,RTCRtpTransceiver:()=>g7,RTCSctpCapabilities:()=>G_,RTCSctpTransport:()=>aB,RTCSessionDescription:()=>uB,RTCStatsReport:()=>m7,RTP_EXTENSION_URI:()=>Yt,ReceiverEstimatedMaxBitrate:()=>Ep,RecvDelta:()=>lp,Recvonly:()=>D_,Red:()=>h_,RedEncoder:()=>sP,RedHandler:()=>nP,RedHeader:()=>f2,RtcpHeader:()=>mo,RtcpPacketConverter:()=>q9,RtcpPayloadSpecificFeedback:()=>Yu,RtcpReceiverInfo:()=>dy,RtcpRrPacket:()=>Qu,RtcpSenderInfo:()=>l_,RtcpSourceDescriptionPacket:()=>Ap,RtcpSrPacket:()=>td,RtcpTransportLayerFeedback:()=>ed,RtpBuilder:()=>Pq,RtpHeader:()=>ho,RtpPacket:()=>po,RtpRouter:()=>fB,RunLengthChunk:()=>Wu,SDPManager:()=>pB,Sendonly:()=>L_,Sendrecv:()=>M_,SessionDescription:()=>pp,SignalingStates:()=>bV,SignatureAlgorithm:()=>pi,SignatureScheme:()=>$S,SourceDescriptionChunk:()=>u_,SourceDescriptionItem:()=>f_,SrtcpSession:()=>pP,SrtpAuthenticationError:()=>rd,SrtpContext:()=>vp,SrtpSession:()=>mP,SsrcDescription:()=>Jx,StatusVectorChunk:()=>N9,StunOverTurnProtocol:()=>OP,StunProtocol:()=>Vx,TcpTransport:()=>Mk,TransceiverManager:()=>gB,TransportWideCC:()=>Tp,TurnProtocol:()=>DP,UdpTransport:()=>jx,Vp8RtpPayload:()=>C9,Vp9RtpPayload:()=>A9,WeriftError:()=>BF,addSDPHeader:()=>W2,andDirection:()=>F_,buffer2ArrayBuffer:()=>EF,bufferArrayXor:()=>vF,bufferReader:()=>is,bufferWriter:()=>er,bufferWriterLE:()=>wk,bufferXor:()=>bF,candidateFoundation:()=>$x,candidateFromIce:()=>ef,candidateFromSdp:()=>Y_,candidatePairPriority:()=>Kx,candidatePriority:()=>hp,candidateToIce:()=>O7,candidateToSdp:()=>X_,certificateTypes:()=>Hk,classes:()=>v_,codecParametersFromString:()=>Op,codecParametersToString:()=>cV,compactNtp:()=>z_,crc32:()=>Ak,crc32c:()=>r_,createBufferWriter:()=>fp,createSelfSignedCertificate:()=>Iz,createStunOverTurnClient:()=>b2,createTurnClient:()=>UP,dePacketizeRtpPackets:()=>pq,debug:()=>ut,deepMerge:()=>E7,defaultOptions:()=>WP,defaultPeerConfig:()=>xV,depacketizerCodecs:()=>mq,deserializeAbsSendTime:()=>J9,deserializeAudioLevelIndication:()=>Z9,deserializeString:()=>Y9,deserializeUint16BE:()=>Q9,deserializeVideoOrientation:()=>eP,dumpBuffer:()=>_F,enumerate:()=>gq,findCodecByMimeType:()=>J2,findPort:()=>kk,fingerprint:()=>j_,generateStatsId:()=>qt,getBit:()=>ge,getDataChannelMessageSize:()=>r7,getGlobalIp:()=>rz,getHostAddresses:()=>ZP,getStatsTimestamp:()=>Sa,growBufferSize:()=>e2,int:()=>$u,interfaceAddress:()=>ty,isDtls:()=>b7,isLinkLocalAddress:()=>JP,isMedia:()=>R9,isRtcp:()=>z9,keyLength:()=>h9,leb128decode:()=>b9,makeIntegrityKey:()=>jP,methods:()=>w_,microTime:()=>w7,milliTime:()=>q_,nodeIpAddress:()=>I2,normalizeFamilyNodeV18:()=>xp,normalizeFingerprintAlgorithm:()=>H_,normalizeFingerprintValue:()=>Wx,ntpTime:()=>S7,ntpTime2Sec:()=>F9,paddingBits:()=>wF,paddingByte:()=>gp,paddingLength:()=>x2,parseGroup:()=>Mx,parseIceServers:()=>_7,parseMessage:()=>fy,random16:()=>t_,random32:()=>Ux,randomPort:()=>n_,randomPorts:()=>PF,reverseDirection:()=>v7,reverseSimulcastDirection:()=>Tz,rtpHeaderExtensionsParser:()=>V9,saltLength:()=>p9,serializeAbsSendTime:()=>X9,serializeAudioLevelIndication:()=>Sq,serializeRepairedRtpStreamId:()=>W9,serializeSdesMid:()=>$9,serializeSdesRTPStreamID:()=>K9,serializeTransportWideCC:()=>G9,serverReflexiveCandidate:()=>XP,signatures:()=>a_,sortCandidatePairs:()=>GP,supportedAudioCodecs:()=>dz,supportedCodecs:()=>O_,supportedVideoCodecs:()=>cz,timer:()=>xq,timestampSeconds:()=>Pp,uint16Add:()=>Ur,uint16Gt:()=>ey,uint16Gte:()=>RF,uint24:()=>Rk,uint32Add:()=>Gc,uint32Gt:()=>fi,uint32Gte:()=>zu,uint8Add:()=>Ik,unwrapRtx:()=>oP,url2Address:()=>sz,useAV1X:()=>d7,useAbsSendTime:()=>pz,useAudioLevelIndication:()=>gz,useDependencyDescriptor:()=>mz,useFIR:()=>oz,useH264:()=>a7,useNACK:()=>qp,useOPUS:()=>B_,usePCMU:()=>N_,usePLI:()=>of,useREMB:()=>zp,useRepairedRtpStreamId:()=>lz,useSdesMid:()=>uz,useSdesRTPStreamId:()=>fz,useTWCC:()=>s7,useTransportWideCC:()=>hz,useVP8:()=>P_,useVP9:()=>c7,useVideoOrientation:()=>xz,validateAddress:()=>A2,validateRemoteCandidate:()=>T2,wrapRtx:()=>aP});function t_(){return e_.jspack.Unpack("!H",(0,Z2.randomBytes)(2))[0]}function Ux(){return e_.jspack.Unpack("!L",(0,Z2.randomBytes)(4))[0]}function bF(r,e){if(r.length!==e.length)throw new TypeError("[webrtc-stun] You can not XOR buffers which length are different");let t=r.length,s=Buffer.allocUnsafe(t);for(let n=0;n<t;n++)s[n]=r[n]^e[n];return s}function vF(r){let e=[...r].sort((s,n)=>s.length-n.length).reverse()[0].length,t=Buffer.allocUnsafe(e);for(let s=0;s<e;s++)t[s]=0,r.forEach(n=>{t[s]^=n[s]??0});return t}function ge(r,e,t=1){let s=r.toString(2).split("");s=[...Array(8-s.length).fill("0"),...s];let n=s.slice(e,e+t).join("");return Number.parseInt(n,2)}function gp(r){let e=r.toString(2).split("");return[...[...Array(8-e.length)].map(()=>"0"),...e].join("")}function wF(r,e){let t=r.toString(2);return[...[...Array(e-t.length)].map(()=>"0"),...t].join("")}function er(r,e){return fp(r)(e)}function fp(r,e){let t=r.reduce((n,i)=>n+i,0),s=e?Buffer.alloc(t):void 0;return n=>{let i=s||Buffer.alloc(t),o=0;return n.forEach((a,c)=>{let d=r[c];d===8?i.writeBigUInt64BE(a,o):i.writeUIntBE(a,o,d),o+=d}),i}}function wk(r,e){let t=r.reduce((i,o)=>i+o,0),s=Buffer.alloc(t),n=0;return e.forEach((i,o)=>{let a=r[o];a===8?s.writeBigUInt64LE(i,n):s.writeUIntLE(i,n,a),n+=a}),s}function is(r,e){let t=0;return e.map(s=>{let n;return s===8?n=r.readBigUInt64BE(t):n=r.readUIntBE(t,s),t+=s,n})}function EF(r){return r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength)}function Sk(r){return typeof r!="string"}function _k(r){let e=new Array(256),t=0;for(let s=0;s<256;++s)t=s,t=t&1?r^t>>>1:t>>>1,t=t&1?r^t>>>1:t>>>1,t=t&1?r^t>>>1:t>>>1,t=t&1?r^t>>>1:t>>>1,t=t&1?r^t>>>1:t>>>1,t=t&1?r^t>>>1:t>>>1,t=t&1?r^t>>>1:t>>>1,t=t&1?r^t>>>1:t>>>1,e[s]=t;return new Int32Array(e)}function Ek(r){let e=new Int32Array(4096),t=0,s=0,n=0;for(n=0;n<256;++n)e[n]=r[n];for(n=0;n<256;++n)for(s=r[n],t=256+n;t<4096;t+=256)s=e[t]=s>>>8^r[s&255];let i=[];for(n=1;n<16;++n)i[n-1]=e.subarray(n*256,n*256+256);return i}function Ck(r,e,t){let s=e^-1,n=0,i=r.length,o=0,a=0;for(;n<i;)o=r.charCodeAt(n++),o<128?s=s>>>8^t[(s^o)&255]:o<2048?(s=s>>>8^t[(s^(192|o>>6&31))&255],s=s>>>8^t[(s^(128|o&63))&255]):o>=55296&&o<57344?(o=(o&1023)+64,a=r.charCodeAt(n++)&1023,s=s>>>8^t[(s^(240|o>>8&7))&255],s=s>>>8^t[(s^(128|o>>2&63))&255],s=s>>>8^t[(s^(128|a>>6&15|(o&3)<<4))&255],s=s>>>8^t[(s^(128|a&63))&255]):(s=s>>>8^t[(s^(224|o>>12&15))&255],s=s>>>8^t[(s^(128|o>>6&63))&255],s=s>>>8^t[(s^(128|o&63))&255]);return~s>>>0}function Tk(r,e,t,s){let[n,i,o,a,c,d,u,l,h,x,v,S,C,D,re]=s,G=e^-1,te=0,ae=r.length-15;for(;te<ae;)G=re[r[te++]^G&255]^D[r[te++]^G>>>8&255]^C[r[te++]^G>>>16&255]^S[r[te++]^G>>>24]^v[r[te++]]^x[r[te++]]^h[r[te++]]^l[r[te++]]^u[r[te++]]^d[r[te++]]^c[r[te++]]^a[r[te++]]^o[r[te++]]^i[r[te++]]^n[r[te++]]^t[r[te++]];for(ae+=15;te<ae;)G=G>>>8^t[(G^r[te++])&255];return~G>>>0}function Ak(r,e=0){return Sk(r)?Tk(r,e,zS,AF):Ck(r,e,zS)}function r_(r,e=0){return Sk(r)?Tk(r,e,VS,IF):Ck(r,e,VS)}function Ik(r,e){return r+e&255}function Ur(r,e){return r+e&65535}function Gc(r,e){return Number(BigInt(r)+BigInt(e)&0xffffffffn)}function Rk(r){return r&16777215}function ey(r,e){return r<e&&e-r>32768||r>e&&r-e<32768}function RF(r,e){return r===e||ey(r,e)}function fi(r,e){return r<e&&e-r>2147483648||r>e&&r-e<2147483648}function zu(r,e){return r===e||fi(r,e)}async function n_(r="udp4",e){let t=(0,s_.createSocket)(r);setImmediate(()=>t.bind({port:0,address:ty(r,e)})),await new Promise(n=>{t.once("error",n),t.once("listening",n)});let s=t.address()?.port;return await new Promise(n=>t.close(()=>n())),s}async function PF(r,e="udp4",t){return Promise.all([...Array(r)].map(()=>n_(e,t)))}async function kk(r,e,t="udp4",s){let n;for(let i=r;i<=e;i++){let o=(0,s_.createSocket)(t);if(setImmediate(()=>o.bind({port:i,address:ty(t,s)})),await new Promise(c=>{o.once("error",d=>c(d)),o.once("listening",()=>c())})){await new Promise(c=>o.close(()=>c()));continue}if(n=o.address()?.port,await new Promise(c=>o.close(()=>c())),r<=n&&n<=e)break}if(!n)throw new Error("port not found");return n}function xp(r){return r==="IPv4"?4:r==="IPv6"?6:r}function zk(r,e,t){switch(t){case lo.secp256r1_23:return OF({publicKey:r,privateKey:e});case lo.x25519_29:return Buffer.from(qk.default.scalarMult(e,r));default:throw new Error}}function vR(r,e,t){let s=(0,sy.createHmac)(r,e);return s.update(t),s.digest()}function Lp(r,e,t,s="sha256"){let n=t,i=[],o=e;do{o=vR(s,r,o);let a=vR(s,r,Buffer.concat([o,e]));i.push(a),t-=a.length}while(t>0);return Buffer.concat(i,n)}function Vk(r,e,t){let s=Buffer.concat([Buffer.from("master secret"),e,t]);return Lp(r,s,48)}function $k(r,e){let t=Kk("sha256",e);return Lp(r,Buffer.concat([Buffer.from("extended master secret"),t]),48)}function LF(r,e,t,s,n,i){let o=i?s:n,a=i?n:s,c=Buffer.concat([Buffer.from(r),o,a]);return Lp(t,c,e)}function Kk(r,e){return(0,sy.createHash)(r).update(e).digest()}function Wk(r,e,t,s=12){let n=Kk("sha256",e);return Lp(r,Buffer.concat([Buffer.from(t),n]),s)}function DF(r,e){return Wk(r,e,"client finished")}function MF(r,e){return Wk(r,e,"server finished")}function UF(r,e,t,s,n,i,o="sha256"){let a=s*2+n*2,c=r,d=Buffer.concat([t,e]),u=Lp(c,Buffer.concat([Buffer.from("key expansion"),d]),a,o),l=(0,Fk.createDecode)(u),h=l.readBuffer(s),x=l.readBuffer(s),v=l.readBuffer(n),S=l.readBuffer(n),C=Buffer.alloc(i,0),D=Buffer.alloc(i,0);return v.copy(C,0),S.copy(D,0),{clientWriteKey:h,serverWriteKey:x,clientNonce:C,serverNonce:D}}function ZF(){let r=new Hp;return r.id=jp.RSA,r.name="RSA",r.keyType=Up.RSA,r}function eq(){let r=new Hp;return r.id=jp.ECDHE_RSA,r.name="ECDHE_RSA",r.signType=ny.ECDHE,r.keyType=Up.RSA,r}function tq(){let r=new Hp;return r.id=jp.ECDHE_ECDSA,r.name="ECDHE_ECDSA",r.signType=ny.ECDHE,r.keyType=Up.ECDSA,r}function rq(){let r=new Hp;return r.id=jp.PSK,r.name="PSK",r.signType=ny.NULL,r.keyType=Up.PSK,r}function sq(){let r=new Hp;return r.id=jp.ECDHE_PSK,r.name="ECDHE_PSK",r.signType=ny.ECDHE,r.keyType=Up.PSK,r}function r9(r){switch(r){case mr.TLS_RSA_WITH_AES_128_GCM_SHA256:return di(mr.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",wR,Vh);case mr.TLS_RSA_WITH_AES_256_GCM_SHA384:return di(mr.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",wR,$h,"sha384");case mr.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return di(mr.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",SR,Vh);case mr.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return di(mr.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",SR,$h,"sha384");case mr.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return di(mr.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",_R,Vh);case mr.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return di(mr.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",_R,$h,"sha384");case mr.TLS_PSK_WITH_AES_128_GCM_SHA256:return di(mr.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",ER,Vh,"sha256");case mr.TLS_PSK_WITH_AES_256_GCM_SHA384:return di(mr.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",ER,$h,"sha384");case mr.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return di(mr.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",CR,Vh,"sha256");case mr.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return di(mr.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",CR,$h,"sha384");default:break}return null}function di(r,e,t,s,n,i="sha256"){let o=new iq;return o.id=r,o.name=e,o.blockAlgorithm=t,o.kx=s,o.hashAlgorithm=i,o.keyLength=n.K_LEN,o.nonceLength=n.N_MAX,o.nonceImplicitLength=4,o.nonceExplicitLength=8,o.ivLength=o.nonceImplicitLength,o.authTagLength=16,o}function n9(r){switch(r){case lo.secp256r1_23:{let{privateKey:e,publicKey:t}=NF();return{curve:r,privateKey:e,publicKey:t}}case lo.x25519_29:{let e=s9.default.box.keyPair();return{curve:r,privateKey:Buffer.from(e.secretKey.buffer),publicKey:Buffer.from(e.publicKey.buffer)}}default:throw new Error}}function oq(r,e){return Buffer.from((0,f9.encode)(r,e).slice())}function b9(r){let e=0,t=0;for(let s=0;s<8;s++){let n=r.readUInt8(s);if(e|=(n&127)<<s*7,t++,!(n&128))break}return[e,t]}function pq(r,e,t){let s=n=>{let i=[];for(let c of e){let d=n.deSerialize(c.payload,t);d.fragment?(t??=Buffer.alloc(0),t=d.fragment):d.payload&&(t=void 0),i.push(d)}let o=!!i.find(c=>c.isKeyframe),a=Buffer.concat(i.map(c=>c.payload).filter(c=>c));return{isKeyframe:o,data:a,sequence:e.at(-1)?.header.sequenceNumber??0,timestamp:e.at(-1)?.header.timestamp??0,frameFragmentBuffer:t}};switch(r.toUpperCase()){case"AV1":{let n=e.map(a=>ZS.deSerialize(a.payload)),i=!!n.find(a=>a.isKeyframe),o=ZS.getFrame(n);return{isKeyframe:i,data:o,sequence:e.at(-1)?.header.sequenceNumber??0,timestamp:e.at(-1)?.header.timestamp??0}}case"MPEG4/ISO/AVC":return s(w9);case"VP8":return s(C9);case"VP9":return s(A9);case"OPUS":return s(_9);default:throw new Error}}function gq(r){return r.map((e,t)=>[t,e])}function e2(r,e){let t=Buffer.alloc(e);return r.copy(t),t}function Sp(r){return Number.parseInt(r.toString(),10)}function R9(r){let e=r[0];return e>127&&e<192}function AR(r){return r%4==0?0:4-r%4}function z9(r){return r.length>=2&&r[1]>=192&&r[1]<=208}function V9(r,e){return r.map(t=>{let s=e[t.id];if(!s)return{uri:"unknown",value:t.payload};switch(s){case Yt.sdesMid:case Yt.sdesRTPStreamID:case Yt.repairedRtpStreamId:return{uri:s,value:Y9(t.payload)};case Yt.transportWideCC:return{uri:s,value:Q9(t.payload)};case Yt.absSendTime:return{uri:s,value:J9(t.payload)};case Yt.audioLevelIndication:return{uri:s,value:Z9(t.payload)};case Yt.videoOrientation:return{uri:s,value:eP(t.payload)};default:return{uri:s,value:t.payload}}}).reduce((t,s)=>(s&&(t[s.uri]=s.value),t),{})}function $9(r){return Buffer.from(r)}function K9(r){return Buffer.from(r)}function W9(r){return Buffer.from(r)}function G9(r){return er([2],[r])}function X9(r){let e=Buffer.alloc(3),t=r>>14n&0x00ffffffn;return e.writeUIntBE(Number(t),0,3),e}function Sq(r){let e=new xa(Buffer.alloc(1));return e.writeBits(1,1),e.writeBits(7,r),e.uint8Array}function Y9(r){return r.toString()}function Q9(r){return r.readUInt16BE()}function J9(r){return is(r,[3])[0]}function Z9(r){let e=new xa(r);return{v:e.readBits(1)===1,level:e.readBits(7)}}function eP(r){let e=new xa(r);return e.readBits(4),{c:e.readBits(1),f:e.readBits(1),r1:e.readBits(1),r0:e.readBits(1)}}function oP(r,e,t){return new po(new ho({payloadType:e,marker:r.header.marker,sequenceNumber:p_.jspack.Unpack("!H",r.payload.subarray(0,2))[0],timestamp:r.header.timestamp,ssrc:t}),r.payload.subarray(2))}function aP(r,e,t,s){return new po(new ho({payloadType:e,marker:r.header.marker,sequenceNumber:t,timestamp:r.header.timestamp,ssrc:s,csrc:r.header.csrc,extensions:r.header.extensions}),Buffer.concat([Buffer.from(p_.jspack.Pack("!H",[r.header.sequenceNumber])),r.payload]))}function m_(r,e,t="Failed to authenticate SRTP packet"){let s=r.length-e;Ip(r.length>=NR+e,t);let n=uP(()=>ho.deSerialize(r.subarray(0,s)),t);return n.paddingSize=0,Ip(n.payloadOffset>=NR&&n.payloadOffset<=s,t),n}function dP(r,e,t,s="Failed to authenticate SRTCP packet"){return Ip(r.length>=Cq+e+t,s),uP(()=>mo.deSerialize(r.subarray(0,zx)),s)}function Ip(r,e){if(!r)throw new rd(e)}function uP(r,e){try{return r()}catch{throw new rd(e)}}function fP(r,e,t="Failed to authenticate SRTP packet"){if(!r.padding)return r.paddingSize=0,r;Ip(e.length>r.payloadOffset,t);let s=e[e.length-1];return Ip(s>0&&s<=e.length-r.payloadOffset,t),r.paddingSize=s,r}function LR(r,e,t){if(r.length!==e.length||!(0,An.timingSafeEqual)(r,e))throw new rd(t)}function MR(r,e){try{r.final()}catch{throw new rd(`Failed to authenticate ${e} packet`)}}function Wh(r){return(0,__.randomBytes)(r).toString("hex").substring(0,r)}function EP(){return(0,__.randomBytes)(12)}function Hu(r){let[e]=r,t=Rp.default.isV4Format(e)?y_:b_,s=Buffer.alloc(4);return s.writeUInt8(0,0),s.writeUInt8(t,1),s.writeUInt16BE(r[1],2),Buffer.concat([s,Rp.default.toBuffer(e)])}function Fq(r){if(r.length<4)throw new Error("STUN error code is less than 4 bytes");let e=r.readUInt8(2),t=r.readUInt8(3),s=r.slice(4).toString("utf8");return[e*100+t,s]}function Fu(r){if(r.length<4)throw new Error("STUN address length is less than 4 bytes");let e=r.readUInt8(1),t=r.readUInt16BE(2),s=r.slice(4);switch(e){case y_:if(s.length!=4)throw new Error("STUN address has invalid length for IPv4");return[Rp.default.toString(s),t];case b_:if(s.length!=16)throw new Error("STUN address has invalid length for IPv6");return[Rp.default.toString(s),t];default:throw new Error("STUN address has unknown protocol")}}function CP(r,e){let t=[...E_,...e],s=r.slice(0,2);for(let n=2;n<r.length;n++){let i=r[n]^t[n-2],o=Buffer.alloc(1);o.writeUIntBE(i,0,1),s=Buffer.concat([s,o])}return s}function Ex(r,e){return Fu(CP(r,e))}function qq(r){let e=Buffer.alloc(4);e.writeUInt16BE(0,0),e.writeUInt8(Math.floor(r[0]/100),2),e.writeUInt8(r[0]%100,3);let t=Buffer.from(r[1],"utf8");return Buffer.concat([e,t])}function Cx(r,e){return CP(Hu(r),e)}function fy(r,e){if(r.length<ao)return;let t=r.readUint16BE(2);if(r.length!==ao+t)return;let s=r.readUint16BE(0),n=Buffer.from(r.slice(ao-12,ao)),i=new AP;for(let a=ao;a<=r.length-4;){let c=r.readUInt16BE(a),d=r.readUInt16BE(a+2),u=r.slice(a+4,a+4+d),l=4*Math.floor((d+3)/4)-d;if(Object.keys(GR).includes(c.toString())){let[,x,,v]=GR[c];if(v.name===Ex.name?i.setAttribute(x,v(u,n)):i.setAttribute(x,v(u)),x==="FINGERPRINT"){let S=IP(r.slice(0,a));if(i.getAttributeValue("FINGERPRINT")!==S)return}else if(x==="MESSAGE-INTEGRITY"&&e){let S=Gq(r.slice(0,a),e),C=i.getAttributeValue("MESSAGE-INTEGRITY");if(!S.equals(C))return}}a+=4+d+l}let o=i.getAttributes();return i.clear(),new Js(s&16111,s&272,n,o)}function IP(r){let e=C_(r,r.length-ao+vP);return(Ak(e)^wP)>>>0}function Gq(r,e){let t=C_(r,r.length-ao+x_);return Buffer.from((0,S_.createHmac)("sha1",e).update(t).digest("hex"),"hex")}function x2(r){let e=r%4;return e===0?0:4-e}async function UP({address:r,username:e,password:t},{lifetime:s,portRange:n,interfaceAddresses:i,transport:o}={}){s??=Qq,o??="udp";let a=o==="udp"?await jx.init("udp4",{portRange:n,interfaceAddresses:i}):await Mk.init(r),c=new DP(r,e,t,s,a);return await c.connectionMade(),c}async function b2({address:r,username:e,password:t},{lifetime:s,portRange:n,interfaceAddresses:i,transport:o}={}){let a=await UP({address:r,username:e,password:t},{lifetime:s,portRange:n,interfaceAddresses:i,transport:o});return new OP(a)}function jP(r,e,t){return(0,BP.createHash)("md5").update(Buffer.from([r,e,t].join(":"))).digest()}function YR(r){return(r[0]&192)==64}function $x(r,e,t){let s=`${r}|${e}|${t}`;return(0,HP.createHash)("md5").update(s,"ascii").digest("hex").slice(7)}function hp(r,e=65535){let s=0;return r==="host"?s=126:r==="prflx"?s=110:r==="srflx"?s=100:s=0,(1<<24)*s+256*e+255}function T2(r){if(!["host","relay","srflx"].includes(r.type))throw new Error(`Unexpected candidate type "${r.type}"`);return r}function GP(r,e){return r.sort((t,s)=>Kx(t.localCandidate,t.remoteCandidate,e)-Kx(s.localCandidate,s.remoteCandidate,e)).reverse()}function Kx(r,e,t){let s=t&&r.priority||e.priority,n=t&&e.priority||r.priority;return 1*Math.min(s,n)+2*Math.max(s,n)+(s>n?1:0)}async function XP(r,e){let t=new Js(1,0);try{let[s]=await r.request(t,e),n=r.localCandidate;if(!n)throw new Error("not exist");return new va($x("srflx","udp",n.host),n.component,n.transport,hp("srflx"),s.getAttributeValue("XOR-MAPPED-ADDRESS")[0],s.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",n.host,n.port)}catch(s){ez("error serverReflexiveCandidate",s)}}function A2(r){return r&&Number.isNaN(r[1])?[r[0],443]:r}async function rz(r,e){let t=new Vx;await t.connectionMade(!0,void 0,e);let s=new Js(1,0),[n]=await t.request(s,r??["stun.l.google.com",19302]);return await t.close(),n.getAttributeValue("XOR-MAPPED-ADDRESS")[0]}function JP(r){return xp(r.family)===4&&r.address?.startsWith("169.254.")||xp(r.family)===6&&r.address?.startsWith("fe80::")}function I2(r,{useLinkLocalAddress:e}={}){let t=["ipsec","tun","utun","tap"],s=["vmnet","veth"],n=YP.networkInterfaces();tz(n);let i=Object.keys(n).map(o=>{for(let c of[...t,...s])if(o.startsWith(c))return{nic:o,addresses:[]};let a=n[o].filter(c=>xp(c.family)===r&&!QP.default.isLoopback(c.address)&&(e?!0:!JP(c)));return{nic:o,addresses:a.map(c=>c.address)}}).filter(o=>!!o);return i.sort((o,a)=>o.nic.localeCompare(a.nic)),Object.values(i).flatMap(o=>o.addresses)}function ZP(r,e,t={}){let s=[];return r&&s.push(...I2(4,t)),e&&s.push(...I2(6,t)),s}function JR(r){return r.map((e,t)=>[t,e])}function oo(r,e){let t=r.split(e);return[t[0],t.slice(1).join(e)]}function r7(r){return Buffer.isBuffer(r)?r.length:Buffer.byteLength(r)}function uz(){return new mi({uri:Yt.sdesMid})}function fz(){return new mi({uri:Yt.sdesRTPStreamID})}function lz(){return new mi({uri:Yt.repairedRtpStreamId})}function hz(){return new mi({uri:Yt.transportWideCC})}function pz(){return new mi({uri:Yt.absSendTime})}function mz(){return new mi({uri:Yt.dependencyDescriptor})}function gz(){return new mi({uri:Yt.audioLevelIndication})}function xz(){return new mi({uri:Yt.videoOrientation})}function qt(r,...e){let t=e.filter(s=>s!==void 0);return`${r}_${t.join("_")}`}function Sa(){return performance.now()}function j_(r,e){let t=i=>i.toUpperCase(),s=i=>i.match(/(.{2})/g).join(":"),n=(0,f7.createHash)(e).update(r).digest("hex");return s(t(n))}function H_(r){return Cz[r.trim().toLowerCase()]}function Wx(r){return r.replace(/[^0-9a-f]/gi,"").toLowerCase()}function b7(r){let e=r[0];return e>19&&e<64}function Tz(r){return r==="recv"?"send":"recv"}function v7(r){return r==="sendonly"?"recvonly":r==="recvonly"?"sendonly":r}function _7(r){let e=a=>{if(!a)return;let[c,d]=a.split(":");return[c,Number.parseInt(d)]},t=e(r.find(({urls:a})=>a.includes("stun:"))?.urls.slice(5)),s=e(r.find(({urls:a})=>a.includes("turn:"))?.urls.slice(5)),{credential:n,username:i}=r.find(({urls:a})=>a.includes("turn:"))||{},o={stunServer:t,turnServer:s,turnUsername:i,turnPassword:n};return Ez("iceOptions",o),o}function ef(r){let e=new $_(r.component,r.foundation,r.host,r.port,r.priority,r.transport,r.type,r.generation,r.ufrag);return e.relatedAddress=r.relatedAddress,e.relatedPort=r.relatedPort,e.tcpType=r.tcptype,e}function O7(r){return new va(r.foundation,r.component,r.protocol,r.priority,r.ip,r.port,r.type,r.relatedAddress,r.relatedPort,r.tcpType,r.generation,r.ufrag)}function $p(r){let e=r%4;return e?4-e:0}function sB(r){let e=Buffer.from(""),t=Buffer.from("");return r.forEach(([s,n])=>{let i=n.length+4,o=Buffer.alloc(4);o.writeUInt16BE(s,0),o.writeUInt16BE(i,2),e=Buffer.concat([e,t,o,n]),t=Buffer.concat([...Array($p(i))].map(()=>Buffer.from("\0")))}),e}function nB(r){let e=[],t=0;for(;t<=r.length-4;){let s=r.readUInt16BE(t),n=r.readUInt16BE(t+2);e.push([s,r.slice(t+4,t+n)]),t+=n+$p(n)}return e}function $z(r){if(r.length<12)throw new Error("SCTP packet length is less than 12 bytes");let e=r.readUInt16BE(0),t=r.readUInt16BE(2),s=r.readUInt32BE(4),n=r.readUInt32LE(8),i=r_(Buffer.concat([r.slice(0,8),Buffer.from("\0\0\0\0"),r.slice(12)]));if(n!==i)throw new Error("SCTP packet has invalid checksum");let o=[],a=12;for(;a+4<=r.length;){let c=r.readUInt8(a),d=r.readUInt8(a+1),u=r.readUInt16BE(a+2),l=r.slice(a+4,a+u),h=Vz[c.toString()];if(h)o.push(new h(d,l));else throw new Error("unknown");a+=u+$p(u)}return[e,t,s,o]}function Kz(r,e,t,s){let n=Buffer.alloc(8);n.writeUInt16BE(r,0),n.writeUInt16BE(e,2),n.writeUInt32BE(t,4);let i=s.bytes,o=r_(Buffer.concat([n,Buffer.from("\0\0\0\0"),i])),a=Buffer.alloc(4);return a.writeUInt32LE(o,0),Buffer.concat([n,a,i])}function Wz(r){return r.map((e,t)=>[t,e])}function Gz(r){return r.reduce((e,t)=>(e[t]=new Ce,e),{})}function Kc(r){return(r-1)%Yx}function qu(r){return(r+1)%Yx}function HS(r){let e=r.match(/^IN (IP4|IP6) ([^ ]+)$/);if(!e)throw new Error("exception");return e[2]}function K2(r){return`IN IP${(0,A7.isIPv4)(r)?4:6} ${r}`}function X_(r){let e=`${r.foundation} ${r.component} ${r.protocol} ${r.priority} ${r.ip} ${r.port} typ ${r.type}`;return r.relatedAddress!=null&&(e+=` raddr ${r.relatedAddress}`),r.relatedPort!=null&&(e+=` rport ${r.relatedPort}`),r.tcpType!=null&&(e+=` tcptype ${r.tcpType}`),r.generation!=null&&(e+=` generation ${r.generation}`),r.ufrag!=null&&(e+=` ufrag ${r.ufrag}`),e}function aV(r){let e=[],t=[],s=r.split(`\r
|
|
131
|
-
`);return s.length===1&&(s=r.split(`
|
|
132
|
-
`)),s.forEach(n=>{n.startsWith("m=")?t.push([n]):t.length>0?t[t.length-1].push(n):e.push(n)}),[e,t]}function FS(r){if(r.includes(":")){let e=oo(r.slice(2),":");return[e[0],e[1]]}else return[r.slice(2),void 0]}function Mx(r,e,t=s=>s.toString()){let s=e.split(" ");s.length>0&&r.push(new Gu(s[0],s.slice(1).map(t)))}function Y_(r){let e=va.fromSdp(r);return ef(e)}function W2(r,e){let s=new fx((0,T7.randomBytes)(64)).toString().slice(0,8),n=0;e.origin=`- ${s} ${n} IN IP4 0.0.0.0`,e.msidSemantic.push(new Gu("WMS",["*"])),e.type=r}function Op(r){let e={};return r.split(";").forEach(t=>{if(t.includes("=")){let[s,n]=oo(t,"=");Sz.includes(s)?e[s]=Number(n):e[s]=n}else if(t.includes(":")){let[s,n]=t.split(":");e[s]=Number.isNaN(Number(n))?n:Number(n)}else e[t]=void 0}),e}function cV(r,e="="){let t=Object.entries(r).map(([s,n])=>n?`${s}${e}${n}`:s);if(t.length>0)return t.join(";")}function mB(){return{codecs:{audio:[B_(),N_()],video:[P_()]},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:Vu}}var Z2,e_,s_,Pk,Nk,Ok,Lk,tf,ry,Ku,sy,Fk,qk,Mr,En,Xk,Qk,Xc,Zk,co,iy,s9,Qc,ya,Jc,rf,ba,Zc,Cn,Tn,cy,_n,f9,m9,p_,wx,Sx,An,Ju,sd,Wc,xP,hi,li,nd,yP,S_,__,Rp,BP,y2,NP,HP,v2,qP,w2,S2,Tx,zP,VP,YP,QP,t7,u7,Ax,f7,l7,R2,h7,U_,C7,T7,A7,Bp,I7,R7,P7,D7,kx,Np,Px,uo,G2,X2,Y2,Q2,hB,mp,Zx,SF,_F,xa,CF,TF,zS,AF,VS,IF,$u,kF,ty,BF,ut,Ce,Bk,bR,jx,Mk,pi,yp,Hx,jk,lo,i_,o_,$S,Hk,a_,NF,OF,fo,jF,KS,bp,vp,c_,Gk,Zs,Fx,HF,Yk,FF,wp,qF,zF,WS,VF,$F,KF,WF,d_,Yc,Jk,GF,e9,t9,Dp,XS,XF,PS,Mp,YF,QF,JF,ny,Up,jp,Hp,nq,iq,mr,Vh,$h,wR,SR,_R,ER,CR,oy,ay,Xu,qx,i9,o9,a9,QS,c9,d9,u9,l9,sf,id,aq,h9,p9,cq,ZS,x9,v9,dq,w9,pa,uq,fq,lq,_9,C9,A9,hq,mq,xq,zx,mo,TR,_p,Ep,yq,Yu,Qu,dy,P9,Cp,bq,Tp,Wu,N9,lp,L9,D9,M9,vq,ed,Ap,u_,f_,td,l_,F9,wq,q9,Yt,_q,h_,f2,sP,Eq,nP,ma,IR,RR,kR,PR,BR,ho,po,cP,rd,NR,Cq,Tq,OR,Aq,BS,DR,lP,Kh,UR,Iq,Rq,hP,pP,kq,mP,Pq,ns,Bq,nf,gP,Nq,jR,Oq,h2,p2,HR,FR,NS,Lq,Dq,qR,zR,g_,OS,m2,ui,Mq,VR,Uq,Zu,jq,Fp,Du,bP,uy,vP,wP,ao,x_,y_,b_,SP,_P,Hq,v_,w_,$R,g2,E_,Gh,Xh,zq,Vq,KR,WR,LS,DS,MS,US,$q,Kq,TP,AP,GR,Wq,Js,C_,RP,kP,Xq,jS,T_,XR,Vx,vs,Yq,Qq,Jq,OP,DP,va,Zq,ez,_2,E2,dp,$P,C2,KP,WP,tz,sz,Ut,e7,nz,QR,A_,iz,I_,R_,oz,qp,of,zp,s7,wa,mi,az,n7,i7,o7,k_,a7,P_,c7,d7,B_,N_,O_,cz,dz,ZR,ek,yz,gx,tk,rk,bz,vz,wz,sk,k2,nk,Sz,p7,ik,Ix,_z,m7,g7,x7,L_,D_,M_,Rx,kp,y7,Ez,Cz,F_,q_,Az,w7,Pp,S7,z_,Iz,Rz,E7,kz,ok,Pz,Bz,Nz,Oz,vn,P2,Lz,V_,Gx,Xx,Dz,Mz,Uz,jz,ak,ck,B7,Hz,Fz,N7,L7,$_,K_,gi,W_,Bx,B2,qz,Nx,Ox,N2,O2,Vp,L2,Lx,M2,W7,U2,j2,Q7,Z7,tB,zz,Vz,H2,iB,xx,Dx,dk,Lt,Xz,Yz,uk,wn,up,oB,V2,fk,Qz,lk,hk,pk,Jz,Zz,Yx,eV,tV,mk,gk,xk,yk,rV,sV,nV,iV,Mu,Vu,aB,G_,oV,pp,Qx,Gu,uB,Jx,yx,Q_,Yh,fB,dV,Uu,uV,fV,qS,bk,vk,lB,lV,hV,pB,Qh,pV,mV,Sn,gV,J2,xV,yV,gB,bV,vV,yB=T(()=>{"use strict";Z2=require("crypto"),e_=Xe(bo(),1),s_=require("dgram"),Pk=Xe(GC(),1),Nk=require("dgram"),Ok=Xe(require("net"),1),Lk=require("net"),tf=require("crypto"),ry=Xe(Ub(),1);o5();Ku=Xe(Zt(),1),sy=require("crypto"),Fk=Xe(Zt(),1),qk=Xe(q0(),1);zI();Mr=Xe(Zt(),1),En=Xe(Zt(),1),Xk=Xe(Zt(),1),Qk=require("crypto"),Xc=Xe(Zt(),1),Zk=require("timers/promises"),co=Xe(Zt(),1),iy=require("crypto"),s9=Xe(q0(),1),Qc=Xe(Zt(),1),ya=Xe(Zt(),1),Jc=Xe(Zt(),1),rf=Xe(Zt(),1),ba=Xe(Zt(),1),Zc=Xe(Zt(),1),Cn=Xe(Zt(),1),Tn=Xe(Zt(),1),cy=Xe(Zt(),1),_n=Xe(Zt(),1),f9=Xe(Zt(),1),m9=Xe($I(),1),p_=Xe(bo(),1),wx=require("crypto"),Sx=Xe(WI(),1),An=require("crypto"),Ju=require("crypto"),sd=Xe(Zt(),1),Wc=Xe(Zt(),1),xP=require("timers/promises"),hi=Xe(Zt(),1),li=Xe(Zt(),1),nd=Xe(Zt(),1),yP=require("crypto"),S_=require("crypto"),__=require("crypto");lx();Rp=Xe(yS(),1),BP=require("crypto"),y2=Xe(bo(),1),NP=require("timers/promises"),HP=require("crypto"),v2=require("net"),qP=require("crypto"),w2=require("net");lx();S2=Xe(require("timers/promises"),1),Tx=Xe(tR(),1),zP=Xe(yR(),1),VP=require("crypto"),YP=Xe(require("os"),1),QP=Xe(yS(),1),t7=require("events"),u7=require("crypto"),Ax=require("timers/promises"),f7=require("crypto"),l7=require("dgram"),R2=require("perf_hooks"),h7=require("crypto"),U_=require("crypto"),C7=require("timers/promises"),T7=require("crypto"),A7=require("net");lx();Bp=Xe(Ub(),1),I7=require("crypto"),R7=require("timers/promises"),P7=require("crypto"),D7=require("crypto"),kx=Xe(bo(),1),Np=require("crypto"),Px=Xe(bo(),1),uo=Xe(bo(),1),G2=require("crypto"),X2=Xe(bo(),1),Y2=require("crypto"),Q2=require("timers/promises"),hB=require("crypto");mp=class{constructor(r){this.bitLength=r}value=0;set(r,e,t){return t&=(1<<r)-1,this.value|=t<<this.bitLength-r-e,this}get buffer(){let r=Math.ceil(this.bitLength/8),e=Buffer.alloc(r);return e.writeUIntBE(this.value,0,r),e}},Zx=class{constructor(r){if(this.bitLength=r,r>32)throw new Error}_value=0n;offset=0n;set(r,e=1){let t=BigInt(r),s=BigInt(e);return t&=(1n<<s)-1n,this._value|=t<<BigInt(this.bitLength)-s-this.offset,this.offset+=s,this}get value(){return Number(this._value)}get buffer(){let r=Math.ceil(this.bitLength/8),e=Buffer.alloc(r);return e.writeUIntBE(this.value,0,r),e}};SF=class{buffer;constructor(r){this.buffer=Buffer.alloc(r)}writeInt16BE(r,e){return this.buffer.writeInt16BE(r,e),this}writeUInt8(r,e){return this.buffer.writeUInt8(r,e),this}},_F=r=>"0x"+r.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter(e=>e!=null&&e.length>0).join(",0x");xa=class{constructor(r){this.uint8Array=r}position=0;bitsPending=0;writeBits(r,e){if(r==0)return this;e&=4294967295>>>32-r;let t;return this.bitsPending>0?this.bitsPending>r?(this.uint8Array[this.position-1]|=e<<this.bitsPending-r,t=r,this.bitsPending-=r):this.bitsPending==r?(this.uint8Array[this.position-1]|=e,t=r,this.bitsPending=0):(this.uint8Array[this.position-1]|=e>>r-this.bitsPending,t=this.bitsPending,this.bitsPending=0):(t=Math.min(8,r),this.bitsPending=8-t,this.uint8Array[this.position++]=e>>r-t<<this.bitsPending),r-=t,r>0&&this.writeBits(r,e),this}readBits(r){return this._readBits(r)}_readBits(r,e){if(typeof e>"u"&&(e=0),r==0)return e;let t,s;if(this.bitsPending>0){let n=this.uint8Array[this.position-1]&255>>8-this.bitsPending;s=Math.min(this.bitsPending,r),this.bitsPending-=s,t=n>>this.bitsPending}else s=Math.min(8,r),this.bitsPending=8-s,t=this.uint8Array[this.position++]>>this.bitsPending;return r-=s,e=e<<s|t,r>0?this._readBits(r,e):e}seekTo(r){this.position=r/8|0,this.bitsPending=r%8,this.bitsPending>0&&(this.bitsPending=8-this.bitsPending,this.position++)}},CF=3988292384,TF=2197175160;zS=_k(CF),AF=Ek(zS),VS=_k(TF),IF=Ek(VS);$u=r=>Number.parseInt(r,10),kF=class{queue=[];running=!1;push=r=>new Promise((e,t)=>{this.queue.push({promise:r,done:e,failed:t}),this.running||this.run()});async run(){let r=this.queue.shift();if(r){this.running=!0;try{let e=await r.promise();r.done(e)}catch(e){r.failed(e)}this.run()}else this.running=!1}cancel(){this.queue=[]}},ty=(r,e)=>e?e[r]:void 0;BF=class extends Error{message;payload;path;constructor(r){super(r.message)}toJSON(){return{message:this.message,payload:JSON.parse(JSON.stringify(this.payload)),path:this.path}}},ut=Pk.default.debug,Ce=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=r=>{};execute=(...r)=>{if(!this.ended){for(let e of this.event.stack)e.execute(...r);(async()=>{for(let e of this.event.promiseStack)await e.execute(...r)})().catch(e=>{this.onerror(e)})}};complete=()=>{if(!this.ended){for(let r of this.event.stack)r.complete&&r.complete();this.allUnsubscribe(),this.ended=!0,this.onended&&(this.onended(),this.onended=void 0)}};error=r=>{if(!this.ended){for(let e of this.event.stack)e.error&&e.error(r);this.allUnsubscribe()}};allUnsubscribe=()=>{if(this.ended)throw new Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(r,e,t)=>{let s=this.event.eventId;this.event.stack.push({execute:r,id:s,complete:e,error:t}),this.event.eventId++;let n=()=>{this.event.stack=this.event.stack.filter(o=>o.id!==s&&o)};return{unSubscribe:n,disposer:o=>{o.push(n)}}};pipe(r){this.subscribe((...e)=>{r.execute(...e)})}queuingSubscribe=(r,e,t)=>{if(this.ended)throw new Error("event completed");let s=this.event.eventId;this.event.promiseStack.push({execute:r,id:s,complete:e,error:t}),this.event.eventId++;let n=()=>{this.event.stack=this.event.stack.filter(o=>o.id!==s&&o)};return{unSubscribe:n,disposer:o=>{o.push(n)}}};once=(r,e,t)=>{let s=this.subscribe((...n)=>{s.unSubscribe(),r(...n)},e,t)};watch=(r,e)=>new Promise((t,s)=>{let n=e&&setTimeout(()=>{s("Event watch timeout")},e),{unSubscribe:i}=this.subscribe((...o)=>{r(...o)&&(n&&clearTimeout(n),i(),t(o))})});asPromise=r=>new Promise((e,t)=>{let s=r&&setTimeout(()=>{t("Event asPromise timeout")},r);this.once((...n)=>{s&&clearTimeout(s),e(n)},()=>{s&&clearTimeout(s),e([])},n=>{s&&clearTimeout(s),t(n)})});get returnTrigger(){let{execute:r,error:e,complete:t}=this;return{execute:r,error:e,complete:t}}get returnListener(){let{subscribe:r,once:e,asPromise:t}=this;return{subscribe:r,once:e,asPromise:t}}get length(){return this.event.stack.length}},Bk=class{_disposer=[];push(r){this._disposer.push(r)}dispose(){this._disposer.forEach(r=>r()),this._disposer=[]}},bR=ut("werift-ice:packages/ice/src/transport.ts"),jx=class Dk{constructor(e,t={}){this.socketType=e,this.options=t,this.socket=(0,Nk.createSocket)(e),this.socket.on("message",(s,n)=>{xp(n.family)===6&&([n.address]=n.address.split("%")),this.rinfo=n;try{this.onData(s,[n.address,n.port])}catch(i){bR("onData error",i)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(e,t={}){let s=new Dk(e,t);return await s.init(),s}async init(){let e=ty(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:e});else if(this.options.portRange){let t=await kk(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:t,address:e})}else this.socket.bind({address:e});await new Promise(t=>this.socket.once("listening",t))}send=async(e,t)=>{if(t&&!Ok.isIP(t[0]))return new Promise((s,n)=>{this.socket.send(e,t[1],t[0],i=>{i?(bR("send error",t,e),n(i)):s()})});t=t??[this.rinfo?.address,this.rinfo?.port],this.socket.send(e,t[1],t[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise(e=>{this.closed=!0,this.socket.once("close",e);try{this.socket.close()}catch{e()}})},Mk=class Uk{constructor(e){this.addr=e,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){this.closed||(this.client&&this.client.destroy(),this.connecting=new Promise((e,t)=>{try{this.client=(0,Lk.connect)({port:this.addr[1],host:this.addr[0]},e)}catch(s){t(s)}}),this.client.on("data",e=>{let t=[this.client.remoteAddress,this.client.remotePort];this.onData(e,t)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",e=>{console.log("error",e)}))}async init(){await this.connecting}static async init(e){let t=new Uk(e);return await t.init(),t}get address(){return{}}send=async(e,t)=>{await this.connecting,this.client.write(e,s=>{s&&console.log("err",s)})};close=async()=>{this.closed=!0,this.client.destroy()}},pi={rsa_1:1,ecdsa_3:3},yp={sha256_4:4},Hx={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},jk=Object.values(Hx),lo={x25519_29:29,secp256r1_23:23},i_=Object.values(lo),o_={named_curve_3:3},$S={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},Hk=[1,64],a_=[{hash:yp.sha256_4,signature:pi.rsa_1},{hash:yp.sha256_4,signature:pi.ecdsa_3}],NF=()=>{let r=cx.utils.randomPrivateKey(),e=cx.getPublicKey(r,!1),t=Buffer.from(r),s=Buffer.from(e);return{privateKey:t,publicKey:s}},OF=({publicKey:r,privateKey:e})=>{let t=cx.getSharedSecret(e,r);return Buffer.from(t).subarray(1)};fo={CLIENT:1,SERVER:2},jF=class{id=0;name;hashAlgorithm;verifyDataLength=12;blockAlgorithm;kx;init(...r){throw new Error("not implemented")}encrypt(...r){throw new Error("not implemented")}decrypt(...r){throw new Error("not implemented")}toString(){return this.name}},KS=tf.webcrypto;pr.set(KS);bp=class{constructor(r,e,t,s){this.sessionType=r,this.certPem=e,this.keyPem=t,e&&t&&s&&this.parseX509(e,t,s)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(r,e)=>{let t=(()=>{switch(r.signature){case pi.rsa_1:return"RSASSA-PKCS1-v1_5";case pi.ecdsa_3:return"ECDSA"}})(),s=(()=>{if(r.hash===yp.sha256_4)return"SHA-256"})(),n=(()=>{switch(e){case lo.secp256r1_23:return"P-256";case lo.x25519_29:return t==="ECDSA"?"P-256":"X25519";default:{if(t==="ECDSA")return"P-256";if(t==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),i=(()=>{switch(t){case"ECDSA":return{name:t,hash:s,namedCurve:n};case"RSASSA-PKCS1-v1_5":return{name:t,hash:s,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),o=await KS.subtle.generateKey(i,!0,["sign","verify"]),c=(await Og.createSelfSigned({serialNumber:(0,tf.randomBytes)(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+10*365*24*60*60*1e3),signingAlgorithm:i,keys:o})).toString("pem"),d=Nr.encode(await KS.subtle.exportKey("pkcs8",o.privateKey),"private key");return{certPem:c,keyPem:d,signatureHash:r}};encryptPacket(r){let e=r.recordLayerHeader,t=e.protocolVersion.major<<8|e.protocolVersion.minor,s=this.cipher.encrypt(this.sessionType,r.fragment,{type:e.contentType,version:t,epoch:e.epoch,sequenceNumber:e.sequenceNumber});return r.fragment=s,r.recordLayerHeader.contentLen=s.length,r}decryptPacket(r){let e=r.recordLayerHeader,t=e.protocolVersion.major<<8|e.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,r.fragment,{type:e.contentType,version:t,epoch:e.epoch,sequenceNumber:e.sequenceNumber})}verifyData(r){return this.sessionType===fo.CLIENT?DF(this.masterSecret,r):MF(this.masterSecret,r)}signatureData(r,e){let t=(0,tf.createSign)(e).update(r),s=this.localPrivateKey.toPEM().toString();return t.sign(s)}generateKeySignature(r){let e=this.sessionType===fo.CLIENT?this.localRandom:this.remoteRandom,t=this.sessionType===fo.SERVER?this.localRandom:this.remoteRandom,s=this.valueKeySignature(e.serialize(),t.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(s,r)}parseX509(r,e,t){let s=ry.Certificate.fromPEM(Buffer.from(r)),n=ry.PrivateKey.fromPEM(Buffer.from(e));this.localCert=s.raw,this.localPrivateKey=n,this.signatureHashAlgorithm=t}valueKeySignature(r,e,t,s){let n=Buffer.from((0,Ku.encode)({type:o_.named_curve_3,curve:s,len:t.length},{type:Ku.types.uint8,curve:Ku.types.uint16be,len:Ku.types.uint8}).slice());return Buffer.concat([r,e,n,t])}},vp=class{srtpProfile;static findMatchingSRTPProfile(r,e){for(let t of e)if(r.includes(t))return t}},c_=r=>"0x"+r.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter(e=>e!=null&&e.length>0).join(",0x"),Gk=r=>Object.entries({...r}).reduce((e,[t,s])=>((typeof s=="number"||typeof s=="string")&&(e[t]=s),Buffer.isBuffer(s)&&(e[t]=c_(s)),e),{}),Zs=class fa{constructor(e,t,s,n,i,o){this.msg_type=e,this.length=t,this.message_seq=s,this.fragment_offset=n,this.fragment_length=i,this.fragment=o}static spec={msg_type:En.types.uint8,length:En.types.uint24be,message_seq:En.types.uint16be,fragment_offset:En.types.uint24be,fragment_length:En.types.uint24be,fragment:En.types.buffer(e=>e.current.fragment_length)};get summary(){return Gk(this)}static createEmpty(){return new fa(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(e){return new fa(...Object.values((0,En.decode)(e,fa.spec)))}serialize(){let e=(0,En.encode)(this,fa.spec).slice();return Buffer.from(e)}chunk(e){let t=0,s=this.fragment.length;if(s===0)return[new fa(this.msg_type,s,this.message_seq,t,0,this.fragment)];let n=[];for(e||(e=1240);t<s;){let i=Math.min(e,s-t),o=Buffer.from(this.fragment.slice(t,t+i));if(o.length<=0)throw new Error("Zero or less bytes processed while fragmenting handshake message.");n.push(new fa(this.msg_type,s,this.message_seq,t,o.length,o)),t+=o.length}return n}static assemble(e){if(!e?.length)throw new Error("cannot reassemble handshake from empty array");e=e.sort((s,n)=>s.fragment_offset-n.fragment_offset);let t=Buffer.alloc(e[0].length);for(let s of e)s.fragment.copy(t,s.fragment_offset);return new fa(e[0].msg_type,e[0].length,e[0].message_seq,0,t.length,t)}static findAllFragments(e,t){let s=e.find(n=>n.msg_type===t);return s?e?.length?e.filter(n=>n.msg_type===s.msg_type&&n.message_seq===s.message_seq&&n.length===s.length):[]:[]}},{uint16be:Fx,uint24be:HF,buffer:Yk,array:FF,uint8:wp,string:qF}=Xk.types,zF={type:Fx,data:Yk(Fx)},WS=FF(zF,Fx,"bytes"),VF=Yk(HF),$F=wp,KF=qF(Fx),WF={hash:wp,signature:wp},d_={major:wp,minor:wp},Yc=class Jh{constructor(e=Math.floor(Date.now()/1e3),t=(0,Qk.randomBytes)(28)){this.gmt_unix_time=e,this.random_bytes=t}static spec={gmt_unix_time:Xc.types.uint32be,random_bytes:Xc.types.buffer(28)};static deSerialize(e){return new Jh(...Object.values((0,Xc.decode)(e,Jh.spec)))}static from(e){return new Jh(...Object.values(e))}serialize(){let e=(0,Xc.encode)(this,Jh.spec).slice();return Buffer.from(e)}},Jk=class Zh{constructor(e,t,s,n,i,o,a){this.clientVersion=e,this.random=t,this.sessionId=s,this.cookie=n,this.cipherSuites=i,this.compressionMethods=o,this.extensions=a}msgType=1;messageSeq=0;static spec={clientVersion:{major:Mr.types.uint8,minor:Mr.types.uint8},random:Yc.spec,sessionId:Mr.types.buffer(Mr.types.uint8),cookie:Mr.types.buffer(Mr.types.uint8),cipherSuites:Mr.types.array(Mr.types.uint16be,Mr.types.uint16be,"bytes"),compressionMethods:Mr.types.array(Mr.types.uint8,Mr.types.uint8,"bytes"),extensions:WS};static createEmpty(){return new Zh(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(e){return new Zh(...Object.values((0,Mr.decode)(e,Zh.spec)))}serialize(){let e=(0,Mr.encode)(this,Zh.spec).slice();return Buffer.from(e)}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},GF=class ep{constructor(e,t,s,n,i){this.epoch=e,this.sequenceNumber=t,this.contentType=s,this.protocolVersion=n,this.contentLen=i}static spec={epoch:co.types.uint16be,sequenceNumber:co.types.uint48be,contentType:co.types.uint8,protocolVersion:d_,contentLen:co.types.uint16be};static createEmpty(){return new ep(void 0,void 0,void 0,void 0,void 0)}static deSerialize(e){return new ep(...Object.values((0,co.decode)(e,ep.spec)))}serialize(){let e=(0,co.encode)(this,ep.spec).slice();return Buffer.from(e)}},e9=class GS{constructor(e,t){this.recordLayerHeader=e,this.fragment=t}get summary(){return{header:this.recordLayerHeader,fragment:c_(this.fragment)}}static createEmpty(){return new GS(void 0,void 0)}static deSerialize(e){if(e.length<13)throw new Error("Invalid DTLS record: buffer is too short");let t=e.readUInt8(0),s=e.readUInt8(1),n=e.readUInt8(2),i=e.readUInt16BE(3),o=e.slice(5,11).readUIntBE(0,6),a=e.readUInt16BE(11);if(e.length<13+a)throw new Error("Invalid DTLS record: fragment length exceeds buffer");let c=e.slice(13,13+a);return new GS({contentType:t,protocolVersion:{major:s,minor:n},epoch:i,sequenceNumber:o,contentLen:a},c)}serialize(){let e=this.fragment.length,t=13+e,s=Buffer.alloc(t);return s.writeUInt8(this.recordLayerHeader.contentType,0),s.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),s.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),s.writeUInt16BE(this.recordLayerHeader.epoch,3),s.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),s.writeUInt16BE(e,11),this.fragment.copy(s,13),s}computeMACHeader(){return new GF(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},t9=r=>e=>(r.lastFlight=e,e.flatMap(t=>(t.messageSeq=r.sequenceNumber++,t.toFragment().chunk()))),Dp=r=>(e,t)=>e.map(s=>new e9({contentType:s.type,protocolVersion:r.version,epoch:r.epoch,sequenceNumber:t,contentLen:s.fragment.length},s.fragment)),XS=(r=>(r[r.CloseNotify=0]="CloseNotify",r[r.UnexpectedMessage=10]="UnexpectedMessage",r[r.BadRecordMac=20]="BadRecordMac",r[r.DecryptionFailed=21]="DecryptionFailed",r[r.RecordOverflow=22]="RecordOverflow",r[r.DecompressionFailure=30]="DecompressionFailure",r[r.HandshakeFailure=40]="HandshakeFailure",r[r.NoCertificate=41]="NoCertificate",r[r.BadCertificate=42]="BadCertificate",r[r.UnsupportedCertificate=43]="UnsupportedCertificate",r[r.CertificateRevoked=44]="CertificateRevoked",r[r.CertificateExpired=45]="CertificateExpired",r[r.CertificateUnknown=46]="CertificateUnknown",r[r.IllegalParameter=47]="IllegalParameter",r[r.UnknownCa=48]="UnknownCa",r[r.AccessDenied=49]="AccessDenied",r[r.DecodeError=50]="DecodeError",r[r.DecryptError=51]="DecryptError",r[r.ExportRestriction=60]="ExportRestriction",r[r.ProtocolVersion=70]="ProtocolVersion",r[r.InsufficientSecurity=71]="InsufficientSecurity",r[r.InternalError=80]="InternalError",r[r.UserCanceled=90]="UserCanceled",r[r.NoRenegotiation=100]="NoRenegotiation",r[r.UnsupportedExtension=110]="UnsupportedExtension",r))(XS||{}),XF=ut("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),PS=ut("werift-dtls : packages/dtls/src/flight/flight.ts : err"),Mp=class YS{constructor(e,t,s,n){this.transport=e,this.dtls=t,this.flight=s,this.nextFlight=n}state="PREPARING";static RetransmitCount=10;createPacket(e){let t=t9(this.dtls)(e);return this.dtls.bufferHandshakeCache(t,!0,this.flight),Dp(this.dtls)(t.map(n=>({type:22,fragment:n.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(e){let t=0;for(;t<=YS.RetransmitCount;t++){if(this.setState("SENDING"),this.send(e).catch(s=>{PS("fail to send",PS)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await(0,Zk.setTimeout)(1e3*((t+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else XF(this.dtls.sessionId,"retransmit",t,this.dtls.flight)}if(t>YS.RetransmitCount)throw PS(this.dtls.sessionId,"retransmit failed",t),new Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=e=>Promise.all(e.map(t=>this.transport.send(t)));setState(e){this.state=e}},YF=class extends Mp{constructor(r,e,t){super(r,e,1,3),this.cipher=t}async exec(r){if(this.dtls.flight===1)throw new Error;this.dtls.flight=1;let e=new Jk({major:254,minor:253},new Yc,Buffer.from([]),Buffer.from([]),jk,[0],r);this.dtls.version=e.clientVersion,this.cipher.localRandom=Yc.from(e.random);let t=this.createPacket([e]),s=Buffer.concat(t.map(n=>n.serialize()));await this.transmit([s])}},QF=ut("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),JF=class extends Mp{constructor(r,e){super(r,e,3,5)}async exec(r){if(this.dtls.flight===3)throw new Error;this.dtls.flight=3,this.dtls.handshakeCache=[];let[e]=this.dtls.lastFlight;QF("dtls version",e.clientVersion),e.cookie=r.cookie,this.dtls.cookie=r.cookie;let t=this.createPacket([e]),s=Buffer.concat(t.map(n=>n.serialize()));await this.transmit([s])}},ny={NULL:0,ECDHE:1},Up={NULL:0,RSA:1,ECDSA:2,PSK:3},jp={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},Hp=class{id=0;name;signType;keyType;toString(){return this.name}};nq=ut("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),iq=class extends jF{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return Gk(this)}init(r,e,t){let s=UF(r,t,e,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=s.clientWriteKey,this.serverWriteKey=s.serverWriteKey,this.clientNonce=s.clientNonce,this.serverNonce=s.serverNonce}encrypt(r,e,t){let s=r===fo.CLIENT,n=s?this.clientNonce:this.serverNonce,i=s?this.clientWriteKey:this.serverWriteKey;if(!n||!i)throw new Error;n.writeUInt16BE(t.epoch,this.nonceImplicitLength),n.writeUIntBE(t.sequenceNumber,this.nonceImplicitLength+2,6);let o=n.slice(this.nonceImplicitLength),a=this.encodeAdditionalBuffer(t,e.length),c=(0,iy.createCipheriv)(this.blockAlgorithm,i,n,{authTagLength:this.authTagLength});c.setAAD(a,{plaintextLength:e.length});let d=c.update(e),u=c.final(),l=c.getAuthTag();return Buffer.concat([o,d,u,l])}encodeAdditionalBuffer(r,e){let t=Buffer.alloc(13);return t.writeUInt16BE(r.epoch,0),t.writeUintBE(r.sequenceNumber,2,6),t.writeUInt8(r.type,8),t.writeUInt16BE(r.version,9),t.writeUInt16BE(e,11),t}decrypt(r,e,t){let s=r===fo.CLIENT,n=s?this.serverNonce:this.clientNonce,i=s?this.serverWriteKey:this.clientWriteKey;if(!n||!i)throw new Error;e.subarray(0,this.nonceExplicitLength).copy(n,this.nonceImplicitLength);let a=e.subarray(this.nonceExplicitLength,e.length-this.authTagLength),c=e.subarray(e.length-this.authTagLength),d=this.encodeAdditionalBuffer(t,a.length),u=(0,iy.createDecipheriv)(this.blockAlgorithm,i,n,{authTagLength:this.authTagLength});u.setAuthTag(c),u.setAAD(d,{plaintextLength:a.length});let l=u.update(a);try{let h=u.final();return h.length>0?Buffer.concat([l,h]):l}catch(h){throw nq("decrypt failed",h,r,c_(e),t,this.summary),h}}},mr={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},Vh={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:2**36-31,A_MAX:2**53-1,C_MAX:2**36-15},$h={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:2**36-31,A_MAX:2**53-1,C_MAX:2**36-15},wR=ZF(),SR=eq(),_R=tq(),ER=rq(),CR=sq();oy=class{static type=23},ay=class ju{static type=65281;static spec={type:Qc.types.uint16be,data:Qc.types.uint8};type=ju.type;data=0;constructor(e={}){Object.assign(this,e)}static createEmpty(){return new ju}static deSerialize(e){return new ju((0,Qc.decode)(e,ju.spec))}serialize(){let e=(0,Qc.encode)(this,ju.spec).slice();return Buffer.from(e)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},Xu=class la{static type=14;static spec={type:ya.types.uint16be,data:ya.types.buffer(ya.types.uint16be)};type=la.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(e={}){Object.assign(this,e)}static create(e,t){return new la({profiles:e,mki:t})}static deSerialize(e){let t=new la((0,ya.decode)(e,la.spec)),s=t.data.readUInt16BE(),n=new Array(s/2);for(let i=0;i<n.length;i++)n[i]=t.data.readUInt16BE(i*2+2);return t.profiles=n,t.mki=t.data.slice(s+2),t}serialize(){let e=Buffer.alloc(2);e.writeUInt16BE(this.profiles.length*2);let t=Buffer.concat([e,...this.profiles.map(n=>{let i=Buffer.alloc(2);return i.writeUInt16BE(n),i}),this.mki]);this.data=t;let s=(0,ya.encode)(this,la.spec).slice();return Buffer.from(s)}static fromData(e){let t=Buffer.alloc(4);return t.writeUInt16BE(la.type),t.writeUInt16BE(e.length,2),la.deSerialize(Buffer.concat([t,e]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},qx=class tp{constructor(e){this.certificateList=e}msgType=11;messageSeq;static spec={certificateList:Jc.types.array(VF,Jc.types.uint24be,"bytes")};static createEmpty(){return new tp(void 0)}static deSerialize(e){return new tp(...Object.values((0,Jc.decode)(e,tp.spec)))}serialize(){let e=(0,Jc.encode)(this,tp.spec).slice();return Buffer.from(e)}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},i9=class rp{constructor(e=1){this.type=e}static spec={type:rf.types.uint8};static createEmpty(){return new rp}static deSerialize(e){return new rp(...Object.values((0,rf.decode)(e,rp.spec)))}serialize(){let e=(0,rf.encode)(this,rp.spec).slice();return Buffer.from(e)}},o9=class sp{constructor(e,t){this.algorithm=e,this.signature=t}msgType=15;messageSeq;static spec={algorithm:ba.types.uint16be,signature:ba.types.buffer(ba.types.uint16be)};static createEmpty(){return new sp(void 0,void 0)}static deSerialize(e){let t=(0,ba.decode)(e,sp.spec);return new sp(...Object.values(t))}serialize(){let e=(0,ba.encode)(this,sp.spec).slice();return Buffer.from(e)}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},a9=class np{constructor(e){this.publicKey=e}msgType=16;messageSeq;static spec={publicKey:Zc.types.buffer(Zc.types.uint8)};static createEmpty(){return new np(void 0)}static deSerialize(e){let t=(0,Zc.decode)(e,np.spec);return new np(...Object.values(t))}serialize(){let e=(0,Zc.encode)(this,np.spec).slice();return Buffer.from(e)}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},QS=class JS{constructor(e){this.verifyData=e}msgType=20;messageSeq;static createEmpty(){return new JS(void 0)}static deSerialize(e){return new JS(e)}serialize(){return this.verifyData}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},c9=class ip{constructor(e,t,s){this.certificateTypes=e,this.signatures=t,this.authorities=s}msgType=13;messageSeq;static spec={certificateTypes:Cn.types.array($F,Cn.types.uint8,"bytes"),signatures:Cn.types.array(WF,Cn.types.uint16be,"bytes"),authorities:Cn.types.array(KF,Cn.types.uint16be,"bytes")};static createEmpty(){return new ip(void 0,void 0,void 0)}static deSerialize(e){return new ip(...Object.values((0,Cn.decode)(e,ip.spec)))}serialize(){let e=(0,Cn.encode)(this,ip.spec).slice();return Buffer.from(e)}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},d9=class ha{constructor(e,t,s,n,i,o){this.serverVersion=e,this.random=t,this.sessionId=s,this.cipherSuite=n,this.compressionMethod=i,this.extensions=o}msgType=2;messageSeq;static spec={serverVersion:d_,random:Yc.spec,sessionId:Tn.types.buffer(Tn.types.uint8),cipherSuite:Tn.types.uint16be,compressionMethod:Tn.types.uint8};static createEmpty(){return new ha(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(e){let t=(0,Tn.decode)(e,ha.spec),s=new ha(...Object.values(t));return s.serialize().length<e.length?new ha(...Object.values((0,Tn.decode)(e,{...ha.spec,extensions:WS}))):s}serialize(){let e=this.extensions===void 0?(0,Tn.encode)(this,ha.spec).slice():(0,Tn.encode)(this,{...ha.spec,extensions:WS}).slice();return Buffer.from(e)}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},u9=class op{msgType=14;messageSeq;static spec={};static createEmpty(){return new op}static deSerialize(e){return new op(...Object.values((0,cy.decode)(e,op.spec)))}serialize(){let e=(0,cy.encode)(this,op.spec).slice();return Buffer.from(e)}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}};l9=class ap{constructor(e,t,s,n,i,o,a,c){this.ellipticCurveType=e,this.namedCurve=t,this.publicKeyLength=s,this.publicKey=n,this.hashAlgorithm=i,this.signatureAlgorithm=o,this.signatureLength=a,this.signature=c}msgType=12;messageSeq;static spec={ellipticCurveType:_n.types.uint8,namedCurve:_n.types.uint16be,publicKeyLength:_n.types.uint8,publicKey:_n.types.buffer(e=>e.current.publicKeyLength),hashAlgorithm:_n.types.uint8,signatureAlgorithm:_n.types.uint8,signatureLength:_n.types.uint16be,signature:_n.types.buffer(e=>e.current.signatureLength)};static createEmpty(){return new ap(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(e){let t=(0,_n.decode)(e,ap.spec);return new ap(...Object.values(t))}serialize(){return oq(this,ap.spec)}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},sf=1,id=7,aq=[sf,id],h9=r=>{switch(r){case sf:case id:return 16}},p9=r=>{switch(r){case sf:return 14;case id:return 12}},cq=ut("werift-rtp : packages/rtp/src/codec/av1.ts"),ZS=class g9{zBit_RtpStartsWithFragment;yBit_RtpEndsWithFragment;w_RtpNumObus;nBit_RtpStartsNewCodedVideoSequence;obu_or_fragment=[];static deSerialize=e=>{let t=new g9,s=0;if(t.zBit_RtpStartsWithFragment=ge(e[s],0),t.yBit_RtpEndsWithFragment=ge(e[s],1),t.w_RtpNumObus=ge(e[s],2,2),t.nBit_RtpStartsNewCodedVideoSequence=ge(e[s],4),s++,t.nBit_RtpStartsNewCodedVideoSequence&&t.zBit_RtpStartsWithFragment)throw new Error;[...Array(t.w_RtpNumObus-1).keys()].forEach(i=>{let[o,a]=b9(e.subarray(s)),c=s+a,d=c+o,u=!1;t.zBit_RtpStartsWithFragment&&i===0&&(u=!0),t.obu_or_fragment.push({data:e.subarray(c,d),isFragment:u}),s+=a+o});let n=!1;return(t.yBit_RtpEndsWithFragment||t.w_RtpNumObus===1&&t.zBit_RtpStartsWithFragment)&&(n=!0),t.obu_or_fragment.push({data:e.subarray(s),isFragment:n}),t};static isDetectedFinalPacketInSequence(e){return e.marker}get isKeyframe(){return this.nBit_RtpStartsNewCodedVideoSequence===1}static getFrame(e){let t=[],s=e.flatMap(a=>a.obu_or_fragment).reduce((a,c,d)=>(a[d]=c,a),{}),n=Object.keys(s).length;for(let a of Object.keys(s).map(Number)){let c=s[a];if(!c)continue;let{data:d,isFragment:u}=c;if(u){let l=[];for(let h=a;h<n;h++){let x=s[h];if(x.isFragment)l.push(x.data),delete s[h];else break}l.length<=1&&(cq("fragment lost, maybe packet lost"),l=[]),t.push(Buffer.concat(l))}else t.push(d)}let i=t.map(a=>x9.deSerialize(a)),o=i.pop();return Buffer.concat([...i.map(a=>(a.obu_has_size_field=1,a.serialize())),o.serialize()])}},x9=class y9{obu_forbidden_bit;obu_type;obu_extension_flag;obu_has_size_field;obu_reserved_1bit;payload;static deSerialize(e){let t=new y9,s=0;return t.obu_forbidden_bit=ge(e[s],0),t.obu_type=v9[ge(e[s],1,4)],t.obu_extension_flag=ge(e[s],5),t.obu_has_size_field=ge(e[s],6),t.obu_reserved_1bit=ge(e[s],7),s++,t.payload=e.subarray(s),t}serialize(){let e=new Zx(8).set(this.obu_forbidden_bit).set(dq[this.obu_type],4).set(this.obu_extension_flag).set(this.obu_has_size_field).set(this.obu_reserved_1bit).buffer,t=Buffer.alloc(0);return this.obu_has_size_field&&(t=m9.LEB128.encode(this.payload.length)),Buffer.concat([e,t,this.payload])}};v9={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"},dq=Object.entries(v9).reduce((r,[e,t])=>(r[t]=Number(e),r),{}),w9=class S9{f;nri;nalUnitType;s;e;r;nalUnitPayloadType;payload;fragment;static deSerialize(e,t){let s=new S9,n=0,i=e[n];if(s.f=ge(i,0),s.nri=ge(i,1,2),s.nalUnitType=ge(i,3,5),n++,s.s=ge(e[n],0),s.e=ge(e[n],1),s.r=ge(e[n],2),s.nalUnitPayloadType=ge(e[n],3,5),n++,0<s.nalUnitType&&s.nalUnitType<pa.stap_a)s.payload=this.packaging(e);else if(s.nalUnitType===pa.stap_a){let o=fq,a=Buffer.alloc(0);for(;o<e.length;){let c=e.readUInt16BE(o);o+=lq,a=Buffer.concat([a,this.packaging(e.subarray(o,o+c))]),o+=c}s.payload=a}else if(s.nalUnitType===pa.fu_a){t||(t=Buffer.alloc(0));let o=e.subarray(n);if(s.fragment=Buffer.concat([t,o]),s.e){let a=new xa(Buffer.alloc(1)).writeBits(1,0).writeBits(2,s.nri).writeBits(5,s.nalUnitPayloadType),c=Buffer.concat([a.uint8Array,s.fragment]);s.fragment=void 0,s.payload=this.packaging(c)}}return s}static packaging(e){return Buffer.concat([uq,e])}static isDetectedFinalPacketInSequence(e){return e.marker}get isKeyframe(){return this.nalUnitType===pa.idrSlice||this.nalUnitPayloadType===pa.idrSlice}get isPartitionHead(){return this.nalUnitType===pa.fu_a||this.nalUnitType===pa.fu_b?this.s!==0:!0}},pa={idrSlice:5,stap_a:24,stap_b:25,mtap16:26,mtap24:27,fu_a:28,fu_b:29},uq=Buffer.from([0,0,0,1]),fq=1,lq=2,_9=class E9{payload;static deSerialize(e){let t=new E9;return t.payload=e,t}static isDetectedFinalPacketInSequence(e){return!0}get isKeyframe(){return!0}static createCodecPrivate(e=48e3){return Buffer.concat([Buffer.from("OpusHead"),er([1,1],[1,2]),wk([2,4,2,1],[312,e,0,0])])}},C9=class T9{xBit;nBit;sBit;pid;iBit;lBit;tBit;kBit;mBit;pictureId;payload;size0=0;hBit;ver;pBit;size1=0;size2=0;static deSerialize(e){let t=new T9,s=0;if(t.xBit=ge(e[s],0),t.nBit=ge(e[s],2),t.sBit=ge(e[s],3),t.pid=ge(e[s],5,3),s++,t.xBit&&(t.iBit=ge(e[s],0),t.lBit=ge(e[s],1),t.tBit=ge(e[s],2),t.kBit=ge(e[s],3),s++),t.iBit)if(t.mBit=ge(e[s],0),t.mBit){let n=gp(ge(e[s],1,7)),i=gp(e[s+1]);t.pictureId=Number.parseInt(n+i,2),s+=2}else t.pictureId=ge(e[s],1,7),s++;return t.lBit&&s++,(t.lBit||t.kBit)&&(t.tBit,t.kBit,s++),t.payload=e.subarray(s),t.payloadHeaderExist&&(t.size0=ge(e[s],0,3),t.hBit=ge(e[s],3),t.ver=ge(e[s],4,3),t.pBit=ge(e[s],7),s++,t.size1=e[s],s++,t.size2=e[s]),t}static isDetectedFinalPacketInSequence(e){return e.marker}get isKeyframe(){return this.pBit===0}get isPartitionHead(){return this.sBit===1}get payloadHeaderExist(){return this.sBit===1&&this.pid===0}get size(){return this.payloadHeaderExist?this.size0+8*this.size1+2048*this.size2:0}},A9=class I9{iBit;pBit;lBit;fBit;bBit;eBit;vBit;zBit;m;pictureId;tid;u;sid;d;tl0PicIdx;pDiff=[];n_s;y;g;width=[];height=[];n_g=0;pgT=[];pgU=[];pgP_Diff=[];payload;static deSerialize(e){let{p:t,offset:s}=this.parseRtpPayload(e);return t.payload=e.subarray(s),t}static parseRtpPayload(e){let t=new I9,s=0;if(t.iBit=ge(e[s],0),t.pBit=ge(e[s],1),t.lBit=ge(e[s],2),t.fBit=ge(e[s],3),t.bBit=ge(e[s],4),t.eBit=ge(e[s],5),t.vBit=ge(e[s],6),t.zBit=ge(e[s],7),s++,t.iBit)if(t.m=ge(e[s],0),t.m){let n=gp(ge(e[s],1,7)),i=gp(e[s+1]);t.pictureId=Number.parseInt(n+i,2),s+=2}else t.pictureId=ge(e[s],1,7),s++;if(t.lBit&&(t.tid=ge(e[s],0,3),t.u=ge(e[s],3),t.sid=ge(e[s],4,3),t.d=ge(e[s],7),s++,t.fBit===0&&(t.tl0PicIdx=e[s],s++)),t.fBit&&t.pBit)for(;;){t.pDiff=[...t.pDiff,ge(e[s],0,7)];let n=ge(e[s],7);if(s++,n===0)break}return t.vBit&&(t.n_s=ge(e[s],0,3),t.y=ge(e[s],3),t.g=ge(e[s],4),s++,t.y&&[...Array(t.n_s+1)].forEach(()=>{t.width.push(e.readUInt16BE(s)),s+=2,t.height.push(e.readUInt16BE(s)),s+=2}),t.g&&(t.n_g=e[s],s++),t.n_g>0&&[...Array(t.n_g).keys()].forEach(n=>{t.pgT.push(ge(e[s],0,3)),t.pgU.push(ge(e[s],3));let i=ge(e[s],4,2);s++,t.pgP_Diff[n]=[],i>0&&[...Array(i)].forEach(()=>{t.pgP_Diff[n].push(e[s]),s++})})),{offset:s,p:t}}static isDetectedFinalPacketInSequence(e){return e.marker}get isKeyframe(){return!!(!this.pBit&&this.bBit&&(!this.sid||!this.lBit))}get isPartitionHead(){return this.bBit&&(!this.lBit||!this.d)}},hq=class{payload;fragment;static deSerialize(r,e){return{}}static isDetectedFinalPacketInSequence(r){return!0}get isKeyframe(){return!0}};mq=["MPEG4/ISO/AVC","VP8","VP9","OPUS","AV1"];xq={setTimeout:(...r)=>{let e=setTimeout(...r);return()=>clearTimeout(e)},setInterval:(...r)=>{let e=setInterval(()=>{r[0]()},...r.slice(1));return()=>clearInterval(e)}};zx=4,mo=class t2{version=2;padding=!1;count=0;type=0;length=0;constructor(e={}){Object.assign(this,e)}static serialize(e,t,s,n){let o=new t2({type:e,count:t,version:2,length:n}).serialize();return Buffer.concat([o,s])}serialize(){let e=new mp(8);return e.set(2,0,this.version),this.padding&&e.set(1,2,1),e.set(5,3,this.count),er([1,1,2],[e.value,this.type,this.length])}static deSerialize(e){let[t,s,n]=is(e,[1,1,2]),i=ge(t,0,2),o=ge(t,2,1)>0,a=ge(t,3,5);return new t2({version:i,padding:o,count:a,type:s,length:n})}},TR=class r2{static count=4;count=r2.count;senderSsrc;mediaSsrc;fir=[];constructor(e={}){Object.assign(this,e)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(e){let[t,s]=is(e,[4,4]),n=[];for(let i=8;i<e.length;i+=8)n.push({ssrc:e.readUInt32BE(i),sequenceNumber:e[i+4]});return new r2({senderSsrc:t,mediaSsrc:s,fir:n})}serialize(){let e=er([4,4],[this.senderSsrc,this.mediaSsrc]),t=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:s,sequenceNumber:n},i)=>{t.writeUInt32BE(s,i*8),t[i*8+4]=n}),Buffer.concat([e,t])}},_p=class s2{static count=1;count=s2.count;length=2;senderSsrc;mediaSsrc;constructor(e={}){Object.assign(this,e)}static deSerialize(e){let[t,s]=is(e,[4,4]);return new s2({senderSsrc:t,mediaSsrc:s})}serialize(){return er([4,4],[this.senderSsrc,this.mediaSsrc])}},Ep=class n2{static count=15;length;count=n2.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(e={}){Object.assign(this,e)}static deSerialize(e){let[t,s,n,i,o]=is(e,[4,4,4,1,1]),a=ge(o,0,6),c=(ge(o,6,2)<<16)+(e[14]<<8)+e[15],d=a>46?18446744073709551615n:BigInt(c)<<BigInt(a),u=[];for(let l=16;l<e.length;l+=4){let h=e.slice(l).readUIntBE(0,4);u.push(h)}return new n2({senderSsrc:t,mediaSsrc:s,uniqueID:er([4],[n]).toString(),ssrcNum:i,brExp:a,brMantissa:c,ssrcFeedbacks:u,bitrate:d})}serialize(){let e=Buffer.concat([er([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),er([1],[this.ssrcNum])]),t=new mp(24);t.set(6,0,this.brExp).set(18,6,this.brMantissa);let s=Buffer.concat(this.ssrcFeedbacks.map(i=>er([4],[i]))),n=Buffer.concat([e,er([3],[t.value]),s]);return this.length=n.length/4,n}},yq=ut("werift-rtp: /rtcp/psfb/index"),Yu=class i2{static type=206;type=i2.type;feedback;constructor(e={}){Object.assign(this,e)}serialize(){let e=this.feedback.serialize();return mo.serialize(this.type,this.feedback.count,e,this.feedback.length)}static deSerialize(e,t){let s;switch(t.count){case TR.count:s=TR.deSerialize(e);break;case _p.count:s=_p.deSerialize(e);break;case Ep.count:s=Ep.deSerialize(e);break;default:yq("unknown psfb packet",t.count);break}return new i2({feedback:s})}},Qu=class bx{ssrc=0;reports=[];static type=201;type=bx.type;constructor(e={}){Object.assign(this,e)}serialize(){let e=er([4],[this.ssrc]);return e=Buffer.concat([e,...this.reports.map(t=>t.serialize())]),mo.serialize(bx.type,this.reports.length,e,Math.floor(e.length/4))}static deSerialize(e,t){let[s]=is(e,[4]),n=4,i=[];for(let o=0;o<t;o++)i.push(dy.deSerialize(e.slice(n,n+24))),n+=24;return new bx({ssrc:s,reports:i})}},dy=class k9{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(e={}){Object.assign(this,e)}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 er([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(e){let[t,s,n,i,o,a,c]=is(e,[4,1,3,4,4,4,4]);return new k9({ssrc:t,fractionLost:s,packetsLost:n,highestSequence:i,jitter:o,lsr:a,dlsr:c})}},P9=205,Cp=class o2{static count=1;count=o2.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(e={}){Object.assign(this,e),this.header||(this.header=new mo({type:P9,count:this.count,version:2}))}static deSerialize(e,t){let[s,n]=is(e,[4,4]),i=[];for(let o=8;o<e.length;o+=4){let[a,c]=is(e.subarray(o),[2,2]);i.push(a);for(let d=0;d<16;d++)c>>d&1&&i.push(a+d+1)}return new o2({header:t,senderSsrc:s,mediaSourceSsrc:n,lost:i})}serialize(){let e=er([4,4],[this.senderSsrc,this.mediaSourceSsrc]),t=[];if(this.lost.length>0){let n=this.lost[0],i=0;this.lost.slice(1).forEach(o=>{let a=o-n-1;a>=0&&a<16?i|=1<<a:(t.push(er([2,2],[n,i])),n=o,i=0)}),t.push(er([2,2],[n,i]))}let s=Buffer.concat([e,Buffer.concat(t)]);return this.header.length=s.length/4,Buffer.concat([this.header.serialize(),s])}},bq=ut("werift/rtp/rtcp/rtpfb/twcc"),Tp=class a2{static count=15;count=a2.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(e={}){Object.assign(this,e),this.header||(this.header=new mo({type:205,count:this.count,version:2}))}static deSerialize(e,t){let[s,n,i,o,a,c]=is(e,[4,4,2,2,3,1]),d=[],u=[],l=16;for(let x=0;x<o;){let v=ge(e.slice(l,l+1)[0],0,1),S;switch(v){case 0:{let C=Wu.deSerialize(e.slice(l,l+2));S=C;let D=Math.min(o-x,C.runLength);if(C.packetStatus===1||C.packetStatus===2)for(let re=0;re<D;re++)u.push(new lp({type:C.packetStatus}));x+=D}break;case 1:{let C=N9.deSerialize(e.slice(l,l+2));S=C,C.symbolSize===0&&C.symbolList.forEach(D=>{D===1&&u.push(new lp({type:1}))}),C.symbolSize===1&&C.symbolList.forEach(D=>{(D===1||D===2)&&u.push(new lp({type:D}))}),x+=C.symbolList.length}break}if(!S)throw new Error;l+=2,d.push(S)}let h=l;return u.forEach(x=>{x.type===1&&(x.deSerialize(e.slice(h,h+1)),h++),x.type===2&&(x.deSerialize(e.slice(h,h+2)),h+=2)}),new a2({senderSsrc:s,mediaSourceSsrc:n,baseSequenceNumber:i,packetStatusCount:o,referenceTime:a,fbPktCount:c,recvDeltas:u,packetChunks:d,header:t})}serialize(){let e=er([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),t=Buffer.concat(this.packetChunks.map(i=>i.serialize())),s=Buffer.concat(this.recvDeltas.map(i=>{try{return i.serialize()}catch(o){bq(o?.message);return}}).filter(i=>i)),n=Buffer.concat([e,t,s]);if(this.header.padding&&n.length%4!==0){let i=4-n.length%4,o=Buffer.alloc(i);return o[o.length-1]=o.length,this.header.length=Math.floor((n.length+o.length)/4),Buffer.concat([this.header.serialize(),n,o])}return this.header.length=Math.floor(n.length/4),Buffer.concat([this.header.serialize(),n])}get packetResults(){let e=this.baseSequenceNumber-1,t=this.packetChunks.filter(o=>o instanceof Wu).flatMap(o=>o.results(e)),s=0,i=BigInt(this.referenceTime)*64n;for(let o of t){let a=this.recvDeltas[s];!o.received||!a||(i+=BigInt(a.delta)/1000n,o.delta=a.delta,o.receivedAtMs=Number(i),s++)}return t}},Wu=class B9{type;packetStatus;runLength;constructor(e={}){Object.assign(this,e),this.type=0}static deSerialize(e){let t=ge(e[0],1,2),s=(ge(e[0],3,5)<<8)+e[1];return new B9({type:0,packetStatus:t,runLength:s})}serialize(){return new Zx(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(e){let t=this.packetStatus===1||this.packetStatus===2,s=[];for(let n=0;n<=this.runLength;++n)s.push(new M9({sequenceNumber:++e,received:t}));return s}},N9=class O9{type;symbolSize;symbolList=[];constructor(e={}){Object.assign(this,e)}static deSerialize(e){let s=ge(e[0],1,1),n=[];function i(o,a){for(let c=0;c<o;c++)a(c)}switch(s){case 0:i(6,o=>n.push(ge(e[0],2+o,1))),i(8,o=>n.push(ge(e[1],o,1)));break;case 1:i(3,o=>n.push(ge(e[0],2+o*2,2))),i(4,o=>n.push(ge(e[1],o*2,2)));break;default:s=(ge(e[0],2,6)<<8)+e[1]}return new O9({type:1,symbolSize:s,symbolList:n})}serialize(){let e=Buffer.alloc(2),t=new Zx(16).set(1).set(this.symbolSize),s=this.symbolSize===0?1:2;return this.symbolList.forEach(n=>{t.set(n,s)}),e.writeUInt16BE(t.value),e}},lp=class c2{type;delta;constructor(e={}){Object.assign(this,e)}static deSerialize(e){let t,s;if(e.length===1?(t=1,s=250*e[0]):e.length===2&&(t=2,s=250*e.readInt16BE()),t===void 0||s===void 0)throw new Error;return new c2({type:t,delta:s})}deSerialize(e){let t=c2.deSerialize(e);this.delta=t.delta}parsed=!1;parseDelta(){this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255?(this.delta>32767&&(this.delta=32767),this.delta<-32768&&(this.delta=-32768),this.type||(this.type=2)):this.type||(this.type=1),this.parsed=!0}serialize(){if(this.parsed||this.parseDelta(),this.type===1){let e=Buffer.alloc(1);return e.writeUInt8(this.delta),e}else if(this.type===2){let e=Buffer.alloc(2);return e.writeInt16BE(this.delta),e}throw new Error("errDeltaExceedLimit "+this.delta+" "+this.type)}},L9=(r=>(r[r.TypeTCCRunLengthChunk=0]="TypeTCCRunLengthChunk",r[r.TypeTCCStatusVectorChunk=1]="TypeTCCStatusVectorChunk",r[r.packetStatusChunkLength=2]="packetStatusChunkLength",r))(L9||{}),D9=(r=>(r[r.TypeTCCPacketNotReceived=0]="TypeTCCPacketNotReceived",r[r.TypeTCCPacketReceivedSmallDelta=1]="TypeTCCPacketReceivedSmallDelta",r[r.TypeTCCPacketReceivedLargeDelta=2]="TypeTCCPacketReceivedLargeDelta",r[r.TypeTCCPacketReceivedWithoutDelta=3]="TypeTCCPacketReceivedWithoutDelta",r))(D9||{}),M9=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(r){Object.assign(this,r)}},vq=ut("werift-rtp:packages/rtp/rtcp/rtpfb/index"),ed=class d2{static type=P9;type=d2.type;feedback;header;constructor(e={}){Object.assign(this,e)}serialize(){return this.feedback.serialize()}static deSerialize(e,t){let s;switch(t.count){case Cp.count:s=Cp.deSerialize(e,t);break;case Tp.count:s=Tp.deSerialize(e,t);break;default:vq("unknown rtpfb packet",t.count);break}return new d2({feedback:s,header:t})}},Ap=class u2{static type=202;type=u2.type;chunks=[];constructor(e){Object.assign(this,e)}get length(){let e=0;return this.chunks.forEach(t=>e+=t.length),e}serialize(){let e=Buffer.concat(this.chunks.map(t=>t.serialize()));for(;e.length%4;)e=Buffer.concat([e,Buffer.from([0])]);return mo.serialize(this.type,this.chunks.length,e,e.length/4)}static deSerialize(e,t){let s=[];for(let n=0;n<e.length;){let i=u_.deSerialize(e.slice(n));s.push(i),n+=i.length}return new u2({chunks:s})}},u_=class U9{source;items=[];constructor(e={}){Object.assign(this,e)}get length(){let e=4;return this.items.forEach(t=>e+=t.length),e+=1,e+=AR(e),e}serialize(){let e=Buffer.concat([er([4],[this.source]),Buffer.concat(this.items.map(s=>s.serialize()))]);return Buffer.concat([e,Buffer.alloc(AR(e.length))])}static deSerialize(e){let t=e.readUInt32BE(),s=[];for(let n=4;n<e.length&&e[n]!==0;){let o=f_.deSerialize(e.slice(n));s.push(o),n+=o.length}return new U9({source:t,items:s})}},f_=class j9{type;text;constructor(e){Object.assign(this,e)}get length(){return 2+Buffer.from(this.text).length}serialize(){let e=Buffer.from(this.text);return Buffer.concat([er([1,1],[this.type,e.length]),e])}static deSerialize(e){let t=e[0],s=e[1],n=e.slice(2,2+s).toString();return new j9({type:t,text:n})}};td=class vx{ssrc=0;senderInfo;reports=[];static type=200;type=vx.type;constructor(e){Object.assign(this,e)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map(e=>e.toJSON())}}serialize(){let e=Buffer.alloc(4);return e.writeUInt32BE(this.ssrc),e=Buffer.concat([e,this.senderInfo.serialize()]),e=Buffer.concat([e,...this.reports.map(t=>t.serialize())]),mo.serialize(vx.type,this.reports.length,e,Math.floor(e.length/4))}static deSerialize(e,t){let s=e.readUInt32BE(),n=l_.deSerialize(e.subarray(4,24)),i=24,o=[];for(let c=0;c<t;c++)o.push(dy.deSerialize(e.subarray(i,i+24))),i+=24;return new vx({ssrc:s,senderInfo:n,reports:o})}},l_=class H9{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(e={}){Object.assign(this,e)}toJSON(){return{ntpTimestamp:F9(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return er([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(e){let[t,s,n,i]=is(e,[8,4,4,4]);return new H9({ntpTimestamp:t,rtpTimestamp:s,packetCount:n,octetCount:i})}},F9=r=>{let[e,t]=is(er([8],[r]),[4,4]);return+`${e}.${t}`},wq=ut("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),q9=class{static deSerialize(r){let e=0,t=[];for(;e<r.length;){let s=mo.deSerialize(r.subarray(e,e+zx));e+=zx;let n=r.subarray(e);e+=s.length*4,s.padding&&(n=n.subarray(0,n.length-n.subarray(-1)[0]));try{switch(s.type){case td.type:t.push(td.deSerialize(n,s.count));break;case Qu.type:t.push(Qu.deSerialize(n,s.count));break;case Ap.type:t.push(Ap.deSerialize(n,s));break;case ed.type:t.push(ed.deSerialize(n,s));break;case Yu.type:t.push(Yu.deSerialize(n,s));break;default:break}}catch(i){wq("deSerialize RTCP",i)}}return t}};Yt={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"};_q=ut("packages/rtp/src/rtp/red/packet.ts"),h_=class tP{header;blocks=[];static deSerialize(e){let t=e instanceof ArrayBuffer?Buffer.from(e):e,s=new tP,n=0;return[s.header,n]=f2.deSerialize(t),s.header.fields.forEach(({blockLength:i,timestampOffset:o,blockPT:a})=>{if(i&&o){let c=t.subarray(n,n+i);s.blocks.push({block:c,blockPT:a,timestampOffset:o}),n+=i}else{let c=t.subarray(n);s.blocks.push({block:c,blockPT:a})}}),s}serialize(){this.header=new f2;for(let{timestampOffset:t,blockPT:s,block:n}of this.blocks)t?this.header.fields.push({fBit:1,blockPT:s,blockLength:n.length,timestampOffset:t}):this.header.fields.push({fBit:0,blockPT:s});let e=this.header.serialize();for(let{block:t}of this.blocks)e=Buffer.concat([e,t]);return e}},f2=class rP{fields=[];static deSerialize(e){let t=0,s=new rP;for(;;){let n={};s.fields.push(n);let i=new xa(e.subarray(t));if(n.fBit=i.readBits(1),n.blockPT=i.readBits(7),t++,n.fBit===0)break;n.timestampOffset=i.readBits(14),n.blockLength=i.readBits(10),t+=3}return[s,t]}serialize(){let e=Buffer.alloc(0);for(let t of this.fields)try{if(t.timestampOffset&&t.blockLength){let s=new xa(Buffer.alloc(4)).writeBits(1,t.fBit).writeBits(7,t.blockPT).writeBits(14,t.timestampOffset).writeBits(10,t.blockLength);e=Buffer.concat([e,s.uint8Array])}else{let s=new xa(Buffer.alloc(1)).writeBits(1,0).writeBits(7,t.blockPT);e=Buffer.concat([e,s.uint8Array])}}catch(s){_q(s?.message)}return e}},sP=class{constructor(r=1){this.distance=r}cache=[];cacheSize=10;push(r){this.cache.push(r),this.cache.length>this.cacheSize&&this.cache.shift()}build(){let r=new h_,e=this.cache.slice(-(this.distance+1)),t=e.pop();return t&&(e.forEach(s=>{let n=Gc(t.timestamp,-s.timestamp);n>Eq||r.blocks.push({block:s.block,blockPT:s.blockPT,timestampOffset:n})}),r.blocks.push({block:t.block,blockPT:t.blockPT})),r}},Eq=16383,nP=class{size=150;sequenceNumbers=[];push(r,e){let t=[];return r.blocks.forEach(({blockPT:n,timestampOffset:i,block:o},a)=>{let c=Ur(e.header.sequenceNumber,-(r.blocks.length-(a+1)));i?t.push(new po(new ho({timestamp:Gc(e.header.timestamp,-i),payloadType:n,ssrc:e.header.ssrc,sequenceNumber:c,marker:!0}),o)):t.push(new po(new ho({timestamp:e.header.timestamp,payloadType:n,ssrc:e.header.ssrc,sequenceNumber:c,marker:!0}),o))}),t.filter(n=>this.sequenceNumbers.includes(n.header.sequenceNumber)?!1:(this.sequenceNumbers.length>this.size&&this.sequenceNumbers.shift(),this.sequenceNumbers.push(n.header.sequenceNumber),!0))}},ma={OneByte:48862,TwoByte:4096},IR=2,RR=4,kR=8,PR=12,BR=4,ho=class iP{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=ma.OneByte;extensionLength;extensions=[];constructor(e={}){Object.assign(this,e)}static deSerialize(e){let t=new iP,s=0,n=e[s++];t.version=ge(n,0,2),t.padding=ge(n,2)>0,t.extension=ge(n,3)>0,t.csrcLength=ge(n,4,4),t.csrc=[...Array(t.csrcLength)].map(()=>{let o=e.readUInt32BE(s);return s+=4,o}),s+=PR-1;let i=e[1];t.marker=ge(i,0)>0,t.payloadType=ge(i,1,7),t.sequenceNumber=e.readUInt16BE(IR),t.timestamp=e.readUInt32BE(RR),t.ssrc=e.readUInt32BE(kR);for(let o=0;o<t.csrc.length;o++){let a=PR+o*BR;t.csrc[o]=e.subarray(a).readUInt32BE()}if(t.extension){t.extensionProfile=e.subarray(s).readUInt16BE(),s+=2;let o=e.subarray(s).readUInt16BE()*4;switch(t.extensionLength=o,s+=2,t.extensionProfile){case ma.OneByte:{let a=s+o;for(;s<a;){if(e[s]===0){s++;continue}let c=e[s]>>4,d=(e[s]&(e[s]^240))+1;if(s++,c===15)break;let u={id:c,payload:e.subarray(s,s+d)};t.extensions=[...t.extensions,u],s+=d}}break;case ma.TwoByte:{let a=s+o;for(;s<a;){if(e[s]===0){s++;continue}let c=e[s];s++;let d=e[s];s++;let u={id:c,payload:e.subarray(s,s+d)};t.extensions=[...t.extensions,u],s+=d}}break;default:{let a={id:0,payload:e.subarray(s,s+o)};t.extensions=[...t.extensions,a],s+=t.extensions[0].payload.length}break}}return t.payloadOffset=s,t.padding&&(t.paddingSize=e[e.length-1]),t}get serializeSize(){let{csrc:e,extensionProfile:t,extensions:s}=this,n=12+e.length*BR;if(s.length>0||this.extension===!0){let i=4;switch(t){case ma.OneByte:for(let o of s)i+=1+o.payload.length;break;case ma.TwoByte:for(let o of s)i+=2+o.payload.length;break;default:i+=s[0].payload.length}n+=Math.floor((i+3)/4)*4}return n}serialize(e){let t=Buffer.alloc(e),s=0,n=new mp(8);n.set(2,0,this.version),this.padding&&n.set(1,2,1),this.extensions.length>0&&(this.extension=!0),this.extension&&n.set(1,3,1),n.set(4,4,this.csrc.length),t.writeUInt8(n.value,s++);let i=new mp(8);this.marker&&i.set(1,0,1),i.set(7,1,this.payloadType),t.writeUInt8(i.value,s++),t.writeUInt16BE(this.sequenceNumber,IR),s+=2,t.writeUInt32BE(this.timestamp,RR),s+=4,t.writeUInt32BE(this.ssrc,kR),s+=4;for(let o of this.csrc)t.writeUInt32BE(o,s),s+=4;if(this.extension){let o=s;t.writeUInt16BE(this.extensionProfile,s),s+=4;let a=s;switch(this.extensionProfile){case ma.OneByte:for(let u of this.extensions)t.writeUInt8(u.id<<4|u.payload.length-1,s++),u.payload.copy(t,s),s+=u.payload.length;break;case ma.TwoByte:for(let u of this.extensions)t.writeUInt8(u.id,s++),t.writeUInt8(u.payload.length,s++),u.payload.copy(t,s),s+=u.payload.length;break;default:{let u=this.extensions[0].payload.length;if(u%4!=0)throw new Error;this.extensions[0].payload.copy(t,s),s+=u}}let c=s-a,d=Math.trunc((c+3)/4)*4;t.writeUInt16BE(Math.trunc(d/4),o+2);for(let u=0;u<d-c;u++)t.writeUInt8(0,s),s++}return this.payloadOffset=s,t}},po=class l2{constructor(e,t){this.header=e,this.payload=t}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new l2(new ho({...this.header}),this.payload)}serialize(){let e=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:t}=this.header;if(this.payload.copy(e,t),this.header.padding){let s=Buffer.alloc(this.header.paddingSize);s.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),e=Buffer.concat([e,s])}return e}static deSerialize(e){let t=ho.deSerialize(e);return new l2(t,e.subarray(t.payloadOffset,e.length-t.paddingSize))}clear(){this.payload=null}};cP=class{constructor(r,e,t,s){this.srtpSessionKey=r,this.srtpSessionSalt=e,this.srtcpSessionKey=t,this.srtcpSessionSalt=s}encryptRtp(r,e,t){return Buffer.from([])}decryptRtp(r,e,t){return[]}encryptRTCP(r,e){return Buffer.from([])}decryptRTCP(r){return[]}},rd=class extends Error{constructor(r){super(r),this.name="SrtpAuthenticationError"}},NR=12,Cq=8;Tq=class extends cP{constructor(r,e,t,s,n,i){super(r,e,t,s),this.srtpSessionAuthTag=n,this.srtcpSessionAuthTag=i}authTagLength=10;encryptRtp(r,e,t){let s=r.serialize(r.serializeSize),n=this.generateCounter(r.sequenceNumber,t,r.ssrc,this.srtpSessionSalt),o=(0,An.createCipheriv)("aes-128-ctr",this.srtpSessionKey,n).update(e),a=this.generateSrtpAuthTag(t,s,o);return Buffer.concat([s,o,a])}decryptRtp(r,e,t=m_(r,this.authTagLength)){let s=r.length-this.authTagLength,n=r.subarray(0,s),i=r.subarray(s),o=this.generateSrtpAuthTag(e,n.subarray(0,t.payloadOffset),n.subarray(t.payloadOffset));LR(i,o,"Failed to authenticate SRTP packet");let a=this.generateCounter(t.sequenceNumber,e,t.ssrc,this.srtpSessionSalt),c=(0,An.createDecipheriv)("aes-128-ctr",this.srtpSessionKey,a),d=n.subarray(t.payloadOffset),u=c.update(d),l=Buffer.concat([n.subarray(0,t.payloadOffset),u]);return[l,fP(t,l,"Failed to authenticate SRTP packet")]}encryptRTCP(r,e){let t=Buffer.from(r),s=t.readUInt32BE(4),n=this.generateCounter(e&65535,e>>16,s,this.srtcpSessionSalt);(0,An.createCipheriv)("aes-128-ctr",this.srtcpSessionKey,n).update(t.slice(8)).copy(t,8),t=Buffer.concat([t,Buffer.alloc(4)]),t.writeUInt32BE(e,t.length-4),t[t.length-4]|=128;let a=this.generateSrtcpAuthTag(t);return t=Buffer.concat([t,a]),t}decryptRTCP(r){let e=dP(r,this.authTagLength,OR),t=r.length-(this.authTagLength+OR),s=r.subarray(0,r.length-this.authTagLength),n=r.subarray(r.length-this.authTagLength),i=this.generateSrtcpAuthTag(s);LR(n,i,"Failed to authenticate SRTCP packet");let o=Buffer.from(r).slice(0,t);if(r[t]>>>7===0)return[o,e];let c=r.readUInt32BE(t);c&=~(1<<31);let d=r.readUInt32BE(4),u=this.generateCounter(c&65535,c>>16,d,this.srtcpSessionSalt);return(0,An.createDecipheriv)("aes-128-ctr",this.srtcpSessionKey,u).update(o.subarray(8)).copy(o,8),[o,e]}generateSrtcpAuthTag(r){return(0,An.createHmac)("sha1",this.srtcpSessionAuthTag).update(r).digest().slice(0,10)}generateCounter(r,e,t,s){let n=Buffer.alloc(16);n.writeUInt32BE(t,4),n.writeUInt32BE(e,8),n.writeUInt32BE(Number(BigInt(r)<<16n),12);for(let i=0;i<s.length;i++)n[i]^=s[i];return n}generateSrtpAuthTag(r,...e){let t=(0,An.createHmac)("sha1",this.srtpSessionAuthTag),s=Buffer.alloc(4);s.writeUInt32BE(r);for(let n of e)t.update(n);return t.update(s).digest().subarray(0,10)}},OR=4;Aq=class extends cP{aeadAuthTagLen=16;rtpIvWriter=fp([2,4,4,2],!0);rtcpIvWriter=fp([2,4,2,4],!0);aadWriter=fp([4],!0);constructor(r,e,t,s){super(r,e,t,s)}encryptRtp(r,e,t){let s=r.serialize(r.serializeSize),n=this.rtpInitializationVector(r,t),i=(0,Ju.createCipheriv)("aes-128-gcm",this.srtpSessionKey,n);i.setAAD(s);let o=i.update(e);i.final();let a=i.getAuthTag();return Buffer.concat([s,o,a])}decryptRtp(r,e,t=m_(r,this.aeadAuthTagLen)){let s=r.subarray(0,t.payloadOffset),n=r.length-this.aeadAuthTagLen,i=r.subarray(n),o=Buffer.from([]);o=e2(o,r.length-this.aeadAuthTagLen),s.copy(o);let a=this.rtpInitializationVector(t,e),c=r.slice(t.payloadOffset,n),d=(0,Ju.createDecipheriv)("aes-128-gcm",this.srtpSessionKey,a);d.setAAD(s),d.setAuthTag(i);let u=d.update(c);return MR(d,"SRTP"),u.copy(o,t.payloadOffset),[o,fP(t,o,"Failed to authenticate SRTP packet")]}encryptRTCP(r,e){let t=r.readUInt32BE(4),s=r.length+this.aeadAuthTagLen,n=Buffer.from([]);n=e2(n,s+BS),r.slice(0,8).copy(n);let i=this.rtcpInitializationVector(t,e),o=this.rtcpAdditionalAuthenticatedData(r,e),a=(0,Ju.createCipheriv)("aes-128-gcm",this.srtcpSessionKey,i);a.setAAD(o);let c=a.update(r.slice(8));return a.final(),c.copy(n,8),a.getAuthTag().copy(n,8+c.length),o.slice(8,12).copy(n,s),n}decryptRTCP(r){let e=dP(r,this.aeadAuthTagLen,BS),t=r.length-BS,s=t-this.aeadAuthTagLen,n=r.readUInt32BE(4),i=r.readUInt32BE(t),o=i>>>31===1,a=i&~(DR<<24),c=this.rtcpInitializationVector(n,a),d=o?Buffer.concat([r.subarray(0,8),r.subarray(t)]):Buffer.concat([r.subarray(0,s),r.subarray(t)]),u=o?r.slice(8,s):Buffer.alloc(0),l=o?Buffer.alloc(s):Buffer.from(r.subarray(0,s));o&&r.slice(0,8).copy(l);let h=(0,Ju.createDecipheriv)("aes-128-gcm",this.srtcpSessionKey,c);h.setAAD(d),h.setAuthTag(r.subarray(s,t));let x=h.update(u);return MR(h,"SRTCP"),o&&x.copy(l,8),[l,e]}rtpInitializationVector(r,e){let t=this.rtpIvWriter([0,r.ssrc,e,r.sequenceNumber]);for(let s=0;s<t.length;s++)t[s]^=this.srtpSessionSalt[s];return t}rtcpInitializationVector(r,e){let t=this.rtcpIvWriter([0,r,0,e]);for(let s=0;s<t.length;s++)t[s]^=this.srtcpSessionSalt[s];return t}rtcpAdditionalAuthenticatedData(r,e){let t=Buffer.concat([r.subarray(0,8),this.aadWriter([e])]);return t[8]|=DR,t}},BS=4,DR=128;lP=class{constructor(r,e,t){this.masterKey=r,this.masterSalt=e,this.profile=t;{let s=14-e.length;s>0&&(this.masterSalt=Buffer.concat([e,Buffer.alloc(s)]))}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=(0,wx.createHmac)("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=(0,wx.createHmac)("sha1",this.srtcpSessionAuthTag),t){case sf:this.cipher=new Tq(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case id:this.cipher=new Aq(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(r){let e=Buffer.from(this.masterSalt),t=Buffer.from([r,0,0,0,0,0,0]);for(let n=t.length-1,i=e.length-1;n>=0;n--,i--)e[i]=e[i]^t[n];e=Buffer.concat([e,Buffer.from([0,0])]);let s=new Sx.default.AES(this.masterKey);return Buffer.from(s.encrypt(e))}generateSessionSalt(r){let e=Buffer.from(this.masterSalt),t=Buffer.from([r,0,0,0,0,0,0]);for(let n=t.length-1,i=e.length-1;n>=0;n--,i--)e[i]=e[i]^t[n];e=Buffer.concat([e,Buffer.from([0,0])]);let s=new Sx.default.AES(this.masterKey);return e=Buffer.from(s.encrypt(e)),e.subarray(0,14)}generateSessionAuthTag(r){let e=Buffer.from(this.masterSalt),t=Buffer.from([r,0,0,0,0,0,0]);for(let o=t.length-1,a=e.length-1;o>=0;o--,a--)e[a]=e[a]^t[o];let s=Buffer.concat([e,Buffer.from([0,0])]),n=Buffer.concat([e,Buffer.from([0,1])]),i=new Sx.default.AES(this.masterKey);return s=Buffer.from(i.encrypt(s)),n=Buffer.from(i.encrypt(n)),Buffer.concat([s,n.subarray(0,4)])}getSrtpSsrcState(r){let e=this.srtpSSRCStates[r];return e||(e={ssrc:r,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[r]=e,e)}getSrtcpSsrcState(r){let e=this.srtcpSSRCStates[r];return e||(e={srtcpIndex:0,ssrc:r},this.srtcpSSRCStates[r]=e,e)}updateRolloverCount(r,e){e.rolloverHasProcessed?r===0?e.lastSequenceNumber>Kh&&e.rolloverCounter++:e.lastSequenceNumber<Kh&&r>UR-Kh?e.rolloverCounter>0&&e.rolloverCounter--:r<Kh&&e.lastSequenceNumber>UR-Kh&&e.rolloverCounter++:e.rolloverHasProcessed=!0,e.lastSequenceNumber=r}generateSrtpAuthTag(r,e){this.srtpSessionAuth=(0,wx.createHmac)("sha1",this.srtpSessionAuthTag);let t=Buffer.alloc(4);return t.writeUInt32BE(e),this.srtpSessionAuth.update(r).update(t).digest().slice(0,10)}index(r){let e=this.srtcpSSRCStates[r];return e?e.srtcpIndex:0}setIndex(r,e){let t=this.getSrtcpSsrcState(r);t.srtcpIndex=e%2147483647}},Kh=100,UR=65535,Iq=class extends lP{constructor(r,e,t){super(r,e,t)}encryptRTCP(r){let e=r.readUInt32BE(4),t=this.getSrtcpSsrcState(e);return t.srtcpIndex++,t.srtcpIndex>>Rq&&(t.srtcpIndex=0),this.cipher.encryptRTCP(r,t.srtcpIndex)}decryptRTCP(r){return this.cipher.decryptRTCP(r)}},Rq=2147483647,hP=class{constructor(r){this.ContextCls=r}localContext;remoteContext;onData;start(r,e,t,s,n){this.localContext=new this.ContextCls(r,e,n),this.remoteContext=new this.ContextCls(t,s,n)}},pP=class extends hP{constructor(r){super(Iq),this.config=r,this.start(r.keys.localMasterKey,r.keys.localMasterSalt,r.keys.remoteMasterKey,r.keys.remoteMasterSalt,r.profile)}decrypt=r=>{let[e]=this.remoteContext.decryptRTCP(r);return e};encrypt(r){return this.localContext.encryptRTCP(r)}},kq=class extends lP{constructor(r,e,t){super(r,e,t)}encryptRtp(r,e){let t=this.getSrtpSsrcState(e.ssrc);return this.updateRolloverCount(e.sequenceNumber,t),this.cipher.encryptRtp(e,r,t.rolloverCounter)}decryptRtp(r){let e=m_(r,this.rtpAuthTagLength),t=this.srtpSSRCStates[e.ssrc],s=t?{...t}:{ssrc:e.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(e.sequenceNumber,s);let n=this.cipher.decryptRtp(r,s.rolloverCounter,e);return t?Object.assign(t,s):this.srtpSSRCStates[e.ssrc]=s,n}get rtpAuthTagLength(){return this.profile===id?16:10}},mP=class extends hP{constructor(r){super(kq),this.config=r,this.start(r.keys.localMasterKey,r.keys.localMasterSalt,r.keys.remoteMasterKey,r.keys.remoteMasterSalt,r.profile)}decrypt=r=>{let[e]=this.remoteContext.decryptRtp(r);return e};encrypt(r,e){return this.localContext.encryptRtp(r,e)}},Pq=class{constructor(r){this.props=r}sequenceNumber=t_();timestamp=Ux();create(r){this.sequenceNumber=Ur(this.sequenceNumber,1);let e=this.props.between*this.props.clockRate/1e3;this.timestamp=Gc(this.timestamp,e);let t=new ho({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new po(t,r)}},ns=ut("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Bq=class extends Mp{constructor(r,e,t,s){super(r,e,5,7),this.cipher=t,this.srtp=s}handleHandshake(r){this.dtls.bufferHandshakeCache([r],!1,4);let e=(()=>{switch(r.msg_type){case 2:return d9.deSerialize(r.fragment);case 11:return qx.deSerialize(r.fragment);case 12:return l9.deSerialize(r.fragment);case 13:return c9.deSerialize(r.fragment);case 14:return u9.deSerialize(r.fragment)}})();e&&nf[e.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(e)}async exec(){if(this.dtls.flight===5){ns(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let r=this.dtls.requestedCertificateTypes.length>0;ns(this.dtls.sessionId,"send flight5",r);let e=[r&&this.sendCertificate(),this.sendClientKeyExchange(),r&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter(t=>t);this.dtls.lastMessage=e,await this.transmit(e)}sendCertificate(){let r=new qx([Buffer.from(this.cipher.localCert)]),e=this.createPacket([r]);return Buffer.concat(e.map(s=>s.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw new Error;let r=new a9(this.cipher.localKeyPair.publicKey),e=this.createPacket([r]),t=Buffer.concat(e.map(a=>a.serialize())),s=this.cipher.localKeyPair,n=this.cipher.remoteKeyPair;if(!n.publicKey)throw new Error("not exist");let i=zk(n.publicKey,s.privateKey,s.curve);ns(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let o=Buffer.concat(this.dtls.sortedHandshakeCache.map(a=>a.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?$k(i,o):Vk(i,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=r9(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),ns(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),t}sendCertificateVerify(){let r=Buffer.concat(this.dtls.sortedHandshakeCache.map(o=>o.serialize())),e=this.cipher.signatureData(r,"sha256"),t=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case pi.ecdsa_3:return $S.ecdsa_secp256r1_sha256;case pi.rsa_1:return $S.rsa_pkcs1_sha256}})();if(!t)throw new Error;ns(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,t);let s=new o9(t,e),n=this.createPacket([s]);return Buffer.concat(n.map(o=>o.serialize()))}sendChangeCipherSpec(){let r=i9.createEmpty().serialize(),e=Dp(this.dtls)([{type:20,fragment:r}],++this.dtls.recordSequenceNumber);return Buffer.concat(e.map(s=>s.serialize()))}sendFinished(){let r=Buffer.concat(this.dtls.sortedHandshakeCache.map(i=>i.serialize())),e=this.cipher.verifyData(r),t=new QS(e);this.dtls.epoch=1;let[s]=this.createPacket([t]);this.dtls.recordSequenceNumber=0;let n=this.cipher.encryptPacket(s).serialize();return ns(this.dtls.sessionId,"finished",this.cipher.cipher.summary),n}},nf={};nf[2]=({cipher:r,srtp:e,dtls:t})=>s=>{ns(t.sessionId,"serverHello",s.cipherSuite),r.remoteRandom=Yc.from(s.random),r.cipherSuite=s.cipherSuite,ns(t.sessionId,"selected cipherSuite",r.cipherSuite),s.extensions&&s.extensions.forEach(n=>{switch(n.type){case Xu.type:{let i=Xu.fromData(n.data),o=vp.findMatchingSRTPProfile(i.profiles,t.options.srtpProfiles||[]);if(ns(t.sessionId,"selected srtp profile",o),o==null)return;e.srtpProfile=o}break;case oy.type:t.remoteExtendedMasterSecret=!0;break;case ay.type:ns(t.sessionId,"RenegotiationIndication");break}})};nf[11]=({cipher:r,dtls:e})=>t=>{ns(e.sessionId,"handshake certificate",t),r.remoteCertificate=t.certificateList[0]};nf[12]=({cipher:r,dtls:e})=>t=>{if(!r.localRandom||!r.remoteRandom)throw new Error;ns(e.sessionId,"ServerKeyExchange",t),ns(e.sessionId,"selected curve",t.namedCurve),r.remoteKeyPair={curve:t.namedCurve,publicKey:t.publicKey},r.localKeyPair=n9(t.namedCurve)};nf[13]=({dtls:r})=>e=>{ns(r.sessionId,"certificate_request",e),r.requestedCertificateTypes=e.certificateTypes,r.requestedSignatureAlgorithms=e.signatures};nf[14]=({dtls:r})=>e=>{ns(r.sessionId,"server_hello_done",e)};gP=class cp{constructor(e,t){this.serverVersion=e,this.cookie=t}msgType=3;messageSeq;static spec={serverVersion:d_,cookie:sd.types.buffer(sd.types.uint8)};static createEmpty(){return new cp(void 0,void 0)}static deSerialize(e){return new cp(...Object.values((0,sd.decode)(e,cp.spec)))}serialize(){let e=(0,sd.encode)(this,cp.spec).slice();return Buffer.from(e)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let e=this.serialize();return new Zs(this.msgType,e.length,this.messageSeq,0,e.length,e)}},Nq=ut("werift-dtls : packages/dtls/src/context/dtls.ts : log"),jR=class{constructor(r,e){this.options=r,this.sessionType=e}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(([r],[e])=>Number(r)-Number(e)).flatMap(([,{data:r}])=>r.sort((e,t)=>e.message_seq-t.message_seq))}checkHandshakesExist=r=>!r.find(e=>this.sortedHandshakeCache.find(t=>t.msg_type===e)==null);bufferHandshakeCache(r,e,t){this.handshakeCache[t]||(this.handshakeCache[t]={data:[],isLocal:e,flight:t});let s=r.filter(n=>{let i=this.handshakeCache[t].data.find(o=>o.msg_type===n.msg_type);return i?(Nq(this.sessionId,"exist",i.summary,e,t),!1):!0});this.handshakeCache[t].data=[...this.handshakeCache[t].data,...s]}},Oq=class{constructor(r){this.socket=r}send=r=>this.socket.send(r)},h2=class io{static type=10;static spec={type:hi.types.uint16be,data:hi.types.array(hi.types.uint16be,hi.types.uint16be,"bytes")};type=io.type;data=[];constructor(e={}){Object.assign(this,e)}static createEmpty(){return new io}static fromData(e){return new io({type:io.type,data:(0,hi.decode)(e,io.spec.data)})}static deSerialize(e){return new io((0,hi.decode)(e,io.spec))}serialize(){return Buffer.from((0,hi.encode)(this,io.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},p2=class ga{static type=13;static spec={type:li.types.uint16be,data:li.types.array({hash:li.types.uint8,signature:li.types.uint8},li.types.uint16be,"bytes")};type=ga.type;data=[];constructor(e={}){Object.assign(this,e)}static createEmpty(){return new ga}static deSerialize(e){return new ga((0,li.decode)(e,ga.spec))}serialize(){let e=(0,li.encode)(this,ga.spec).slice();return Buffer.from(e)}static fromData(e){let t=Buffer.alloc(2);return t.writeUInt16BE(ga.type),ga.deSerialize(Buffer.concat([t,e]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},HR=class _x{constructor(e,t){this.level=e,this.description=t}static spec={level:nd.types.uint8,description:nd.types.uint8};static deSerialize(e){return new _x(...Object.values((0,nd.decode)(e,_x.spec)))}serialize(){let e=(0,nd.encode)(this,_x.spec).slice();return Buffer.from(e)}},FR=ut("werift-dtls : packages/dtls/record/receive.ts : log"),NS=ut("werift-dtls : packages/dtls/record/receive.ts : err"),Lq=r=>{let e=0,t=[];for(;r.length>e;){let s=r.readUInt16BE(e+11);if(r.length<e+(12+s))break;let n=e9.deSerialize(r.subarray(e));t.push(n),e+=13+s}return t},Dq=(r,e)=>t=>{switch(t.recordLayerHeader.contentType){case 20:return FR(r.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let n=t.fragment;try{t.recordLayerHeader.epoch>0&&(FR(r.sessionId,"decrypt handshake"),n=e.decryptPacket(t))}catch(i){throw NS(r.sessionId,"decrypt failed",i),i}try{let i=0,o=[];for(;n.length>i;){let a=Zs.deSerialize(n.subarray(i));o.push({type:22,data:a}),i+=a.fragment_length+12}return o}catch(i){throw NS(r.sessionId,"decSerialize failed",i,n),i}}case 23:return[{type:23,data:e.decryptPacket(t)}];case 21:{let n=HR.deSerialize(t.fragment);if(XS[n.description]==null){let i=e.decryptPacket(t);n=HR.deSerialize(i)}if(NS(r.sessionId,"ContentType.alert",n,XS[n.description],"flight",r.flight,"lastFlight",r.lastFlight),n.level>1)throw new Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},qR=ut("werift-dtls : packages/dtls/src/socket.ts : log"),zR=ut("werift-dtls : packages/dtls/src/socket.ts : err"),g_=class{constructor(r,e){this.options=r,this.sessionType=e,this.dtls=new jR(this.options,this.sessionType),this.cipher=new bp(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Oq(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new Ce;onData=new Ce;onError=new Ce;onClose=new Ce;transport;cipher;dtls;srtp=new vp;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){qR("renegotiation",this.sessionType),this.connected=!1,this.cipher=new bp(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new jR(this.options,this.sessionType),this.srtp=new vp,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=r=>{let e=Lq(r);for(let t of e)try{let s=Dq(this.dtls,this.cipher)(t);for(let n of s)switch(n.type){case 22:{let i=n.data,o=this.handleFragmentHandshake([i]),a=Object.values(o.reduce((c,d)=>(c[d.msg_type]||(c[d.msg_type]=[]),c[d.msg_type].push(d),c),{})).map(c=>Zs.assemble(c)).sort((c,d)=>c.msg_type-d.msg_type);this.onHandleHandshakes(a).catch(c=>{zR(this.dtls.sessionId,"onHandleHandshakes error",c),this.onError.execute(c)})}break;case 23:this.onData.execute(n.data);break;case 21:this.onClose.execute();break}}catch(s){zR(this.dtls.sessionId,"catch udpOnMessage error",s)}};setupExtensions(){if(qR(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let r=Xu.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(r.extension)}{let r=h2.createEmpty();r.data=i_,this.extensions.push(r.extension)}{let r=p2.createEmpty();r.data=a_,this.extensions.push(r.extension)}this.options.extendedMasterSecret&&this.extensions.push({type:oy.type,data:Buffer.alloc(0)});{let r=ay.createEmpty();this.extensions.push(r.extension)}}waitForReady=r=>new Promise(async(e,t)=>{for(let s=0;s<10;s++)if(r()){e();break}else await(0,xP.setTimeout)(100*s);t("waitForReady timeout")});handleFragmentHandshake(r){let e=r.filter(t=>t.fragment_length!==t.length?(this.bufferFragmentedHandshakes.push(t),!1):!0);if(this.bufferFragmentedHandshakes.length>1){let[t]=this.bufferFragmentedHandshakes.slice(-1);t.fragment_offset+t.fragment_length===t.length&&(e=[...this.bufferFragmentedHandshakes,...e],this.bufferFragmentedHandshakes=[])}return e}send=async r=>{let e=Dp(this.dtls)([{type:23,fragment:r}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(e).serialize())};close(){this.transport.socket.close()}extractSessionKeys(r,e){let t=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",r*2+e*2),{clientKey:s,serverKey:n,clientSalt:i,serverSalt:o}=(0,Wc.decode)(t,{clientKey:Wc.types.buffer(r),serverKey:Wc.types.buffer(r),clientSalt:Wc.types.buffer(e),serverSalt:Wc.types.buffer(e)});return this.sessionType===fo.CLIENT?{localKey:s,localSalt:i,remoteKey:n,remoteSalt:o}:{localKey:n,localSalt:o,remoteKey:s,remoteSalt:i}}exportKeyingMaterial(r,e){return LF(r,e,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===fo.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},OS=ut("werift-dtls : packages/dtls/src/client.ts : log"),m2=class extends g_{constructor(r){super(r,fo.CLIENT),this.onHandleHandshakes=this.handleHandshakes,OS(this.dtls.sessionId,"start client")}async connect(){await new YF(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async r=>{OS(this.dtls.sessionId,"handleHandshakes",r.map(e=>e.msg_type));for(let e of r)switch(e.msg_type){case 3:{let t=gP.deSerialize(e.fragment);await new JF(this.transport,this.dtls).exec(t)}break;case 2:{if(this.connected)return;this.flight5=new Bq(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(e)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(e);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(e);let t=[11,12,this.options.certificateRequest&&13].filter(s=>typeof s=="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(t)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),OS(this.dtls.sessionId,"dtls connected");break}}},ui=ut("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),Mq=(r,e,t,s)=>n=>{ui("dtls version",n.clientVersion),e.flight=2,e.recordSequenceNumber=0,e.sequenceNumber=0,n.extensions.forEach(l=>{switch(l.type){case h2.type:{let h=h2.fromData(l.data).data;ui(e.sessionId,"curves",h);let x=h.filter(v=>i_.includes(v))[0];t.namedCurve=x,ui(e.sessionId,"curve selected",t.namedCurve)}break;case p2.type:{if(!t.signatureHashAlgorithm)throw new Error("need to set certificate");let h=p2.fromData(l.data).data;ui(e.sessionId,"hash,signature",h);let x=h.find(S=>S.signature===t.signatureHashAlgorithm?.signature)?.signature,v=h.find(S=>S.hash===t.signatureHashAlgorithm?.hash)?.hash;if(x==null||v==null)throw new Error("invalid signatureHash")}break;case Xu.type:{if(!e.options?.srtpProfiles||e.options.srtpProfiles.length===0)return;let h=Xu.fromData(l.data);ui(e.sessionId,"srtp profiles",h.profiles);let x=vp.findMatchingSRTPProfile(h.profiles,e.options?.srtpProfiles);if(!x)throw new Error;s.srtpProfile=x,ui(e.sessionId,"srtp profile selected",s.srtpProfile)}break;case oy.type:e.remoteExtendedMasterSecret=!0;break;case ay.type:ui(e.sessionId,"RenegotiationIndication",l.data);break;case 43:{let x=[...l.data.subarray(1)].map(v=>v.toString(10));ui("dtls supported version",x)}break}}),t.localRandom=new Yc,t.remoteRandom=Yc.from(n.random);let i=n.cipherSuites;ui(e.sessionId,"cipher suites",i);let o=(()=>{switch(t.signatureHashAlgorithm?.signature){case pi.ecdsa_3:return Hx.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case pi.rsa_1:return Hx.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(o===void 0||!i.includes(o))throw new Error("dtls cipher suite negotiation failed");t.cipherSuite=o,ui(e.sessionId,"selected cipherSuite",t.cipherSuite),t.localKeyPair=n9(t.namedCurve),e.cookie||=(0,yP.randomBytes)(20);let a=new gP({major:254,minor:253},e.cookie),c=t9(e)([a]),u=Dp(e)(c.map(l=>({type:22,fragment:l.serialize()})),++e.recordSequenceNumber).map(l=>l.serialize());for(let l of u)r.send(l)},VR=ut("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),Uq=class extends Mp{constructor(r,e,t,s){super(r,e,4,6),this.cipher=t,this.srtp=s}async exec(r,e=!1){if(this.dtls.flight===4){VR(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([r],!1,4);let t=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),e&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter(s=>s);this.dtls.lastMessage=t,await this.transmit(t)}sendServerHello(){let r=[];this.srtp.srtpProfile&&r.push(Xu.create([this.srtp.srtpProfile],Buffer.from([0])).extension),this.dtls.options.extendedMasterSecret&&r.push({type:oy.type,data:Buffer.alloc(0)});let e=ay.createEmpty();r.push(e.extension);let t=new d9(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,r),s=this.createPacket([t]);return Buffer.concat(s.map(n=>n.serialize()))}sendCertificate(){let r=new qx([Buffer.from(this.cipher.localCert)]),e=this.createPacket([r]);return Buffer.concat(e.map(t=>t.serialize()))}sendServerKeyExchange(){let r=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw new Error("not exist");let e=new l9(o_.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,r.length,r),t=this.createPacket([e]);return Buffer.concat(t.map(s=>s.serialize()))}sendCertificateRequest(){let r=new c9(Hk,a_,[]);VR(this.dtls.sessionId,"sendCertificateRequest",r);let e=this.createPacket([r]);return Buffer.concat(e.map(t=>t.serialize()))}sendServerHelloDone(){let r=new u9,e=this.createPacket([r]);return Buffer.concat(e.map(t=>t.serialize()))}},Zu=ut("werift-dtls : packages/dtls/flight/server/flight6.ts"),jq=class extends Mp{constructor(r,e,t){super(r,e,6),this.cipher=t}handleHandshake(r){this.dtls.bufferHandshakeCache([r],!1,5);let e=(()=>{switch(r.msg_type){case 11:return qx.deSerialize(r.fragment);case 15:return o9.deSerialize(r.fragment);case 16:return a9.deSerialize(r.fragment);case 20:return QS.deSerialize(r.fragment)}})();if(e){let t=Fp[e.msgType];if(!t)return;t({dtls:this.dtls,cipher:this.cipher})(e)}}async exec(){if(this.dtls.flight===6){Zu(this.dtls.sessionId,"flight6 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=6;let r=[this.sendChangeCipherSpec(),this.sendFinished()];this.dtls.lastMessage=r,await this.transmit(r)}sendChangeCipherSpec(){let r=i9.createEmpty().serialize(),e=Dp(this.dtls)([{type:20,fragment:r}],++this.dtls.recordSequenceNumber);return Buffer.concat(e.map(s=>s.serialize()))}sendFinished(){let r=Buffer.concat(this.dtls.sortedHandshakeCache.map(i=>i.serialize())),e=this.cipher.verifyData(r),t=new QS(e);this.dtls.epoch=1;let[s]=this.createPacket([t]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(s).serialize()}},Fp={};Fp[16]=({cipher:r,dtls:e})=>t=>{if(r.remoteKeyPair={curve:r.namedCurve,publicKey:t.publicKey},!r.remoteKeyPair.publicKey||!r.localKeyPair||!r.remoteRandom||!r.localRandom)throw new Error("not exist");let s=zk(r.remoteKeyPair.publicKey,r.localKeyPair.privateKey,r.localKeyPair.curve);Zu(e.sessionId,"extendedMasterSecret",e.options.extendedMasterSecret,e.remoteExtendedMasterSecret);let n=Buffer.concat(e.sortedHandshakeCache.map(i=>i.serialize()));r.masterSecret=e.options.extendedMasterSecret&&e.remoteExtendedMasterSecret?$k(s,n):Vk(s,r.remoteRandom.serialize(),r.localRandom.serialize()),r.cipher=r9(r.cipherSuite),r.cipher.init(r.masterSecret,r.localRandom.serialize(),r.remoteRandom.serialize()),Zu(e.sessionId,"setup cipher",r.cipher.summary)};Fp[11]=({cipher:r,dtls:e})=>t=>{Zu(e.sessionId,"handshake certificate",t),r.remoteCertificate=t.certificateList[0]};Fp[15]=({cipher:r,dtls:e})=>t=>{if(!r.remoteCertificate)throw new Error("client certificate missing before certificate verify");Zu(e.sessionId,"certificate_verify",t.algorithm)};Fp[20]=({dtls:r})=>e=>{Zu(r.sessionId,"finished",e)};Du=ut("werift-dtls : packages/dtls/src/server.ts : log"),bP=class extends g_{constructor(r){super(r,fo.SERVER),this.onHandleHandshakes=this.handleHandshakes,Du(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async r=>{Du(this.dtls.sessionId,"handleHandshakes",r.map(e=>e.msg_type));for(let e of r)switch(e.msg_type){case 1:{this.connected&&this.renegotiation();let t=Jk.deSerialize(e.fragment);t.cookie.length===0?(Du(this.dtls.sessionId,"send flight2"),Mq(this.transport,this.dtls,this.cipher,this.srtp)(t)):this.dtls.cookie&&t.cookie.equals(this.dtls.cookie)?(Du(this.dtls.sessionId,"send flight4"),await new Uq(this.transport,this.dtls,this.cipher,this.srtp).exec(e,this.options.certificateRequest)):Du("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:t.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new jq(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(e)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(e);let t=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter(s=>typeof s=="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(t)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),Du(this.dtls.sessionId,"dtls connected")}break}}},uy=554869826,vP=8,wP=1398035790,ao=20,x_=24,y_=1,b_=2,SP=6,_P=50,Hq=["FINGERPRINT","MESSAGE-INTEGRITY","CHANGE-REQUEST","PRIORITY","USERNAME","ICE-CONTROLLING","SOURCE-ADDRESS","USE-CANDIDATE","ICE-CONTROLLED","ERROR-CODE","XOR-MAPPED-ADDRESS","CHANGED-ADDRESS","LIFETIME","REQUESTED-TRANSPORT","NONCE","REALM","XOR-RELAYED-ADDRESS","CHANNEL-NUMBER","XOR-PEER-ADDRESS","DATA","SOFTWARE","MAPPED-ADDRESS","RESPONSE-ORIGIN","OTHER-ADDRESS"],v_=(r=>(r[r.REQUEST=0]="REQUEST",r[r.INDICATION=16]="INDICATION",r[r.RESPONSE=256]="RESPONSE",r[r.ERROR=272]="ERROR",r))(v_||{}),w_=(r=>(r[r.BINDING=1]="BINDING",r[r.SHARED_SECRET=2]="SHARED_SECRET",r[r.ALLOCATE=3]="ALLOCATE",r[r.REFRESH=4]="REFRESH",r[r.SEND=6]="SEND",r[r.DATA=7]="DATA",r[r.CREATE_PERMISSION=8]="CREATE_PERMISSION",r[r.CHANNEL_BIND=9]="CHANNEL_BIND",r))(w_||{});$R=class{queue=[];wait=new Ce;put(r){this.queue.push(r),this.queue.length===1&&this.wait.execute(r)}get(){let r=this.queue.shift();return r||new Promise(e=>{this.wait.subscribe(t=>{this.queue.shift(),e(t)})})}},g2=r=>{let e,t,s=new Promise((i,o)=>{e=i,t=o});s.then(()=>{n.execute(void 0),n.complete()}).catch(i=>{n.execute(i??new Error),n.complete()});let n=new Ce;return r(e,t,n).catch(()=>{}),{awaitable:s,resolve:e,reject:t}};E_=Buffer.alloc(6);E_.writeUInt16BE(uy>>16,0);E_.writeUInt32BE(uy,2);Gh=r=>{let e=Buffer.alloc(4);return e.writeUInt32BE(r,0),e},Xh=r=>r.readUInt32BE(0),zq=r=>{let e=Buffer.alloc(4);return e.writeUInt16BE(r,0),e},Vq=r=>r.readUInt16BE(0),KR=r=>new gS(r.toString()).toBuffer(),WR=r=>{let e=new gS(r);return BigInt(e.toString())},LS=r=>Buffer.from(r,"utf8"),DS=r=>r.toString("utf8"),MS=r=>r,US=r=>r,$q=r=>Buffer.from([]),Kq=r=>null,TP=[[1,"MAPPED-ADDRESS",Hu,Fu],[3,"CHANGE-REQUEST",Gh,Xh],[4,"SOURCE-ADDRESS",Hu,Fu],[5,"CHANGED-ADDRESS",Hu,Fu],[6,"USERNAME",LS,DS],[8,"MESSAGE-INTEGRITY",MS,US],[9,"ERROR-CODE",qq,Fq],[12,"CHANNEL-NUMBER",zq,Vq],[13,"LIFETIME",Gh,Xh],[18,"XOR-PEER-ADDRESS",Cx,Ex],[19,"DATA",MS,US],[20,"REALM",LS,DS],[21,"NONCE",MS,US],[22,"XOR-RELAYED-ADDRESS",Cx,Ex],[25,"REQUESTED-TRANSPORT",Gh,Xh],[32,"XOR-MAPPED-ADDRESS",Cx,Ex],[36,"PRIORITY",Gh,Xh],[37,"USE-CANDIDATE",$q,Kq],[32802,"SOFTWARE",LS,DS],[32808,"FINGERPRINT",Gh,Xh],[32809,"ICE-CONTROLLED",KR,WR],[32810,"ICE-CONTROLLING",KR,WR],[32811,"RESPONSE-ORIGIN",Hu,Fu],[32812,"OTHER-ADDRESS",Hu,Fu]],AP=class{constructor(r=[]){this.attributes=r}getAttributes(){return this.attributes}setAttribute(r,e){let t=this.attributes.find(s=>s[0]===r);return t?t[1]=e:this.attributes.push([r,e]),this}getAttributeValue(r){let e=this.attributes.find(t=>t[0]===r);if(e)return e[1]}get attributesKeys(){return this.attributes.map(r=>r[0])}clear(){this.attributes=[]}},GR=TP.reduce((r,e)=>(r[e[0]]=e,r),{}),Wq=TP.reduce((r,e)=>(r[e[1]]=e,r),{});Js=class extends AP{constructor(r,e,t=EP(),s=[]){super(s),this.messageMethod=r,this.messageClass=e,this.transactionId=t}toJSON(){return this.json}get json(){return{messageMethod:w_[this.messageMethod],messageClass:v_[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let r=Buffer.from([]);for(let t of this.attributesKeys){let s=this.getAttributeValue(t),[n,,i]=Wq[t],o=i.name===Cx.name?i(s,this.transactionId):i(s),a=o.length,c=4*Math.floor((a+3)/4)-a,d=Buffer.alloc(4);d.writeUInt16BE(n,0),d.writeUInt16BE(a,2),r=Buffer.concat([r,d,o,Buffer.alloc(c,0)])}let e=Buffer.alloc(8);return e.writeUInt16BE(this.messageMethod|this.messageClass,0),e.writeUInt16BE(r.length,2),e.writeUInt32BE(uy,4),Buffer.concat([e,this.transactionId,r])}addMessageIntegrity(r){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(r)),this}messageIntegrity(r){let e=C_(this.bytes,this.bytes.length-ao+x_);return Buffer.from((0,S_.createHmac)("sha1",r).update(e).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",IP(this.bytes))}},C_=(r,e)=>{let t=Buffer.alloc(r.length);return r.copy(t,0,0,2),t.writeUInt16BE(e,2),r.copy(t,4,4),t};RP=class extends Error{response;addr},kP=class extends RP{constructor(r,e){super(),this.response=r,this.addr=e}get str(){let r="STUN transaction failed",e=this.response.getAttributeValue("ERROR-CODE");if(e){let[t,s]=e;r+=` (${t} - ${s})`}return r}},Xq=class extends RP{get str(){return"STUN transaction timed out"}},jS=ut("werift-ice:packages/ice/src/stun/transaction.ts"),T_=class{constructor(r,e,t,s){this.request=r,this.addr=e,this.protocol=t,this.retransmissions=s,this.triesMax=1+(this.retransmissions?this.retransmissions:SP)}timeoutDelay=_P;ended=!1;tries=0;triesMax;onResponse=new Ce;responseReceived=(r,e)=>{this.onResponse.length>0&&(r.messageClass===256?(this.onResponse.execute(r,e),this.onResponse.complete()):this.onResponse.error(new kP(r,e)))};run=async()=>{try{return this.retry().catch(e=>{jS("retry failed",e)}),await this.onResponse.asPromise()}catch(r){throw r}finally{this.cancel()}};retry=async()=>{for(;this.tries<this.triesMax&&!this.ended&&(this.protocol.sendStun(this.request,this.addr).catch(r=>{jS("send stun failed",r)}),await new Promise(r=>setTimeout(r,this.timeoutDelay)),!this.ended);)this.timeoutDelay*=2,this.tries++;this.tries>=this.triesMax&&(jS(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new Xq))};cancel(){this.ended=!0}},XR=ut("werift-ice : packages/ice/src/stun/protocol.ts"),Vx=class PP{static type="stun";type=PP.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new Ce;onDataReceived=new Ce;constructor(){}connectionMade=async(e,t,s)=>{e?this.transport=await jx.init("udp4",{portRange:t,interfaceAddresses:s}):this.transport=await jx.init("udp6",{portRange:t,interfaceAddresses:s}),this.transport.onData=(n,i)=>{this.datagramReceived(n,i)}};datagramReceived(e,t){try{let s=fy(e);if(!s){this.localCandidate&&this.onDataReceived.execute(e);return}(s.messageClass===256||s.messageClass===272)&&this.transactionsKeys.includes(s.transactionIdHex)?this.transactions[s.transactionIdHex].responseReceived(s,t):s.messageClass===0&&this.onRequestReceived.execute(s,t,e)}catch(s){XR("datagramReceived error",s)}}getExtraInfo(){let{address:e,port:t}=this.transport.address;return[e,t]}async sendStun(e,t){if(this.transport.closed)return;let s=e.bytes;await this.transport.send(s,t).catch(()=>{XR("sendStun failed",t,e)})}async sendData(e,t){this.transport.closed||await this.transport.send(e,t)}async request(e,t,s,n){if(this.transactionsKeys.includes(e.transactionIdHex))throw new Error("already request ed");s&&(e.addMessageIntegrity(s),e.addFingerprint());let i=new T_(e,t,this,n);this.transactions[e.transactionIdHex]=i;try{return await i.run()}catch(o){throw o}finally{delete this.transactions[e.transactionIdHex]}}async close(){Object.values(this.transactions).forEach(e=>{e.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},vs=ut("werift-ice:packages/ice/src/turn/protocol.ts"),Yq=500,Qq=600,Jq=285212672,OP=class LP{constructor(e){this.turn=e,e.onData.subscribe((t,s)=>{this.handleStunMessage(t,s)}).disposer(this.disposer)}static type="turn";type=LP.type;localCandidate;disposer=new Bk;onRequestReceived=new Ce;onDataReceived=new Ce;handleStunMessage=(e,t)=>{try{let s=fy(e);if(!s){this.onDataReceived.execute(e);return}if(s.messageClass===256||s.messageClass===272){let n=this.turn.transactions[s.transactionIdHex];n&&n.responseReceived(s,t)}else s.messageClass===0&&this.onRequestReceived.execute(s,t,e)}catch(s){vs("datagramReceived error",s)}};async request(e,t,s){if(this.turn.transactions[e.transactionIdHex])throw new Error("exist");s&&(e.addMessageIntegrity(s),e.addFingerprint());let n=new T_(e,t,this);this.turn.transactions[e.transactionIdHex]=n;try{return await n.run()}catch(i){throw i}finally{delete this.turn.transactions[e.transactionIdHex]}}async connectionMade(){}async sendData(e,t){await this.turn.sendData(e,t)}async sendStun(e,t){await this.turn.sendData(e.bytes,t)}async close(){return this.disposer.dispose(),this.turn.close()}},DP=class MP{constructor(e,t,s,n,i,o={}){this.server=e,this.username=t,this.password=s,this.lifetime=n,this.transport=i,this.options=o,this.channelRefreshTime=this.options.channelRefreshTime??Yq}static type="turn";type=MP.type;onData=new Ce;onRequestReceived=new Ce;onDataReceived=new Ce;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=(n,i)=>{this.dataReceived(n,i)};let e=new Js(3,0);e.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",Jq);let[t]=await this.requestWithRetry(e,this.server).catch(n=>{throw vs("connect error",n),n});this.relayedAddress=t.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=t.getAttributeValue("XOR-MAPPED-ADDRESS");let s=t.getAttributeValue("LIFETIME");vs("connect",this.relayedAddress,this.mappedAddress,{exp:s}),this.refresh(s)}handleChannelData(e){let[t,s]=y2.jspack.Unpack("!HH",e.slice(0,4)),n=this.addrByChannel[t];if(n){let i=e.subarray(4,4+s);this.onData.execute(i,n)}}handleSTUNMessage(e,t){try{let s=fy(e);if(!s)throw new Error("not stun message");if(s.messageClass===256||s.messageClass===272){let n=this.transactions[s.transactionIdHex];n&&n.responseReceived(s,t)}else s.messageClass===0&&this.onData.execute(e,t);if(s.getAttributeValue("DATA")){let n=s.getAttributeValue("DATA");this.onData.execute(n,t)}}catch{vs("parse error",e.toString())}}dataReceived(e,t){let s=(n,i)=>{n.length>=4&&YR(n)?this.handleChannelData(n):this.handleSTUNMessage(n,i)};if(this.transport.type==="tcp")for(this.tcpBuffer=Buffer.concat([this.tcpBuffer,e]);this.tcpBuffer.length>=4;){let[,n]=is(this.tcpBuffer.subarray(0,4),[2,2]);n+=x2(n);let i=YR(this.tcpBuffer)?4+n:20+n;if(this.tcpBuffer.length<i)break;s(this.tcpBuffer.subarray(0,i),t),this.tcpBuffer=this.tcpBuffer.subarray(i)}else s(e,t)}async send(e,t){if(!this.transport.closed)if(this.transport.type==="tcp"){let s=x2(e.length);await this.transport.send(s>0?Buffer.concat([e,Buffer.alloc(s)]):e,t)}else await this.transport.send(e,t)}async createPermission(e){let t=new Js(8,0);t.setAttribute("XOR-PEER-ADDRESS",e).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(t,this.server).catch(s=>{throw s})}refresh=e=>{this.refreshHandle=g2(async(t,s,n)=>{let i=!0;for(n.once(()=>{i=!1});i;){let o=.8333333333333334*e*1e3;vs("refresh delay",o,{exp:e}),await(0,NP.setTimeout)(o);let a=new Js(4,0);a.setAttribute("LIFETIME",e);try{let[c]=await this.requestWithRetry(a,this.server);e=c.getAttributeValue("LIFETIME"),vs("refresh",{exp:e})}catch(c){vs("refresh error",c)}}})};async request(e,t){if(this.transactions[e.transactionIdHex])throw new Error("exist");this.integrityKey&&e.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let s=new T_(e,t,this);this.transactions[e.transactionIdHex]=s;try{return await s.run()}catch(n){throw n}finally{delete this.transactions[e.transactionIdHex]}}async requestWithRetry(e,t){let s,n;try{[s,n]=await this.request(e,t)}catch(i){if(!(i instanceof kP))throw vs("requestWithRetry error",i),i;this.server=i.addr;let[o]=i.response.getAttributeValue("ERROR-CODE"),a=i.response.getAttributeValue("NONCE"),c=i.response.getAttributeValue("REALM");if((o===401&&c||o===438&&this.realm)&&a)vs("retry with nonce",o),this.nonce=a,o===401&&(this.realm=c),this.integrityKey=jP(this.username,this.realm,this.password),e.transactionId=EP(),[s,n]=await this.request(e,this.server);else throw i}return[s,n]}async sendData(e,t){let s=await this.getChannel(t).catch(i=>new Error("channelBind error"));if(s instanceof Error){await this.getPermission(t);let i=new Js(6,16).setAttribute("DATA",e).setAttribute("XOR-PEER-ADDRESS",t);await this.sendStun(i,this.server);return}let n=y2.jspack.Pack("!HH",[s.number,e.length]);await this.send(Buffer.concat([Buffer.from(n),e]),this.server)}async getPermission(e){await this.creatingPermission,this.permissionByAddr[e.join(":")]||(this.creatingPermission=this.createPermission(e),this.permissionByAddr[e.join(":")]=!0,await this.creatingPermission.catch(s=>{throw vs("createPermission error",s),s}))}async getChannel(e){this.channelBinding&&await this.channelBinding;let t=this.channelByAddr[e.join(":")];return t?this.channelRefreshAt<$u(Date.now()/1e3)&&(this.channelBinding=this.channelBind(t.number,e),this.channelRefreshAt=$u(Date.now()/1e3)+this.channelRefreshTime,await this.channelBinding.catch(s=>{throw vs("channelBind error",s),s}),this.channelBinding=void 0,vs("channelBind refresh",t)):(this.channelByAddr[e.join(":")]={number:this.channelNumber++,address:e},t=this.channelByAddr[e.join(":")],this.addrByChannel[t.number]=e,this.channelBinding=this.channelBind(t.number,e),await this.channelBinding.catch(s=>{throw vs("channelBind error",s),s}),this.channelRefreshAt=$u(Date.now()/1e3)+this.channelRefreshTime,this.channelBinding=void 0,vs("channelBind",t)),t}async channelBind(e,t){let s=new Js(9,0);s.setAttribute("CHANNEL-NUMBER",e).setAttribute("XOR-PEER-ADDRESS",t);let[n]=await this.requestWithRetry(s,this.server);if(n.messageMethod!==9)throw new Error("should be CHANNEL_BIND")}async sendStun(e,t){await this.send(e.bytes,t)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};va=class FP{constructor(e,t,s,n,i,o,a,c,d,u,l,h){this.foundation=e,this.component=t,this.transport=s,this.priority=n,this.host=i,this.port=o,this.type=a,this.relatedAddress=c,this.relatedPort=d,this.tcptype=u,this.generation=l,this.ufrag=h}static fromSdp(e){let t=e.split(" ");if(t.length<8)throw new Error("SDP does not have enough properties");let s={foundation:t[0],component:Number(t[1]),transport:t[2],priority:Number(t[3]),host:t[4],port:Number(t[5]),type:t[7]};for(let l=8,h=t.length-1;l<h;l+=2)t[l]==="raddr"?s.related_address=t[l+1]:t[l]==="rport"?s.related_port=Number(t[l+1]):t[l]==="tcptype"?s.tcptype=t[l+1]:t[l]==="generation"?s.generation=Number(t[l+1]):t[l]==="ufrag"&&(s.ufrag=t[l+1]);let{foundation:n,component:i,transport:o,priority:a,host:c,port:d,type:u}=s;return new FP(n,i,o,a,c,d,u,s.related_address,s.related_port,s.tcptype,s.generation,s.ufrag)}canPairWith(e){let t=(0,v2.isIPv4)(this.host),s=(0,v2.isIPv4)(e.host);return this.component===e.component&&this.transport.toLowerCase()===e.transport.toLowerCase()&&t===s}toSdp(){let e=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;return this.relatedAddress&&(e+=` raddr ${this.relatedAddress}`),this.relatedPort!=null&&(e+=` rport ${this.relatedPort}`),this.tcptype&&(e+=` tcptype ${this.tcptype}`),this.generation!=null&&(e+=` generation ${this.generation}`),this.ufrag!=null&&(e+=` ufrag ${this.ufrag}`),e}};Zq=class{cache=new Map;mdnsInstance=(0,zP.default)();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(r){return new Promise((e,t)=>{let s=()=>{this.mdnsInstance.removeListener("response",i),clearTimeout(n)},n=setTimeout(()=>{s(),t(new Error("No mDNS response"))},1e4),i=o=>{let a=o.answers?.[0];a?.type==="A"&&a.name===r&&(s(),e(a.data))};this.mdnsInstance.on("response",i),this.mdnsInstance.query(r,"A")})}close(){this.mdnsInstance.destroy()}},ez=ut("werift-ice : packages/ice/src/ice.ts : log"),_2=class{constructor(r,e,t){this.protocol=r,this.remoteCandidate=e,this.iceControlling=t}id=(0,VP.randomUUID)().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(r){this._state=r}get localCandidate(){if(!this.protocol.localCandidate)throw new 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 Kx(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},E2=1,dp=2,$P=5,C2=6,KP=(r=>(r[r.FROZEN=0]="FROZEN",r[r.WAITING=1]="WAITING",r[r.IN_PROGRESS=2]="IN_PROGRESS",r[r.SUCCEEDED=3]="SUCCEEDED",r[r.FAILED=4]="FAILED",r))(KP||{}),WP={useIpv4:!0,useIpv6:!0};tz=ut("werift-ice : packages/ice/src/utils.ts");sz=r=>{if(!r)return;let[e,t]=r.split(":");return[e,Number.parseInt(t)]},Ut=ut("werift-ice : packages/ice/src/ice.ts : log"),e7=class{constructor(r,e){this._iceControlling=r,this.options={...WP,...e};let{stunServer:t,turnServer:s}=this.options;this.stunServer=A2(t)??["stun.l.google.com",19302],this.turnServer=A2(s),this.restart(),Ut("new Connection",this.options)}localUsername=Wh(4);localPassword=Wh(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new fx((0,qP.randomBytes)(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new $R;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new Ce;stateChanged=new Ce;onIceCandidate=new Ce;get iceControlling(){return this._iceControlling}set iceControlling(r){if(!(this.generation>0||this.nominated)){this._iceControlling=r;for(let e of this.checkList)e.iceControlling=r}}async restart(){this.generation++,this.localUsername=Wh(4),this.localPassword=Wh(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 $R,this.earlyChecks=[],this.earlyChecksDone=!1,this.localCandidatesStart=!1;for(let r of this.protocols)r.localCandidate&&(r.localCandidate.generation=this.generation,r.localCandidate.ufrag=this.localUsername);this.queryConsentHandle?.resolve?.(),this.queryConsentHandle=void 0}resetNominatedPair(){Ut("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:r,usernameFragment:e,password:t}){Ut("setRemoteParams",{iceLite:r,usernameFragment:e,password:t}),this.remoteIsLite=r,this.remoteUsername=e,this.remotePassword=t}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let r=ZP(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:e}=this.options;if(e){let s=r.filter(n=>Object.values(e).includes(n));s.length&&(r=s)}this.options.additionalHostAddresses&&(r=Array.from(new Set([...this.options.additionalHostAddresses,...r])));let t=this.getCandidatePromises(r,5);await Promise.allSettled(t),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(r){this.localCandidates.push(r),this.onIceCandidate.execute(r)}ensureProtocol(r){r.onRequestReceived.subscribe((e,t,s)=>{if(e.messageMethod!==1){this.respondError(e,t,r,[400,"Bad Request"]);return}let n=e.getAttributeValue("USERNAME"),{remoteUsername:i}=QR(n),o=this.userHistory[i]??this.localPassword,{iceControlling:a}=this;if(a&&e.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=e.getAttributeValue("ICE-CONTROLLING")){this.respondError(e,t,r,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!a&&e.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<e.getAttributeValue("ICE-CONTROLLED"))this.respondError(e,t,r,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(e,t,r))return;let c=new Js(1,256,e.transactionId);c.setAttribute("XOR-MAPPED-ADDRESS",t).addMessageIntegrity(Buffer.from(o,"utf8")).addFingerprint(),r.sendStun(c,t).catch(d=>{Ut("sendStun error",d)}),this.checkList.length===0&&!this.earlyChecksDone?this.earlyChecks.push([e,t,r]):this.checkIncoming(e,t,r)}),r.onDataReceived.subscribe(e=>{try{let t=this.nominated;t&&t.protocol===r&&(t.packetsReceived++,t.bytesReceived+=e.length),this.onData.execute(e)}catch(t){Ut("dataReceived",t)}})}getCandidatePromises(r,e=5){let t=[];r=r.filter(c=>!this.protocols.find(d=>d.localIp===c));let s=r.map(async c=>{let d=new Vx;this.ensureProtocol(d);try{await d.connectionMade((0,w2.isIPv4)(c),this.options.portRange,this.options.interfaceAddresses),d.localIp=c,this.protocols.push(d),Ut("protocol",d.localIp);let u=[c,d.getExtraInfo()[1]];return d.localCandidate=new va($x("host","udp",u[0]),1,"udp",hp("host"),u[0],u[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(d),this.appendLocalCandidate(d.localCandidate),d}catch(u){Ut("error protocol STUN",u)}});t.push(...s.map(c=>c.then(d=>d?.localCandidate)));let{stunServer:n,turnServer:i}=this;if(n){let c=s.map(async d=>{let u=await d;return u?new Promise(async(h,x)=>{let v=setTimeout(x,e*1e3);if(u.localCandidate?.host&&(0,w2.isIPv4)(u.localCandidate?.host)){let S=await XP(u,n).catch(C=>{Ut("error",C)});S&&this.appendLocalCandidate(S),clearTimeout(v),h(S)}else clearTimeout(v),h()}).catch(h=>{Ut("query STUN server",h)}):void 0});t.push(...c)}let{turnUsername:o,turnPassword:a}=this.options;if(i&&o&&a){let c=(async()=>{let d=await b2({address:i,username:o,password:a},{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 b2({address:i,username:o,password:a},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});throw h});this.ensureProtocol(d),this.protocols.push(d);let u=d.turn.relayedAddress,l=d.turn.mappedAddress;return Ut("turn candidateAddress",u),d.localCandidate=new va($x("relay","udp",u[0]),1,"udp",hp("relay"),u[0],u[1],"relay",l[0],l[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(d.localCandidate),d.localCandidate})().catch(d=>{Ut("query TURN server",d)});this.options.forceTurn&&(t=[]),t.push(c)}return t}async connect(){if(Ut("start connect ice"),!this.localCandidatesEnd&&!this.localCandidatesStart)throw new Error("Local candidates gathering was not performed");if(!this.remoteUsername||!this.remotePassword)throw new Error("Remote username or password is missing");for(let e of this.remoteCandidates)this.pairRemoteCandidate(e);this.sortCheckList(),this.unfreezeInitial(),Ut("earlyChecks",this.localPassword,this.earlyChecks.length);for(let e of this.earlyChecks)this.checkIncoming(...e);for(this.earlyChecks=[],this.earlyChecksDone=!0;!(this.state==="closed"||!this.schedulingChecks());)await S2.setTimeout(20);let r=dp;for(;this.checkList.length>0&&r===dp;)r=await this.checkListState.get(),Ut("checkListState",r);for(let e of this.checkList)e.handle?.resolve?.();if(r!==E2)throw new Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[r]=this.checkList;if(!r)return;r.state===0&&r.updateState(1);let e=new Set(r.localCandidate.foundation);for(let t of this.checkList)t.component===r.component&&!e.has(t.localCandidate.foundation)&&t.state===0&&(t.updateState(1),e.add(t.localCandidate.foundation))}schedulingChecks(){{let r=this.checkList.filter(e=>!(this.options.forceTurn&&e.protocol.type===Vx.type)).find(e=>e.state===1);if(r)return r.handle=this.checkStart(r),!0}{let r=this.checkList.find(e=>e.state===0);if(r)return r.handle=this.checkStart(r),!0}return this.remoteCandidatesEnd?!1:!this.checkListDone}queryConsent=()=>{this.queryConsentHandle&&this.queryConsentHandle.resolve(),this.queryConsentHandle=g2(async(r,e,t)=>{let s=0,n=!1,i=new AbortController;t.once(()=>{n=!0,s+=C2,i.abort(),this.queryConsentHandle=void 0});let{localUsername:o,remoteUsername:a,iceControlling:c}=this;try{for(;this.state!=="closed"&&!n;){await S2.setTimeout($P*(.8+.4*Math.random())*1e3,void 0,{signal:i.signal});let d=this.nominated;if(!d||n)break;let u=this.buildRequest({nominate:!1,localUsername:o,remoteUsername:a,iceControlling:c});try{await d.protocol.request(u,d.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),s=0,this.state==="disconnected"&&this.setState("connected")}catch{if(d.id===this.nominated?.id){Ut("no stun response"),s++,this.setState("disconnected");break}}if(s>=C2){Ut("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch{}})};async close(){this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone&&this.checkListState.put(new Promise(r=>{r(dp)})),this.nominated=void 0;for(let r of this.protocols)r.close&&await r.close();this.protocols=[],this.localCandidates=[],this.lookup?.close?.(),this.lookup=void 0}setState(r){this.state=r,this.stateChanged.execute(r)}async addRemoteCandidate(r){if(!r){this.remoteCandidatesEnd=!0;return}if(r.host.includes(".local"))try{this.lookup||(this.lookup=new Zq);let e=await this.lookup.lookup(r.host);r.host=e}catch{return}try{T2(r)}catch{return}Ut("addRemoteCandidate",r),this._remoteCandidates.push(r),this.pairRemoteCandidate(r),this.sortCheckList()}send=async r=>{let e=this.nominated;if(e)await e.protocol.sendData(r,e.remoteAddr),e.packetsSent++,e.bytesSent+=r.length;else return};getDefaultCandidate(){let r=this.localCandidates.sort((t,s)=>t.priority-s.priority),[e]=r;return e}set remoteCandidates(r){if(this.remoteCandidatesEnd)throw new Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let e of r){try{T2(e)}catch{continue}this._remoteCandidates.push(e)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){GP(this.checkList,this.iceControlling)}findPair(r,e){return this.checkList.find(s=>(0,Tx.default)(s.protocol,r)&&(0,Tx.default)(s.remoteCandidate,e))}switchRole(r){Ut("switch role",r),this.iceControlling=r,this.sortCheckList()}checkComplete(r){if(r.handle=void 0,r.state===3){if(r.nominated&&(r.remoteCandidate.generation==null||r.remoteCandidate.generation===this.generation)&&this.nominated==null){Ut("nominated",r.toJSON()),this.nominated=r,this.nominating=!1;for(let e of this.checkList)e.component===r.component&&[1,0].includes(e.state)&&e.updateState(4)}if(this.nominated){this.checkListDone||(Ut("ICE completed"),this.checkListState.put(new Promise(e=>e(E2))),this.checkListDone=!0);return}Ut("not completed",r.toJSON());for(let e of this.checkList)e.localCandidate.foundation===r.localCandidate.foundation&&e.state===0&&e.updateState(1)}{let e=[3,4];if(this.checkList.find(({state:t})=>!e.includes(t)))return}!this.iceControlling&&this.checkList.find(({state:t})=>t===3)||this.checkListDone||(Ut("ICE failed"),this.checkListState.put(new Promise(e=>{e(dp)})))}checkStart=r=>g2(async e=>{Ut("check start",r.toJSON()),r.updateState(2);let t={},{remotePassword:s,remoteUsername:n,generation:i}=this,o=r.localCandidate.ufrag??this.localUsername,a=this.iceControlling&&!this.remoteIsLite,c=this.buildRequest({nominate:a,localUsername:o,remoteUsername:n,iceControlling:this.iceControlling}),d=performance.now();try{let[u,l]=await r.protocol.request(c,r.remoteAddr,Buffer.from(s,"utf8"),4),x=(performance.now()-d)/1e3;r.rtt=x,r.totalRoundTripTime+=x,r.roundTripTimeMeasurements++,Ut("response received",c.toJSON(),u.toJSON(),l,{localUsername:o,remoteUsername:n,remotePassword:s,generation:i,rtt:x}),t.response=u,t.addr=l}catch(u){let l=u;if(Ut("failure case",c.toJSON(),l.response?JSON.stringify(l.response.toJSON(),null,2):u,{localUsername:o,remoteUsername:n,remotePassword:s,generation:i},r.remoteAddr),l.response?.getAttributeValue("ERROR-CODE")[0]===487){c.attributesKeys.includes("ICE-CONTROLLED")?this.switchRole(!0):c.attributesKeys.includes("ICE-CONTROLLING")&&this.switchRole(!1),await this.checkStart(r).awaitable,e();return}if(l.response?.getAttributeValue("ERROR-CODE")[0]===401){Ut("retry 401",r.toJSON()),await this.checkStart(r).awaitable,e();return}else{Ut("checkStart CandidatePairState.FAILED",r.toJSON()),r.updateState(4),this.checkComplete(r),e();return}}if(!(0,Tx.default)(t.addr,r.remoteAddr)){r.updateState(4),this.checkComplete(r),e();return}if(a||r.remoteNominated)r.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let u=this.buildRequest({nominate:!0,localUsername:o,remoteUsername:n,iceControlling:this.iceControlling});try{await r.protocol.request(u,r.remoteAddr,Buffer.from(this.remotePassword,"utf8"))}catch{r.updateState(4),this.checkComplete(r);return}r.nominated=!0}r.updateState(3),this.checkComplete(r),e()});addPair(r){this.checkList.push(r),this.sortCheckList()}checkIncoming(r,e,t){let s=r.getAttributeValue("USERNAME"),{remoteUsername:n}=QR(s),i,[o,a]=e;for(let d of this.remoteCandidates)if(d.host===o&&d.port===a){i=d;break}i||(i=new va(Wh(10),1,"udp",r.getAttributeValue("PRIORITY"),o,a,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(i));let c=this.findPair(t,i);c||(c=new _2(t,i,this.iceControlling),c.updateState(1),this.addPair(c)),c.localCandidate.ufrag=n,Ut("Triggered Checks",r.toJSON(),c.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(c.state)&&(c.handle=this.checkStart(c)),r.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling&&(c.remoteNominated=!0,c.state===3&&(c.nominated=!0,this.checkComplete(c)))}tryPair(r,e){if(r.localCandidate?.canPairWith(e)&&!this.findPair(r,e)){let t=new _2(r,e,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(t))return;t.updateState(1),this.addPair(t)}}pairLocalProtocol(r){for(let e of this.remoteCandidates)this.tryPair(r,e)}pairRemoteCandidate=r=>{for(let e of this.protocols)this.tryPair(e,r)};buildRequest({nominate:r,remoteUsername:e,localUsername:t,iceControlling:s}){let n=nz({remoteUsername:e,localUsername:t}),i=new Js(1,0);return i.setAttribute("USERNAME",n).setAttribute("PRIORITY",hp("prflx")),s?(i.setAttribute("ICE-CONTROLLING",this.tieBreaker),r&&i.setAttribute("USE-CANDIDATE",null)):i.setAttribute("ICE-CONTROLLED",this.tieBreaker),i}respondError(r,e,t,s){let n=new Js(r.messageMethod,272,r.transactionId);n.setAttribute("ERROR-CODE",s).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),t.sendStun(n,e).catch(i=>{Ut("sendStun error",i)})}},nz=({remoteUsername:r,localUsername:e})=>`${r}:${e}`,QR=r=>{let[e,t]=r.split(":");return{remoteUsername:e,localUsername:t}};A_=class extends t7.EventEmitter{addEventListener=(r,e)=>{this.addListener(r,e)};removeEventListener=(r,e)=>{this.removeListener(r,e)}},iz=ut("werift:packages/webrtc/src/dataChannel.ts");I_=class extends A_{constructor(r,e,t=!0){if(super(),this.sctp=r,this.parameters=e,this.sendOpen=t,this.id=this.parameters.id,e.negotiated){if(this.id==null||this.id<0||this.id>65534)throw new Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else t&&(this.sendOpen=!1,this.sctp.dataChannelOpen(this))}stateChange=new Ce;stateChanged=new Ce;onMessage=new Ce;error=new Ce;bufferedAmountLow=new Ce;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(r){if(r<0||r>4294967295)throw new Error("bufferedAmountLowThreshold must be in range 0 - 4294967295");this._bufferedAmountLowThreshold=r}setId(r){this.id=r}setReadyState(r){if(r!==this.readyState){switch(this.readyState=r,this.stateChange.execute(r),this.stateChanged.execute(r),r){case"open":this.onopen&&this.onopen(),this.emit("open");break;case"closed":this.onclose&&this.onclose(),this.emit("close");break;case"closing":this.onclosing&&this.onclosing();break}iz("change state",r)}}addBufferedAmount(r){let e=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+r<=this.bufferedAmountLowThreshold;this.bufferedAmount+=r,e&&(this.bufferedAmountLow.execute(),this.emit("bufferedamountlow"))}send(r){let e=this.sctp.datachannelSend(this,r);this.messagesSent++,this.bytesSent+=e}close(){this.sctp.dataChannelClose(this)}},R_=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(r={}){Object.assign(this,r)}},oz=()=>({type:"ccm",parameter:"fir"}),qp=()=>({type:"nack"}),of=()=>({type:"nack",parameter:"pli"}),zp=()=>({type:"goog-remb"}),s7=()=>({type:"transport-cc"}),wa=class{payloadType;mimeType;clockRate;channels;rtcpFeedback=[];parameters;direction="all";constructor(r){Object.assign(this,r)}get name(){return this.mimeType.split("/")[1]}get contentType(){return this.mimeType.split("/")[0]}get str(){let r=`${this.name}/${this.clockRate}`;return this.channels===2&&(r+="/2"),r}},mi=class{id;uri;constructor(r){Object.assign(this,r)}},az=class{cname;mux=!1;ssrc;constructor(r={}){Object.assign(this,r)}},n7=class{type;parameter;constructor(r={}){Object.assign(this,r)}},i7=class{ssrc;constructor(r={}){Object.assign(this,r)}},o7=class{ssrc;payloadType;rtx;constructor(r){Object.assign(this,r)}},k_=class{rid;direction;constructor(r){Object.assign(this,r)}},a7=(r={})=>new wa({mimeType:"video/h264",clockRate:9e4,rtcpFeedback:[qp(),of(),zp()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...r}),P_=(r={})=>new wa({mimeType:"video/VP8",clockRate:9e4,rtcpFeedback:[qp(),of(),zp()],...r}),c7=(r={})=>new wa({mimeType:"video/VP9",clockRate:9e4,rtcpFeedback:[qp(),of(),zp()],...r}),d7=(r={})=>new wa({mimeType:"video/AV1X",clockRate:9e4,rtcpFeedback:[qp(),of(),zp()],...r}),B_=(r={})=>new wa({mimeType:"audio/OPUS",clockRate:48e3,channels:2,...r}),N_=(r={})=>new wa({mimeType:"audio/PCMU",clockRate:8e3,channels:1,payloadType:0,...r}),O_=[d7(),c7(),P_(),a7(),B_(),N_()].map(r=>r.mimeType),cz=O_.filter(r=>r.toLowerCase().startsWith("video/")),dz=O_.filter(r=>r.toLowerCase().startsWith("audio/"));ZR=2,ek=3,yz=0,gx=50,tk=51,rk=53,bz=56,vz=57,wz="0.0.0.0",sk=9,k2={auto:"actpass",client:"active",server:"passive"},nk=Object.keys(k2).reduce((r,e)=>{let t=k2[e];return r[t]=e,r},{}),Sz=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],p7=["cname","msid","mslabel","label"],ik={SRTP_AES128_CM_HMAC_SHA1_80:sf,SRTP_AEAD_AES_128_GCM:id},Ix=["sendonly","sendrecv"],_z=["sendrecv","recvonly"],m7=class extends Map{constructor(r){if(super(),r)for(let e of r)this.set(e.id,e)}};g7=class{constructor(r,e,t,s,n){this.kind=r,this.receiver=t,this.sender=s,this._direction=n,e&&this.setDtlsTransport(e)}id=(0,h7.randomUUID)().toString();onTrack=new Ce;mid;mLineIndex;usedForSender=!1;_currentDirection;offerDirection;_codecs=[];set codecs(r){this._codecs=r}get codecs(){return this._codecs}headerExtensions=[];options={};stopping=!1;stopped=!1;get dtlsTransport(){return this.receiver.dtlsTransport}get direction(){return this._direction}setDirection(r){this._direction=r,Ix.includes(this._currentDirection??"")&&(this.usedForSender=!0)}get currentDirection(){return this._currentDirection}setCurrentDirection(r){this._currentDirection=r}setDtlsTransport(r){this.receiver.setDtlsTransport(r),this.sender.setDtlsTransport(r)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(r){this.receiver.addTrack(r)&&this.onTrack.execute(r,this)}stop(){this.stopping||(this.stopping=!0)}getPayloadType(r){return this.codecs.find(e=>e.mimeType.toLowerCase().includes(r.toLowerCase()))?.payloadType}getCodecStats(){let r=Sa(),e=[];if(!this.dtlsTransport)return e;let t=qt("transport",this.dtlsTransport.id);for(let s of this.codecs){let n={type:"codec",id:qt("codec",s.payloadType,t),timestamp:r,payloadType:s.payloadType,transportId:t,mimeType:s.mimeType,clockRate:s.clockRate,channels:s.channels,sdpFmtpLine:s.parameters};e.push(n)}return e}},x7="inactive",L_="sendonly",D_="recvonly",M_="sendrecv",Rx=[x7,L_,D_,M_],kp=class extends A_{uuid=(0,U_.randomUUID)().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new Ce;onReceiveRtcp=new Ce;onSourceChanged=new Ce;stopped=!1;muted=!0;constructor(r){super(),Object.assign(this,r),this.onReceiveRtp.subscribe(e=>{this.muted=!1,this.header=e.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=r=>{if(this.remote)throw new Error("this is remoteTrack");if(this.stopped)return;let e=Buffer.isBuffer(r)?po.deSerialize(r):r;e.header.payloadType=this.codec?.payloadType??e.header.payloadType,this.onReceiveRtp.execute(e)}},y7=class{id;tracks=[];constructor(r){Array.isArray(r)?this.tracks=r:Object.assign(this,r),this.id??=(0,U_.randomUUID)().toString()}addTrack(r){r.streamId=this.id,this.tracks.push(r)}getTracks(){return this.tracks}getAudioTracks(){return this.tracks.filter(r=>r.kind==="audio")}getVideoTracks(){return this.tracks.filter(r=>r.kind==="video")}},Ez=ut("werift:packages/webrtc/src/utils.ts");Cz={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"};F_=(r,e)=>Rx[Rx.indexOf(r)&Rx.indexOf(e)];q_=Date.now,Az=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,w7=()=>Az+process.hrtime.bigint()/1000n,Pp=()=>Date.now()/1e3,S7=()=>{let e=(R2.performance.timeOrigin+R2.performance.now()-Date.UTC(1900,0,1))/1e3,[t,s]=e.toString().split(".").map(Number);return er([4,4],[t,s]).readBigUInt64BE()},z_=r=>{let e=er([8],[r]),[,t,s]=is(e,[2,2,2,2]);return er([2,2],[t,s]).readUInt32BE()};Iz=bp.createSelfSignedCertificateWithKey,Rz=class{static async rtpSource({port:r,kind:e,cb:t}){r??=await n_();let s=new kp({kind:e}),n=(0,l7.createSocket)("udp4");n.bind(r);let i=a=>{t&&(a=t(a)),s.writeRtp(a)};return n.addListener("message",i),[s,r,()=>{n.removeListener("message",i);try{n.close()}catch{}}]}},E7=(r,e)=>{if(!r||typeof r!="object")return e!==null&&typeof e=="object"?e:r;if(!e||typeof e!="object")return e??r;for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let s=e[t];s!=null&&(r[t]=s)}return r},kz=ut("werift:packages/webrtc/src/media/receiver/nack.ts"),ok=150,Pz=class{constructor(r){this.receiver=r}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new Ce;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(r){return this._lost[r]}setLost(r,e){this._lost[r]=e,!(this.nackLoop||this.closed)&&(this.nackLoop=setInterval(async()=>{try{await this.sendNack(),Object.keys(this._lost).length||(clearInterval(this.nackLoop),this.nackLoop=void 0)}catch(t){kz("failed to send nack",t)}},5))}removeLost(r){delete this._lost[r]}addPacket(r){let{sequenceNumber:e,ssrc:t}=r.header;if(this.mediaSourceSsrc=t,this.newEstSeqNum===0){this.newEstSeqNum=e;return}if(this.getLost(e)){this.removeLost(e);return}if(e===Ur(this.newEstSeqNum,1))this.newEstSeqNum=e;else if(e>Ur(this.newEstSeqNum,1)){for(let s=Ur(this.newEstSeqNum,1);s<e;s=Ur(s,1))this.setLost(s,1);this.newEstSeqNum=e,this.pruneLost()}}pruneLost(){this.lostSeqNumbers.length>ok&&(this._lost=Object.entries(this._lost).slice(-ok).reduce((r,[e,t])=>(r[e]=t,r),{}))}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach(r=>{if(this._lost[r]++>this.retryCount)return this.removeLost(r),r})}sendNack=()=>new Promise((r,e)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let t=new Cp({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),s=new ed({feedback:t});this.receiver.dtlsTransport.sendRtcp([s]).then(r).catch(e),this.updateRetryCount(),this.onPacketLost.execute(t)}})},Bz=ut("werift:packages/webrtc/media/receiver/receiverTwcc"),Nz=class{constructor(r,e,t){this.dtlsTransport=r,this.rtcpSsrc=e,this.mediaSourceSsrc=t,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(r){this.extensionInfo[r]={tsn:r,timestamp:w7()},Object.keys(this.extensionInfo).length>10&&this.sendTWCC()}async runTWCC(){for(;this.twccRunning;)this.sendTWCC(),await(0,C7.setTimeout)(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let r=Object.values(this.extensionInfo).sort((u,l)=>u.tsn-l.tsn),e=r[0].tsn,t=r.slice(-1)[0].tsn,s=[],n=r[0].tsn,i=Ur(t-e,1),o,a,c=[];for(let u=e;u<=t;u++){let l=this.extensionInfo[u]?.timestamp;if(l){this.lastTimestamp||(this.lastTimestamp=l),o||(o=this.lastTimestamp);let h=l-this.lastTimestamp;this.lastTimestamp=l;let x=new lp({delta:Number(h)});x.parseDelta(),c.push(x),a!=null&&a.status!==x.type&&(s.push(new Wu({packetStatus:a.status,runLength:u-a.minTSN})),a={minTSN:u,status:x.type}),u===t&&(a!=null?s.push(new Wu({packetStatus:a.status,runLength:u-a.minTSN+1})):s.push(new Wu({packetStatus:x.type,runLength:1}))),a==null&&(a={minTSN:u,status:x.type})}}if(!o)return;let d=new ed({feedback:new Tp({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:n,packetStatusCount:i,referenceTime:Rk(Math.floor(Number(o/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:c,packetChunks:s})});this.dtlsTransport.sendRtcp([d]).catch(u=>{Bz(u)}),this.extensionInfo={},this.fbPktCount=Ik(this.fbPktCount,1)}},Oz=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(r){this.clockRate=r}add(r,e=Date.now()/1e3){let t=this.max_seq==null||ey(r.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null&&(this.base_seq=r.header.sequenceNumber),t){let s=$u(e*this.clockRate);if(this.max_seq!=null&&r.header.sequenceNumber<this.max_seq&&(this.cycles+=65536),this.max_seq=r.header.sequenceNumber,r.header.timestamp!==this.last_timestamp&&this.packets_received>1){let n=Math.abs(s-(this.last_arrival??0)-(r.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=n-(this.jitter_q4+8>>4)}this.last_arrival=s,this.last_timestamp=r.header.timestamp}}get fraction_lost(){let r=this.packets_expected-this.expected_prior;this.expected_prior=this.packets_expected;let e=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let t=r-e;return r==0||t<=0?0:Math.floor((t<<8)/r)}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 r=this.packets_expected-this.packets_received;return r<0?0:r}},vn=ut("werift:packages/webrtc/src/transport/dtls.ts"),P2=class k7{constructor(e,t,s,n=[]){this.config=e,this.iceTransport=t,this.localCertificate=s,this.srtpProfiles=n,this.localCertificate??=k7.localCertificate}id=(0,I7.randomUUID)().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new Ce;onRtcp=new Ce;onRtp=new Ce;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new Xx(this.localCertificate?this.localCertificate.getFingerprints():[],this.role)}static async SetupCertificate(){return this.localCertificate?this.localCertificate:this.localCertificatePromise?this.localCertificatePromise:(this.localCertificatePromise=(async()=>{let{certPem:e,keyPem:t,signatureHash:s}=await bp.createSelfSignedCertificateWithKey({signature:pi.ecdsa_3,hash:yp.sha256_4},lo.secp256r1_23);return this.localCertificate=new V_(t,e,s),this.localCertificate})(),this.localCertificatePromise)}setRemoteParams(e){let t=Dz([...this.remoteParameters?.fingerprints??[],...e.fingerprints]),s=e.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:e.role;this.remoteParameters=new Xx(t,s)}async start(){if(this.state!=="new")throw new Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw new Error("remote fingerprint not exist");this.role==="auto"&&(this.iceTransport.role==="controlling"?this.role="server":this.role="client"),this.setState("connecting"),await new Promise(async(e,t)=>{this.role==="server"?this.dtls=new bP({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:ak(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0}):this.dtls=new m2({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:ak(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0}),this.dtls.onData.subscribe(s=>{this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random()||this.dataReceiver(s)}),this.dtls.onClose.subscribe(()=>{this.state!=="failed"&&this.setState("closed")}),this.dtls.onConnect.once(e),this.dtls.onError.once(s=>{this.setState("failed"),vn("dtls failed",s),t(s)}),this.dtls instanceof m2&&(await(0,R7.setTimeout)(100),this.dtls.connect().catch(s=>{this.setState("failed"),vn("dtls connect failed",s),t(s)}))});try{this.verifyRemoteCertificateFingerprint()}catch(e){throw this.setState("failed"),this.dtls?.close(),e}this.srtpProfiles.length>0&&this.startSrtp(),this.setState("connected"),vn("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw new Error("remote fingerprint not exist");let e=this.dtls?.remoteCertificate;if(!e)throw new Error("remote certificate not available");let t=this.remoteParameters.fingerprints.flatMap(({algorithm:a,value:c})=>{let d=H_(a);if(!d)return[];let u=Wx(c);if(!u)throw new Error("remote fingerprint value is empty");return[{normalizedAlgorithm:d,normalizedValue:u}]});if(t.length===0)throw new Error("no supported remote fingerprint algorithms");let s=Uz(t),n=t.filter(({normalizedAlgorithm:a})=>a===s),i=n.reduce((a,{normalizedAlgorithm:c})=>(a.has(c)||a.set(c,Wx(j_(e,c))),a),new Map);if(!n.some(({normalizedAlgorithm:a,normalizedValue:c})=>i.get(a)===c))throw new Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw new Error;let e=this.dtls.srtp.srtpProfile;if(!e)throw new Error("need srtpProfile");vn("selected SRTP Profile",e);let{localKey:t,localSalt:s,remoteKey:n,remoteSalt:i}=this.dtls.extractSessionKeys(h9(e),p9(e)),o={keys:{localMasterKey:t,localMasterSalt:s,remoteMasterKey:n,remoteMasterSalt:i},profile:e};this.srtp=new mP(o),this.srtcp=new pP(o)}startSrtp(){this.srtpStarted||(this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe(e=>{if(!(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())&&R9(e))if(this.bytesReceived+=e.length,this.packetsReceived++,z9(e)){let t;try{t=this.srtcp.decrypt(e)}catch(n){if(n instanceof rd){vn("dropping invalid SRTCP packet",n);return}throw n}let s;try{s=q9.deSerialize(t)}catch(n){vn("dropping malformed SRTCP packet",n);return}for(let n of s)try{this.onRtcp.execute(n)}catch(i){vn("RTCP error",i)}}else{let t;try{t=this.srtp.decrypt(e)}catch(n){if(n instanceof rd){vn("dropping invalid SRTP packet",n);return}throw n}let s;try{s=po.deSerialize(t)}catch(n){vn("dropping malformed SRTP packet",n);return}try{this.onRtp.execute(s)}catch(n){vn("RTP error",n)}}}))}sendData=async e=>{if(!(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())){if(!this.dtls)throw new Error("dtls not established");await this.dtls.send(e)}};async sendRtp(e,t){try{let s=this.srtp.encrypt(e,t);return this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random()||(this.bytesSent+=s.length,this.packetsSent++,await this.iceTransport.connection.send(s).catch(()=>{})),s.length}catch(s){return vn("failed to send",s),0}}async sendRtcp(e){let t=Buffer.concat(e.map(n=>n.serialize())),s=this.srtcp.encrypt(t);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return s.length;this.bytesSent+=s.length,this.packetsSent++,await this.iceTransport.connection.send(s).catch(()=>{})}setState(e){e!=this.state&&(this.state=e,this.onStateChange.execute(e))}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let e=Sa(),t=[],n={type:"transport",id:qt("transport",this.id),timestamp:e,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?qt("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?qt("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?qt("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(t.push(n),this.localCertificate){let o=this.localCertificate.getFingerprints();if(o.length>0){let a={type:"certificate",id:qt("certificate","local"),timestamp:e,fingerprint:o[0].value,fingerprintAlgorithm:o[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};t.push(a)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let o={type:"certificate",id:qt("certificate","remote"),timestamp:e,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};t.push(o)}let i=await this.iceTransport.getStats();return t.push(...i),t}},Lz=["new","connecting","connected","closed","failed"],V_=class{constructor(r,e,t){this.certPem=e,this.signatureHash=t;let s=Bp.Certificate.fromPEM(Buffer.from(e));this.publicKey=s.publicKey.toPEM(),this.privateKey=Bp.PrivateKey.fromPEM(Buffer.from(r)).toPEM()}publicKey;privateKey;getFingerprints(){return[new Gx("sha-256",j_(Bp.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},Gx=class{constructor(r,e){this.algorithm=r,this.value=e}},Xx=class{constructor(r=[],e){this.fingerprints=r,this.role=e}},Dz=r=>{let e=new Set;return r.filter(({algorithm:t,value:s})=>{let n=`${H_(t)??t.trim().toLowerCase()}:${Wx(s)}`;return e.has(n)?!1:(e.add(n),!0)})},Mz=["sha512","sha384","sha256","sha224","sha1"],Uz=r=>Mz.find(e=>r.some(({normalizedAlgorithm:t})=>t===e))??r[0].normalizedAlgorithm,jz=class{constructor(r){this.ice=r,r.onData.subscribe(e=>{b7(e)&&this.onData&&this.onData(e)})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=r=>this.ice.send(r);async close(){this.closed=!0,this.ice.close()}},ak=r=>new jz(r),ck=ut("werift:packages/webrtc/src/transport/ice.ts"),B7=class{constructor(r){this.iceGather=r,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe(e=>{this.setState(e)}),this.iceGather.onIceCandidate=e=>{this.onIceCandidate.execute(e)}}id=(0,P7.randomUUID)().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new Ce;onIceCandidate=new Ce;onNegotiationNeeded=new Ce;get role(){return this.connection.iceControlling?"controlling":"controlled"}get gatheringState(){return this.iceGather.gatheringState}get localCandidates(){return this.iceGather.localCandidates}get localParameters(){return this.iceGather.localParameters}setState(r){r!==this.state&&(this.state=r,this.onStateChange.execute(r))}gather(){return this.iceGather.gather()}addRemoteCandidate=r=>{if(!this.connection.remoteCandidatesEnd)return r?this.connection.addRemoteCandidate(O7(r)):this.connection.addRemoteCandidate(void 0)};setRemoteParams(r,e=!1){e&&(this.renominating=!0),this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==r.usernameFragment||this.connection.remotePassword!==r.password)&&(this.renominating?(ck("renomination",r),this.connection.resetNominatedPair(),this.renominating=!1):(ck("restart",r),this.restart())),this.connection.setRemoteParams(r)}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 new Error("RTCIceTransport is closed");if(!this.connection.remotePassword||!this.connection.remoteUsername)throw new Error("remoteParams missing");this.waitStart&&await this.waitStart.asPromise(),this.waitStart=new Ce,this.setState("checking");try{await this.connection.connect()}catch(r){throw this.setState("failed"),r}this.waitStart.execute(),this.waitStart.complete(),this.waitStart=void 0}async stop(){this.state!=="closed"&&(this.setState("closed"),await this.connection.close()),this.onStateChange.complete(),this.onIceCandidate.complete(),this.onNegotiationNeeded.complete()}async getStats(){let r=Sa(),e=[];for(let s of this.localCandidates){let n={type:"local-candidate",id:qt("local-candidate",s.foundation),timestamp:r,transportId:qt("transport",this.id),address:s.ip,port:s.port,protocol:s.protocol,candidateType:s.type,priority:s.priority,foundation:s.foundation};e.push(n)}for(let s of this.connection.remoteCandidates){let n=ef(s),i={type:"remote-candidate",id:qt("remote-candidate",n.foundation),timestamp:r,transportId:qt("transport",this.id),address:n.ip,port:n.port,protocol:n.protocol,candidateType:n.type,priority:n.priority,foundation:n.foundation};e.push(i)}let t=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter(s=>s.nominated),...this.connection.candidatePairs.filter(s=>!s.nominated)]:[];for(let s of t){let n={type:"candidate-pair",id:qt("candidate-pair",s.foundation),timestamp:r,transportId:qt("transport",this.id),localCandidateId:qt("local-candidate",s.localCandidate.foundation),remoteCandidateId:qt("remote-candidate",s.remoteCandidate.foundation),state:s.state,nominated:s.nominated,packetsSent:s.packetsSent,packetsReceived:s.packetsReceived,bytesSent:s.bytesSent,bytesReceived:s.bytesReceived,currentRoundTripTime:s.rtt};e.push(n)}return e}},Hz=["new","checking","connected","completed","disconnected","failed","closed"],Fz=["new","gathering","complete"],N7=class{constructor(r={}){this.options=r,this.connection=new e7(!1,this.options),this.connection.onIceCandidate.subscribe(e=>{this.onIceCandidate(ef(e))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new Ce;async gather(){this.gatheringState==="new"&&(this.setState("gathering"),await this.connection.gatherCandidates(),this.onIceCandidate(void 0),this.setState("complete"))}get localCandidates(){return this.connection.localCandidates.map(ef)}get localParameters(){return new K_({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(r){r!==this.gatheringState&&(this.gatheringState=r,this.onGatheringStateChange.execute(r))}};L7=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(r){Object.assign(this,r)}static fromSdp(r){let e=va.fromSdp(r);return ef(e).toJSON()}static isThis(r){if(typeof r?.candidate=="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},$_=class{constructor(r,e,t,s,n,i,o,a,c){this.component=r,this.foundation=e,this.ip=t,this.port=s,this.priority=n,this.protocol=i,this.type=o,this.generation=a,this.ufrag=c}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new L7({candidate:X_(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(r){try{if(!r.candidate)throw new Error("candidate is required");let e=Y_(r.candidate);return e.sdpMLineIndex=r.sdpMLineIndex??void 0,e.sdpMid=r.sdpMid??void 0,e}catch{}}},K_=class{iceLite=!1;usernameFragment;password;constructor(r={}){Object.assign(this,r)}},gi=class M7{constructor(e=0,t=Buffer.from("")){this.flags=e,this._body=t}get body(){return this._body}set body(e){this._body=e}static type=-1;get type(){return M7.type}get bytes(){if(!this.body)throw new Error;let e=Buffer.alloc(4);return e.writeUInt8(this.type,0),e.writeUInt8(this.flags,1),e.writeUInt16BE(this.body.length+4,2),Buffer.concat([e,this.body,...[...Array($p(this.body.length))].map(()=>Buffer.from("\0"))])}},W_=class extends gi{constructor(r=0,e){super(r,e),this.flags=r,e?(this.initiateTag=e.readUInt32BE(0),this.advertisedRwnd=e.readUInt32BE(4),this.outboundStreams=e.readUInt16BE(8),this.inboundStreams=e.readUInt16BE(10),this.initialTsn=e.readUInt32BE(12),this.params=nB(e.slice(16))):(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 r=Buffer.alloc(16);return r.writeUInt32BE(this.initiateTag,0),r.writeUInt32BE(this.advertisedRwnd,4),r.writeUInt16BE(this.outboundStreams,8),r.writeUInt16BE(this.inboundStreams,10),r.writeUInt32BE(this.initialTsn,12),Buffer.concat([r,sB(this.params)])}},Bx=class U7 extends W_{static type=1;get type(){return U7.type}},B2=class j7 extends W_{static type=2;get type(){return j7.type}},qz=class H7 extends W_{static type=130;get type(){return H7.type}},Nx=class F7 extends gi{constructor(e=0,t){if(super(e,t),this.flags=e,t){this.cumulativeTsn=t.readUInt32BE(0);let s=4;for(;s<t.length;)this.streams.push([t.readUInt16BE(s),t.readUInt16BE(s+2)]),s+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return F7.type}set body(e){}get body(){let e=Buffer.alloc(4);return e.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([e,...this.streams.map(([t,s])=>{let n=Buffer.alloc(4);return n.writeUInt16BE(t,0),n.writeUInt16BE(s,2),n})])}},Ox=class q7 extends gi{constructor(e=0,t){super(e,t),this.flags=e,t&&(this.tsn=t.readUInt32BE(0),this.streamId=t.readUInt16BE(4),this.streamSeqNum=t.readUInt16BE(6),this.protocol=t.readUInt32BE(8),this.userData=t.slice(12))}static type=0;get type(){return q7.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 e=16+this.userData.length,t=Buffer.alloc(16);t.writeUInt8(this.type,0),t.writeUInt8(this.flags,1),t.writeUInt16BE(e,2),t.writeUInt32BE(this.tsn,4),t.writeUInt16BE(this.streamId,8),t.writeUInt16BE(this.streamSeqNum,10),t.writeUInt32BE(this.protocol,12);let s=Buffer.concat([t,this.userData]);return e%4&&(s=Buffer.concat([s,...[...Array($p(e))].map(()=>Buffer.from("\0"))])),s}},N2=class z7 extends gi{static type=10;get type(){return z7.type}},O2=class V7 extends gi{static type=11;get type(){return V7.type}},Vp=class extends gi{constructor(r=0,e=void 0){super(r,e),this.flags=r,e&&(this.params=nB(e))}params=[];get body(){return sB(this.params)}},L2=class $7 extends Vp{static type=6;get type(){return $7.type}},Lx=class D2 extends Vp{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 D2.type}get descriptions(){return this.params.map(([e,t])=>({name:(Object.entries(D2.CODE).find(([,n])=>n===e)||[])[0],body:t}))}},M2=class K7 extends Vp{static type=4;get type(){return K7.type}},W7=class G7 extends Vp{static type=5;get type(){return G7.type}},U2=class X7 extends Vp{static type=130;get type(){return X7.type}},j2=class Y7 extends gi{constructor(e=0,t){if(super(e,t),this.flags=e,t){this.cumulativeTsn=t.readUInt32BE(0),this.advertisedRwnd=t.readUInt32BE(4);let s=t.readUInt16BE(8),n=t.readUInt16BE(10),i=12;[...Array(s)].forEach(()=>{this.gaps.push([t.readUInt16BE(i),t.readUInt16BE(i+2)]),i+=4}),[...Array(n)].forEach(()=>{this.duplicates.push(t.readUInt32BE(i)),i+=4})}}static type=3;get type(){return Y7.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let e=16+4*(this.gaps.length+this.duplicates.length),t=Buffer.alloc(16);t.writeUInt8(this.type,0),t.writeUInt8(this.flags,1),t.writeUInt16BE(e,2),t.writeUInt32BE(this.cumulativeTsn,4),t.writeUInt32BE(this.advertisedRwnd,8),t.writeUInt16BE(this.gaps.length,12),t.writeUInt16BE(this.duplicates.length,14);let s=Buffer.concat([t,...this.gaps.map(n=>{let i=Buffer.alloc(4);return i.writeUInt16BE(n[0],0),i.writeUInt16BE(n[1],2),i})]);return s=Buffer.concat([s,...this.duplicates.map(n=>{let i=Buffer.alloc(4);return i.writeUInt32BE(n,0),i})]),s}},Q7=class J7 extends gi{constructor(e=0,t){super(e,t),this.flags=e,t&&(this.cumulativeTsn=t.readUInt32BE(0))}static type=7;get type(){return J7.type}cumulativeTsn=0;get body(){let e=Buffer.alloc(4);return e.writeUInt32BE(this.cumulativeTsn,0),e}},Z7=class eB extends gi{static type=8;get type(){return eB.type}},tB=class rB extends gi{static type=14;get type(){return rB.type}},zz=[Ox,Bx,B2,j2,M2,W7,L2,Q7,Z7,Lx,N2,O2,tB,U2,Nx],Vz=zz.reduce((r,e)=>(r[e.type]=e,r),{});H2=class F2{constructor(e,t,s,n){this.requestSequence=e,this.responseSequence=t,this.lastTsn=s,this.streams=n}static type=13;get type(){return F2.type}get bytes(){let e=Buffer.from(uo.jspack.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([e,...this.streams.map(t=>Buffer.from(uo.jspack.Pack("!H",[t])))])}static parse(e){let[t,s,n]=uo.jspack.Unpack("!LLL",e),i=[];for(let o=12;o<e.length;o+=2)i.push(uo.jspack.Unpack("!H",e.slice(o))[0]);return new F2(t,s,n,i)}},iB=class q2{constructor(e,t){this.requestSequence=e,this.newStreams=t}static type=17;get type(){return q2.type}get bytes(){return Buffer.from(uo.jspack.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(e){let[t,s]=uo.jspack.Unpack("!LHH",e);return new q2(t,s)}},xx={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},Dx=class z2{constructor(e,t){this.responseSequence=e,this.result=t}static type=16;get type(){return z2.type}get bytes(){return Buffer.from(uo.jspack.Pack("!LL",[this.responseSequence,this.result]))}static parse(e){let[t,s]=uo.jspack.Unpack("!LL",e);return new z2(t,s)}},dk={13:H2,16:Dx,17:iB},Lt=ut("werift/sctp/sctp"),Xz=24,Yz=60,uk=65535,wn=1200,up=1,oB=2,V2=4,fk=10,Qz=8,lk=1/8,hk=1/4,pk=3,Jz=1,Zz=60,Yx=2**32,eV=200,tV=30,mk=135,gk=7,xk=32776,yk=49152,rV=["new","closed","connected","connecting"],sV=class $2{constructor(e,t=5e3){this.transport=e,this.port=t,this.localPort=this.port,this.transport.onData=s=>{this.handleData(s)}}flush=new Ce;stateChanged=Gz(rV);onReconfigStreams=new Ce;onReceive=new Ce;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=(0,Np.randomBytes)(16);localPartialReliability=!0;localPort;localVerificationTag=Ux();remoteExtensions=[];remotePartialReliability=!0;remotePort;remoteVerificationTag=0;advertisedRwnd=1024*1024;peerAdvertisedRwnd=this.advertisedRwnd;get peerRwnd(){return Math.max(0,this.peerAdvertisedRwnd-this.flightSize)}inboundStreams={};_inboundStreamsCount=0;_inboundStreamsMax=uk;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*wn;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=uk;localTsn=Number(Ux());lastSackedTsn=Kc(this.localTsn);advancedPeerAckTsn=Kc(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=pk;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=tV;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount)}static client(e,t=5e3){let s=new $2(e,t);return s.isServer=!1,s}static server(e,t=5e3){let s=new $2(e,t);return s.isServer=!0,s}async handleData(e){if(this.isStopped)return;let t,[,,s,n]=$z(e);if(n.filter(o=>o.type===Bx.type).length>0){if(n.length!=1)throw new Error;t=0}else t=this.localVerificationTag;if(s===t){this.sackHasNewDataInPacket=!1;for(let o of n)await this.receiveChunk(o);this.sackNeeded&&(this.sackHasNewDataInPacket&&this.sackPacketCount++,this.sackPacketCount>=2&&(this.sackImmediate=!0),await this.scheduleSack())}}async scheduleSack(){if(!this.isStopped&&this.sackNeeded){if(this.sackImmediate){this.sackTimeout&&(clearTimeout(this.sackTimeout),this.sackTimeout=void 0),await this.sendSack();return}this.sackTimeout||(this.sackTimeout=setTimeout(()=>{this.sackTimeout=void 0,this.sendSack().catch(e=>{Lt("send delayed sack failed",e.message)})},eV))}}async sendSack(){if(this.isStopped||!this.sackNeeded)return;let e=[],t;[...this.sackMisOrdered].sort().forEach(n=>{let i=(n-this.lastReceivedTsn)%Yx;n===t?e[e.length-1][1]=i:e.push([i,i]),t=qu(n)});let s=new j2(0,void 0);s.cumulativeTsn=this.lastReceivedTsn,s.advertisedRwnd=Math.max(0,this.advertisedRwnd),s.duplicates=[...this.sackDuplicates],s.gaps=e,await this.sendChunk(s).catch(n=>{Lt("send sack failed",n.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(e){switch(e.type){case Ox.type:this.receiveDataChunk(e);break;case Bx.type:{if(!this.isServer)return;let t=e;Lt("receive init",t),this.lastReceivedTsn=Kc(t.initialTsn),this.reconfigResponseSeq=Kc(t.initialTsn),this.remoteVerificationTag=t.initiateTag,this.ssthresh=t.advertisedRwnd,this.peerAdvertisedRwnd=t.advertisedRwnd,this.getExtensions(t.params),this._inboundStreamsCount=Math.min(t.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,t.inboundStreams);let s=new B2;s.initiateTag=this.localVerificationTag,s.advertisedRwnd=this.advertisedRwnd,s.outboundStreams=this._outboundStreamsCount,s.inboundStreams=this._inboundStreamsCount,s.initialTsn=this.localTsn,this.setExtensions(s.params);let n=Date.now()/1e3,i=Buffer.from(Px.jspack.Pack("!L",[n]));i=Buffer.concat([i,(0,Np.createHmac)("sha1",this.hmacKey).update(i).digest()]),s.params.push([gk,i]),Lt("send initAck",s),await this.sendChunk(s).catch(o=>{Lt("send initAck failed",o.message)})}break;case B2.type:{if(this.associationState!=2)return;let t=e;this.timer1Cancel(),this.lastReceivedTsn=Kc(t.initialTsn),this.reconfigResponseSeq=Kc(t.initialTsn),this.remoteVerificationTag=t.initiateTag,this.ssthresh=t.advertisedRwnd,this.peerAdvertisedRwnd=t.advertisedRwnd,this.getExtensions(t.params),this._inboundStreamsCount=Math.min(t.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,t.inboundStreams);let s=new N2;for(let[n,i]of t.params)if(n===gk){s.body=i;break}await this.sendChunk(s).catch(n=>{Lt("send echo failed",n.message)}),this.timer1Start(s),this.setState(3)}break;case j2.type:await this.receiveSackChunk(e);break;case M2.type:{let t=new W7;t.params=e.params,await this.sendChunk(t).catch(s=>{Lt("send heartbeat ack failed",s.message)})}break;case L2.type:this.setState(1);break;case Q7.type:{this.timer2Cancel(),this.setState(7);let t=new Z7;await this.sendChunk(t).catch(s=>{Lt("send shutdown ack failed",s.message)}),this.t2Start(t),this.setState(6)}break;case Lx.type:Lt("ErrorChunk",e.descriptions);break;case N2.type:{if(!this.isServer)return;let s=e.body,n=(0,Np.createHmac)("sha1",this.hmacKey).update(s.slice(0,4)).digest();if(s?.length!=Xz||!s.slice(4).equals(n)){Lt("x State cookie is invalid");return}let i=Date.now()/1e3,o=Px.jspack.Unpack("!L",s)[0];if(o<i-Yz||o>i){let c=new Lx(0,void 0);c.params.push([Lx.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\0")))]),await this.sendChunk(c).catch(d=>{Lt("send errorChunk failed",d.message)});return}let a=new O2;await this.sendChunk(a).catch(c=>{Lt("send cookieAck failed",c.message)}),this.setState(4)}break;case O2.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case tB.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case U2.type:{if(this.associationState!=4)return;let t=e;for(let[s,n]of t.params){let i=dk[s];i&&await this.receiveReconfigParam(i.parse(n))}}break;case Nx.type:this.receiveForwardTsnChunk(e);break}}getExtensions(e){for(let[t,s]of e)t===yk?this.remotePartialReliability=!0:t===xk&&(this.remoteExtensions=[...s])}async receiveReconfigParam(e){switch(Lt("receiveReconfigParam",dk[e.type]),e.type){case H2.type:{let t=e,s=new Dx(t.requestSequence,xx.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=t.requestSequence,await this.sendReconfigParam(s),await Promise.all(t.streams.map(async n=>{delete this.inboundStreams[n],this.outboundStreamSeq[n]&&(this.reconfigQueue.includes(n)||this.reconfigQueue.push(n))})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(t.streams)}break;case Dx.type:{let t=e;if(t.result!==xx.ReconfigResultSuccessPerformed)Lt("OutgoingSSNResetRequestParam failed",Object.keys(xx).find(s=>xx[s]===t.result));else if(t.responseSequence===this.reconfigRequest?.requestSequence){let s=this.reconfigRequest.streams.map(n=>(delete this.outboundStreamSeq[n],n));this.onReconfigStreams.execute(s),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=pk,this.timerReconfigFailures=0,this.reconfigQueue.length>0&&await this.transmitReconfigRequest()}}break;case iB.type:{let t=e;this._inboundStreamsCount+=t.newStreams;let s=new Dx(t.requestSequence,1);this.reconfigResponseSeq=t.requestSequence,await this.sendReconfigParam(s)}break}}receiveDataChunk(e){if(this.sackNeeded=!0,this.markReceived(e.tsn)){this.sackImmediate=!0;return}this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(e.flags&up)===0&&(this.sackImmediate=!0),this.sackMisOrdered.size>0&&(this.sackImmediate=!0);let t=this.getInboundStream(e.streamId);t.addChunk(e),this.advertisedRwnd-=e.userData.length;for(let s of t.popMessages())this.advertisedRwnd+=s[2].length,this.receive(...s)}async receiveSackChunk(e){if(fi(this.lastSackedTsn,e.cumulativeTsn))return;let t=Date.now()/1e3;this.lastSackedTsn=e.cumulativeTsn;let s=this.flightSize>=this.cwnd,n=0,i=0;for(;this.sentQueue.length>0&&zu(this.lastSackedTsn,this.sentQueue[0].tsn);){let a=this.sentQueue.shift();n++,a?.acked||(i+=a.bookSize,this.flightSizeDecrease(a)),n===1&&a.sentCount===1&&this.updateRto(t-a.sentTime)}this.sentQueue.length||(this.sentQueue=[]);let o=!1;if(e.gaps.length>0){let a=new Set,c;e.gaps.forEach(u=>{for(let l=u[0];l<u[1]+1;l++)c=(e.cumulativeTsn+l)%Yx,a.add(c)});let d=e.cumulativeTsn;for(let u of this.sentQueue){if(fi(u.tsn,c))break;a.has(u.tsn)&&!u.acked&&(i+=u.bookSize,u.acked=!0,this.flightSizeDecrease(u),d=u.tsn)}for(let u of this.sentQueue){if(fi(u.tsn,d))break;a.has(u.tsn)||(u.misses++,u.misses===3&&(u.misses=0,this.maybeAbandon(u)||(u.retransmit=!0),u.acked=!1,this.flightSizeDecrease(u),o=!0))}}this.fastRecoveryExit===void 0?(n&&s&&(this.cwnd<=this.ssthresh?this.cwnd+=Math.min(i,wn):(this.partialBytesAcked+=i,this.partialBytesAcked>=this.cwnd&&(this.partialBytesAcked-=this.cwnd,this.cwnd+=wn))),o&&(this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*wn),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0)):zu(e.cumulativeTsn,this.fastRecoveryExit)&&(this.fastRecoveryExit=void 0),this.sentQueue.length===0?this.timer3Cancel():n>0&&this.timer3Restart(),this.peerAdvertisedRwnd=e.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(e){if(this.sackNeeded=!0,this.sackImmediate=!0,zu(this.lastReceivedTsn,e.cumulativeTsn))return;let t=s=>fi(s,this.lastReceivedTsn);this.lastReceivedTsn=e.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(t));for(let s of[...this.sackMisOrdered].sort())if(s===qu(this.lastReceivedTsn))this.lastReceivedTsn=s;else break;this.sackDuplicates=this.sackDuplicates.filter(t),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(t));for(let[s,n]of e.streams){let i=this.getInboundStream(s);i.streamSequenceNumber=Ur(n,1);for(let o of i.popMessages())this.advertisedRwnd+=o[2].length,this.receive(...o)}Object.values(this.inboundStreams).forEach(s=>{this.advertisedRwnd+=s.pruneChunks(this.lastReceivedTsn)})}updateRto(e){this.srtt?(this.rttvar=(1-hk)*this.rttvar+hk*Math.abs(this.srtt-e),this.srtt=(1-lk)*this.srtt+lk*e):(this.rttvar=e/2,this.srtt=e),this.rto=Math.max(Jz,Math.min(this.srtt+4*this.rttvar,Zz))}receive(e,t,s){this.onReceive.execute(e,t,s)}getInboundStream(e){return this.inboundStreams[e]||(this.inboundStreams[e]=new nV),this.inboundStreams[e]}markReceived(e){if(zu(this.lastReceivedTsn,e)||this.sackMisOrdered.has(e))return this.sackDuplicates.push(e),!0;this.sackMisOrdered.add(e);for(let s of[...this.sackMisOrdered].sort())if(s===qu(this.lastReceivedTsn))this.lastReceivedTsn=s;else break;let t=s=>fi(s,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(t),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(t)),!1}send=async(e,t,s,{expiry:n,maxRetransmits:i,ordered:o}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let a=o&&this.outboundStreamSeq[e]||0,c=Math.ceil(s.length/wn),d=0,u=[];for(let l=0;l<c;l++){let h=new Ox(0,void 0);h.flags=0,o||(h.flags=V2),l===0&&(h.flags|=oB),l===c-1&&(h.flags|=up),h.tsn=this.localTsn,h.streamId=e,h.streamSeqNum=a,h.protocol=t,h.userData=s.slice(d,d+wn),h.bookSize=h.userData.length,h.expiry=n,h.maxRetransmits=i,d+=wn,this.localTsn=qu(this.localTsn),u.push(h)}for(u.forEach(l=>{this.outboundQueue.push(l)}),o&&(this.outboundStreamSeq[e]=Ur(a,1)),await this.transmit();this.outboundQueue.length;)await this.flush.asPromise()};async transmit(){if(!this.isStopped){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;this.forwardTsnChunk&&(await this.sendChunk(this.forwardTsnChunk).catch(n=>{Lt("send forwardTsn failed",n.message)}),this.forwardTsnChunk=void 0,this.timer3Handle||this.timer3Start());let e=this.fastRecoveryExit!=null?2*wn:4*wn,t=Math.min(this.flightSize+e,this.cwnd),s=!0;for(let n of this.sentQueue){if(n.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=t)break;this.flightSizeIncrease(n),n.misses=0,n.retransmit=!1,n.sentCount++,await this.sendChunk(n).catch(i=>{Lt("send data failed",i.message)}),s&&this.timer3Restart()}s=!1}for(;this.outboundQueue.length>0&&this.flightSize<t&&this.peerRwnd>0;){let n=this.outboundQueue.shift();if(!n)break;if(n.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(n);break}this.sentQueue.push(n),this.flightSizeIncrease(n),n.sentCount++,n.sentTime=Date.now()/1e3,await this.sendChunk(n).catch(i=>{Lt("send data outboundQueue failed",i.message)}),this.timer3Handle||this.timer3Start()}this.outboundQueue.length||(this.outboundQueue=[]),this.flush.execute()}async transmitReconfigRequest(){if(this.reconfigQueue.length>0&&this.associationState===4&&!this.reconfigRequest){let e=[...new Set(this.reconfigQueue)],t=e.slice(0,mk);this.reconfigQueue=e.slice(mk);let s=new H2(this.reconfigRequestSeq,this.reconfigResponseSeq,Kc(this.localTsn),t);this.reconfigRequestSeq=qu(this.reconfigRequestSeq),this.reconfigRequest=s,await this.sendReconfigParam(s),this.timerReconfigHandleStart()}}async sendReconfigParam(e){Lt("sendReconfigParam",e);let t=new U2;t.params.push([e.type,e.bytes]),await this.sendChunk(t).catch(s=>{Lt("send reconfig failed",s.message)})}async sendResetRequest(e){Lt("sendResetRequest",e);let t=new Ox(0,void 0);t.streamId=e,this.outboundQueue.push(t),this.timer3Handle||await this.transmit()}flightSizeIncrease(e){this.flightSize+=e.bookSize}flightSizeDecrease(e){this.flightSize=Math.max(0,this.flightSize-e.bookSize)}timer1Start(e){if(this.timer1Handle)throw new Error;this.timer1Chunk=e,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1e3)}timer1Expired=()=>{if(!this.isStopped)if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Qz)this.setState(1);else{if(setImmediate(()=>{this.isStopped||this.sendChunk(this.timer1Chunk).catch(e=>{Lt("send timer1 chunk failed",e.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1e3)}};timer1Cancel(){this.timer1Handle&&(clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0)}t2Start(e){if(this.timer2Handle)throw new Error;this.timer2Chunk=e,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1e3)}timer2Expired=()=>{if(!this.isStopped)if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>fk)this.setState(1);else{if(setImmediate(()=>{this.isStopped||this.sendChunk(this.timer2Chunk).catch(e=>{Lt("send timer2Chunk failed",e.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1e3)}};timer2Cancel(){this.timer2Handle&&(clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0)}timer3Start(){if(!this.isStopped){if(this.timer3Handle)throw new Error;this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1e3)}}timer3Restart(){this.isStopped||(this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1e3))}timer3Expired=()=>{this.isStopped||(this.timer3Handle=void 0,this.sentQueue.forEach(e=>{this.maybeAbandon(e)||(e.retransmit=!0)}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*wn),this.cwnd=wn,this.transmit())};timer3Cancel(){this.timer3Handle&&(clearTimeout(this.timer3Handle),this.timer3Handle=void 0)}timerReconfigHandleStart(){this.isStopped||this.timerReconfigHandle||(Lt("timerReconfigHandleStart",{rto:this.rto}),this.timerReconfigFailures=0,this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1e3))}timerReconfigHandleExpired=async()=>{if(!this.isStopped){if(this.timerReconfigFailures++,this.rto=Math.ceil(this.rto*1.5),this.timerReconfigFailures>fk)Lt("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(Lt("timerReconfigHandleExpired",this.timerReconfigFailures,this.rto),await this.sendReconfigParam(this.reconfigRequest),this.isStopped)return;this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1e3)}}};timerReconfigCancel(){this.timerReconfigHandle&&(Lt("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0)}heartbeatStart(){this.timerHeartbeatHandle||this.associationState!==4||(this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1e3))}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){this.timerHeartbeatHandle&&(clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0)}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState===4){if(this.flightSize===0&&this.outboundQueue.length===0){let e=new M2;e.params.push([1,Buffer.from(Px.jspack.Pack("!L",[Math.floor(Date.now()/1e3)]))]),await this.sendChunk(e).catch(t=>{Lt("send heartbeat failed",t.message)})}this.heartbeatStart()}};setHeartbeatInterval(e){if(e<=0)throw new Error("heartbeat interval must be > 0");this.heartbeatInterval=e,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){fi(this.lastSackedTsn,this.advancedPeerAckTsn)&&(this.advancedPeerAckTsn=this.lastSackedTsn);let e=0,t={};for(;this.sentQueue.length>0&&this.sentQueue[0].abandoned;){let s=this.sentQueue.shift();this.advancedPeerAckTsn=s.tsn,e++,s.flags&V2||(t[s.streamId]=s.streamSeqNum)}this.sentQueue.length||(this.sentQueue=[]),e&&(this.forwardTsnChunk=new Nx(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(t).map(([s,n])=>[Number(s),n]))}maybeAbandon(e){if(e.abandoned)return!0;if(!(!!e.maxRetransmits&&e.maxRetransmits<e.sentCount||!!e.expiry&&e.expiry<Date.now()/1e3))return!1;let s=this.sentQueue.findIndex(n=>n.type===e.type);for(let n=s;n>=0;n--){let i=this.sentQueue[n];if(i.abandoned=!0,i.retransmit=!1,i.flags&up)break}for(let n=s;n<this.sentQueue.length;n++){let i=this.sentQueue[n];if(i.abandoned=!0,i.retransmit=!1,i.flags&up)break}return!0}static getCapabilities(){return new iV(65536)}setRemotePort(e){this.remotePort=e}async start(e){this.started||(this.started=!0,this.setConnectionState("connecting"),e&&this.setRemotePort(e),this.isServer||await this.init())}async init(){let e=new Bx;e.initiateTag=this.localVerificationTag,e.advertisedRwnd=this.advertisedRwnd,e.outboundStreams=this._outboundStreamsCount,e.inboundStreams=this._inboundStreamsMax,e.initialTsn=this.localTsn,this.setExtensions(e.params),Lt("send init",e);try{await this.sendChunk(e),this.timer1Start(e),this.setState(2)}catch(t){Lt("send init failed",t.message)}}setExtensions(e){let t=[];this.localPartialReliability&&(e.push([yk,Buffer.from("")]),t.push(Nx.type)),t.push(qz.type),e.push([xk,Buffer.from(t)])}async sendChunk(e){if(this.state==="closed")return;if(this.remotePort===void 0)throw new Error("invalid remote port");let t=Kz(this.localPort,this.remotePort,this.remoteVerificationTag,e);await this.transport.send(t)}setState(e){e!=this.associationState&&(this.associationState=e),e===4?(this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart()):e===1&&(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(e){this.state=e,Lt("setConnectionState",e),this.stateChanged[e].execute()}async stop(){if(this.isStopped){this.setState(1);return}this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout&&(clearTimeout(this.sackTimeout),this.sackTimeout=void 0),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 e=new L2;await this.sendChunk(e).catch(t=>{Lt("send abort failed",t.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach(e=>e.allUnsubscribe())}},nV=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(r){if(this.reassembly.length===0||fi(r.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(r);return}for(let[e,t]of Wz(this.reassembly)){if(t.tsn===r.tsn)throw new Error("duplicate chunk in reassembly");if(fi(t.tsn,r.tsn)){this.reassembly.splice(e,0,r);break}}}*popMessages(){let r=0,e,t,s;for(;r<this.reassembly.length;){let n=this.reassembly[r];if(e===void 0){if(s=!(n.flags&V2),!(n.flags&oB)){if(s)break;r++;continue}if(s&&ey(n.streamSeqNum,this.streamSequenceNumber))break;t=n.tsn,e=r}else if(n.tsn!==t){if(s)break;e=void 0,r++;continue}if(n.flags&up){let i=this.reassembly.slice(e,r+1).map(a=>a.userData).reduce((a,c)=>(a.push(c),a.push(Buffer.from("")),a),[]);i.pop();let o=Buffer.concat(i);this.reassembly=[...this.reassembly.slice(0,e),...this.reassembly.slice(r+1)],s&&n.streamSeqNum===this.streamSequenceNumber&&(this.streamSequenceNumber=Ur(this.streamSequenceNumber,1)),r=e,yield[n.streamId,n.protocol,o]}else r++;t=qu(t)}}pruneChunks(r){let e=-1,t=0;for(let[s,n]of this.reassembly.entries())if(zu(r,n.tsn))e=s,t+=n.userData.length;else break;return this.reassembly=this.reassembly.slice(e+1),t}},iV=class{constructor(r){this.maxMessageSize=r}};Mu=ut("werift:packages/webrtc/src/transport/sctp.ts"),Vu=65536,aB=class cB{constructor(e=5e3,t=Vu){this.port=e,this.maxMessageSize=t}dtlsTransport;sctp;onDataChannel=new Ce;id=(0,D7.randomUUID)().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=Vu;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(e){this.dtlsTransport&&this.dtlsTransport.id===e.id||(this.eventDisposer.forEach(t=>t()),this.dtlsTransport=e,this.sctp=new sV(new oV(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe(t=>{t.forEach(s=>{let n=this.dataChannels[s];n&&(n.setReadyState("closing"),n.setReadyState("closed"),delete this.dataChannels[s])})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach(t=>{t.negotiated&&t.readyState!=="open"&&t.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach(t=>{t.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe(t=>{t==="closed"&&this.sctp.setState(1)})].map(t=>t.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()})}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(e){return Object.values(this.dataChannels).find(t=>t.label===e)}datachannelReceive=async(e,t,s)=>{if(t===gx&&s.length>0)switch(Mu("DCEP",e,t,s),s[0]){case ek:{if(s.length<12){Mu("DATA_CHANNEL_OPEN data.length not enough");return}if(Object.keys(this.dataChannels).includes(e.toString()))Mu("datachannel already opened","retransmit ack");else{let[,i,,o,a,c]=kx.jspack.Unpack("!BBHLHH",s),d=12,u=s.slice(d,d+a).toString("utf8");d+=a;let l=s.slice(d,d+c).toString("utf8");Mu("DATA_CHANNEL_OPEN",{channelType:i,reliability:o,streamId:e,label:u,protocol:l});let h=(i&3)===1?o:void 0,x=(i&3)===2?o:void 0,v=new R_({label:u,ordered:(i&128)===0,maxPacketLifeTime:x,maxRetransmits:h,protocol:l,id:e}),S=new I_(this,v,!1);S.isCreatedByRemote=!0,this.dataChannels[e]=S,this.onDataChannel.execute(S),S.setReadyState("open")}let n=this.dataChannels[e];this.dataChannelQueue.push([n,gx,Buffer.from(kx.jspack.Pack("!B",[ZR]))]),await this.dataChannelFlush()}break;case ZR:{Mu("DATA_CHANNEL_ACK",e,t);let n=this.dataChannels[e];if(!n)throw new Error("channel not found");n.setReadyState("open")}break}else{let n=this.dataChannels[e];if(n){let i=(()=>{switch(t){case tk:return s.toString("utf8");case bz:return"";case rk:return s;case vz:return Buffer.from([]);default:throw new Error}})();n.messagesReceived++,n.bytesReceived+=s.length,n.onMessage.execute(i),n.emit("message",{data:i}),n.onmessage&&n.onmessage({data:i})}}};dataChannelAddNegotiated(e){if(e.id==null)throw new Error;if(this.dataChannels[e.id])throw new Error;this.dataChannels[e.id]=e,this.sctp.associationState===4&&e.setReadyState("open")}dataChannelOpen(e){if(e.id){if(this.dataChannels[e.id])throw new Error(`Data channel with ID ${e.id} already registered`);this.dataChannels[e.id]=e}let t=yz,s=0,n=0;e.ordered||(t=128),e.maxRetransmits?(t=1,n=e.maxRetransmits):e.maxPacketLifeTime&&(t=2,n=e.maxPacketLifeTime);let i=kx.jspack.Pack("!BBHLHH",[ek,t,s,n,e.label.length,e.protocol.length]),o=Buffer.concat([Buffer.from(i),Buffer.from(e.label,"utf8"),Buffer.from(e.protocol,"utf8")]);this.dataChannelQueue.push([e,gx,o]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState==4){for(;this.dataChannelQueue.length>0;){let[e,t,s]=this.dataChannelQueue.shift(),n=e.id;if(n===void 0){for(n=this.dataChannelId;Object.keys(this.dataChannels).includes(n.toString());)n+=2;this.dataChannels[n]=e,e.setId(n)}if(t===gx)await this.sctp.send(n,t,s,{ordered:!0});else{let i=e.maxPacketLifeTime?Date.now()+e.maxPacketLifeTime/1e3:void 0;await this.sctp.send(n,t,s,{expiry:i,maxRetransmits:e.maxRetransmits,ordered:e.ordered}),e.addBufferedAmount(-s.length)}}this.dataChannelQueue=[]}}assertSendableMessageSize(e){if(this.remoteMaxMessageSize!==0&&e>this.remoteMaxMessageSize)throw new Error(`max-message-size exceeded: ${e} > ${this.remoteMaxMessageSize}`)}datachannelSend=(e,t)=>{let s=Buffer.isBuffer(t)?t:Buffer.from(t),n=r7(t);return this.assertSendableMessageSize(n),e.addBufferedAmount(n),this.dataChannelQueue.push(typeof t=="string"?[e,tk,s]:[e,rk,s]),this.sctp.associationState!==4&&Mu("sctp not established",this.sctp.associationState),this.dataChannelFlush(),n};getCapabilities(){return cB.getCapabilities(this.maxMessageSize)}static getCapabilities(e=Vu){return new G_(e)}setRemoteMaxMessageSize(e){this.remoteMaxMessageSize=e??Vu}setRemotePort(e){this.sctp.setRemotePort(e)}async start(e){this.isServer?this.dataChannelId=0:this.dataChannelId=1,this.sctp.isServer=this.isServer,await this.sctp.start(e)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(e){["closing","closed"].includes(e.readyState)||(e.setReadyState("closing"),this.sctp.associationState===4?(this.sctp.reconfigQueue.includes(e.id)||this.sctp.reconfigQueue.push(e.id),this.sctp.reconfigQueue.length===1&&this.sctp.transmitReconfigRequest()):(this.dataChannelQueue=this.dataChannelQueue.filter(t=>t[0].id!==e.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter(t=>t!==e.id),e.id&&delete this.dataChannels[e.id],e.setReadyState("closed")))}},G_=class{constructor(r){this.maxMessageSize=r}},oV=class{constructor(r){this.dtls=r}set onData(r){this.dtls.dataReceiver=r}send=r=>this.dtls.sendData(r);close(){}},pp=class dB{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(e){let[t,s]=aV(e),n=new dB;t.forEach(o=>{if(o.startsWith("v="))n.version=Number.parseInt(o.slice(2),10);else if(o.startsWith("o="))n.origin=o.slice(2);else if(o.startsWith("s="))n.name=o.slice(2);else if(o.startsWith("c="))n.host=HS(o.slice(2));else if(o.startsWith("t="))n.time=o.slice(2);else if(o.startsWith("a=")){let[a,c]=FS(o);switch(a){case"fingerprint":{let[d,u]=c?.split(" ")||[];n.dtlsFingerprints.push(new Gx(d,u))}break;case"ice-lite":n.iceLite=!0;break;case"ice-options":n.iceOptions=c;break;case"ice-pwd":n.icePassword=c;break;case"ice-ufrag":n.iceUsernameFragment=c;break;case"group":Mx(n.group,c);break;case"msid-semantic":Mx(n.msidSemantic,c);break;case"setup":n.dtlsRole=nk[c];break;case"extmap-allow-mixed":n.extMapAllowMixed=!0;break}}});let i=n.group.find(o=>o.semantic==="BUNDLE");return s.forEach(o=>{let c=o[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!c)throw new Error("m line not found");let d=c[1],u=c[4].split(" "),l=["audio","video"].includes(d)?u.map(v=>Number(v)):void 0,h=new Qx(d,Number.parseInt(c[2]),c[3],l||u);if(h.dtlsParams=new Xx([...n.dtlsFingerprints],n.dtlsRole),h.iceParams=new K_({iceLite:n.iceLite,usernameFragment:n.iceUsernameFragment,password:n.icePassword}),h.iceOptions=n.iceOptions,n.media.push(h),o.slice(1).forEach(v=>{if(v.startsWith("c="))h.host=HS(v.slice(2));else if(v.startsWith("a=")){let[S,C]=FS(v);switch(S){case"candidate":if(!C)throw new Error;h.iceCandidates.push(Y_(C));break;case"end-of-candidates":h.iceCandidatesComplete=!0;break;case"extmap":{let[D,re]=C.split(" ");D.includes("/")&&([D]=D.split("/")),h.rtp.headerExtensions.push(new mi({id:Number.parseInt(D),uri:re}))}break;case"fingerprint":{if(!C)throw new Error;let[D,re]=C.split(" ");h.dtlsParams?.fingerprints.push(new Gx(D,re))}break;case"ice-options":h.iceOptions=C;break;case"ice-pwd":h.iceParams.password=C;break;case"ice-ufrag":h.iceParams.usernameFragment=C;break;case"ice-lite":h.iceParams.iceLite=!0;break;case"max-message-size":h.sctpCapabilities=new G_(Number.parseInt(C,10));break;case"mid":h.rtp.muxId=C;break;case"msid":h.msid=C;break;case"rtcp":{let[D,re]=oo(C," ");h.rtcpPort=Number.parseInt(D),h.rtcpHost=HS(re)}break;case"rtcp-mux":h.rtcpMux=!0;break;case"setup":h.dtlsParams.role=nk[C];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":h.direction=S;break;case"rtpmap":{let[D,re]=oo(C," "),[G,te,ae]=re.split("/"),se;h.kind==="audio"&&(se=ae?Number.parseInt(ae):1);let Ie=new wa({mimeType:h.kind+"/"+G,channels:se,clockRate:Number.parseInt(te),payloadType:Number.parseInt(D)});h.rtp.codecs.push(Ie)}break;case"sctpmap":{if(!C)throw new Error;let[D,re]=oo(C," ");h.sctpMap[Number.parseInt(D)]=re,h.sctpPort=Number.parseInt(D)}break;case"sctp-port":if(!C)throw new Error;h.sctpPort=Number.parseInt(C);break;case"ssrc":{let[D,re]=oo(C," "),G=Number.parseInt(D),[te,ae]=oo(re,":"),se=h.ssrc.find(Ie=>Ie.ssrc===G);se||(se=new Jx({ssrc:G}),h.ssrc.push(se)),p7.includes(te)&&(se[te]=ae)}break;case"ssrc-group":Mx(h.ssrcGroup,C);break;case"rid":{let[D,re]=oo(C," ");h.simulcastParameters.push(new k_({rid:D,direction:re}))}break}}}),(!h.iceParams.usernameFragment||!h.iceParams.password)&&h.rtp.muxId&&i&&i.items.includes(h.rtp.muxId))for(let v=0;v<i.items.length;v++){if(!i.items.includes(v.toString()))continue;let S=n.media[v];if(S.iceParams?.usernameFragment&&S.iceParams.password){h.iceParams={...S.iceParams};break}}h.dtlsParams.role||(h.dtlsParams=void 0);let x=v=>h.rtp.codecs.find(S=>S.payloadType===v);o.slice(1).forEach(v=>{if(v.startsWith("a=")){let[S,C]=FS(v);if(S==="fmtp"){let[D,re]=oo(C," "),G=x(Number(D));G.parameters=re}else if(S==="rtcp-fb"){let[D,re,G]=C.split(" ");h.rtp.codecs.forEach(te=>{["*",te.payloadType.toString()].includes(D)&&te.rtcpFeedback.push(new n7({type:re,parameter:G}))})}}})}),n}webrtcTrackId(e){if(e.msid?.includes(" ")){let t=e.msid.split(" ");for(let s of this.msidSemantic)if(s.semantic==="WMS"&&(s.items.includes(t[0])||s.items.includes("*")))return t[1]}}get string(){let e=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];this.host&&e.push(`c=${K2(this.host)}`),e.push(`t=${this.time}`),this.group.forEach(n=>e.push(`a=group:${n.str}`)),this.extMapAllowMixed&&e.push("a=extmap-allow-mixed"),this.msidSemantic.forEach(n=>e.push(`a=msid-semantic:${n.str}`));let t=this.media.map(n=>n.toString()).join("");return e.join(`\r
|
|
133
|
-
`)+`\r
|
|
134
|
-
`+t}toJSON(){return new uB(this.string,this.type)}toSdp(){return{type:this.type,sdp:this.string}}},Qx=class{constructor(r,e,t,s){this.kind=r,this.port=e,this.profile=t,this.fmt=s}host;direction;msid;rtcpPort;rtcpHost;rtcpMux=!1;ssrc=[];ssrcGroup=[];rtp={codecs:[],headerExtensions:[]};sctpCapabilities;sctpMap={};sctpPort;dtlsParams;iceParams;iceCandidates=[];iceCandidatesComplete=!1;iceOptions;simulcastParameters=[];toString(){let r=[];if(r.push(`m=${this.kind} ${this.port} ${this.profile} ${this.fmt.map(e=>e.toString()).join(" ")}`),this.host&&r.push(`c=${K2(this.host)}`),this.iceCandidates.forEach(e=>{r.push(`a=candidate:${X_(e)}`)}),this.iceCandidatesComplete&&r.push("a=end-of-candidates"),this.iceParams?.usernameFragment&&r.push(`a=ice-ufrag:${this.iceParams.usernameFragment}`),this.iceParams?.password&&r.push(`a=ice-pwd:${this.iceParams.password}`),this.iceParams?.iceLite&&r.push("a=ice-lite"),this.iceOptions&&r.push(`a=ice-options:${this.iceOptions}`),this.dtlsParams&&(this.dtlsParams.fingerprints.forEach(e=>{r.push(`a=fingerprint:${e.algorithm} ${e.value}`)}),r.push(`a=setup:${k2[this.dtlsParams.role]}`)),this.direction&&r.push(`a=${this.direction}`),this.rtp.muxId&&r.push(`a=mid:${this.rtp.muxId}`),this.msid&&r.push(`a=msid:${this.msid}`),this.rtcpPort&&this.rtcpHost&&(r.push(`a=rtcp:${this.rtcpPort} ${K2(this.rtcpHost)}`),this.rtcpMux&&r.push("a=rtcp-mux")),this.ssrcGroup.forEach(e=>{r.push(`a=ssrc-group:${e.str}`)}),this.ssrc.forEach(e=>{p7.forEach(t=>{let s=e[t];s!==void 0&&r.push(`a=ssrc:${e.ssrc} ${t}:${s}`)})}),this.rtp.codecs.forEach(e=>{r.push(`a=rtpmap:${e.payloadType} ${e.str}`),e.rtcpFeedback.forEach(t=>{let s=t.type;t.parameter&&(s+=` ${t.parameter}`),r.push(`a=rtcp-fb:${e.payloadType} ${s}`)}),e.parameters&&r.push(`a=fmtp:${e.payloadType} ${e.parameters}`)}),Object.keys(this.sctpMap).forEach(e=>{let t=this.sctpMap[Number(e)];r.push(`a=sctpmap:${e} ${t}`)}),this.sctpPort&&r.push(`a=sctp-port:${this.sctpPort}`),this.sctpCapabilities&&r.push(`a=max-message-size:${this.sctpCapabilities.maxMessageSize}`),this.rtp.headerExtensions.forEach(e=>r.push(`a=extmap:${e.id} ${e.uri}`)),this.simulcastParameters.length){this.simulcastParameters.forEach(n=>{r.push(`a=rid:${n.rid} ${n.direction}`)});let e="a=simulcast:",t=this.simulcastParameters.filter(n=>n.direction==="recv");t.length&&(e+=`recv ${t.map(n=>n.rid).join(";")} `);let s=this.simulcastParameters.filter(n=>n.direction==="send");s.length&&(e+=`send ${s.map(n=>n.rid).join(";")}`),r.push(e)}return r.join(`\r
|
|
135
|
-
`)+`\r
|
|
136
|
-
`}},Gu=class{constructor(r,e){this.semantic=r,this.items=e}get str(){return`${this.semantic} ${this.items.join(" ")}`}};uB=class{constructor(r,e){this.sdp=r,this.type=e}static isThis(r){if(typeof r?.sdp=="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};Jx=class{ssrc;cname;msid;msLabel;label;constructor(r){Object.assign(this,r)}},yx=ut("werift:packages/webrtc/src/media/rtpReceiver.ts"),Q_=class{constructor(r,e,t){this.config=r,this.kind=e,this.rtcpSsrc=t}codecs={};get codecArray(){return Object.values(this.codecs).sort((r,e)=>r.payloadType-e.payloadType)}ssrcByRtx={};nack=new Pz(this);audioRedHandler=new nP;type="receiver";uuid=(0,u7.randomUUID)().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new Ce;dtlsTransport;sdesMid;latestRid;latestRepairedRid;receiverTWCC;stopped=!1;remoteStreamId;remoteTrackId;rtcpRunning=!1;rtcpCancel=new AbortController;remoteStreams={};setDtlsTransport(r){this.dtlsTransport=r}get track(){return this.tracks[0]??new kp({kind:this.kind})}get nackEnabled(){return this.codecArray[0]?.rtcpFeedback.find(r=>r.type==="nack")}get twccEnabled(){return this.codecArray[0]?.rtcpFeedback.find(r=>r.type===s7().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find(r=>r.type===of().type)}prepareReceive(r){r.codecs.forEach(e=>{this.codecs[e.payloadType]=e}),r.encodings.forEach(e=>{e.rtx&&(this.ssrcByRtx[e.rtx.ssrc]=e.ssrc)})}setupTWCC(r){this.twccEnabled&&!this.receiverTWCC&&(this.receiverTWCC=new Nz(this.dtlsTransport,this.rtcpSsrc,r))}addTrack(r){return this.tracks.find(t=>{if(t.rid)return t.rid===r.rid;if(t.ssrc)return t.ssrc===r.ssrc})?!1:(this.tracks.push(r),r.ssrc&&(this.trackBySSRC[r.ssrc]=r),r.rid&&(this.trackByRID[r.rid]=r),!0)}stop(){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)){this.rtcpRunning=!0;try{for(;this.rtcpRunning;){await(0,Ax.setTimeout)(500+Math.random()*1e3,void 0,{signal:this.rtcpCancel.signal});let r=Object.entries(this.remoteStreams).map(([t,s])=>{let n=0,i=0;if(this.lastSRtimestamp[t]){n=this.lastSRtimestamp[t];let o=Pp()-this.receiveLastSRTimestamp[t];o>0&&o<65536&&(i=$u(o*65536))}return new dy({ssrc:Number(t),fractionLost:s.fraction_lost,packetsLost:s.packets_lost,highestSequence:s.max_seq,jitter:s.jitter,lsr:n,dlsr:i})}),e=new Qu({ssrc:this.rtcpSsrc,reports:r});try{this.config.debug.receiverReportDelay&&await(0,Ax.setTimeout)(this.config.debug.receiverReportDelay),await this.dtlsTransport.sendRtcp([e])}catch(t){yx("sendRtcp failed",t),await(0,Ax.setTimeout)(500+Math.random()*1e3)}}}catch{}}}async getStats(){let r=Sa(),e=[];if(!this.dtlsTransport)return e;let t=qt("transport",this.dtlsTransport.id);for(let s of this.tracks){if(!s.ssrc)continue;let n=this.remoteStreams[s.ssrc];if(!n)continue;let i={type:"inbound-rtp",id:qt("inbound-rtp",s.ssrc),timestamp:r,ssrc:s.ssrc,kind:this.kind,transportId:t,codecId:this.codecs[0]?qt("codec",this.codecs[0].payloadType,t):void 0,mid:this.sdesMid,trackIdentifier:s.id,packetsReceived:n.packets_received,packetsLost:n.packets_lost,jitter:n.jitter};if(e.push(i),this.lastSRtimestamp[s.ssrc]){let o={type:"remote-outbound-rtp",id:qt("remote-outbound-rtp",s.ssrc),timestamp:r,ssrc:s.ssrc,kind:this.kind,transportId:t,codecId:i.codecId,localId:i.id,remoteTimestamp:this.receiveLastSRTimestamp[s.ssrc]*1e3};e.push(o)}}return e}async sendRtcpPLI(r){if(!this.pliEnabled){yx("pli not supported",{mediaSsrc:r});return}if(this.stopped)return;yx("sendRtcpPLI",{mediaSsrc:r});let e=new Yu({feedback:new _p({senderSsrc:this.rtcpSsrc,mediaSsrc:r})});try{await this.dtlsTransport.sendRtcp([e])}catch(t){yx(t)}}handleRtcpPacket(r){switch(r.type){case td.type:{let e=r;this.lastSRtimestamp[e.ssrc]=z_(e.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[e.ssrc]=Pp();let t=this.trackBySSRC[r.ssrc];t&&t.onReceiveRtcp.execute(r)}break}this.onRtcp.execute(r)}handleRtpBySsrc=(r,e)=>{let t=this.trackBySSRC[r.header.ssrc];this.handleRTP(r,e,t)};handleRtpByRid=(r,e,t)=>{let s=this.trackByRID[e];this.trackBySSRC[r.header.ssrc]||(this.trackBySSRC[r.header.ssrc]=s),this.handleRTP(r,t,s)};handleRTP(r,e,t){if(this.stopped)return;let s=this.codecs[r.header.payloadType];if(!s)return;if(this.remoteStreams[r.header.ssrc]=this.remoteStreams[r.header.ssrc]??new Oz(s.clockRate),this.remoteStreams[r.header.ssrc].add(r),this.receiverTWCC){let i=e[Yt.transportWideCC];if(!i==null)throw new Error("undefined");this.receiverTWCC.handleTWCC(i)}else this.twccEnabled&&this.setupTWCC(r.header.ssrc);if(s.name.toLowerCase()==="rtx"){let i=this.ssrcByRtx[r.header.ssrc],o=Op(s.parameters??""),a=this.codecs[o.apt];if(r.payload.length<2)return;r=oP(r,a.payloadType,i),t=this.trackBySSRC[i]}let n;if(!(s.name.toLowerCase()==="red"&&(n=h_.deSerialize(r.payload),!Object.keys(this.codecs).includes(n.header.fields[0].blockPT.toString())))){if(t?.kind==="video"&&this.nackEnabled&&this.nack.addPacket(r),t)if(n){if(t.kind==="audio"){let i=this.audioRedHandler.push(n,r);for(let o of i)t.onReceiveRtp.execute(o.clone(),e)}}else t.onReceiveRtp.execute(r.clone(),e);this.runRtcp()}}},Yh=ut("werift:packages/webrtc/src/media/router.ts"),fB=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(r){this.ssrcTable[r.ssrc]=r}registerRtpReceiver(r,e){Yh("registerRtpReceiver",e),this.ssrcTable[e]=r}registerRtpReceiverBySsrc(r,e){Yh("registerRtpReceiverBySsrc",e),e.encodings.filter(t=>t.ssrc!=null).forEach((t,s)=>{this.registerRtpReceiver(r.receiver,t.ssrc),r.addTrack(new kp({ssrc:t.ssrc,kind:r.kind,id:r.sender.trackId,remote:!0,codec:e.codecs[s]})),t.rtx&&this.registerRtpReceiver(r.receiver,t.rtx.ssrc)}),e.headerExtensions.forEach(t=>{this.extIdUriMap[t.id]=t.uri})}registerRtpReceiverByRid(r,e,t){let[s]=t.codecs;Yh("registerRtpReceiverByRid",e),r.addTrack(new kp({rid:e.rid,kind:r.kind,id:r.sender.trackId,remote:!0,codec:s})),this.ridTable[e.rid]=r.receiver}routeRtp=r=>{let e=V9(r.header.extensions,this.extIdUriMap),t=this.ssrcTable[r.header.ssrc],s=e[Yt.sdesRTPStreamID];if(typeof s=="string"?(t=this.ridTable[s],t.latestRid=s,t.handleRtpByRid(r,s,e)):t?t.handleRtpBySsrc(r,e):(t=Object.values(this.ridTable).filter(o=>o instanceof Q_).find(o=>o.trackBySSRC[r.header.ssrc]),t&&(Yh("simulcast register receiver by ssrc",r.header.ssrc),this.registerRtpReceiver(t,r.header.ssrc),t.handleRtpBySsrc(r,e))),!t){Yh("ssrcReceiver not found");return}let n=e[Yt.sdesMid];typeof n=="string"&&(t.sdesMid=n);let i=e[Yt.repairedRtpStreamId];typeof i=="string"&&(t.latestRepairedRid=i)};routeRtcp=r=>{let e=[];switch(r.type){case td.type:r=r,e.push(this.ssrcTable[r.ssrc]);break;case Qu.type:r=r,r.reports.forEach(t=>{e.push(this.ssrcTable[t.ssrc])});break;case Ap.type:{let t=r}break;case ed.type:{let t=r;t.feedback&&e.push(this.ssrcTable[t.feedback.mediaSourceSsrc])}break;case Yu.type:{let t=r;switch(t.feedback.count){case Ep.count:{let s=t.feedback;e.push(this.ssrcTable[s.ssrcFeedbacks[0]])}break;default:e.push(this.ssrcTable[t.feedback.senderSsrc]||this.ssrcTable[t.feedback.mediaSsrc])}}break}e.filter(t=>t).forEach(t=>t.handleRtcpPacket(r))}},dV=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(r,e,t){this.numPackets===0?(this.firstPacketSentAtMs=e,this.firstPacketReceivedAtMs=t,this.lastPacketSentAtMs=e,this.lastPacketReceivedAtMs=t):(e<this.firstPacketSentAtMs&&(this.firstPacketSentAtMs=e),t<this.firstPacketReceivedAtMs&&(this.firstPacketReceivedAtMs=t),e>this.lastPacketSentAtMs&&(this.lastPacketSentAtMs=e),t>this.lastPacketReceivedAtMs&&(this.lastPacketReceivedAtMs=t)),this.numPackets++,this.totalSize+=r}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let r=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,e=this.totalSize/r*8*1e3;return Sp(e)}get sendBitrate(){let r=this.lastPacketSentAtMs-this.firstPacketSentAtMs,e=this.totalSize/r*8*1e3;return Sp(e)}},Uu=20,uV=10,fV=class{congestion=!1;onAvailableBitrate=new Ce;onCongestion=new Ce;onCongestionScore=new Ce;congestionCounter=0;cumulativeResult=new dV;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(r){this._congestionScore=r,this.onCongestionScore.execute(r)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(r){this._availableBitrate=r,this.onAvailableBitrate.execute(r)}constructor(){}receiveTWCC(r){let t=q_()-this.cumulativeResult.firstPacketSentAtMs;t>1e3&&(this.cumulativeResult.reset(),this.congestionCounter<Uu?this.congestionCounter++:this.congestionScore<uV&&this.congestionScore++,this.congestionCounter>=Uu&&!this.congestion&&(this.congestion=!0,this.onCongestion.execute(this.congestion)));for(let s of r.packetResults){if(!s.received)continue;let n=s.sequenceNumber,i=this.sentInfos[n];i&&s.receivedAtMs&&this.cumulativeResult.addPacket(i.size,i.sendingAtMs,s.receivedAtMs)}if(t>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-Uu){let s=Sp(Uu/2)+1,n=Sp(Uu/4)+1,i=s-(s-n)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-i}this.congestionCounter<=-Uu&&(this.congestionScore>1&&(this.congestionScore--,this.onCongestion.execute(!1)),this.congestionCounter=0),this.congestionCounter<=0&&this.congestion&&(this.congestion=!1,this.onCongestion.execute(this.congestion))}}rtpPacketSent(r){Object.keys(r).map(e=>Number(e)).sort().filter(e=>e<r.wideSeq).forEach(e=>{delete this.sentInfos[e]}),this.sentInfos[r.wideSeq]=r}},qS=ut("werift:packages/webrtc/src/media/rtpSender.ts"),bk=128,vk=.85,lB=class{constructor(r){this.trackOrKind=r,this.kind=typeof this.trackOrKind=="string"?this.trackOrKind:this.trackOrKind.kind,typeof r!="string"&&(r.streamId&&(this.streamId=r.streamId),this.registerTrack(r))}type="sender";kind;ssrc=X2.jspack.Unpack("!L",(0,G2.randomBytes)(4))[0];rtxSsrc=X2.jspack.Unpack("!L",(0,G2.randomBytes)(4))[0];streamId=(0,Y2.randomUUID)().toString();trackId=(0,Y2.randomUUID)().toString();onReady=new Ce;onRtcp=new Ce;onPictureLossIndication=new Ce;onGenericNack=new Ce;senderBWE=new fV;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=t_();redRedundantPayloadType;_redDistance=2;redEncoder=new sP(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(r){this.dtlsTransport&&this.dtlsDisposer.forEach(e=>e()),this.dtlsTransport=r,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe(e=>{e==="connected"&&this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(r){this._redDistance=r,this.redEncoder.distance=r}prepareSend(r){this.cname=r.rtcp?.cname,this.mid=r.muxId,this.headerExtensions=r.headerExtensions,this.rtpStreamId=r.rtpStreamId,this.repairedRtpStreamId=r.repairedRtpStreamId,this.codec=r.codecs[0],this.track&&(this.track.codec=this.codec),r.codecs.forEach(e=>{let t=Op(e.parameters??"");e.name.toLowerCase()==="rtx"&&t.apt===this.codec?.payloadType&&(this.rtxPayloadType=e.payloadType),e.name.toLowerCase()==="red"&&(this.redRedundantPayloadType=Number((e.parameters??"").split("/")[0]))})}registerTrack(r){if(r.stopped)throw new Error("track is ended");this.disposeTrack&&this.disposeTrack(),r.id=this.trackId;let{unSubscribe:e}=r.onReceiveRtp.subscribe(async t=>{await this.sendRtp(t)});this.track=r,this.disposeTrack=e,this.codec&&(r.codec=this.codec),r.onSourceChanged.subscribe(t=>{this.replaceRTP(t)})}async replaceTrack(r){if(r!==null){if(r.stopped)throw new Error("track is ended");if(this.sequenceNumber!=null){let e=r.header||(await r.onReceiveRtp.asPromise())[0].header;this.replaceRTP(e)}this.registerTrack(r),qS("replaceTrack","ssrc",r.ssrc,"rid",r.rid)}}stop(){this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.disposeTrack&&this.disposeTrack(),this.track=void 0}async runRtcp(){if(!(this.rtcpRunning||this.stopped)){this.rtcpRunning=!0;try{for(;this.rtcpRunning;){await(0,Q2.setTimeout)(500+Math.random()*1e3,void 0,{signal:this.rtcpCancel.signal});let r=[new td({ssrc:this.ssrc,senderInfo:new l_({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];this.lastSRtimestamp=z_(this.ntpTimestamp),this.lastSentSRTimestamp=Pp(),this.cname&&r.push(new Ap({chunks:[new u_({source:this.ssrc,items:[new f_({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(r)}catch(e){qS("sendRtcp failed",e),await(0,Q2.setTimeout)(500+Math.random()*1e3)}}}catch{}}}replaceRTP({sequenceNumber:r,timestamp:e},t=!1){this.sequenceNumber!=null&&(this.seqOffset=Ur(this.sequenceNumber,-r),t&&(this.seqOffset=Ur(this.seqOffset,2))),this.timestamp!=null&&(this.timestampOffset=Gc(this.timestamp,-e),t&&(this.timestampOffset=Ur(this.timestampOffset,1))),this.rtpCache=[],qS("replaceRTP",this.sequenceNumber,r,this.seqOffset)}async sendRtp(r){if(this.dtlsTransport.state!=="connected"||!this.codec)return;r=Buffer.isBuffer(r)?po.deSerialize(r):r;let{header:e,payload:t}=r;e.ssrc=this.ssrc,e.payloadType=this.codec.payloadType,e.timestamp=Gc(e.timestamp,this.timestampOffset),e.sequenceNumber=Ur(e.sequenceNumber,this.seqOffset),this.timestamp=e.timestamp,this.sequenceNumber=e.sequenceNumber;let s=S7(),n=[...e.extensions];e.extensions=this.headerExtensions.map(d=>{let u=(()=>{switch(d.uri){case Yt.sdesMid:return this.mid?$9(this.mid):void 0;case Yt.sdesRTPStreamID:return this.rtpStreamId?K9(this.rtpStreamId):void 0;case Yt.repairedRtpStreamId:return this.repairedRtpStreamId?W9(this.repairedRtpStreamId):void 0;case Yt.transportWideCC:return this.dtlsTransport.transportSequenceNumber=Ur(this.dtlsTransport.transportSequenceNumber,1),G9(this.dtlsTransport.transportSequenceNumber);case Yt.absSendTime:return X9(s)}})();if(u)return{id:d.id,payload:u}}).filter(d=>d);for(let d of n){let u=e.extensions.find(l=>l.id===d.id);u?u.payload=d.payload:e.extensions.push(d)}e.extensions=e.extensions.sort((d,u)=>d.id-u.id),this.ntpTimestamp=s,this.rtpTimestamp=e.timestamp,this.octetCount+=t.length,this.packetCount=Gc(this.packetCount,1),this.rtpCache[e.sequenceNumber%bk]=r;let i=t;this.redRedundantPayloadType&&(this.redEncoder.push({block:i,timestamp:e.timestamp,blockPT:this.redRedundantPayloadType}),i=this.redEncoder.build().serialize());let o=await this.dtlsTransport.sendRtp(i,e);this.runRtcp();let a=q_(),c={wideSeq:this.dtlsTransport.transportSequenceNumber,size:o,sendingAtMs:a,sentAtMs:a};this.senderBWE.rtpPacketSent(c)}handleRtcpPacket(r){switch(r.type){case td.type:case Qu.type:r.reports.filter(t=>t.ssrc===this.ssrc).forEach(t=>{if(this.lastSRtimestamp===t.lsr&&t.dlsr&&this.lastSentSRTimestamp){let s=Pp()-this.lastSentSRTimestamp-t.dlsr/65536;this.rtt===void 0?this.rtt=s:this.rtt=vk*this.rtt+(1-vk)*s}});break;case ed.type:{let e=r;switch(e.feedback.count){case Tp.count:{let t=e.feedback;this.senderBWE.receiveTWCC(t)}break;case Cp.count:{let t=e.feedback;t.lost.forEach(async s=>{let n=this.rtpCache[s%bk];n&&n.header.sequenceNumber!==s&&(n=void 0),n&&(this.rtxPayloadType!=null&&(n=aP(n,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=Ur(this.rtxSequenceNumber,1)),await this.dtlsTransport.sendRtp(n.payload,n.header))}),this.onGenericNack.execute(t)}break}}break;case Yu.type:{let e=r;switch(e.feedback.count){case Ep.count:{let t=e.feedback;this.receiverEstimatedMaxBitrate=t.bitrate}break;case _p.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(r)}getParameters(){return{encodings:[]}}setParameters(r){}async getStats(){let r=Sa(),e=[];if(!this.dtlsTransport)return e;let t=qt("transport",this.dtlsTransport.id),s={type:"outbound-rtp",id:qt("outbound-rtp",this.ssrc),timestamp:r,ssrc:this.ssrc,kind:this.kind,transportId:t,codecId:this.codec?qt("codec",this.codec.payloadType,t):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(e.push(s),this.track){let n={type:"media-source",id:qt("media-source",this.trackId),timestamp:r,trackIdentifier:this.trackId,kind:this.kind};e.push(n)}if(this.rtt!==void 0){let n={type:"remote-inbound-rtp",id:qt("remote-inbound-rtp",this.ssrc),timestamp:r,ssrc:this.ssrc,kind:this.kind,transportId:t,codecId:s.codecId,localId:s.id,roundTripTime:this.rtt};e.push(n)}return e}},lV=ut("werift:packages/webrtc/src/transport/sctpManager.ts"),hV=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new Ce;constructor(){}createSctpTransport(r){let e=new aB(5e3,r);return e.mid=void 0,e.onDataChannel.subscribe(t=>{this.dataChannelsOpened++,this.dataChannels.push(t),this.onDataChannel.execute(t)}),this.sctpTransport=e,e}createDataChannel(r,e={}){let s={...{protocol:"",ordered:!0,negotiated:!1},...e};if(s.maxPacketLifeTime&&s.maxRetransmits)throw new Error("can not select both");this.sctpTransport||(this.sctpTransport=this.createSctpTransport());let n=new R_({id:s.id,label:r,maxPacketLifeTime:s.maxPacketLifeTime,maxRetransmits:s.maxRetransmits,negotiated:s.negotiated,ordered:s.ordered,protocol:s.protocol}),i=new I_(this.sctpTransport,n);return this.dataChannelsOpened++,this.dataChannels.push(i),i.stateChange.subscribe(o=>{if(o==="closed"){this.dataChannelsClosed++;let a=this.dataChannels.indexOf(i);a!==-1&&this.dataChannels.splice(a,1)}}),i}async connectSctp(){!this.sctpTransport||!this.sctpRemotePort||(await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),lV("sctp connected"))}setRemoteSCTP(r,e){if(this.sctpTransport){if(this.sctpTransport.setRemoteMaxMessageSize(r.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=r.sctpPort,!this.sctpRemotePort)throw new Error("sctpRemotePort not exist");this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=e,this.sctpTransport.mid||(this.sctpTransport.mid=r.rtp.muxId)}}async close(){this.sctpTransport&&await this.sctpTransport.stop(),this.onDataChannel.allUnsubscribe()}async getStats(){let r=Sa(),e=[];for(let t of this.dataChannels){let s={type:"data-channel",id:qt("data-channel",t.id),timestamp:r,label:t.label,protocol:t.protocol,dataChannelIdentifier:t.id,state:t.readyState,messagesSent:t.messagesSent||0,bytesSent:t.bytesSent||0,messagesReceived:t.messagesReceived||0,bytesReceived:t.bytesReceived||0};e.push(s)}return e}},pB=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:r,midSuffix:e,bundlePolicy:t}){this.cname=r,this.midSuffix=e??!1,this.bundlePolicy=t}get localDescription(){if(this._localDescription)return this._localDescription.toJSON()}get remoteDescription(){if(this._remoteDescription)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?.(r=>r.direction==="inactive")}createMediaDescriptionForTransceiver(r,e){let t=new Qx(r.kind,9,"UDP/TLS/RTP/SAVPF",r.codecs.map(s=>s.payloadType));return t.direction=e,t.msid=r.msid,t.rtp={codecs:r.codecs,headerExtensions:r.headerExtensions,muxId:r.mid},t.rtcpHost="0.0.0.0",t.rtcpPort=9,t.rtcpMux=!0,t.ssrc=[new Jx({ssrc:r.sender.ssrc,cname:this.cname})],r.options.simulcast&&(t.simulcastParameters=r.options.simulcast.map(s=>new k_(s))),t.rtp.codecs.find(s=>s.name.toLowerCase()==="rtx")&&(t.ssrc.push(new Jx({ssrc:r.sender.rtxSsrc,cname:this.cname})),t.ssrcGroup=[new Gu("FID",[r.sender.ssrc.toString(),r.sender.rtxSsrc.toString()])]),this.addTransportDescription(t,r.dtlsTransport),t}createMediaDescriptionForSctp(r){let e=new Qx("application",sk,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return e.sctpPort=r.port,e.rtp.muxId=r.mid,e.sctpCapabilities=r.getCapabilities(),this.addTransportDescription(e,r.dtlsTransport),e}addTransportDescription(r,e){let t=e.iceTransport;r.iceCandidates=t.localCandidates,r.iceCandidatesComplete=t.gatheringState==="complete",r.iceParams=t.localParameters,r.iceOptions="trickle",r.host=wz,r.port=sk,r.direction==="inactive"&&(r.port=0,r.msid=void 0),r.dtlsParams||(r.dtlsParams=e.localParameters,r.dtlsParams.fingerprints||(r.dtlsParams.fingerprints=e.localParameters.fingerprints))}allocateMid(r=""){let e="";for(let t=0;e=(t++).toString()+r,!!this.seenMid.has(e););return this.seenMid.add(e),e}parseSdp({sdp:r,isLocal:e,signalingState:t,type:s}){let n=pp.parse(r);return this.validateDescription({description:n,isLocal:e,signalingState:t}),n.type=s,n}validateDescription({description:r,isLocal:e,signalingState:t}){if(e){if(r.type==="offer"){if(!["stable","have-local-offer"].includes(t))throw new Error("Cannot handle offer in signaling state")}else if(r.type==="answer"&&!["have-remote-offer","have-local-pranswer"].includes(t))throw new Error("Cannot handle answer in signaling state")}else if(r.type==="offer"){if(!["stable","have-remote-offer"].includes(t))throw new Error("Cannot handle offer in signaling state")}else if(r.type==="answer"&&!["have-local-offer","have-remote-pranswer"].includes(t))throw new Error("Cannot handle answer in signaling state")}buildOfferSdp(r,e){let t=new pp;W2("offer",t),(this.currentLocalDescription?.media??[]).forEach((n,i)=>{let o=n.rtp.muxId;if(o)if(n.kind==="application"){if(!e)throw new Error("sctpTransport not found");e.mLineIndex=i,t.media.push(this.createMediaDescriptionForSctp(e))}else{let a=r.find(c=>c.mid===o);if(!a){if(n.direction==="inactive"){t.media.push(n);return}throw new Error("transceiver not found")}a.mLineIndex=i,t.media.push(this.createMediaDescriptionForTransceiver(a,a.direction))}});for(let n of r.filter(i=>!t.media.find(o=>o.rtp.muxId===i.mid))){n.mid==null&&(n.mid=this.allocateMid(this.midSuffix?"av":""));let i=this.createMediaDescriptionForTransceiver(n,n.direction);n.mLineIndex===void 0?(n.mLineIndex=t.media.length,t.media.push(i)):t.media[n.mLineIndex]=i}if(e&&!t.media.find(n=>n.kind==="application")&&(e.mLineIndex=t.media.length,e.mid==null&&(e.mid=this.allocateMid(this.midSuffix?"dc":"")),t.media.push(this.createMediaDescriptionForSctp(e))),this.bundlePolicy!=="disable"){let n=t.media.map(i=>i.rtp.muxId).filter(i=>i);if(n.length){let i=new Gu("BUNDLE",n);t.group.push(i)}}return t}buildAnswerSdp({transceivers:r,sctpTransport:e,signalingState:t}){if(!["have-remote-offer","have-local-pranswer"].includes(t))throw new Error("createAnswer failed");if(!this._remoteDescription)throw new Error("wrong state");let s=new pp;W2("answer",s);for(let n of this._remoteDescription.media){let i,o;if(["audio","video"].includes(n.kind)){let a=r.find(c=>c.mid===n.rtp.muxId);if(!a)throw new Error(`Transceiver with mid=${n.rtp.muxId} not found`);o=this.createMediaDescriptionForTransceiver(a,F_(a.direction,a.offerDirection)),i=a.dtlsTransport}else if(n.kind==="application"){if(!e||!e.mid)throw new Error("sctpTransport not found");o=this.createMediaDescriptionForSctp(e),i=e.dtlsTransport}else throw new Error("invalid kind");o.dtlsParams&&(i.role==="auto"?o.dtlsParams.role="client":o.dtlsParams.role=i.role),n.simulcastParameters&&n.simulcastParameters.length>0&&(o.simulcastParameters=n.simulcastParameters.map(a=>({...a,direction:a.direction==="send"?"recv":"send"}))),s.media.push(o)}if(this.bundlePolicy!=="disable"){let n=new Gu("BUNDLE",[]);for(let i of s.media)i.rtp.muxId&&n.items.push(i.rtp.muxId);s.group.push(n)}return s}setLocalDescription(r){this.currentLocalDescription=r,r.type==="answer"?this.pendingLocalDescription=void 0:this.pendingLocalDescription=r}setRemoteDescription(r,e){if(!r.sdp||!r.type||r.type==="rollback"||r.type==="pranswer")throw new Error("invalid sessionDescription");let t=this.parseSdp({sdp:r.sdp,isLocal:!1,signalingState:e,type:r.type});return t.type==="answer"?(this.currentRemoteDescription=t,this.pendingRemoteDescription=void 0):this.pendingRemoteDescription=t,t}registerMid(r){this.seenMid.add(r)}get remoteIsBundled(){let r=this._remoteDescription;return r?r.group.find(t=>t.semantic==="BUNDLE"&&this.bundlePolicy!=="disable"):void 0}setLocal(r,e,t){let s=new Map(e.map(o=>[o?.mLineIndex,o])),n=e.find(o=>o?.dtlsTransport)?.dtlsTransport??t?.dtlsTransport;r.media.filter(o=>["audio","video"].includes(o.kind)).forEach((o,a)=>{let d=(s.get(a)??e[a])?.dtlsTransport??n;if(!d)throw new Error(`dtls transport not found for media index ${a}`);this.addTransportDescription(o,d)});let i=r.media.find(o=>o.kind==="application");t&&i&&this.addTransportDescription(i,t.dtlsTransport),this.setLocalDescription(r)}},Qh=ut("werift:packages/webrtc/src/transport/secureTransportManager.ts"),pV=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new Ce;iceConnectionStateChange=new Ce;onIceCandidate=new Ce;connectionStateChange=new Ce;config;transceiverManager;sctpManager;constructor({config:r,transceiverManager:e,sctpManager:t}){if(this.config=r,this.transceiverManager=e,this.sctpManager=t,this.config.dtls){let{keys:s}=this.config.dtls;s&&this.setupCertificate(s)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map(e=>e?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter(e=>e!=null).reduce((e,t)=>(e.map(s=>s.id).includes(t.id)||e.push(t),e),[])}get iceTransports(){return this.dtlsTransports.map(r=>r.iceTransport)}setupCertificate(r){this.certificate=new V_(r.keyPem,r.certPem,r.signatureHash)}createTransport(){let r=this.iceTransports.find(n=>n.state!=="closed"),e=new N7({..._7(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});r&&(e.connection.localUsername=r.connection.localUsername,e.connection.localPassword=r.connection.localPassword),e.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let t=new B7(e);return t.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new P2(this.config,t,this.certificate,mV)}handleNewIceCandidate({candidate:r,media:e,remoteIsBundled:t,transceiver:s,sctpTransport:n,bundlePolicy:i}){return i==="max-bundle"||t?(r.sdpMLineIndex=0,e&&(r.sdpMid=e.rtp.muxId)):(s&&(r.sdpMLineIndex=s.mLineIndex,r.sdpMid=s.mid),n&&(r.sdpMLineIndex=n.mLineIndex,r.sdpMid=n.mid)),r.foundation&&!r.foundation.startsWith("candidate:")&&(r.foundation="candidate:"+r.foundation),this.onIceCandidate.execute(r),r}async addIceCandidate(r,e){let t=$_.fromJSON(e);if(!t)return;let s;typeof t.sdpMid=="number"&&(s=this.getTransportByMid(t.sdpMid)),!s&&typeof t.sdpMLineIndex=="number"&&(s=this.getTransportByMLineIndex(r,t.sdpMLineIndex)),s||(s=this.iceTransports[0]),s?await s.addRemoteCandidate(t):Qh("iceTransport not found for candidate",t)}getTransportByMid(r){let e,t=this.transceiverManager.getTransceivers().find(s=>s.mid===r);return t?e=t.dtlsTransport.iceTransport:!e&&this.sctpManager.sctpTransport?.mid===r&&(e=this.sctpManager.sctpTransport.dtlsTransport.iceTransport),e}getTransportByMLineIndex(r,e){let t=r.media[e];return t?this.getTransportByMid(t.rtp.muxId):void 0}restartIce(){for(let r of this.iceTransports)r.restart()}setLocalRole({type:r,role:e}){for(let t of this.dtlsTransports){let s=t.iceTransport;r==="offer"?s.connection.iceControlling=!0:s.connection.iceControlling=!1,s.connection.remoteIsLite&&(s.connection.iceControlling=!0),r==="answer"&&e&&(t.role=e)}}updateIceGatheringState(){let r=this.iceTransports;function e(...s){return r.filter(n=>s.includes(n.gatheringState)).length===r.length}let t;r.length&&e("complete")?t="complete":!r.length||e("new","complete")?t="new":r.map(s=>s.gatheringState).includes("gathering")?t="gathering":t="new",this.iceGatheringState!==t&&(this.iceGatheringState=t,this.iceGatheringStateChange.execute(t))}updateIceConnectionState(){let r=this.iceTransports,e;function t(...n){return r.filter(i=>n.includes(i.state)).length===r.length}function s(...n){return r.some(i=>n.includes(i.state))}this.connectionState==="closed"?e="closed":s("failed")?e="failed":s("disconnected")?e="disconnected":t("new","closed")?e="new":s("new","checking")?e="checking":t("completed","closed")?e="completed":t("connected","completed","closed")?e="connected":e="new",this.iceConnectionState!==e&&(Qh("iceConnectionStateChange",e),this.iceConnectionState=e,this.iceConnectionStateChange.execute(e))}async gatherCandidates(r){let e=this.iceTransports.find(t=>t.state==="connected"||t.state==="completed");r&&e?Qh("skipping ICE gathering for bundled connection"):await Promise.allSettled(this.iceTransports.map(t=>t.gather())).catch(t=>{Qh("gatherCandidates failed",t)})}setConnectionState(r){Qh("connectionStateChange",r),this.connectionState=r,this.connectionStateChange.execute(r)}async getStats(){let r=[];for(let e of this.dtlsTransports){let t=await e.getStats();t&&r.push(...t)}return r}async ensureCerts(){this.certificate||(this.certificate=await P2.SetupCertificate());for(let r of this.dtlsTransports)r.localCertificate=this.certificate}async close(){this.setConnectionState("closed"),await Promise.allSettled([...this.dtlsTransports.map(r=>r.stop())]),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),this.connectionStateChange.allUnsubscribe()}},mV=[ik.SRTP_AEAD_AES_128_GCM,ik.SRTP_AES128_CM_HMAC_SHA1_80],Sn=ut("werift:packages/webrtc/src/peerConnection.ts"),gV=class extends A_{cname=(0,hB.randomUUID)().toString();config=mB();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new fB;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new Ce;iceConnectionStateChange=new Ce;signalingStateChange=new Ce;connectionStateChange=new Ce;onDataChannel=new Ce;onRemoteTransceiverAdded=new Ce;onTransceiverAdded=new Ce;onIceCandidate=new Ce;onNegotiationneeded=new Ce;onTrack=new Ce;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(r={}){super(),this.setConfiguration(r),this.sdpManager=new pB({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new gB(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:e,stream:t,transceiver:s})=>{let n={track:e,streams:[t],transceiver:s,receiver:s.receiver};this.onTrack.execute(e),this.emit("track",n),this.ontrack&&this.ontrack(n)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new hV,this.sctpManager.onDataChannel.subscribe(e=>{this.onDataChannel.execute(e);let t={channel:e};this.ondatachannel?.(t),this.emit("datachannel",t)}),this.secureManager=new pV({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe(e=>{e==="closed"&&this.close(),this.iceConnectionStateChange.execute(e)}),this.secureManager.connectionStateChange.subscribe(e=>{this.connectionStateChange.execute(e),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe(e=>{let t=e?e.toJSON():void 0;this.onIceCandidate.execute(t),this.onicecandidate?.({candidate:t}),this.emit("icecandidate",{candidate:t})})}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(r){if(E7(this.config,r),this.config.icePortRange){let[e,t]=this.config.icePortRange;if(e===t)throw new Error("should not be same value");if(e>=t)throw new Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw new Error("maxMessageSize must be a non-negative integer");this.sctpManager?.sctpTransport&&(this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize);for(let[e,t]of JR([...this.config.codecs.audio||[],...this.config.codecs.video||[]]))if(t.payloadType==null)switch(t.payloadType=96+e,t.name.toLowerCase()){case"rtx":t.parameters=`apt=${t.payloadType-1}`;break;case"red":if(t.contentType==="audio"){let s=t.payloadType+1;t.parameters=`${s}/${s}`,t.payloadType=63}break}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((e,t)=>{e.id=1+t})}getConfiguration(){return this.config}async createOffer({iceRestart:r}={}){(r||this.needRestart)&&(this.needRestart=!1,this.secureManager.restartIce()),await this.secureManager.ensureCerts();for(let t of this.transceiverManager.getTransceivers())t.codecs.length===0&&this.transceiverManager.assignTransceiverCodecs(t),t.headerExtensions.length===0&&(t.headerExtensions=this.config.headerExtensions[t.kind]??[]);return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let r=this.sctpManager.createSctpTransport(this.config.maxMessageSize),e=this.findOrCreateTransport();return r.setDtlsTransport(e),r}createDataChannel(r,e={}){this.sctpTransport||(this.createSctpTransport(),this.needNegotiation());let t=this.sctpManager.createDataChannel(r,e);if(!t.sctp.dtlsTransport){let s=this.findOrCreateTransport();t.sctp.setDtlsTransport(s)}return t}removeTrack(r){if(this.isClosed)throw new Error("peer closed");this.transceiverManager.removeTrack(r),this.needNegotiation()}needNegotiation=async()=>{this.shouldNegotiationneeded=!0,!(this.negotiationneeded||this.signalingState!=="stable")&&(this.shouldNegotiationneeded=!1,setImmediate(()=>{this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded&&this.onnegotiationneeded({})}))};findOrCreateTransport(){let r=this.dtlsTransports.find(n=>n.state!=="closed"),e=r?.iceTransport;if((this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated))&&r)return r;let t=this.secureManager.createTransport();t.onRtp.subscribe(n=>{this.router.routeRtp(n)}),t.onRtcp.subscribe(n=>{this.router.routeRtcp(n)});let s=t.iceTransport;return s.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),s.onIceCandidate.subscribe(n=>{if(!this.localDescription){Sn("localDescription not found when ice candidate was gathered");return}if(!n){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){Sn("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:n,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find(i=>i?.dtlsTransport?.iceTransport.id===s.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===s.id?this.sctpTransport:void 0})}),t}async setLocalDescription(r){r=r??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let t=this.sdpManager.parseSdp({sdp:r.sdp,isLocal:!0,signalingState:this.signalingState,type:r.type});t.type==="offer"?this.setSignalingState("have-local-offer"):t.type==="answer"&&this.setSignalingState("stable");for(let[n,i]of JR(t.media)){let o=i.rtp.muxId;if(this.sdpManager.registerMid(o),["audio","video"].includes(i.kind)){let a=this.transceiverManager.getTransceiverByMLineIndex(n);a&&(a.mid=o)}i.kind==="application"&&this.sctpTransport&&(this.sctpTransport.mid=o)}let s=t.media.find(n=>n.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:t.type,role:s}),["answer","pranswer"].includes(t.type))for(let n of this.transceiverManager.getTransceivers()){let i=F_(n.direction,n.offerDirection);n.setCurrentDirection(i)}return this.sdpManager.setLocal(t,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch(n=>{Sn("gatherCandidates failed",n)}),t.type==="answer"&&this.connect().catch(n=>{Sn("connect failed",n),this.secureManager.setConnectionState("failed")}),this.sdpManager.setLocal(t,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded&&this.needNegotiation(),t}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(r){let e=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(e,r)}async connect(){Sn("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async e=>{let{iceTransport:t}=e;if(t.state==="connected")return;let s=()=>e.state==="connected";s()||(this.secureManager.setConnectionState("connecting"),await t.start().catch(n=>{throw Sn("iceTransport.start failed",n),n}),!s()&&(await e.start().catch(n=>{throw Sn("dtlsTransport.start failed",n),n}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===e.id&&await this.sctpManager.connectSctp()))}))).find(e=>e.status==="rejected")?this.secureManager.setConnectionState("failed"):this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(r){r instanceof pp&&(r=r.toSdp());let e=this.sdpManager.setRemoteDescription(r,this.signalingState);e.group.some(o=>o.semantic==="BUNDLE"&&o.items.length>0)&&(this.remoteBundleNegotiated=!0);let t,s=(o,a)=>o.kind===a.kind&&[void 0,a.rtp.muxId].includes(o.mid),n=e.media.map((o,a)=>{let c;if(["audio","video"].includes(o.kind)){let u=this.transceiverManager.getTransceivers().find(l=>s(l,o));if(!u)u=this.addTransceiver(o.kind,{direction:"recvonly"}),u.mid=o.rtp.muxId,this.onRemoteTransceiverAdded.execute(u);else if(u.direction==="inactive"&&u.stopping){u.stopped=!0,r.type==="answer"&&u.setCurrentDirection("inactive");return}this.sdpManager.remoteIsBundled&&(t?u.setDtlsTransport(t):t=u.dtlsTransport),c=u.dtlsTransport,this.transceiverManager.setRemoteRTP(u,o,e.type,a)}else if(o.kind==="application"){let u=this.sctpTransport;u||(u=this.createSctpTransport(),u.mid=o.rtp.muxId),this.sdpManager.remoteIsBundled&&(t?u.setDtlsTransport(t):t=u.dtlsTransport),c=u.dtlsTransport,this.sctpManager.setRemoteSCTP(o,a)}else throw new Error("invalid media kind");let d=c.iceTransport;if(o.iceParams){let u=!!this.sdpManager.inactiveRemoteMedia;d.setRemoteParams(o.iceParams,u),o.iceParams?.iceLite&&(d.connection.iceControlling=!0)}return o.dtlsParams&&c.setRemoteParams(o.dtlsParams),o.iceCandidates.forEach(d.addRemoteCandidate),o.iceCandidatesComplete&&d.addRemoteCandidate(void 0),e.type==="answer"&&o.dtlsParams?.role&&(c.role=o.dtlsParams.role==="client"?"server":"client"),d});n=n.filter(o=>!!o);let i=this.transceiverManager.getTransceivers().filter(o=>e.media.find(a=>s(o,a))==null);if(r.type==="answer")for(let o of i)o.stop(),o.stopped=!0;e.type==="offer"?this.setSignalingState("have-remote-offer"):e.type==="answer"&&this.setSignalingState("stable"),e.type==="answer"&&(Sn("caller start connect"),this.connect().catch(o=>{Sn("connect failed",o),this.secureManager.setConnectionState("failed")})),this.negotiationneeded=!1,this.shouldNegotiationneeded&&this.needNegotiation()}addTransceiver(r,e={}){let t=this.findOrCreateTransport(),s=this.transceiverManager.addTransceiver(r,t,e);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),s}addTrack(r,e){if(this.isClosed)throw new Error("is closed");let t=this.transceiverManager.addTrack(r,e);if(!t.dtlsTransport){let s=this.findOrCreateTransport();t.setDtlsTransport(s)}return this.needNegotiation(),t.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 new Error("RTCPeerConnection is closed")}setSignalingState(r){Sn("signalingStateChange",r),this.signalingState=r,this.signalingStateChange.execute(r),this.onsignalingstatechange&&this.onsignalingstatechange({})}createPeerConnectionStats(){let r=Sa();return{type:"peer-connection",id:qt("peer-connection"),timestamp:r,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(r){let e=[];e.push(this.createPeerConnectionStats());let t=await this.transceiverManager.getStats(r);e.push(...t);let s=await this.secureManager.getStats();if(e.push(...s),this.sctpTransport){let n=await this.sctpManager.getStats();n&&e.push(...n)}return new m7(e)}async close(){this.isClosed||(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(),Sn("peerConnection closed"))}},J2=(r,e)=>r.find(t=>t.mimeType.toLowerCase()===e.mimeType.toLowerCase())?e:void 0;xV=mB(),yV=ut("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),gB=class{constructor(r,e,t){this.cname=r,this.config=e,this.router=t}transceivers=[];onTransceiverAdded=new Ce;onRemoteTransceiverAdded=new Ce;onTrack=new Ce;onNegotiationNeeded=new Ce;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map(r=>r.sender)}getReceivers(){return this.getTransceivers().map(r=>r.receiver)}getTransceiverByMLineIndex(r){return this.transceivers.find(e=>e.mLineIndex===r)}pushTransceiver(r){this.transceivers.push(r)}replaceTransceiver(r,e){this.transceivers[e]=r}addTransceiver(r,e,t={}){let s=typeof r=="string"?r:r.kind,n=t.direction||"sendrecv",i=new lB(r),o=new Q_(this.config,s,i.ssrc),a=new g7(s,e,o,i,n);a.options=t,this.router.registerRtpSender(a.sender);let c=this.transceivers.findIndex(u=>u.currentDirection==="inactive"&&!u.usedForSender),d=this.transceivers.find(u=>u.currentDirection==="inactive"&&!u.usedForSender);return c>-1&&d?(this.replaceTransceiver(a,c),a.mLineIndex=d.mLineIndex,a.mid=d.mid,d.setCurrentDirection(void 0)):this.pushTransceiver(a),this.onTransceiverAdded.execute(a),a}addTrack(r,e){if(this.getSenders().find(n=>n.track?.uuid===r.uuid))throw new Error("Track already added");let t=this.transceivers.find(n=>n.sender.track==null&&n.kind===r.kind&&Ix.includes(n.direction)===!0);if(t)return t.sender.registerTrack(r),t;let s=this.transceivers.find(n=>n.sender.track==null&&n.kind===r.kind&&Ix.includes(n.direction)===!1&&!n.usedForSender);if(s){switch(s.sender.registerTrack(r),s.direction){case"recvonly":s.setDirection("sendrecv");break;case"inactive":s.setDirection("sendonly");break}return s}else return this.addTransceiver(r,void 0,{direction:"sendrecv"})}removeTrack(r){if(!this.getSenders().find(({ssrc:t})=>r.ssrc===t))throw new Error("Sender does not exist");let e=this.transceivers.find(({sender:{ssrc:t}})=>r.ssrc===t);if(!e)throw new Error("No matching transceiver found");if(r.stop(),e.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}e.stopping||e.stopped?e.setDirection("inactive"):e.direction==="sendrecv"?e.setDirection("recvonly"):(e.direction==="sendonly"||e.direction==="recvonly")&&e.setDirection("inactive")}assignTransceiverCodecs(r){let e=this.config.codecs[r.kind].filter(t=>{switch(t.direction){case"recvonly":return!!_z.includes(r.direction);case"sendonly":return!!Ix.includes(r.direction);case"sendrecv":return!![M_,D_,L_].includes(r.direction);case"all":return!0;default:return!1}});r.codecs=e}getLocalRtpParams(r){if(r.mid==null)throw new Error("mid not assigned");return{codecs:r.codecs,muxId:r.mid,headerExtensions:r.headerExtensions,rtcp:{cname:this.cname,ssrc:r.sender.ssrc,mux:!0}}}getRemoteRtpParams(r,e){return{muxId:r.rtp.muxId,rtcp:r.rtp.rtcp,codecs:e.codecs,headerExtensions:e.headerExtensions,encodings:Object.values(e.codecs.reduce((s,n)=>{if(n.name.toLowerCase()==="rtx"){let i=Op(n.parameters??""),o=s[i.apt];return o&&r.ssrc.length===2&&(o.rtx=new i7({ssrc:r.ssrc[1].ssrc})),s}return s[n.payloadType]=new o7({ssrc:r.ssrc[0]?.ssrc,payloadType:n.payloadType}),s},{}))}}setRemoteRTP(r,e,t,s){if(r.mid||(r.mid=e.rtp.muxId),r.mLineIndex=s,r.codecs=e.rtp.codecs.filter(a=>{let c=this.config.codecs[e.kind]||[],d=J2(c,a);if(!d)return!1;if(d?.name.toLowerCase()==="rtx"){let l=Op(d.parameters??"").apt,h=e.rtp.codecs.find(x=>x.payloadType===l);return h?!!J2(c,h):!1}return!0}),yV("negotiated codecs",r.codecs),r.codecs.length===0)throw new Error("negotiate codecs failed.");r.headerExtensions=e.rtp.headerExtensions.filter(a=>(this.config.headerExtensions[e.kind]||[]).find(c=>c.uri===a.uri));let n=e.direction??"inactive",i=v7(n);["answer","pranswer"].includes(t)?r.setCurrentDirection(i):r.offerDirection=i;let o=this.getLocalRtpParams(r);if(r.sender.prepareSend(o),["recvonly","sendrecv"].includes(r.direction)){let a=this.getRemoteRtpParams(e,r);for(let c of e.simulcastParameters)this.router.registerRtpReceiverByRid(r,c,a);r.receiver.prepareReceive(a),this.router.registerRtpReceiverBySsrc(r,a)}if(["sendonly","sendrecv"].includes(n)){if(e.msid){let[a,c]=e.msid.split(" ");r.receiver.remoteStreamId=a,r.receiver.remoteTrackId=c}this.onTrack.execute({track:r.receiver.track,transceiver:r,stream:new y7({id:r.receiver.remoteStreamId,tracks:[r.receiver.track]})})}e.ssrc[0]?.ssrc&&r.receiver.setupTWCC(e.ssrc[0].ssrc)}async getStats(r){let e=[];for(let t of this.transceivers){let s=!r||t.sender.track===r||t.receiver.track===r;if(t.sender){let n=await t.sender.getStats();if(n)for(let i of n)i.type==="outbound-rtp"||i.type==="media-source"?s&&e.push(i):e.push(i)}if(t.receiver){let n=await t.receiver.getStats();if(n)for(let i of n)i.type==="inbound-rtp"||i.type==="remote-outbound-rtp"?s&&e.push(i):e.push(i)}if(s){let n=t.getCodecStats();n&&e.push(...n)}}return e}close(){for(let r of this.transceivers)r.receiver.stop(),r.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}},bV=["stable","have-local-offer","have-remote-offer","have-local-pranswer","have-remote-pranswer","closed"],vV=["closed","failed","disconnected","new","connecting","connected"]});var MV={};mf(MV,{ChannelMultiplexer:()=>Bd,DeferredChannelMultiplexer:()=>D0,TransportSession:()=>my,decodeDocSyncFrame:()=>tE,encodeDocSyncFrame:()=>eE,ensureNodeWebRTC:()=>py,isNodeRuntime:()=>af,nodeMediasoupHandlerName:()=>hy});module.exports=by(MV);var AB=Xe(Zy());var wb=Xe(qC(),1);var Bd=class{_handlers=new Map;_ws;_onMessage;_onOpen;_listeningForOpen=!1;_pendingSends=[];_disposed=!1;constructor(e){this._ws=e,this._onMessage=t=>{if(typeof t.data!="string")return;let s;try{s=JSON.parse(t.data)}catch{console.warn("[ChannelMultiplexer] Failed to parse WebSocket message as JSON");return}if(!s.channel)return;let n=this._handlers.get(s.channel);if(n)for(let i of n)i(s)},this._ws.addEventListener("message",this._onMessage),this._onOpen=()=>{this.flushPendingSends()}}on(e,t){let s=this._handlers.get(e);return s||(s=new Set,this._handlers.set(e,s)),s.add(t),()=>{s.delete(t),s.size===0&&this._handlers.delete(e)}}emit(e,t){if(this._disposed)return;let s=JSON.stringify({channel:e,...t});if(this._ws.readyState===WebSocket.OPEN){this._ws.send(s);return}this._ws.readyState===WebSocket.CONNECTING&&(this._pendingSends.push(s),this.listenForOpen())}dispose(){this._disposed=!0,this._pendingSends=[],this._handlers.clear(),this._ws.removeEventListener("message",this._onMessage),this._ws.removeEventListener("open",this._onOpen),this._listeningForOpen=!1}flushPendingSends(){if(this._disposed||this._ws.readyState!==WebSocket.OPEN)return;this._ws.removeEventListener("open",this._onOpen),this._listeningForOpen=!1;let e=this._pendingSends;this._pendingSends=[];for(let t of e)this._ws.send(t)}listenForOpen(){this._listeningForOpen||(this._listeningForOpen=!0,this._ws.addEventListener("open",this._onOpen))}},D0=class{_handlers=new Map;_pendingSends=[];_target=null;_targetUnsubscribes=[];_disposed=!1;setTarget(e){if(this._disposed)return;this.detachTarget(),this._target=e;for(let[s,n]of this._handlers)for(let i of n)this._targetUnsubscribes.push(e.on(s,i));let t=this._pendingSends;this._pendingSends=[];for(let s of t)e.emit(s.channel,s.data)}rewriteSessionChannels(e,t){if(e===t)return;let s=`session:${e}:`,n=`session:${t}:`,i=new Map;for(let[o,a]of this._handlers)i.set(o.startsWith(s)?n+o.slice(s.length):o,a);this._handlers=i,this._pendingSends=this._pendingSends.map(o=>({...o,channel:o.channel.startsWith(s)?n+o.channel.slice(s.length):o.channel}))}on(e,t){if(this._disposed)return()=>{};let s=this._handlers.get(e);s||(s=new Set,this._handlers.set(e,s)),s.add(t);let n=this._target?.on(e,t);return n&&this._targetUnsubscribes.push(n),()=>{s?.delete(t),s?.size===0&&this._handlers.delete(e),n?.(),n&&(this._targetUnsubscribes=this._targetUnsubscribes.filter(i=>i!==n))}}emit(e,t){if(!this._disposed){if(this._target){this._target.emit(e,t);return}this._pendingSends.push({channel:e,data:t})}}dispose(){this._disposed=!0,this._pendingSends=[],this._handlers.clear(),this.detachTarget()}detachTarget(){for(let e of this._targetUnsubscribes)e();this._targetUnsubscribes=[],this._target=null}};function af(){return typeof window>"u"&&typeof process<"u"&&process.versions!=null&&process.versions.node!=null}function hy(){return af()?"Chrome111":void 0}var wV=["RTCSessionDescription","RTCIceCandidate","RTCRtpReceiver","RTCRtpSender","RTCRtpTransceiver","RTCDataChannel","MediaStream","MediaStreamTrack"],ly=null;function py(){return af()?ly||(ly=SV(),ly):Promise.resolve()}async function SV(){let r=globalThis;if(typeof r.WebSocket>"u")try{let e=await import("ws"),t=e.default??e;r.WebSocket=t}catch(e){bB("WebSocket",e)}if(typeof r.RTCPeerConnection>"u")try{let e=await Promise.resolve().then(()=>(yB(),xB));_V(r,e)}catch(e){bB("werift",e)}}function _V(r,e){let{RTCPeerConnection:t,useH264:s,useVP8:n,useOPUS:i,useSdesMid:o,useSdesRTPStreamId:a,useAbsSendTime:c,useTransportWideCC:d,useVideoOrientation:u}=e,l=()=>({video:[s(),n()],audio:[i()]}),h=()=>({video:[o(),a(),c(),d(),u()],audio:[o(),c(),d()]});class x extends t{constructor(S){super({...S,codecs:S?.codecs??l(),headerExtensions:S?.headerExtensions??h()})}}r.RTCPeerConnection=x;for(let v of wV)e[v]!=null&&typeof r[v]>"u"&&(r[v]=e[v])}function bB(r,e){let t=e instanceof Error?e.message:String(e);console.warn(`[urun-sh/core] Node WebRTC support: optional dependency "${r}" unavailable (${t}). Realtime media will not work in this Node process; install "${r}" to enable it. Doc/KV transport over WebSocket is unaffected.`)}var vB="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function EV(r){let e=globalThis.crypto,t=new Uint8Array(r);if(e?.getRandomValues)return e.getRandomValues(t),t;for(let s=0;s<r;s++)t[s]=Math.floor(Math.random()*256);return t}function wB(r=16){let e=EV(r),t="";for(let s=0;s<r;s++)t+=vB[e[s]%vB.length];return t}var SB=[1e3,2e3,4e3,8e3,3e4],_B=5,CV=15e3,TV=2e3,AV=6e3,IV=2,RV=750,kV=3,EB=[1e3,2e3,4e3],PV=15e3,J_="control",IB=0,RB=1,Z_=64;function eE(r,e){if(r===J_){let n=new Uint8Array(1+e.length);return n[0]=IB,n.set(e,1),n}let t=new TextEncoder().encode(r);if(t.length<1||t.length>Z_)throw new Error(`[urun] doc key length out of range (1..${Z_}): ${t.length}`);let s=new Uint8Array(3+t.length+e.length);return s[0]=RB,s[1]=t.length>>>8&255,s[2]=t.length&255,s.set(t,3),s.set(e,3+t.length),s}function tE(r){if(r.length===0)return{docKey:J_,payload:r.slice()};let e=r[0];if(e===IB)return{docKey:J_,payload:r.slice(1)};if(e===RB){if(r.length<3)return null;let t=r[1]<<8|r[2];if(t<1||t>Z_||r.length<3+t)return null;let s=new TextDecoder().decode(r.subarray(3,3+t)),n=r.slice(3+t);return{docKey:s,payload:n}}return null}var BV={queued:"queued",pending:"provisioning",allocating:"provisioning",provisioning:"provisioning",allocated:"connecting",connecting:"connecting",live:"live",running:"live",failed:"error",rejected:"error",expired:"error",cancelled:"ended",canceled:"ended",closed:"ended"},NV=8e3,CB=[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"}],my=class{_state="disconnected";_sessionId=null;_tracks=new Map;_tracksByName=new Map;_options;_emitter=new wb.default;_ws=null;_device=null;_recvTransport=null;_sendTransport=null;_consumers=new Map;_audioProducer=null;_videoProducer=null;_pendingProduce=null;_multiplexer=null;_reconnectAttempts=0;_intentionalDisconnect=!1;_reconnectTimer=null;_stableResetTimer=null;_generation=0;_lastStartOptions;_resolveConnection=null;_recvTransportMsg=null;_lastConsumeMsg=null;_recvConnectWatchdog=null;_recvTcpFailoverDone=!1;_phase={name:"idle"};_requestId;_liveReached=!1;_mediaMonitorTimer=null;_lastInboundTotal=0;_mediaEverFlowed=!1;_lastInboundAdvanceAt=0;_mediaDeathHandled=!1;_currentEpoch=0;_consumerId=null;_pendingStreamSubscribes=new Set;get consumerId(){return this._consumerId===null&&(this._consumerId=OV()),this._consumerId}get state(){return this._state}get currentIncarnation(){return this._currentEpoch}get phase(){return this._phase}get sessionId(){return this._sessionId}get tracks(){return this._tracks}get multiplexer(){return this._multiplexer}get isOpen(){return this._ws?.readyState===WebSocket.OPEN}getTrackByName(e){let t=this._tracksByName.get(e);if(t&&t.readyState!=="ended")return t;for(let s of this._tracks.values())if(s.kind===e&&s.readyState!=="ended")return s;return t}setAuth(e){this._options={...this._options,...e},this.isOpen&&this._send({type:"auth",orgId:this._options.orgId,jwt:this._options.jwt,authProvider:this._options.authProvider})}constructor(e){this._options=e??{url:""},e?.sessionId&&(this._sessionId=e.sessionId)}setConnection(e){if(this.isOpen)throw new Error("TransportSession: cannot change connection while connected");this._options={...this._options,...e},e.sessionId&&(this._sessionId=e.sessionId)}setConnectionResolver(e){this._resolveConnection=e}applyControlDocState(e){let t=e&&typeof e=="object"?e.session:void 0,s=DV(t);s!==void 0&&this.setIncarnation(s)}setIncarnation(e){if(!Number.isFinite(e)||e<=this._currentEpoch)return;let t=this._currentEpoch>0,s=this._state==="connected";this._currentEpoch=e,t&&s&&!this._intentionalDisconnect&&this._renegotiate()}isStaleIncarnation(e){return Number.isFinite(e)?e<this._currentEpoch:!1}isStaleClosedMarker(e){if(!e)return!1;let t=typeof e.status=="string"?e.status:void 0;if(t!=="closed"&&t!=="ended")return!1;let s=e.status_epoch??e.statusEpoch,n=typeof s=="number"?s:Number(s);return Number.isFinite(n)?n<this._currentEpoch:!1}async connect(e){this._lastStartOptions=e,this._intentionalDisconnect=!1;let t=++this._generation;this._state!=="reconnecting"&&this._state!=="renegotiating"&&this._setState("connecting");let s=null,n=()=>t!==this._generation||this._intentionalDisconnect,i=()=>{if(n())throw new Error("TransportSession: connect cancelled")},o=async()=>{for(let c of this._connectUrls()){i();try{return await this._connectOnce(c,t,e),!0}catch(d){s=d instanceof Error?d:new Error(String(d)),this._cleanupSocket()}}return!1},a=this._resolveConnection?IV:1;for(let c=0;c<a;c++)if(c>0&&(await TB(RV),i()),await o())return;if(this._resolveConnection)for(let c=0;c<kV;c++){this._setState("reconnecting"),await TB(EB[Math.min(c,EB.length-1)]),i();try{let d=await this._resolveConnection();i(),this.setAuth({jwt:d.jwt??this._options.jwt,authProvider:this._options.authProvider,orgId:this._options.orgId}),this.setConnection({url:d.url,sessionId:d.sessionId,iceServers:d.iceServers??this._options.iceServers})}catch(d){if(n())throw new Error("TransportSession: connect cancelled");s=d instanceof Error?d:new Error(String(d));continue}if(await o())return}throw this._setState("failed"),s??new Error("TransportSession: connect failed")}disconnect(){if(this._generation+=1,this._intentionalDisconnect=!0,this._stopMediaMonitor(),this._reconnectTimer&&(clearTimeout(this._reconnectTimer),this._reconnectTimer=null),this._clearReconnectBudgetReset(),this._reconnectAttempts=0,this._audioProducer){this._send({type:"stopAudio"});try{this._audioProducer.close()}catch{}this._audioProducer=null}if(this._videoProducer){this._send({type:"stopVideo"});try{this._videoProducer.close()}catch{}this._videoProducer=null}for(let e of this._consumers.values())try{e.close()}catch{}if(this._consumers.clear(),this._sendTransport){try{this._sendTransport.close()}catch{}this._sendTransport=null}if(this._recvTransport){this._clearRecvWatchdog();try{this._recvTransport.close()}catch{}this._recvTransport=null}if(this._pendingProduce&&(clearTimeout(this._pendingProduce.timeoutId),this._pendingProduce.reject(new Error("TransportSession: disconnected")),this._pendingProduce=null),this._device=null,this._multiplexer&&(this._multiplexer.dispose(),this._multiplexer=null),this._ws){let e=this._ws;this._ws=null;try{e.close(1e3,"intentional disconnect")}catch{}}this._tracks.clear(),this._tracksByName.clear(),this._setState("disconnected"),this._liveReached=!1,this._setPhase("ended"),this._emitter.emit("disconnected")}on(e,t){return this._emitter.on(e,t),()=>{this._emitter.off(e,t)}}sendInput(e,t){this._send({type:"input",data:e,sequence:t})}sendDocSync(e,t){!this._ws||this._ws.readyState!==WebSocket.OPEN||this._ws.send(eE(e,t))}onDocSync(e,t){let s=(n,i)=>{n===e&&t(i)};return this.on("docSync",s)}onDocSyncReady(e){return this.on("docSyncReady",e)}_emitDocSyncFrame(e){let t=tE(e);if(!t){console.warn("[urun] doc-sync: unknown/malformed typed-v1 frame; dropped");return}this._emitter.emit("docSync",t.docKey,t.payload)}async addTrack(e){if(!this._sendTransport)throw new Error("TransportSession: send transport not ready");this._audioProducer=await this._sendTransport.produce({track:e,codecOptions:{opusStereo:!1,opusDtx:!1,opusFec:!1}})}removeTrack(){this._audioProducer&&(this._send({type:"stopAudio"}),this._audioProducer.close(),this._audioProducer=null)}async addVideoTrack(e){if(!this._sendTransport)throw new Error("TransportSession: send transport not ready");this._videoProducer=await this._sendTransport.produce({track:e})}stopVideo(){this._videoProducer&&(this._send({type:"stopVideo"}),this._videoProducer.close(),this._videoProducer=null)}requestDiagnostics(){this._send({type:"diagnostics"})}seekStream(e,t){this._send({type:"stream.seek",stream:e,target:t})}subscribeStream(e){this._pendingStreamSubscribes.add(e),this._sendStreamSubscribe(e)}unsubscribeStream(e){this._pendingStreamSubscribes.delete(e),this._send({t:"stream.unsubscribe",name:e,consumerId:this.consumerId})}_sendStreamSubscribe(e){this._send({t:"stream.subscribe",name:e,consumerId:this.consumerId})}_flushStreamSubscribes(){for(let e of this._pendingStreamSubscribes)this._sendStreamSubscribe(e)}async _handleMessage(e){switch(e.type){case"routerRtpCapabilities":await this._onRouterCapabilities(e.rtpCapabilities);break;case"createWebRtcTransport":await this._onCreateRecvTransport(e);break;case"createSendTransport":await this._onCreateSendTransport(e);break;case"consume":await this._onConsume(e);break;case"produced":if(this._pendingProduce){let t=this._pendingProduce;this._pendingProduce=null,clearTimeout(t.timeoutId),t.resolve(e.id)}break;case"started":this._emitter.emit("started");break;case"status":this._onStatus(e);break}}_onStatus(e){let t=e.request_id??e.requestId;if(t&&(this._requestId=t),this._liveReached)return;let s=typeof e.status=="string"?e.status:void 0,n=(s&&BV[s])??"provisioning",i=e.queue_position??e.queuePosition,o=e.queue_depth??e.queueDepth,a=typeof i=="number"&&typeof o=="number";if(n==="error"){this._setPhase("error",{error:{reason:s??"admission failed",code:s}});return}if(n==="ended"){this._setPhase("ended");return}if(n==="queued"){this._setPhase("queued",a?{queue:{position:i,depth:o}}:void 0);return}if(n==="connecting"){this._setPhase("connecting");return}this._setPhase("provisioning")}async _onRouterCapabilities(e){af()&&await py();let t=hy(),s=new AB.Device(t?{handlerName:t}:void 0);await s.load({routerRtpCapabilities:e}),this._device=s,this._send({type:"rtpCapabilities",rtpCapabilities:s.rtpCapabilities})}async _onCreateRecvTransport(e){this._device&&(this._recvTransportMsg=e,this._recvTcpFailoverDone=!1,this._buildRecvTransport(e,!1))}_buildRecvTransport(e,t){if(!this._device)return;let s=e.iceCandidates,n=t?s.filter(a=>a.protocol==="tcp"):s,i=this._device.createRecvTransport({id:e.id,iceParameters:e.iceParameters,iceCandidates:n,dtlsParameters:e.dtlsParameters,iceServers:this._options.iceServers??CB}),o=this._generation;i.on("connect",({dtlsParameters:a},c,d)=>{try{this._send({type:"connectTransport",transportId:i.id,dtlsParameters:a}),c()}catch(u){d(u)}}),i.on("connectionstatechange",a=>{if(o===this._generation){if(a==="connected"){this._clearRecvWatchdog();return}if(!(this._intentionalDisconnect&&a==="closed")&&(a==="failed"||a==="disconnected")){if(!t&&!this._recvTcpFailoverDone){this._failoverRecvToTcp(`state:${a}`);return}a==="failed"&&this._emitError(new Error(`media transport ${a}`),a)}}}),this._recvTransport=i,this._clearRecvWatchdog(),t||(this._recvConnectWatchdog=setTimeout(()=>{o===this._generation&&this._recvTransport?.connectionState!=="connected"&&this._failoverRecvToTcp("timeout")},NV))}_clearRecvWatchdog(){this._recvConnectWatchdog&&(clearTimeout(this._recvConnectWatchdog),this._recvConnectWatchdog=null)}_failoverRecvToTcp(e){if(this._recvTcpFailoverDone||this._intentionalDisconnect)return;let t=this._recvTransportMsg;if(!this._device||!t)return;if(!t.iceCandidates.some(n=>n.protocol==="tcp")){this._emitter.emit("error",new Error(`media transport failed (${e}); no TCP candidate`));return}if(this._recvTcpFailoverDone=!0,this._clearRecvWatchdog(),this._recvTransport)try{this._recvTransport.close()}catch{}this._buildRecvTransport(t,!0),this._lastConsumeMsg&&this._onConsume(this._lastConsumeMsg)}async _onCreateSendTransport(e){if(!this._device)return;let t=this._device.createSendTransport({id:e.id,iceParameters:e.iceParameters,iceCandidates:e.iceCandidates,dtlsParameters:e.dtlsParameters,iceServers:this._options.iceServers??CB}),s=this._generation;t.on("connect",({dtlsParameters:n},i,o)=>{try{this._send({type:"connectSendTransport",transportId:t.id,dtlsParameters:n}),i()}catch(a){o(a)}}),t.on("produce",({kind:n,rtpParameters:i},o,a)=>{if(this._pendingProduce){a(new Error("produce already pending"));return}let c=setTimeout(()=>{let d=this._pendingProduce;!d||d.timeoutId!==c||(this._pendingProduce=null,d.reject(new Error("Produce timed out")))},15e3);this._pendingProduce={timeoutId:c,resolve:d=>{o({id:d})},reject:a};try{this._send({type:"produce",kind:n,rtpParameters:i})}catch(d){this._pendingProduce?.timeoutId===c&&(this._pendingProduce=null,clearTimeout(c)),a(d)}}),t.on("connectionstatechange",n=>{s===this._generation&&(this._intentionalDisconnect&&n==="closed"||(n==="failed"||n==="closed")&&this._emitError(new Error(`media send transport ${n}`),n))}),this._sendTransport=t,this._emitter.emit("audioTransportReady")}async _onConsume(e){if(!this._recvTransport)return;this._lastConsumeMsg=e;let t=this._generation,s=await this._recvTransport.consume({id:e.id,producerId:e.producerId,kind:e.kind,rtpParameters:e.rtpParameters});this._consumers.set(s.id,s),this._tracks.set(s.track.id,s.track);let n=e.streamName??e.label;n&&this._tracksByName.set(n,s.track),this._liveReached||this._setPhase("live"),this._emitter.emit("track",s.track),s.track.addEventListener("ended",()=>{t!==this._generation||this._intentionalDisconnect||this._renegotiate()},{once:!0}),this._send({type:"resumeConsumer",consumerId:s.id}),this._startMediaMonitor()}_mediaPollMs(){let e=this._options.mediaLiveness?.pollMs;return e===void 0?TV:e}_mediaStallTimeoutMs(){let e=this._options.mediaLiveness?.stallTimeoutMs;return e===void 0?AV:e}_startMediaMonitor(){let e=this._mediaPollMs();if(e<=0||this._mediaMonitorTimer)return;this._lastInboundTotal=0,this._mediaEverFlowed=!1,this._lastInboundAdvanceAt=Date.now(),this._mediaDeathHandled=!1;let t=this._generation;this._mediaMonitorTimer=setInterval(()=>{t!==this._generation||this._intentionalDisconnect||this._sampleMediaLiveness(t)},e)}_stopMediaMonitor(){this._mediaMonitorTimer&&(clearInterval(this._mediaMonitorTimer),this._mediaMonitorTimer=null)}async _sampleMediaLiveness(e){if(this._consumers.size===0)return;let t=0;for(let n of this._consumers.values())t+=await LV(n);if(e!==this._generation||this._intentionalDisconnect)return;let s=Date.now();if(t>this._lastInboundTotal){this._lastInboundTotal=t,this._lastInboundAdvanceAt=s,t>0&&(this._mediaEverFlowed=!0);return}this._mediaEverFlowed&&(this._mediaDeathHandled||s-this._lastInboundAdvanceAt>=this._mediaStallTimeoutMs()&&(this._mediaDeathHandled=!0,this._renegotiate()))}_renegotiate(){this._intentionalDisconnect||this._reconnectTimer||(this._stopMediaMonitor(),this._setState("renegotiating"),this._attemptReconnect())}_attemptReconnect(e){if(this._intentionalDisconnect||this._reconnectTimer)return;if(this._reconnectAttempts>=_B){this._setState("failed"),this._emitError(new Error(`Failed after ${_B} attempts`));return}let t=SB[Math.min(this._reconnectAttempts,SB.length-1)];this._reconnectAttempts++,this._state!=="renegotiating"&&this._setState("reconnecting"),this._reconnectTimer=setTimeout(async()=>{this._reconnectTimer=null,this._cleanupMedia();try{await this.connect(e??this._lastStartOptions)}catch(s){if(s instanceof Error&&s.message==="TransportSession: connect cancelled")return;this._attemptReconnect(e)}},t)}_connectUrls(){let e=[],t=s=>{if(!s)return;let n=/\/ws\/rtc\/[^/?#]+/.test(s),i=this._sessionId&&!n?`${s}${s.includes("?")?"&":"?"}sessionId=${encodeURIComponent(this._sessionId)}`:s;e.includes(i)||e.push(i)};t(this._options.url);for(let s of this._options.fallbackUrls??[])t(s);return e}_connectOnce(e,t,s){return new Promise((n,i)=>{let o=!1,a=!1,c=null,d=new WebSocket(e);d.binaryType="arraybuffer",this._ws=d;let u=l=>{a||this._ws!==d||t!==this._generation||(a=!0,c&&clearTimeout(c),i(l))};c=setTimeout(()=>{try{d.close()}catch{}u(new Error("TransportSession: connect timed out"))},CV),d.onopen=()=>{a||t!==this._generation||(o=!0,c&&clearTimeout(c),this._multiplexer=new Bd(d),d.send(JSON.stringify(this._startMessage(s))),this._emitter.emit("docSyncReady"),this._flushStreamSubscribes(),this._scheduleReconnectBudgetReset(),this._setState("connected"),this._liveReached||this._setPhase("connecting"),this._emitter.emit("connected"),a=!0,n())},d.onerror=()=>{o||u(new Error("WebSocket connection error"))},d.onclose=()=>{if(!(this._ws!==d||t!==this._generation)){if(this._clearReconnectBudgetReset(),!o){u(new Error("WebSocket closed before connecting"));return}c&&clearTimeout(c),this._setState("disconnected"),this._intentionalDisconnect||(this._emitter.emit("disconnected"),this._attemptReconnect(s))}},d.onmessage=l=>{if(!(this._ws!==d||t!==this._generation)){if(typeof l.data=="string")try{this._handleMessage(JSON.parse(l.data))}catch(h){this._emitter.emit("error",h instanceof Error?h:new Error(String(h)))}else if(l.data instanceof ArrayBuffer)this._emitDocSyncFrame(new Uint8Array(l.data));else if(ArrayBuffer.isView(l.data)){let h=l.data;this._emitDocSyncFrame(new Uint8Array(h.buffer,h.byteOffset,h.byteLength))}}}})}_startMessage(e){let t={type:"start",docFraming:"typed-v1",video:e?.video??{width:854,height:480,frameRate:16}};return e?.prompt&&(t.prompt=e.prompt),e?.cameraControl&&(t.camera_control=e.cameraControl),e?.args&&(t.args=e.args),e?.app&&(t.app=e.app),e?.functionName&&(t.function=e.functionName),e?.role&&(t.role=e.role),this._options.orgId&&(t.orgId=this._options.orgId),this._options.jwt&&(t.jwt=this._options.jwt),this._options.authProvider&&(t.authProvider=this._options.authProvider),t}_cleanupSocket(){if(this._clearReconnectBudgetReset(),!this._ws)return;let e=this._ws;this._ws=null;try{e.close()}catch{}}_scheduleReconnectBudgetReset(){this._clearReconnectBudgetReset(),this._reconnectAttempts!==0&&(this._stableResetTimer=setTimeout(()=>{this._stableResetTimer=null,this._reconnectAttempts=0},PV))}_clearReconnectBudgetReset(){this._stableResetTimer&&(clearTimeout(this._stableResetTimer),this._stableResetTimer=null)}_cleanupMedia(){this._stopMediaMonitor();for(let e of this._consumers.values())try{e.close()}catch{}if(this._consumers.clear(),this._audioProducer){try{this._audioProducer.close()}catch{}this._audioProducer=null}if(this._clearRecvWatchdog(),this._recvTransport){try{this._recvTransport.close()}catch{}this._recvTransport=null}if(this._sendTransport){try{this._sendTransport.close()}catch{}this._sendTransport=null}this._pendingProduce&&(clearTimeout(this._pendingProduce.timeoutId),this._pendingProduce=null),this._device=null,this._tracks.clear(),this._tracksByName.clear(),this._multiplexer&&(this._multiplexer.dispose(),this._multiplexer=null)}_send(e){!this._ws||this._ws.readyState!==WebSocket.OPEN||this._ws.send(JSON.stringify(e))}_setState(e){this._state!==e&&(this._state=e,this._emitter.emit("stateChange",e))}_setPhase(e,t){e==="live"&&(this._liveReached=!0);let s={name:e};t?.queue&&(s.queue=t.queue),this._requestId&&(s.requestId=this._requestId),this._sessionId&&(s.sessionId=this._sessionId),t?.error&&(s.error=t.error),this._phase=s,this._emitter.emit("phase",s)}_emitError(e,t){this._setPhase("error",{error:{reason:e.message,code:t}}),this._emitter.emit("error",e)}};function TB(r){return new Promise(e=>setTimeout(e,r))}function OV(){return wB()}async function LV(r){if(typeof r.getStats!="function")return 0;let e;try{e=await r.getStats()}catch{return 0}let t=0,s=n=>{if(!n||typeof n!="object")return;let i=n;if(i.type==="inbound-rtp"){let o=typeof i.bytesReceived=="number"?i.bytesReceived:0,a=typeof i.packetsReceived=="number"?i.packetsReceived:0;t+=o+a}};if(e instanceof Map)for(let n of e.values())s(n);else if(Array.isArray(e))for(let n of e)s(n);else e&&typeof e.forEach=="function"&&e.forEach(s);return t}function DV(r){if(!r||typeof r!="object")return;let e=r.epoch,t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:void 0}0&&(module.exports={ChannelMultiplexer,DeferredChannelMultiplexer,TransportSession,decodeDocSyncFrame,encodeDocSyncFrame,ensureNodeWebRTC,isNodeRuntime,nodeMediasoupHandlerName});
|
|
7
|
+
`}});var ue=C(oe=>{"use strict";var Re=mi(),oo=_i(),co=Ft();oe.grammar=co;oe.write=oo;oe.parse=Re.parse;oe.parseParams=Re.parseParams;oe.parseFmtpConfig=Re.parseFmtpConfig;oe.parsePayloads=Re.parsePayloads;oe.parseRemoteCandidates=Re.parseRemoteCandidates;oe.parseImageAttributes=Re.parseImageAttributes;oe.parseSimulcastStreamList=Re.parseSimulcastStreamList});var Te=C(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});Fr.parse=lo;var po=new RegExp("^[LS]([1-9]\\d{0,1})T([1-9]\\d{0,1})");function lo(s){let e=po.exec(s??"");return e?{spatialLayers:Number(e[1]),temporalLayers:Number(e[2])}:{spatialLayers:1,temporalLayers:1}}});var yi=C(ge=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.OfferMediaSection=ge.AnswerMediaSection=ge.MediaSection=void 0;var uo=ue(),vi=be(),nt=class{_mediaObject;constructor({iceParameters:e,iceCandidates:t,dtlsParameters:r}){if(this._mediaObject={type:"",port:0,protocol:"",payloads:"",rtp:[],fmtp:[]},e&&this.setIceParameters(e),t){this._mediaObject.candidates=[];for(let i of t){let n={foundation:i.foundation,component:1,ip:i.address??i.ip,port:i.port,priority:i.priority,transport:i.protocol,type:i.type};i.tcpType&&(n.tcptype=i.tcpType),this._mediaObject.candidates.push(n)}this._mediaObject.endOfCandidates="end-of-candidates",this._mediaObject.iceOptions="renomination"}r&&this.setDtlsRole(r.role)}get mid(){return String(this._mediaObject.mid)}get closed(){return this._mediaObject.port===0}getObject(){return this._mediaObject}setIceParameters(e){this._mediaObject.iceUfrag=e.usernameFragment,this._mediaObject.icePwd=e.password}pause(){this._mediaObject.direction="inactive"}disable(){this.pause()}close(){this.disable(),this._mediaObject.port=0,delete this._mediaObject.candidates,delete this._mediaObject.endOfCandidates,delete this._mediaObject.iceUfrag,delete this._mediaObject.icePwd,delete this._mediaObject.iceOptions,this._mediaObject.rtp=[],this._mediaObject.fmtp=[],delete this._mediaObject.rtcp,delete this._mediaObject.rtcpFb,delete this._mediaObject.ssrcs,delete this._mediaObject.ssrcGroups,delete this._mediaObject.simulcast,delete this._mediaObject.simulcast_03,delete this._mediaObject.rids,delete this._mediaObject.extmapAllowMixed}};ge.MediaSection=nt;var jr=class extends nt{constructor({iceParameters:e,iceCandidates:t,dtlsParameters:r,sctpParameters:i,plainRtpParameters:n,offerMediaObject:a,offerRtpParameters:o,answerRtpParameters:c,codecOptions:d}){switch(super({iceParameters:e,iceCandidates:t,dtlsParameters:r}),this._mediaObject.mid=String(a.mid),this._mediaObject.type=a.type,this._mediaObject.protocol=a.protocol,n?(this._mediaObject.connection={ip:n.ip,version:n.ipVersion},this._mediaObject.port=n.port):(this._mediaObject.connection={ip:"127.0.0.1",version:4},this._mediaObject.port=7),a.type){case"audio":case"video":{this._mediaObject.direction="recvonly",this._mediaObject.rtp=[],this._mediaObject.rtcpFb=[],this._mediaObject.fmtp=[];for(let p of c.codecs){let l={payload:p.payloadType,codec:wi(p),rate:p.clockRate};p.channels>1&&(l.encoding=p.channels),this._mediaObject.rtp.push(l);let u=vi.clone(p.parameters)??{},f=vi.clone(p.rtcpFeedback)??[];if(d){let{opusStereo:h,opusFec:g,opusDtx:w,opusMaxPlaybackRate:E,opusMaxAverageBitrate:P,opusPtime:k,opusNack:x,videoGoogleStartBitrate:M,videoGoogleMaxBitrate:ke,videoGoogleMinBitrate:et}=d,fe=o.codecs.find(ve=>ve.payloadType===p.payloadType);switch(p.mimeType.toLowerCase()){case"audio/opus":case"audio/multiopus":{h!==void 0&&(fe.parameters["sprop-stereo"]=h?1:0,u.stereo=h?1:0),g!==void 0&&(fe.parameters.useinbandfec=g?1:0,u.useinbandfec=g?1:0),w!==void 0&&(fe.parameters.usedtx=w?1:0,u.usedtx=w?1:0),E!==void 0&&(u.maxplaybackrate=E),P!==void 0&&(u.maxaveragebitrate=P),k!==void 0&&(fe.parameters.ptime=k,u.ptime=k),x||(fe.rtcpFeedback=fe.rtcpFeedback.filter(ve=>ve.type!=="nack"||ve.parameter),f=f.filter(ve=>ve.type!=="nack"||ve.parameter));break}case"video/vp8":case"video/vp9":case"video/h264":case"video/h265":case"video/av1":{M!==void 0&&(u["x-google-start-bitrate"]=M),ke!==void 0&&(u["x-google-max-bitrate"]=ke),et!==void 0&&(u["x-google-min-bitrate"]=et);break}}}let m={payload:p.payloadType,config:""};for(let h of Object.keys(u))m.config&&(m.config+=";"),m.config+=`${h}=${u[h]}`;m.config&&this._mediaObject.fmtp.push(m);for(let h of f)this._mediaObject.rtcpFb.push({payload:p.payloadType,type:h.type,subtype:h.parameter})}this._mediaObject.payloads=c.codecs.map(p=>p.payloadType).join(" "),this._mediaObject.ext=[];for(let p of c.headerExtensions)(a.ext??[]).some(u=>u.uri===p.uri)&&this._mediaObject.ext.push({uri:p.uri,value:p.id});if(a.extmapAllowMixed==="extmap-allow-mixed"&&(this._mediaObject.extmapAllowMixed="extmap-allow-mixed"),a.simulcast){this._mediaObject.simulcast={dir1:"recv",list1:a.simulcast.list1},this._mediaObject.rids=[];for(let p of a.rids??[])p.direction==="send"&&this._mediaObject.rids.push({id:p.id,direction:"recv"})}else if(a.simulcast_03){this._mediaObject.simulcast_03={value:a.simulcast_03.value.replace(/send/g,"recv")},this._mediaObject.rids=[];for(let p of a.rids??[])p.direction==="send"&&this._mediaObject.rids.push({id:p.id,direction:"recv"})}this._mediaObject.rtcpMux="rtcp-mux",this._mediaObject.rtcpRsize="rtcp-rsize";break}case"application":{typeof a.sctpPort=="number"?(this._mediaObject.payloads="webrtc-datachannel",this._mediaObject.sctpPort=i.port,this._mediaObject.maxMessageSize=i.maxMessageSize):a.sctpmap&&(this._mediaObject.payloads=String(i.port),this._mediaObject.sctpmap={app:"webrtc-datachannel",sctpmapNumber:i.port,maxMessageSize:i.maxMessageSize});break}}}setDtlsRole(e){switch(e){case"client":{this._mediaObject.setup="active";break}case"server":{this._mediaObject.setup="passive";break}case"auto":{this._mediaObject.setup="actpass";break}}}resume(){this._mediaObject.direction="recvonly"}muxSimulcastStreams(e){if(!this._mediaObject.simulcast?.list1)return;let t={};for(let n of e)n.rid&&(t[n.rid]=n);let r=this._mediaObject.simulcast.list1,i=uo.parseSimulcastStreamList(r);for(let n of i)for(let a of n)a.paused=!t[a.scid]?.active;this._mediaObject.simulcast.list1=i.map(n=>n.map(a=>`${a.paused?"~":""}${a.scid}`).join(",")).join(";")}};ge.AnswerMediaSection=jr;var qr=class extends nt{constructor({iceParameters:e,iceCandidates:t,dtlsParameters:r,sctpParameters:i,plainRtpParameters:n,mid:a,kind:o,offerRtpParameters:c,streamId:d,trackId:p}){switch(super({iceParameters:e,iceCandidates:t,dtlsParameters:r}),this._mediaObject.mid=String(a),this._mediaObject.type=o,n?(this._mediaObject.connection={ip:n.ip,version:n.ipVersion},this._mediaObject.protocol="RTP/AVP",this._mediaObject.port=n.port):(this._mediaObject.connection={ip:"127.0.0.1",version:4},i?this._mediaObject.protocol="UDP/DTLS/SCTP":this._mediaObject.protocol="UDP/TLS/RTP/SAVPF",this._mediaObject.port=7),this._mediaObject.extmapAllowMixed="extmap-allow-mixed",o){case"audio":case"video":{this._mediaObject.direction="sendonly",this._mediaObject.rtp=[],this._mediaObject.rtcpFb=[],this._mediaObject.fmtp=[],this._mediaObject.msid=[{id:d,appdata:p}];for(let m of c.codecs){let h={payload:m.payloadType,codec:wi(m),rate:m.clockRate};m.channels>1&&(h.encoding=m.channels),this._mediaObject.rtp.push(h);let g={payload:m.payloadType,config:""};for(let w of Object.keys(m.parameters??{}))g.config&&(g.config+=";"),g.config+=`${w}=${m.parameters[w]}`;g.config&&this._mediaObject.fmtp.push(g);for(let w of m.rtcpFeedback)this._mediaObject.rtcpFb.push({payload:m.payloadType,type:w.type,subtype:w.parameter})}this._mediaObject.payloads=c.codecs.map(m=>m.payloadType).join(" "),this._mediaObject.ext=[];for(let m of c.headerExtensions)this._mediaObject.ext.push({uri:m.uri,value:m.id});this._mediaObject.rtcpMux="rtcp-mux",this._mediaObject.rtcpRsize="rtcp-rsize";let l=c.encodings[0],u=l.ssrc,f=l.rtx?.ssrc;this._mediaObject.ssrcs=[],this._mediaObject.ssrcGroups=[],u&&c.rtcp.cname&&this._mediaObject.ssrcs.push({id:u,attribute:"cname",value:c.rtcp.cname}),f&&(c.rtcp.cname&&this._mediaObject.ssrcs.push({id:f,attribute:"cname",value:c.rtcp.cname}),u&&this._mediaObject.ssrcGroups.push({semantics:"FID",ssrcs:`${u} ${f}`}));break}case"application":{this._mediaObject.payloads="webrtc-datachannel",this._mediaObject.sctpPort=i.port,this._mediaObject.maxMessageSize=i.maxMessageSize;break}}}setDtlsRole(e){this._mediaObject.setup="actpass"}resume(){this._mediaObject.direction="sendonly"}};ge.OfferMediaSection=qr;function wi(s){let t=new RegExp("^(audio|video)/(.+)","i").exec(s.mimeType);if(!t)throw new TypeError("invalid codec.mimeType");return t[2]}});var We=C(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.RemoteSdp=void 0;var ho=ue(),fo=$(),jt=yi(),mo=$r(),go=["av1","h264"],qt=new fo.Logger("RemoteSdp"),zr=class{_iceParameters;_iceCandidates;_dtlsParameters;_sctpParameters;_plainRtpParameters;_mediaSections=[];_midToIndex=new Map;_firstMid;_sdpObject;constructor({iceParameters:e,iceCandidates:t,dtlsParameters:r,sctpParameters:i,plainRtpParameters:n}){if(this._iceParameters=e,this._iceCandidates=t,this._dtlsParameters=r,this._sctpParameters=i,this._plainRtpParameters=n,this._sdpObject={version:0,origin:{address:"0.0.0.0",ipVer:4,netType:"IN",sessionId:"10000",sessionVersion:0,username:`media-client-v${mo.version}`},name:"-",timing:{start:0,stop:0},media:[]},this._sdpObject.iceOptions="ice2",e?.iceLite&&(this._sdpObject.icelite="ice-lite"),r){this._sdpObject.msidSemantic={semantic:"WMS",token:"*"};let a=this._dtlsParameters.fingerprints.length;this._sdpObject.fingerprint={type:r.fingerprints[a-1].algorithm,hash:r.fingerprints[a-1].value},this._sdpObject.groups=[{type:"BUNDLE",mids:""}]}n&&(this._sdpObject.origin.address=n.ip,this._sdpObject.origin.ipVer=n.ipVersion)}updateIceParameters(e){qt.debug("updateIceParameters() [iceParameters:%o]",e),this._iceParameters=e,this._sdpObject.icelite=e.iceLite?"ice-lite":void 0;for(let t of this._mediaSections)t.setIceParameters(e)}updateDtlsRole(e){qt.debug("updateDtlsRole() [role:%s]",e),this._dtlsParameters.role=e;for(let t of this._mediaSections)t.setDtlsRole(e)}setSessionExtmapAllowMixed(){qt.debug("setSessionExtmapAllowMixed()"),this._sdpObject.extmapAllowMixed="extmap-allow-mixed"}getNextMediaSectionIdx(){for(let e=0;e<this._mediaSections.length;++e){let t=this._mediaSections[e];if(t.closed)return{idx:e,reuseMid:t.mid}}return{idx:this._mediaSections.length}}send({offerMediaObject:e,reuseMid:t,offerRtpParameters:r,answerRtpParameters:i,codecOptions:n}){let a=new jt.AnswerMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,plainRtpParameters:this._plainRtpParameters,offerMediaObject:e,offerRtpParameters:r,answerRtpParameters:i,codecOptions:n}),o=a.getObject();o.rtp.find(d=>go.includes(d.codec.toLowerCase()))||(o.ext=o.ext?.filter(d=>d.uri!=="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension")),t?this.replaceMediaSection(a,t):this._midToIndex.has(a.mid)?this.replaceMediaSection(a):this.addMediaSection(a)}receive({mid:e,kind:t,offerRtpParameters:r,streamId:i,trackId:n}){this.setSessionExtmapAllowMixed();let a=new jt.OfferMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,plainRtpParameters:this._plainRtpParameters,mid:e,kind:t,offerRtpParameters:r,streamId:i,trackId:n}),o=this._mediaSections.find(c=>c.closed&&c.getObject().type===t);o?this.replaceMediaSection(a,o.mid):this.addMediaSection(a)}pauseMediaSection(e){this.findMediaSection(e).pause()}resumeSendingMediaSection(e){this.findMediaSection(e).resume()}resumeReceivingMediaSection(e){this.findMediaSection(e).resume()}disableMediaSection(e){this.findMediaSection(e).disable()}closeMediaSection(e){let t=this.findMediaSection(e);return e===this._firstMid?(qt.debug("closeMediaSection() | cannot close first media section, disabling it instead [mid:%s]",e),this.disableMediaSection(e),!1):(t.close(),this.regenerateBundleMids(),!0)}muxMediaSectionSimulcast(e,t){let r=this.findMediaSection(e);r.muxSimulcastStreams(t),this.replaceMediaSection(r)}sendSctpAssociation({offerMediaObject:e}){let t=new jt.AnswerMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,sctpParameters:this._sctpParameters,plainRtpParameters:this._plainRtpParameters,offerMediaObject:e});this.addMediaSection(t)}receiveSctpAssociation(){let e=new jt.OfferMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,sctpParameters:this._sctpParameters,plainRtpParameters:this._plainRtpParameters,mid:"datachannel",kind:"application"});this.addMediaSection(e)}getSdp(){return this._sdpObject.origin.sessionVersion++,ho.write(this._sdpObject)}addMediaSection(e){this._firstMid||(this._firstMid=e.mid),this._mediaSections.push(e),this._midToIndex.set(e.mid,this._mediaSections.length-1),this._sdpObject.media.push(e.getObject()),this.regenerateBundleMids()}replaceMediaSection(e,t){if(typeof t=="string"){let r=this._midToIndex.get(t);if(r===void 0)throw new Error(`no media section found for reuseMid '${t}'`);let i=this._mediaSections[r];this._mediaSections[r]=e,this._midToIndex.delete(i.mid),this._midToIndex.set(e.mid,r),this._sdpObject.media[r]=e.getObject(),this.regenerateBundleMids()}else{let r=this._midToIndex.get(e.mid);if(r===void 0)throw new Error(`no media section found with mid '${e.mid}'`);this._mediaSections[r]=e,this._sdpObject.media[r]=e.getObject()}}findMediaSection(e){let t=this._midToIndex.get(e);if(t===void 0)throw new Error(`no media section found with mid '${e}'`);return this._mediaSections[t]}regenerateBundleMids(){this._dtlsParameters&&(this._sdpObject.groups[0].mids=this._mediaSections.filter(e=>!e.closed).map(e=>e.mid).join(" "))}};zt.RemoteSdp=zr});var He=C(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});Ee.extractRtpCapabilities=_o;Ee.extractDtlsParameters=vo;Ee.getCname=wo;Ee.applyCodecParameters=yo;Ee.addHeaderExtension=bo;var bi=ue();function _o({sdpObject:s}){let e=new Map,t=new Map;for(let i of s.media){let n=i.type;switch(n){case"audio":case"video":break;default:continue}for(let a of i.rtp){let o={kind:n,mimeType:`${n}/${a.codec}`,preferredPayloadType:a.payload,clockRate:a.rate,channels:a.encoding,parameters:{},rtcpFeedback:[]};e.set(o.preferredPayloadType,o)}for(let a of i.fmtp??[]){let o=bi.parseParams(a.config),c=e.get(a.payload);c&&(o?.hasOwnProperty("profile-level-id")&&(o["profile-level-id"]=String(o["profile-level-id"])),c.parameters=o)}for(let a of i.rtcpFb??[]){let o={type:a.type,parameter:a.subtype};if(o.parameter||delete o.parameter,a.payload!=="*"){let c=e.get(Number(a.payload));if(!c)continue;c.rtcpFeedback.push(o)}else for(let c of e.values())c.kind===n&&!/.+\/rtx$/i.test(c.mimeType)&&c.rtcpFeedback.push(o)}for(let a of i.ext??[]){if(a["encrypt-uri"])continue;let o={kind:n,uri:a.uri,preferredId:a.value};t.set(o.preferredId,o)}}return{codecs:Array.from(e.values()),headerExtensions:Array.from(t.values())}}function vo({sdpObject:s}){let e=s.setup,t=s.fingerprint;if(!e||!t){let n=(s.media??[]).find(a=>a.port!==0);n&&(e=e??n.setup,t=t??n.fingerprint)}if(e){if(!t)throw new Error("no a=fingerprint found at SDP session or media level")}else throw new Error("no a=setup found at SDP session or media level");let r;switch(e){case"active":{r="client";break}case"passive":{r="server";break}case"actpass":{r="auto";break}}return{role:r,fingerprints:[{algorithm:t.type,value:t.hash}]}}function wo({offerMediaObject:s}){let e=(s.ssrcs??[]).find(t=>t.attribute==="cname");return e?e.value:""}function yo({offerRtpParameters:s,answerMediaObject:e}){for(let t of s.codecs){let r=t.mimeType.toLowerCase();if(r!=="audio/opus"||!(e.rtp??[]).find(o=>o.payload===t.payloadType))continue;e.fmtp=e.fmtp??[];let n=e.fmtp.find(o=>o.payload===t.payloadType);n||(n={payload:t.payloadType,config:""},e.fmtp.push(n));let a=bi.parseParams(n.config);if(r==="audio/opus"){let o=t.parameters?.["sprop-stereo"];o!==void 0&&(a.stereo=Number(o)?1:0)}n.config="";for(let o of Object.keys(a))n.config&&(n.config+=";"),n.config+=`${o}=${a[o]}`}}function bo({offerMediaObject:s,headerExtensionUri:e,headerExtensionId:t}){s.ext||(s.ext=[]),s.ext.push({uri:e,value:t})}});var Ge=C($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.getRtpEncodings=So;$t.addLegacySimulcast=Co;function So({offerMediaObject:s,codecs:e}){let t=new Set;for(let n of s.ssrcs??[]){let a=n.id;a&&t.add(a)}if(t.size===0)throw new Error("no a=ssrc lines found");let r=new Map;for(let n of s.ssrcGroups??[]){if(n.semantics!=="FID")continue;let a=n.ssrcs.split(/\s+/),o=Number(a[0]),c=Number(a[1]);t.has(o)&&(t.delete(o),t.delete(c),r.set(o,c))}for(let n of t)r.set(n,void 0);let i=[];for(let[n,a]of r){let o={ssrc:n};a&&e.length>1&&(o.rtx={ssrc:a}),i.push(o)}return i}function Co({offerMediaObject:s,numStreams:e}){if(e<=1)throw new TypeError("numStreams must be greater than 1");let t=(s.ssrcs??[]).find(l=>l.attribute==="msid");if(!t)throw new Error("a=ssrc line with msid information not found");let[r,i]=t.value.split(" "),n=Number(t.id),a;(s.ssrcGroups??[]).some(l=>{if(l.semantics!=="FID")return!1;let u=l.ssrcs.split(/\s+/);return Number(u[0])===n?(a=Number(u[1]),!0):!1});let o=(s.ssrcs??[]).find(l=>l.attribute==="cname");if(!o)throw new Error("a=ssrc line with cname information not found");let c=o.value,d=[],p=[];for(let l=0;l<e;++l)d.push(n+l),a&&p.push(a+l);s.ssrcGroups=[],s.ssrcs=[],s.ssrcGroups.push({semantics:"SIM",ssrcs:d.join(" ")});for(let l of d)s.ssrcs.push({id:l,attribute:"cname",value:c}),s.ssrcs.push({id:l,attribute:"msid",value:`${r} ${i}`});for(let l=0;l<p.length;++l){let u=d[l],f=p[l];s.ssrcs.push({id:f,attribute:"cname",value:c}),s.ssrcs.push({id:f,attribute:"msid",value:`${r} ${i}`}),s.ssrcGroups.push({semantics:"FID",ssrcs:`${u} ${f}`})}}});var Ke=C(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.addNackSupportForOpus=Ro;at.addHeaderExtensionSupport=To;at.getMsidStreamIdAndTrackId=Eo;function Ro(s){for(let e of s.codecs??[])(e.mimeType.toLowerCase()==="audio/opus"||e.mimeType.toLowerCase()==="audio/multiopus")&&!e.rtcpFeedback?.some(t=>t.type==="nack"&&!t.parameter)&&(e.rtcpFeedback||(e.rtcpFeedback=[]),e.rtcpFeedback.push({type:"nack"}))}function To(s,e){let t,r=s.headerExtensions?.find(n=>n.uri===e.uri);if(r){if(r.kind===e.kind)return;t=r.preferredId}if(s.headerExtensions||(s.headerExtensions=[]),t===void 0){t=1;let n=new Set(s.headerExtensions.map(a=>a.preferredId));for(;n.has(t);)++t}let i={kind:e.kind,uri:e.uri,preferredId:t,preferredEncrypt:!1,direction:e.direction};s.headerExtensions.push(i)}function Eo(s){if(!s||typeof s!="string")return{msidStreamId:void 0,msidTrackId:void 0};let[e,t]=s.trim().split(/\s+/);return e?{msidStreamId:e,msidTrackId:t}:{msidStreamId:void 0,msidTrackId:void 0}}});var Ti=C(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.Chrome111=void 0;var ce=ue(),xo=H(),ko=$(),ot=ie(),Po=Y(),Do=Te(),Lo=We(),ct=He(),Si=Ge(),Br=Ke(),R=new ko.Logger("Chrome111"),Ci="Chrome111",Ri={OS:65535,MIS:65535},Ur=class s extends xo.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_forcedLocalDtlsRole;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:Ci,factory:e=>new s(e),getNativeRtpCapabilities:async({direction:e})=>{R.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{t.addTransceiver("audio",{direction:e}),t.addTransceiver("video",{direction:e,sendEncodings:[{scalabilityMode:"L3T3"}]});let r=await t.createOffer();try{t.close()}catch{}t=void 0;let i=ce.parse(r.sdp);return s.getLocalRtpCapabilities(i)}catch(r){try{t?.close()}catch{}throw t=void 0,r}},getNativeSctpCapabilities:async()=>(R.debug("getNativeSctpCapabilities()"),{numStreams:Ri})}}static getLocalRtpCapabilities(e,t=[]){let r=ct.extractRtpCapabilities({sdpObject:e});ot.validateAndNormalizeRtpCapabilities(r),Br.addNackSupportForOpus(r);for(let i of t)Br.addHeaderExtensionSupport(r,i);return r}constructor({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),R.debug("constructor()"),this._direction=e,this._remoteSdp=new Lo.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n}),this._getSendExtendedRtpCapabilities=d,i.role&&i.role!=="auto"&&(this._forcedLocalDtlsRole=i.role==="server"?"client":"server"),this._pc=new RTCPeerConnection({iceServers:a??[],iceTransportPolicy:o??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(R.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return Ci}close(){if(R.debug("close()"),!this._closed){this._closed=!0;try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){this.assertNotClosed(),R.debug("updateIceServers()");let t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(this.assertNotClosed(),R.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});R.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let r={type:"answer",sdp:this._remoteSdp.getSdp()};R.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",r),await this._pc.setRemoteDescription(r)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};R.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();R.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:r,codecOptions:i,headerExtensionOptions:n,codec:a,onRtpSender:o}){if(this.assertNotClosed(),this.assertSendDirection(),R.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t),r&&r.length>1){let k=1;for(let x of r){let M=x.scalabilityMode?(0,Do.parse)(x.scalabilityMode).temporalLayers:3;M>k&&(k=M)}r.forEach((x,M)=>{x.rid=`r${M}`,x.scalabilityMode=`L1T${k}`})}let c=this._remoteSdp.getNextMediaSectionIdx(),d=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:r});o&&o(d.sender);let p=await this._pc.createOffer(),l=ce.parse(p.sdp);l.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let u=[];u.push({uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",kind:e.kind,direction:"sendonly"});let f=s.getLocalRtpCapabilities(l,u),m=this._getSendExtendedRtpCapabilities(f),h=ot.getSendingRtpParameters(e.kind,m);h.codecs=ot.reduceCodecs(h.codecs,a);let g=ot.getSendingRemoteRtpParameters(e.kind,m);if(g.codecs=ot.reduceCodecs(g.codecs,a),this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:l}),n?.absCaptureTime){let k=l.media[c.idx];ct.addHeaderExtension({offerMediaObject:k,headerExtensionUri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",headerExtensionId:g.headerExtensions.find(x=>x.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time").id}),p={type:"offer",sdp:ce.write(l)}}R.debug("send() | calling pc.setLocalDescription() [offer:%o]",p),await this._pc.setLocalDescription(p);let w=d.mid;h.mid=w,l=ce.parse(this._pc.localDescription.sdp);let E=l.media[c.idx];if(h.rtcp.cname=ct.getCname({offerMediaObject:E}),h.msid=`${t??this._sendStream.id} ${e.id}`,!r)h.encodings=Si.getRtpEncodings({offerMediaObject:E,codecs:h.codecs});else if(r.length===1){let k=Si.getRtpEncodings({offerMediaObject:E,codecs:h.codecs});Object.assign(k[0],r[0]),h.encodings=k}else h.encodings=r;this._remoteSdp.send({offerMediaObject:E,reuseMid:c.reuseMid,offerRtpParameters:h,answerRtpParameters:g,codecOptions:i});let P={type:"answer",sdp:this._remoteSdp.getSdp()};return R.debug("send() | calling pc.setRemoteDescription() [answer:%o]",P),await this._pc.setRemoteDescription(P),this._mapMidTransceiver.set(w,d),{localId:w,rtpParameters:h,rtpSender:d.sender}}async stopSending(e){if(this.assertSendDirection(),R.debug("stopSending() [localId:%s]",e),this._closed)return;let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");if(t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid))try{t.stop()}catch{}let i=await this._pc.createOffer();R.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let n={type:"answer",sdp:this._remoteSdp.getSdp()};R.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),R.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let r=await this._pc.createOffer();R.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};R.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),R.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(this._remoteSdp.resumeSendingMediaSection(e),!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly";let r=await this._pc.createOffer();R.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};R.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?R.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):R.debug("replaceTrack() [localId:%s, no track]",e);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),R.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{c<=t?o.active=!0:o.active=!1}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();R.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};R.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),R.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{i.encodings[c]={...o,...t}}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();R.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};R.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};R.debug("sendDataChannel() [options:%o]",t);let r=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%Ri.MIS,!this._hasDataChannelMediaSection){let n=await this._pc.createOffer(),a=ce.parse(n.sdp),o=a.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:a}),R.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n),this._remoteSdp.sendSctpAssociation({offerMediaObject:o});let c={type:"answer",sdp:this._remoteSdp.getSdp()};R.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let i={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:r,sctpStreamParameters:i}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],r=new Map;for(let o of e){let{trackId:c,kind:d,rtpParameters:p,streamId:l}=o;R.debug("receive() [trackId:%s, kind:%s]",c,d);let u=p.mid??String(this._mapMidTransceiver.size);r.set(c,u);let{msidStreamId:f}=Br.getMsidStreamIdAndTrackId(p.msid);this._remoteSdp.receive({mid:u,kind:d,offerRtpParameters:p,streamId:l??f??p.rtcp?.cname??"-",trackId:c})}let i={type:"offer",sdp:this._remoteSdp.getSdp()};R.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);for(let o of e){let{trackId:c,onRtpReceiver:d}=o;if(d){let p=r.get(c),l=this._pc.getTransceivers().find(u=>u.mid===p);if(!l)throw new Error("transceiver not found");d(l.receiver)}}let n=await this._pc.createAnswer(),a=ce.parse(n.sdp);for(let o of e){let{trackId:c,rtpParameters:d}=o,p=r.get(c),l=a.media.find(u=>String(u.mid)===p);ct.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l})}n={type:"answer",sdp:ce.write(a)},this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:a}),R.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(let o of e){let{trackId:c}=o,d=r.get(c),p=this._pc.getTransceivers().find(l=>l.mid===d);if(p)this._mapMidTransceiver.set(d,p),t.push({localId:d,track:p.receiver.track,rtpReceiver:p.receiver});else throw new Error("new RTCRtpTransceiver not found")}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let i of e){R.debug("stopReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(n.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};R.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();R.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r);for(let i of e)this._mapMidTransceiver.delete(i)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){R.debug("pauseReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="inactive",this._remoteSdp.pauseMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};R.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();R.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){R.debug("resumeReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};R.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();R.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async getReceiverStats(e){this.assertNotClosed(),this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:r,protocol:i}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c}=t,d={negotiated:!0,id:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c,protocol:i};R.debug("receiveDataChannel() [options:%o]",d);let p=this._pc.createDataChannel(r,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};R.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let u=await this._pc.createAnswer(),f=ce.parse(u.sdp),m=f.media.find(h=>h.type==="application");m.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:f}),u={type:"answer",sdp:ce.write(f)},R.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",u),await this._pc.setLocalDescription(u),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=ce.parse(this._pc.localDescription.sdp));let r=ct.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((i,n)=>{this.safeEmit("@connect",{dtlsParameters:r},i,n)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new Po.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};Bt.Chrome111=Ur});var ki=C(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.Chrome74=void 0;var J=ue(),Mo=$(),Io=H(),dt=ie(),Oo=Y(),No=Te(),Ao=We(),pt=He(),Vr=Ge(),Wr=Ke(),b=new Mo.Logger("Chrome74"),Ei="Chrome74",xi={OS:1024,MIS:1024},Hr=class s extends Io.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_forcedLocalDtlsRole;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:Ei,factory:e=>new s(e),getNativeRtpCapabilities:async({direction:e})=>{b.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{t.addTransceiver("audio",{direction:e}),t.addTransceiver("video",{direction:e});let r=await t.createOffer();try{t.close()}catch{}t=void 0;let i=J.parse(r.sdp);return s.getLocalRtpCapabilities(i)}catch(r){try{t?.close()}catch{}throw t=void 0,r}},getNativeSctpCapabilities:async()=>(b.debug("getNativeSctpCapabilities()"),{numStreams:xi})}}static getLocalRtpCapabilities(e,t=[]){let r=pt.extractRtpCapabilities({sdpObject:e});dt.validateAndNormalizeRtpCapabilities(r),Wr.addNackSupportForOpus(r);for(let i of t)Wr.addHeaderExtensionSupport(r,i);return r}constructor({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),b.debug("constructor()"),this._direction=e,this._remoteSdp=new Ao.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n}),this._getSendExtendedRtpCapabilities=d,i.role&&i.role!=="auto"&&(this._forcedLocalDtlsRole=i.role==="server"?"client":"server"),this._pc=new RTCPeerConnection({iceServers:a??[],iceTransportPolicy:o??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(b.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return Ei}close(){if(b.debug("close()"),!this._closed){this._closed=!0;try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){this.assertNotClosed(),b.debug("updateIceServers()");let t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(this.assertNotClosed(),b.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});b.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let r={type:"answer",sdp:this._remoteSdp.getSdp()};b.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",r),await this._pc.setRemoteDescription(r)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};b.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();b.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:r,codecOptions:i,headerExtensionOptions:n,codec:a}){this.assertNotClosed(),this.assertSendDirection(),b.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t),r&&r.length>1&&r.forEach((x,M)=>{x.rid=`r${M}`});let o=this._remoteSdp.getNextMediaSectionIdx(),c=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:r}),d=await this._pc.createOffer(),p=J.parse(d.sdp);p.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let l=[];l.push({uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",kind:e.kind,direction:"sendonly"});let u=s.getLocalRtpCapabilities(p,l),f=this._getSendExtendedRtpCapabilities(u),m=dt.getSendingRtpParameters(e.kind,f);m.codecs=dt.reduceCodecs(m.codecs,a);let h=dt.getSendingRemoteRtpParameters(e.kind,f);h.codecs=dt.reduceCodecs(h.codecs,a),this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:p});let g=!1,w=(0,No.parse)((r??[{}])[0].scalabilityMode),E;r?.length===1&&w.spatialLayers>1&&m.codecs[0].mimeType.toLowerCase()==="video/vp9"&&(b.debug("send() | enabling legacy simulcast for VP9 SVC"),g=!0,p=J.parse(d.sdp),E=p.media[o.idx],Vr.addLegacySimulcast({offerMediaObject:E,numStreams:w.spatialLayers}),d={type:"offer",sdp:J.write(p)}),b.debug("send() | calling pc.setLocalDescription() [offer:%o]",d),n?.absCaptureTime&&(E=p.media[o.idx],pt.addHeaderExtension({offerMediaObject:E,headerExtensionUri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",headerExtensionId:h.headerExtensions.find(x=>x.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time").id}),d={type:"offer",sdp:J.write(p)}),await this._pc.setLocalDescription(d);let P=c.mid;if(m.mid=P,p=J.parse(this._pc.localDescription.sdp),E=p.media[o.idx],m.rtcp.cname=pt.getCname({offerMediaObject:E}),m.msid=`${t??this._sendStream.id} ${e.id}`,!r)m.encodings=Vr.getRtpEncodings({offerMediaObject:E,codecs:m.codecs});else if(r.length===1){let x=Vr.getRtpEncodings({offerMediaObject:E,codecs:m.codecs});Object.assign(x[0],r[0]),g&&(x=[x[0]]),m.encodings=x}else m.encodings=r;if(m.encodings.length>1&&(m.codecs[0].mimeType.toLowerCase()==="video/vp8"||m.codecs[0].mimeType.toLowerCase()==="video/h264"))for(let x of m.encodings)x.scalabilityMode?x.scalabilityMode=`L1T${w.temporalLayers}`:x.scalabilityMode="L1T3";this._remoteSdp.send({offerMediaObject:E,reuseMid:o.reuseMid,offerRtpParameters:m,answerRtpParameters:h,codecOptions:i});let k={type:"answer",sdp:this._remoteSdp.getSdp()};return b.debug("send() | calling pc.setRemoteDescription() [answer:%o]",k),await this._pc.setRemoteDescription(k),this._mapMidTransceiver.set(P,c),{localId:P,rtpParameters:m,rtpSender:c.sender}}async stopSending(e){if(this.assertSendDirection(),b.debug("stopSending() [localId:%s]",e),this._closed)return;let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");if(t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid))try{t.stop()}catch{}let i=await this._pc.createOffer();b.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let n={type:"answer",sdp:this._remoteSdp.getSdp()};b.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),b.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let r=await this._pc.createOffer();b.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};b.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),b.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(this._remoteSdp.resumeSendingMediaSection(e),!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly";let r=await this._pc.createOffer();b.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};b.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?b.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):b.debug("replaceTrack() [localId:%s, no track]",e);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),b.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{c<=t?o.active=!0:o.active=!1}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();b.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};b.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),b.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{i.encodings[c]={...o,...t}}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();b.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};b.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};b.debug("sendDataChannel() [options:%o]",t);let r=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%xi.MIS,!this._hasDataChannelMediaSection){let n=await this._pc.createOffer(),a=J.parse(n.sdp),o=a.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:a}),b.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n),this._remoteSdp.sendSctpAssociation({offerMediaObject:o});let c={type:"answer",sdp:this._remoteSdp.getSdp()};b.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let i={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:r,sctpStreamParameters:i}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],r=new Map;for(let o of e){let{trackId:c,kind:d,rtpParameters:p,streamId:l}=o;b.debug("receive() [trackId:%s, kind:%s]",c,d);let u=p.mid??String(this._mapMidTransceiver.size);r.set(c,u);let{msidStreamId:f}=Wr.getMsidStreamIdAndTrackId(p.msid);this._remoteSdp.receive({mid:u,kind:d,offerRtpParameters:p,streamId:l??f??p.rtcp?.cname??"-",trackId:c})}let i={type:"offer",sdp:this._remoteSdp.getSdp()};b.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);let n=await this._pc.createAnswer(),a=J.parse(n.sdp);for(let o of e){let{trackId:c,rtpParameters:d}=o,p=r.get(c),l=a.media.find(u=>String(u.mid)===p);pt.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l})}n={type:"answer",sdp:J.write(a)},this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:a}),b.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(let o of e){let{trackId:c}=o,d=r.get(c),p=this._pc.getTransceivers().find(l=>l.mid===d);if(p)this._mapMidTransceiver.set(d,p),t.push({localId:d,track:p.receiver.track,rtpReceiver:p.receiver});else throw new Error("new RTCRtpTransceiver not found")}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let i of e){b.debug("stopReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(n.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};b.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();b.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r);for(let i of e)this._mapMidTransceiver.delete(i)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){b.debug("pauseReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="inactive",this._remoteSdp.pauseMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};b.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();b.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){b.debug("resumeReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};b.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();b.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async getReceiverStats(e){this.assertNotClosed(),this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:r,protocol:i}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c}=t,d={negotiated:!0,id:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c,protocol:i};b.debug("receiveDataChannel() [options:%o]",d);let p=this._pc.createDataChannel(r,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};b.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let u=await this._pc.createAnswer(),f=J.parse(u.sdp),m=f.media.find(h=>h.type==="application");m.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:f}),u={type:"answer",sdp:J.write(f)},b.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",u),await this._pc.setLocalDescription(u),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=J.parse(this._pc.localDescription.sdp));let r=pt.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((i,n)=>{this.safeEmit("@connect",{dtlsParameters:r},i,n)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new Oo.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};Ut.Chrome74=Hr});var Ii=C(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.Firefox120=void 0;var he=ue(),Fo=H(),jo=$(),Pi=Y(),lt=ie(),qo=Te(),zo=We(),Vt=He(),Di=Ge(),$o=Ke(),T=new jo.Logger("Firefox120"),Li="Firefox120",Mi={OS:16,MIS:2048},Gr=class s extends Fo.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:Li,factory:e=>new s(e),getNativeRtpCapabilities:async({direction:e})=>{T.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"}),r=document.createElement("canvas");r.getContext("2d");let n=r.captureStream().getVideoTracks()[0];try{t.addTransceiver("audio",{direction:e}),t.addTransceiver(n,{direction:e,sendEncodings:[{rid:"r0",maxBitrate:1e5},{rid:"r1",maxBitrate:5e5}]});let a=await t.createOffer();try{r.remove()}catch{}try{n.stop()}catch{}try{t.close()}catch{}t=void 0;let o=he.parse(a.sdp);return s.getLocalRtpCapabilities(o)}catch(a){try{r.remove()}catch{}try{n.stop()}catch{}try{t?.close()}catch{}throw t=void 0,a}},getNativeSctpCapabilities:async()=>(T.debug("getNativeSctpCapabilities()"),{numStreams:Mi})}}static getLocalRtpCapabilities(e){let t=Vt.extractRtpCapabilities({sdpObject:e});return lt.validateAndNormalizeRtpCapabilities(t),t}constructor({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),T.debug("constructor()"),this._direction=e,this._remoteSdp=new zo.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n}),this._getSendExtendedRtpCapabilities=d,this._pc=new RTCPeerConnection({iceServers:a??[],iceTransportPolicy:o??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(T.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return Li}close(){if(T.debug("close()"),!this._closed){this._closed=!0;try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){throw this.assertNotClosed(),new Pi.UnsupportedError("not supported")}async restartIce(e){if(this.assertNotClosed(),T.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});T.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let r={type:"answer",sdp:this._remoteSdp.getSdp()};T.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",r),await this._pc.setRemoteDescription(r)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};T.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();T.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:r,codecOptions:i,codec:n,onRtpSender:a}){this.assertNotClosed(),this.assertSendDirection(),T.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t),r&&r.length>1&&r.forEach((E,P)=>{E.rid=`r${P}`});let o=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:r});a&&a(o.sender);let c=await this._pc.createOffer(),d=he.parse(c.sdp);d.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let p=s.getLocalRtpCapabilities(d),l=this._getSendExtendedRtpCapabilities(p),u=lt.getSendingRtpParameters(e.kind,l);u.codecs=lt.reduceCodecs(u.codecs,n);let f=lt.getSendingRemoteRtpParameters(e.kind,l);f.codecs=lt.reduceCodecs(f.codecs,n),this._transportReady||await this.setupTransport({localDtlsRole:"client",localSdpObject:d});let m=(0,qo.parse)((r??[{}])[0].scalabilityMode);T.debug("send() | calling pc.setLocalDescription() [offer:%o]",c),await this._pc.setLocalDescription(c);let h=o.mid;u.mid=h,d=he.parse(this._pc.localDescription.sdp);let g=d.media[d.media.length-1];if(u.rtcp.cname=Vt.getCname({offerMediaObject:g}),u.msid=`${t??this._sendStream.id} ${e.id}`,!r)u.encodings=Di.getRtpEncodings({offerMediaObject:g,codecs:u.codecs});else if(r.length===1){let E=Di.getRtpEncodings({offerMediaObject:g,codecs:u.codecs});Object.assign(E[0],r[0]),u.encodings=E}else u.encodings=r;if(u.encodings.length>1&&(u.codecs[0].mimeType.toLowerCase()==="video/vp8"||u.codecs[0].mimeType.toLowerCase()==="video/h264"))for(let E of u.encodings)E.scalabilityMode?E.scalabilityMode=`L1T${m.temporalLayers}`:E.scalabilityMode="L1T3";this._remoteSdp.send({offerMediaObject:g,offerRtpParameters:u,answerRtpParameters:f,codecOptions:i});let w={type:"answer",sdp:this._remoteSdp.getSdp()};return T.debug("send() | calling pc.setRemoteDescription() [answer:%o]",w),await this._pc.setRemoteDescription(w),this._mapMidTransceiver.set(h,o),{localId:h,rtpParameters:u,rtpSender:o.sender}}async stopSending(e){if(this.assertSendDirection(),T.debug("stopSending() [localId:%s]",e),this._closed)return;let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated transceiver not found");t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.disableMediaSection(t.mid);let r=await this._pc.createOffer();T.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};T.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),T.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let r=await this._pc.createOffer();T.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};T.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),T.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly",this._remoteSdp.resumeSendingMediaSection(e);let r=await this._pc.createOffer();T.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};T.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?T.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):T.debug("replaceTrack() [localId:%s, no track]",e);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),T.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated transceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{c<=t?o.active=!0:o.active=!1}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();T.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};T.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),T.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{i.encodings[c]={...o,...t}}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();T.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};T.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};T.debug("sendDataChannel() [options:%o]",t);let r=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%Mi.MIS,!this._hasDataChannelMediaSection){let n=await this._pc.createOffer(),a=he.parse(n.sdp),o=a.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:"client",localSdpObject:a}),T.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n),this._remoteSdp.sendSctpAssociation({offerMediaObject:o});let c={type:"answer",sdp:this._remoteSdp.getSdp()};T.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let i={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:r,sctpStreamParameters:i}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],r=new Map;for(let o of e){let{trackId:c,kind:d,rtpParameters:p,streamId:l}=o;T.debug("receive() [trackId:%s, kind:%s]",c,d);let u=p.mid??String(this._mapMidTransceiver.size);r.set(c,u);let{msidStreamId:f}=$o.getMsidStreamIdAndTrackId(p.msid);this._remoteSdp.receive({mid:u,kind:d,offerRtpParameters:p,streamId:l??f??p.rtcp?.cname??"-",trackId:c})}let i={type:"offer",sdp:this._remoteSdp.getSdp()};T.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);for(let o of e){let{trackId:c,onRtpReceiver:d}=o;if(d){let p=r.get(c),l=this._pc.getTransceivers().find(u=>u.mid===p);if(!l)throw new Error("transceiver not found");d(l.receiver)}}let n=await this._pc.createAnswer(),a=he.parse(n.sdp);for(let o of e){let{trackId:c,rtpParameters:d}=o,p=r.get(c),l=a.media.find(u=>String(u.mid)===p);Vt.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l}),n={type:"answer",sdp:he.write(a)}}this._transportReady||await this.setupTransport({localDtlsRole:"client",localSdpObject:a}),T.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(let o of e){let{trackId:c}=o,d=r.get(c),p=this._pc.getTransceivers().find(l=>l.mid===d);if(!p)throw new Error("new RTCRtpTransceiver not found");this._mapMidTransceiver.set(d,p),t.push({localId:d,track:p.receiver.track,rtpReceiver:p.receiver})}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let i of e){T.debug("stopReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(n.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};T.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();T.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r);for(let i of e)this._mapMidTransceiver.delete(i)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){T.debug("pauseReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="inactive",this._remoteSdp.pauseMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};T.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();T.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){T.debug("resumeReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};T.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();T.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async getReceiverStats(e){this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:r,protocol:i}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c}=t,d={negotiated:!0,id:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c,protocol:i};T.debug("receiveDataChannel() [options:%o]",d);let p=this._pc.createDataChannel(r,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};T.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let u=await this._pc.createAnswer(),f=he.parse(u.sdp),m=f.media.find(h=>h.type==="application");m.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:"client",localSdpObject:f}),u={type:"answer",sdp:he.write(f)},T.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",u),await this._pc.setLocalDescription(u),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=he.parse(this._pc.localDescription.sdp));let r=Vt.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((i,n)=>{this.safeEmit("@connect",{dtlsParameters:r},i,n)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new Pi.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};Wt.Firefox120=Gr});var Fi=C(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.Safari12=void 0;var X=ue(),Bo=H(),Uo=$(),ut=ie(),Vo=Y(),Wo=Te(),Ho=We(),ht=He(),Oi=Ge(),Kr=Ke(),S=new Uo.Logger("Safari12"),Ni="Safari12",Ai={OS:65535,MIS:65535},Qr=class s extends Bo.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_forcedLocalDtlsRole;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:Ni,factory:e=>new s(e),getNativeRtpCapabilities:async({direction:e})=>{S.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{t.addTransceiver("audio",{direction:e}),t.addTransceiver("video",{direction:e});let r=await t.createOffer();try{t.close()}catch{}t=void 0;let i=X.parse(r.sdp);return s.getLocalRtpCapabilities(i)}catch(r){try{t?.close()}catch{}throw t=void 0,r}},getNativeSctpCapabilities:async()=>(S.debug("getNativeSctpCapabilities()"),{numStreams:Ai})}}static getLocalRtpCapabilities(e,t=[]){let r=ht.extractRtpCapabilities({sdpObject:e});ut.validateAndNormalizeRtpCapabilities(r),Kr.addNackSupportForOpus(r);for(let i of t)Kr.addHeaderExtensionSupport(r,i);return r}constructor({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),S.debug("constructor()"),this._direction=e,this._remoteSdp=new Ho.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n}),this._getSendExtendedRtpCapabilities=d,i.role&&i.role!=="auto"&&(this._forcedLocalDtlsRole=i.role==="server"?"client":"server"),this._pc=new RTCPeerConnection({iceServers:a??[],iceTransportPolicy:o??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)}),this._pc.addEventListener("icecandidateerror",p=>{this.emit("@icecandidateerror",p)}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(S.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return Ni}close(){if(S.debug("close()"),!this._closed){this._closed=!0;try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){this.assertNotClosed(),S.debug("updateIceServers()");let t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(this.assertNotClosed(),S.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});S.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let r={type:"answer",sdp:this._remoteSdp.getSdp()};S.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",r),await this._pc.setRemoteDescription(r)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};S.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();S.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:r,codecOptions:i,headerExtensionOptions:n,codec:a,onRtpSender:o}){this.assertNotClosed(),this.assertSendDirection(),S.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t);let c=this._remoteSdp.getNextMediaSectionIdx(),d=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream]});o&&o(d.sender);let p=await this._pc.createOffer(),l=X.parse(p.sdp);l.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let u=[];u.push({uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",kind:e.kind,direction:"sendonly"});let f=s.getLocalRtpCapabilities(l,u),m=this._getSendExtendedRtpCapabilities(f),h=ut.getSendingRtpParameters(e.kind,m);h.codecs=ut.reduceCodecs(h.codecs,a);let g=ut.getSendingRemoteRtpParameters(e.kind,m);g.codecs=ut.reduceCodecs(g.codecs,a);let w;this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:l});let E=(0,Wo.parse)((r??[{}])[0].scalabilityMode);r&&r.length>1&&(S.debug("send() | enabling legacy simulcast"),l=X.parse(p.sdp),w=l.media[c.idx],Oi.addLegacySimulcast({offerMediaObject:w,numStreams:r.length}),p={type:"offer",sdp:X.write(l)}),n?.absCaptureTime&&(w=l.media[c.idx],ht.addHeaderExtension({offerMediaObject:w,headerExtensionUri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",headerExtensionId:g.headerExtensions.find(x=>x.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time").id}),p={type:"offer",sdp:X.write(l)}),S.debug("send() | calling pc.setLocalDescription() [offer:%o]",p),await this._pc.setLocalDescription(p);let P=d.mid;if(h.mid=P,l=X.parse(this._pc.localDescription.sdp),w=l.media[c.idx],h.rtcp.cname=ht.getCname({offerMediaObject:w}),h.msid=`${t??this._sendStream.id} ${e.id}`,h.encodings=Oi.getRtpEncodings({offerMediaObject:w,codecs:h.codecs}),r)for(let x=0;x<h.encodings.length;++x)r[x]&&Object.assign(h.encodings[x],r[x]);if(h.encodings.length>1&&(h.codecs[0].mimeType.toLowerCase()==="video/vp8"||h.codecs[0].mimeType.toLowerCase()==="video/h264"))for(let x of h.encodings)x.scalabilityMode?x.scalabilityMode=`L1T${E.temporalLayers}`:x.scalabilityMode="L1T3";this._remoteSdp.send({offerMediaObject:w,reuseMid:c.reuseMid,offerRtpParameters:h,answerRtpParameters:g,codecOptions:i});let k={type:"answer",sdp:this._remoteSdp.getSdp()};return S.debug("send() | calling pc.setRemoteDescription() [answer:%o]",k),await this._pc.setRemoteDescription(k),this._mapMidTransceiver.set(P,d),{localId:P,rtpParameters:h,rtpSender:d.sender}}async stopSending(e){if(this.assertSendDirection(),this._closed)return;S.debug("stopSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");if(t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid))try{t.stop()}catch{}let i=await this._pc.createOffer();S.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let n={type:"answer",sdp:this._remoteSdp.getSdp()};S.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),S.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let r=await this._pc.createOffer();S.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};S.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),S.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly",this._remoteSdp.resumeSendingMediaSection(e);let r=await this._pc.createOffer();S.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};S.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?S.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):S.debug("replaceTrack() [localId:%s, no track]",e);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),S.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{c<=t?o.active=!0:o.active=!1}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();S.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};S.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),S.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{i.encodings[c]={...o,...t}}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();S.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};S.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};S.debug("sendDataChannel() [options:%o]",t);let r=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%Ai.MIS,!this._hasDataChannelMediaSection){let n=await this._pc.createOffer(),a=X.parse(n.sdp),o=a.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:a}),S.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n),this._remoteSdp.sendSctpAssociation({offerMediaObject:o});let c={type:"answer",sdp:this._remoteSdp.getSdp()};S.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let i={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:r,sctpStreamParameters:i}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],r=new Map;for(let o of e){let{trackId:c,kind:d,rtpParameters:p,streamId:l}=o;S.debug("receive() [trackId:%s, kind:%s]",c,d);let u=p.mid??String(this._mapMidTransceiver.size);r.set(c,u);let{msidStreamId:f}=Kr.getMsidStreamIdAndTrackId(p.msid);this._remoteSdp.receive({mid:u,kind:d,offerRtpParameters:p,streamId:l??f??p.rtcp?.cname??"-",trackId:c})}let i={type:"offer",sdp:this._remoteSdp.getSdp()};S.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);for(let o of e){let{trackId:c,onRtpReceiver:d}=o;if(d){let p=r.get(c),l=this._pc.getTransceivers().find(u=>u.mid===p);if(!l)throw new Error("transceiver not found");d(l.receiver)}}let n=await this._pc.createAnswer(),a=X.parse(n.sdp);for(let o of e){let{trackId:c,rtpParameters:d}=o,p=r.get(c),l=a.media.find(u=>String(u.mid)===p);ht.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l})}n={type:"answer",sdp:X.write(a)},this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:a}),S.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(let o of e){let{trackId:c}=o,d=r.get(c),p=this._pc.getTransceivers().find(l=>l.mid===d);if(!p)throw new Error("new RTCRtpTransceiver not found");this._mapMidTransceiver.set(d,p),t.push({localId:d,track:p.receiver.track,rtpReceiver:p.receiver})}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let i of e){S.debug("stopReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(n.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};S.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();S.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r);for(let i of e)this._mapMidTransceiver.delete(i)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){S.debug("pauseReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="inactive",this._remoteSdp.pauseMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};S.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();S.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){S.debug("resumeReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};S.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();S.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async getReceiverStats(e){this.assertNotClosed(),this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:r,protocol:i}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c}=t,d={negotiated:!0,id:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c,protocol:i};S.debug("receiveDataChannel() [options:%o]",d);let p=this._pc.createDataChannel(r,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};S.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let u=await this._pc.createAnswer(),f=X.parse(u.sdp),m=f.media.find(h=>h.type==="application");m.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:f}),u={type:"answer",sdp:X.write(f)},S.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",u),await this._pc.setLocalDescription(u),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=X.parse(this._pc.localDescription.sdp));let r=ht.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((i,n)=>{this.safeEmit("@connect",{dtlsParameters:r},i,n)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new Vo.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};Ht.Safari12=Qr});var zi=C(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.ReactNative106=void 0;var Z=ue(),Go=H(),Ko=$(),ft=ie(),Qo=Y(),Yo=Te(),Jo=We(),mt=He(),Yr=Ge(),Jr=Ke(),y=new Ko.Logger("ReactNative106"),ji="ReactNative106",qi={OS:65535,MIS:65535},Xr=class s extends Go.EnhancedEventEmitter{_closed=!1;_direction;_remoteSdp;_getSendExtendedRtpCapabilities;_forcedLocalDtlsRole;_pc;_mapMidTransceiver=new Map;_sendStream=new MediaStream;_hasDataChannelMediaSection=!1;_nextSendSctpStreamId=0;_transportReady=!1;static createFactory(){return{name:ji,factory:e=>new s(e),getNativeRtpCapabilities:async({direction:e})=>{y.debug("getNativeRtpCapabilities() [direction:%o]",e);let t=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{t.addTransceiver("audio",{direction:e}),t.addTransceiver("video",{direction:e});let r=await t.createOffer();try{t.close()}catch{}t=void 0;let i=Z.parse(r.sdp);return s.getLocalRtpCapabilities(i)}catch(r){try{t?.close()}catch{}throw t=void 0,r}},getNativeSctpCapabilities:async()=>(y.debug("getNativeSctpCapabilities()"),{numStreams:qi})}}static getLocalRtpCapabilities(e,t=[]){let r=mt.extractRtpCapabilities({sdpObject:e});ft.validateAndNormalizeRtpCapabilities(r),Jr.addNackSupportForOpus(r);for(let i of t)Jr.addHeaderExtensionSupport(r,i);return r}constructor({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,getSendExtendedRtpCapabilities:d}){super(),y.debug("constructor()"),this._direction=e,this._remoteSdp=new Jo.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n}),this._getSendExtendedRtpCapabilities=d,i.role&&i.role!=="auto"&&(this._forcedLocalDtlsRole=i.role==="server"?"client":"server"),this._pc=new RTCPeerConnection({iceServers:a??[],iceTransportPolicy:o??"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...c}),this._pc.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.addEventListener("icecandidateerror",this.onIceCandidateError),this._pc.connectionState?this._pc.addEventListener("connectionstatechange",this.onConnectionStateChange):(y.warn("run() | pc.connectionState not supported, using pc.iceConnectionState"),this._pc.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange))}get name(){return ji}close(){if(y.debug("close()"),!this._closed){this._closed=!0,this._sendStream.release(!1);try{this._pc.close()}catch{}this._pc.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange),this._pc.removeEventListener("icecandidateerror",this.onIceCandidateError),this._pc.removeEventListener("connectionstatechange",this.onConnectionStateChange),this._pc.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange),this.emit("@close"),super.close()}}async updateIceServers(e){this.assertNotClosed(),y.debug("updateIceServers()");let t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(this.assertNotClosed(),y.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),!!this._transportReady)if(this._direction==="send"){let t=await this._pc.createOffer({iceRestart:!0});y.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",t),await this._pc.setLocalDescription(t);let r={type:"answer",sdp:this._remoteSdp.getSdp()};y.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",r),await this._pc.setRemoteDescription(r)}else{let t={type:"offer",sdp:this._remoteSdp.getSdp()};y.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();y.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}}async getTransportStats(){return this.assertNotClosed(),this._pc.getStats()}async send({track:e,streamId:t,encodings:r,codecOptions:i,headerExtensionOptions:n,codec:a,onRtpSender:o}){this.assertNotClosed(),this.assertSendDirection(),y.debug("send() [kind:%s, track.id:%s, streamId:%s]",e.kind,e.id,t),r&&r.length>1&&r.forEach((M,ke)=>{M.rid=`r${ke}`});let c=this._remoteSdp.getNextMediaSectionIdx(),d=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:r});o&&o(d.sender);let p=await this._pc.createOffer(),l=Z.parse(p.sdp);l.extmapAllowMixed&&this._remoteSdp.setSessionExtmapAllowMixed();let u=[];u.push({uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",kind:e.kind,direction:"sendonly"});let f=s.getLocalRtpCapabilities(l,u),m=this._getSendExtendedRtpCapabilities(f),h=ft.getSendingRtpParameters(e.kind,m);h.codecs=ft.reduceCodecs(h.codecs,a);let g=ft.getSendingRemoteRtpParameters(e.kind,m);g.codecs=ft.reduceCodecs(g.codecs,a),this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:l});let w=!1,E=(0,Yo.parse)((r??[{}])[0].scalabilityMode),P;r?.length===1&&E.spatialLayers>1&&h.codecs[0].mimeType.toLowerCase()==="video/vp9"&&(y.debug("send() | enabling legacy simulcast for VP9 SVC"),w=!0,l=Z.parse(p.sdp),P=l.media[c.idx],Yr.addLegacySimulcast({offerMediaObject:P,numStreams:E.spatialLayers}),p={type:"offer",sdp:Z.write(l)}),n?.absCaptureTime&&(P=l.media[c.idx],mt.addHeaderExtension({offerMediaObject:P,headerExtensionUri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",headerExtensionId:g.headerExtensions.find(M=>M.uri==="http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time").id}),p={type:"offer",sdp:Z.write(l)}),y.debug("send() | calling pc.setLocalDescription() [offer:%o]",p),await this._pc.setLocalDescription(p);let k=d.mid??void 0;if(k||y.warn("send() | missing transceiver.mid (bug in react-native-webrtc, using a workaround"),h.mid=k,l=Z.parse(this._pc.localDescription.sdp),P=l.media[c.idx],h.rtcp.cname=mt.getCname({offerMediaObject:P}),h.msid=`${t??this._sendStream.id} ${e.id}`,!r)h.encodings=Yr.getRtpEncodings({offerMediaObject:P,codecs:h.codecs});else if(r.length===1){let M=Yr.getRtpEncodings({offerMediaObject:P,codecs:h.codecs});Object.assign(M[0],r[0]),w&&(M=[M[0]]),h.encodings=M}else h.encodings=r;if(h.encodings.length>1&&(h.codecs[0].mimeType.toLowerCase()==="video/vp8"||h.codecs[0].mimeType.toLowerCase()==="video/h264"))for(let M of h.encodings)M.scalabilityMode?M.scalabilityMode=`L1T${E.temporalLayers}`:M.scalabilityMode="L1T3";this._remoteSdp.send({offerMediaObject:P,reuseMid:c.reuseMid,offerRtpParameters:h,answerRtpParameters:g,codecOptions:i});let x={type:"answer",sdp:this._remoteSdp.getSdp()};return y.debug("send() | calling pc.setRemoteDescription() [answer:%o]",x),await this._pc.setRemoteDescription(x),k||(k=d.mid,h.mid=k),this._mapMidTransceiver.set(k,d),{localId:k,rtpParameters:h,rtpSender:d.sender}}async stopSending(e){if(this.assertSendDirection(),this._closed)return;y.debug("stopSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");if(t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid))try{t.stop()}catch{}let i=await this._pc.createOffer();y.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",i),await this._pc.setLocalDescription(i);let n={type:"answer",sdp:this._remoteSdp.getSdp()};y.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",n),await this._pc.setRemoteDescription(n),this._mapMidTransceiver.delete(e)}async pauseSending(e){this.assertNotClosed(),this.assertSendDirection(),y.debug("pauseSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="inactive",this._remoteSdp.pauseMediaSection(e);let r=await this._pc.createOffer();y.debug("pauseSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};y.debug("pauseSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async resumeSending(e){this.assertNotClosed(),this.assertSendDirection(),y.debug("resumeSending() [localId:%s]",e);let t=this._mapMidTransceiver.get(e);if(this._remoteSdp.resumeSendingMediaSection(e),!t)throw new Error("associated RTCRtpTransceiver not found");t.direction="sendonly";let r=await this._pc.createOffer();y.debug("resumeSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);let i={type:"answer",sdp:this._remoteSdp.getSdp()};y.debug("resumeSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){this.assertNotClosed(),this.assertSendDirection(),t?y.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):y.debug("replaceTrack() [localId:%s, no track]",e);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),this.assertSendDirection(),y.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{c<=t?o.active=!0:o.active=!1}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();y.debug("setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};y.debug("setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),this.assertSendDirection(),y.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);let r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");let i=r.sender.getParameters();i.encodings.forEach((o,c)=>{i.encodings[c]={...o,...t}}),await r.sender.setParameters(i),this._remoteSdp.muxMediaSectionSimulcast(e,i.encodings);let n=await this._pc.createOffer();y.debug("setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n);let a={type:"answer",sdp:this._remoteSdp.getSdp()};y.debug("setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]",a),await this._pc.setRemoteDescription(a)}async getSenderStats(e){this.assertNotClosed(),this.assertSendDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this.assertSendDirection();let t={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,protocol:e.protocol};y.debug("sendDataChannel() [options:%o]",t);let r=this._pc.createDataChannel(e.label,t);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%qi.MIS,!this._hasDataChannelMediaSection){let n=await this._pc.createOffer(),a=Z.parse(n.sdp),o=a.media.find(d=>d.type==="application");this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:a}),y.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",n),await this._pc.setLocalDescription(n),this._remoteSdp.sendSctpAssociation({offerMediaObject:o});let c={type:"answer",sdp:this._remoteSdp.getSdp()};y.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",c),await this._pc.setRemoteDescription(c),this._hasDataChannelMediaSection=!0}let i={streamId:t.id,ordered:t.ordered,maxPacketLifeTime:t.maxPacketLifeTime,maxRetransmits:t.maxRetransmits};return{dataChannel:r,sctpStreamParameters:i}}async receive(e){this.assertNotClosed(),this.assertRecvDirection();let t=[],r=new Map;for(let o of e){let{trackId:c,kind:d,rtpParameters:p,streamId:l}=o;y.debug("receive() [trackId:%s, kind:%s]",c,d);let u=p.mid??String(this._mapMidTransceiver.size);r.set(c,u);let{msidStreamId:f}=Jr.getMsidStreamIdAndTrackId(p.msid);this._remoteSdp.receive({mid:u,kind:d,offerRtpParameters:p,streamId:l??f??p.rtcp?.cname??"-",trackId:c})}let i={type:"offer",sdp:this._remoteSdp.getSdp()};y.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);for(let o of e){let{trackId:c,onRtpReceiver:d}=o;if(d){let p=r.get(c),l=this._pc.getTransceivers().find(u=>u.mid===p);if(!l)throw new Error("transceiver not found");d(l.receiver)}}let n=await this._pc.createAnswer(),a=Z.parse(n.sdp);for(let o of e){let{trackId:c,rtpParameters:d}=o,p=r.get(c),l=a.media.find(u=>String(u.mid)===p);mt.applyCodecParameters({offerRtpParameters:d,answerMediaObject:l})}n={type:"answer",sdp:Z.write(a)},this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:a}),y.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(let o of e){let{trackId:c}=o,d=r.get(c),p=this._pc.getTransceivers().find(l=>l.mid===d);if(p)this._mapMidTransceiver.set(d,p),t.push({localId:d,track:p.receiver.track,rtpReceiver:p.receiver});else throw new Error("new RTCRtpTransceiver not found")}return t}async stopReceiving(e){if(this.assertRecvDirection(),this._closed)return;for(let i of e){y.debug("stopReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(n.mid)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};y.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();y.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r);for(let i of e)this._mapMidTransceiver.delete(i)}async pauseReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){y.debug("pauseReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="inactive",this._remoteSdp.pauseMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};y.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();y.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async resumeReceiving(e){this.assertNotClosed(),this.assertRecvDirection();for(let i of e){y.debug("resumeReceiving() [localId:%s]",i);let n=this._mapMidTransceiver.get(i);if(!n)throw new Error("associated RTCRtpTransceiver not found");n.direction="recvonly",this._remoteSdp.resumeReceivingMediaSection(i)}let t={type:"offer",sdp:this._remoteSdp.getSdp()};y.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);let r=await this._pc.createAnswer();y.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async getReceiverStats(e){this.assertNotClosed(),this.assertRecvDirection();let t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({maxMessageSize:e,sctpStreamParameters:t,label:r,protocol:i}){this.assertNotClosed(),this.assertRecvDirection();let{streamId:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c}=t,d={negotiated:!0,id:n,ordered:a,maxPacketLifeTime:o,maxRetransmits:c,protocol:i};y.debug("receiveDataChannel() [options:%o]",d);let p=this._pc.createDataChannel(r,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();let l={type:"offer",sdp:this._remoteSdp.getSdp()};y.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",l),await this._pc.setRemoteDescription(l);let u=await this._pc.createAnswer(),f=Z.parse(u.sdp),m=f.media.find(h=>h.type==="application");m.maxMessageSize=e,this._transportReady||await this.setupTransport({localDtlsRole:this._forcedLocalDtlsRole??"client",localSdpObject:f}),u={type:"answer",sdp:Z.write(f)},y.debug("receiveDataChannel() | calling pc.setLocalDescription() [answer:%o]",u),await this._pc.setLocalDescription(u),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}getDataChannelMaxMessageSize(){return this._pc.sctp?.maxMessageSize}async setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=Z.parse(this._pc.localDescription.sdp));let r=mt.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole(e==="client"?"server":"client"),await new Promise((i,n)=>{this.safeEmit("@connect",{dtlsParameters:r},i,n)}),this._transportReady=!0}onIceGatheringStateChange=()=>{this.emit("@icegatheringstatechange",this._pc.iceGatheringState)};onIceCandidateError=e=>{this.emit("@icecandidateerror",e)};onConnectionStateChange=()=>{this.emit("@connectionstatechange",this._pc.connectionState)};onIceConnectionStateChange=()=>{switch(this._pc.iceConnectionState){case"checking":{this.emit("@connectionstatechange","connecting");break}case"connected":case"completed":{this.emit("@connectionstatechange","connected");break}case"failed":{this.emit("@connectionstatechange","failed");break}case"disconnected":{this.emit("@connectionstatechange","disconnected");break}case"closed":{this.emit("@connectionstatechange","closed");break}}};assertNotClosed(){if(this._closed)throw new Qo.InvalidStateError("method called in a closed handler")}assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}};Gt.ReactNative106=Xr});var Vi=C(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.Device=void 0;Qe.detectDevice=$i;Qe.detectDeviceAsync=Bi;var Xo=$(),Zo=H(),_e=Y(),Kt=be(),G=ie(),ec=pi(),tc=Ti(),rc=ki(),sc=Ii(),ic=Fi(),nc=zi(),v=new Xo.Logger("Device");function $i(s,e){return v.debug("detectDevice()"),!s&&typeof navigator=="object"&&(s=navigator.userAgent),!e&&typeof navigator=="object"&&(e=navigator.userAgentData),Ui(s,e)}async function Bi(s,e){return v.debug("detectDeviceAsync()"),!s&&typeof navigator=="object"&&(s=navigator.userAgent),!e&&typeof navigator=="object"&&(e=navigator.userAgentData),Ui(s,e)}var Zr=class s{_handlerFactory;_handlerName;_loaded=!1;_getSendExtendedRtpCapabilities;_recvRtpCapabilities;_sendRtpCapabilities;_canProduceByKind={audio:!1,video:!1};_sctpCapabilities;_observer=new Zo.EnhancedEventEmitter;static async factory({handlerName:e,handlerFactory:t}={}){if(v.debug("factory()"),e&&t)throw new TypeError("just one of handlerName or handlerInterface can be given");if(!e&&!t&&(e=await Bi(),!e))throw new _e.UnsupportedError("device not supported");return new s({handlerName:e,handlerFactory:t})}constructor({handlerName:e,handlerFactory:t}={}){if(v.debug("constructor()"),e&&t)throw new TypeError("just one of handlerName or handlerInterface can be given");if(t)this._handlerFactory=t;else{if(e)v.debug("constructor() | handler given: %s",e);else if(e=$i(),e)v.debug("constructor() | detected handler: %s",e);else throw new _e.UnsupportedError("device not supported");switch(e){case"Chrome111":{this._handlerFactory=tc.Chrome111.createFactory();break}case"Chrome74":{this._handlerFactory=rc.Chrome74.createFactory();break}case"Firefox120":{this._handlerFactory=sc.Firefox120.createFactory();break}case"Safari12":{this._handlerFactory=ic.Safari12.createFactory();break}case"ReactNative106":{this._handlerFactory=nc.ReactNative106.createFactory();break}default:throw new TypeError(`unknown handlerName "${e}"`)}}this._handlerName=this._handlerFactory.name}get handlerName(){return this._handlerName}get loaded(){return this._loaded}get rtpCapabilities(){return this.recvRtpCapabilities}get recvRtpCapabilities(){if(!this._loaded)throw new _e.InvalidStateError("not loaded");return this._recvRtpCapabilities}get sendRtpCapabilities(){if(!this._loaded)throw new _e.InvalidStateError("not loaded");return this._sendRtpCapabilities}get sctpCapabilities(){if(!this._loaded)throw new _e.InvalidStateError("not loaded");return this._sctpCapabilities}get observer(){return this._observer}async load({routerRtpCapabilities:e,preferLocalCodecsOrder:t=!1}){if(v.debug("load() [routerRtpCapabilities:%o]",e),this._loaded)throw new _e.InvalidStateError("already loaded");let r=Kt.clone(e);G.validateAndNormalizeRtpCapabilities(r);let{getNativeRtpCapabilities:i,getNativeSctpCapabilities:n}=this._handlerFactory,a=Kt.clone(await i({direction:"recvonly"}));v.debug("load() | got native receiving RTP capabilities:%o",a),G.validateAndNormalizeRtpCapabilities(a);let o=Kt.clone(await i({direction:"sendonly"}));v.debug("load() | got native sending RTP capabilities:%o",o),G.validateAndNormalizeRtpCapabilities(o),this._getSendExtendedRtpCapabilities=p=>Kt.clone(G.getExtendedRtpCapabilities(p,r,t));let c=G.getExtendedRtpCapabilities(a,r,!1);this._recvRtpCapabilities=G.getRecvRtpCapabilities(c),v.debug("load() | got receiving RTP capabilities:%o",this._recvRtpCapabilities),G.validateAndNormalizeRtpCapabilities(this._recvRtpCapabilities);let d=G.getExtendedRtpCapabilities(o,r,t);this._sendRtpCapabilities=G.getSendRtpCapabilities(d),v.debug("load() | got sending RTP capabilities:%o",this._sendRtpCapabilities),G.validateAndNormalizeRtpCapabilities(this._sendRtpCapabilities),this._canProduceByKind.audio=G.canSend("audio",this._sendRtpCapabilities),this._canProduceByKind.video=G.canSend("video",this._sendRtpCapabilities),this._sctpCapabilities=await n(),G.validateSctpCapabilities(this._sctpCapabilities),v.debug("load() | got native SCTP capabilities:%o",this._sctpCapabilities),v.debug("load() succeeded"),this._loaded=!0}canProduce(e){if(this._loaded){if(e!=="audio"&&e!=="video")throw new TypeError(`invalid kind "${e}"`)}else throw new _e.InvalidStateError("not loaded");return this._canProduceByKind[e]}createSendTransport({id:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,appData:d}){return v.debug("createSendTransport()"),this.createTransport({direction:"send",id:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,appData:d})}createRecvTransport({id:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,appData:d}){return v.debug("createRecvTransport()"),this.createTransport({direction:"recv",id:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,appData:d})}createTransport({direction:e,id:t,iceParameters:r,iceCandidates:i,dtlsParameters:n,sctpParameters:a,iceServers:o,iceTransportPolicy:c,additionalSettings:d,appData:p}){if(this._loaded){if(typeof t!="string")throw new TypeError("missing id");if(typeof r!="object")throw new TypeError("missing iceParameters");if(Array.isArray(i)){if(typeof n!="object")throw new TypeError("missing dtlsParameters");if(a&&typeof a!="object")throw new TypeError("wrong sctpParameters");if(p&&typeof p!="object")throw new TypeError("if given, appData must be an object")}else throw new TypeError("missing iceCandidates")}else throw new _e.InvalidStateError("not loaded");let l=new ec.Transport({direction:e,id:t,iceParameters:r,iceCandidates:i,dtlsParameters:n,sctpParameters:a,iceServers:o,iceTransportPolicy:c,additionalSettings:d,appData:p,handlerFactory:this._handlerFactory,getSendExtendedRtpCapabilities:this._getSendExtendedRtpCapabilities,recvRtpCapabilities:this._recvRtpCapabilities,canProduceByKind:this._canProduceByKind});return this._observer.safeEmit("newtransport",l),l}};Qe.Device=Zr;function Ui(s,e){v.debug('detectDeviceImpl() [userAgent:"%s", userAgentData:%o]',s,e);let t=ac(s,e);if(t){if(t>=111)return v.debug("detectDeviceImpl() | using Chrome111 handler"),"Chrome111";if(t>=74)return v.debug("detectDeviceImpl() | using Chrome74 handler"),"Chrome74";v.warn("detectDeviceImpl() | unsupported Chromium based browser/version");return}let r=oc(s);if(r){if(r>=120)return v.debug("detectDeviceImpl() | using Firefox120 handler"),"Firefox120";v.warn("detectDeviceImpl() | unsupported Firefox browser/version");return}let i=cc(s);if(i){if(i>=605)return v.debug("detectDeviceImpl() | using Safari12 handler"),"Safari12";v.warn("detectDeviceImpl() | unsupported desktop Safari browser/version");return}let n=dc(s);if(n){if(n>=605)return v.debug("detectDeviceImpl() | using Safari12 handler"),"Safari12";v.warn("detectDeviceImpl() | unsupported iOS Safari based browser/version");return}if(gt()){if(typeof RTCPeerConnection<"u"&&typeof RTCRtpTransceiver<"u")return v.debug("detectDeviceImpl() | using ReactNative106 handler"),"ReactNative106";v.warn("detectDeviceImpl() | unsupported react-native-webrtc version without RTCPeerConnection or RTCRtpTransceiver, forgot to call registerGlobals() on it?");return}v.warn('detectDeviceImpl() | device not supported [userAgent:"%s", userAgentData:%o]',s,e)}function ac(s,e){if(v.debug("getChromiumMajorVersion()"),Qt(s,e)){v.debug("getChromiumMajorVersion() | this is iOS => undefined");return}if(gt()){v.debug("getChromiumMajorVersion() | this is React-Native => undefined");return}if(e){let i=(Array.isArray(e.brands)?e.brands:[]).find(n=>n.brand==="Chromium");if(i){let n=Number(i.version);return v.debug(`getChromiumMajorVersion() | Chromium major version based on NavigatorUAData => ${n}`),n}}let t=s?.match(/\b(?:Chrome|Chromium)\/(\w+)/i);if(t?.[1]){let r=Number(t[1]);return v.debug(`getChromiumMajorVersion() | Chromium major version based on User-Agent => ${r}`),r}v.debug("getChromiumMajorVersion() | this is not Chromium => undefined")}function oc(s){if(v.debug("getFirefoxMajorVersion()"),Qt(s)){v.debug("getFirefoxMajorVersion() | this is iOS => undefined");return}if(gt()){v.debug("getFirefoxMajorVersion() | this is React-Native => undefined");return}let e=s?.match(/\bFirefox\/(\w+)/i);if(e?.[1]){let t=Number(e[1]);return v.debug(`getFirefoxMajorVersion() | Firefox major version based on User-Agent => ${t}`),t}v.debug("getFirefoxMajorVersion() | this is not Firefox => undefined")}function cc(s){if(v.debug("getMacOSWebKitMajorVersion()"),Qt(s)){v.debug("getMacOSWebKitMajorVersion() | this is iOS => undefined");return}if(gt()){v.debug("getMacOSWebKitMajorVersion() | this is React-Native => undefined");return}if(!(s&&/\bSafari\b/i.test(s)&&!/\bChrome\b/i.test(s)&&!/\bChromium\b/i.test(s)&&!/\bFirefox\b/i.test(s))){v.debug("getMacOSWebKitMajorVersion() | this is not Safari => undefined");return}let t=s.match(/AppleWebKit\/(\w+)/i);if(t?.[1]){let r=Number(t[1]);return v.debug(`getMacOSWebKitMajorVersion() | WebKit major version based on User-Agent => ${r}`),r}v.debug("getMacOSWebKitMajorVersion() | this is not WebKit => undefined")}function dc(s){if(v.debug("getIOSWebKitMajorVersion()"),!Qt(s)){v.debug("getIOSWebKitMajorVersion() | this is not iOS => undefined");return}if(gt()){v.debug("getIOSWebKitMajorVersion() | this is React-Native => undefined");return}let e=s?.match(/AppleWebKit\/(\w+)/i);if(e?.[1]){let t=Number(e[1]);return v.debug(`getIOSWebKitMajorVersion() | WebKit major version based on User-Agent => ${t}`),t}v.debug("getIOSWebKitMajorVersion() | this is not WebKit => undefined")}function Qt(s,e){return v.debug("isIOS()"),e?.platform==="iOS"?(v.debug("isIOS() | this is iOS based on NavigatorUAData.platform => true"),!0):e?.platform?(v.debug("isIOS() | this is not iOS based on NavigatorUAData.platform => false"),!1):s&&/iPad|iPhone|iPod/.test(s)?(v.debug("isIOS() | this is iOS based on User-Agent => true"),!0):typeof navigator=="object"&&navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1?(v.debug("isIOS() | this is iPadOS 13+ based on User-Agent => true"),!0):(v.debug("isIOS() | this is not iOS => false"),!1)}function gt(){return v.debug("isReactNative()"),typeof navigator=="object"&&navigator.product==="ReactNative"?(v.debug("isReactNative() | this is React-Native based on navigator.product"),!0):(v.debug("isReactNative() | this is not React-Native => false"),!1)}});var Hi=C(Wi=>{"use strict";var xe=256,Jt=[],Yt;for(;xe--;)Jt[xe]=(xe+256).toString(16).substring(1);function pc(){var s=0,e,t="";if(!Yt||xe+16>256){for(Yt=Array(s=256);s--;)Yt[s]=256*Math.random()|0;s=xe=0}for(;s<16;s++)e=Yt[xe+s],s==6?t+=Jt[e&15|64]:s==8?t+=Jt[e&63|128]:t+=Jt[e],s&1&&s>1&&s<11&&(t+="-");return xe++,t}Wi.v4=pc});var Gi=C(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.FakeEventTarget=void 0;var es=class{listeners={};addEventListener(e,t,r){t&&(this.listeners[e]=this.listeners[e]??[],this.listeners[e].push({callback:typeof t=="function"?t:t.handleEvent,once:typeof r=="object"&&r.once===!0}))}removeEventListener(e,t,r){this.listeners[e]&&t&&(this.listeners[e]=this.listeners[e].filter(i=>i.callback!==(typeof t=="function"?t:t.handleEvent)))}dispatchEvent(e){if(!e||typeof e.type!="string")throw new Error("invalid event object");let t=this.listeners[e.type];if(!t)return!0;for(let r of[...t]){try{r.callback.call(this,e)}catch(i){setTimeout(()=>{throw i},0)}r.once&&this.removeEventListener(e.type,r.callback)}return!e.defaultPrevented}};Xt.FakeEventTarget=es});var Ki=C(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.FakeEvent=void 0;var ts=class{NONE=0;CAPTURING_PHASE=1;AT_TARGET=2;BUBBLING_PHASE=3;type;bubbles;cancelable;defaultPrevented=!1;composed=!1;currentTarget=null;eventPhase=this.NONE;isTrusted=!0;target=null;timeStamp=0;cancelBubble=!1;returnValue=!0;srcElement=null;constructor(e,t={}){this.type=e,this.bubbles=t.bubbles??!1,this.cancelable=t.cancelable??!1}preventDefault(){this.cancelable&&(this.defaultPrevented=!0)}stopPropagation(){}stopImmediatePropagation(){}composedPath(){return[]}initEvent(e,t,r){}};Zt.FakeEvent=ts});var Qi=C(rs=>{"use strict";Object.defineProperty(rs,"__esModule",{value:!0});rs.clone=lc;function lc(s){if(s!==void 0)return Number.isNaN(s)?NaN:typeof structuredClone=="function"?structuredClone(s):JSON.parse(JSON.stringify(s))}});var Ji=C(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.FakeMediaStreamTrack=void 0;var Yi=Hi(),uc=Gi(),Ye=Ki(),er=Qi(),ss=class s extends uc.FakeEventTarget{#m;#l;#u;#e;#r;#t;#s;#h;#i;#f;#n;#a=null;#o=null;#c=null;#d=null;#p=null;constructor({kind:e,id:t,label:r,contentHint:i,enabled:n,muted:a,readyState:o,capabilities:c,constraints:d,settings:p,data:l}){super(),this.#m=t??(0,Yi.v4)(),this.#l=e,this.#u=r??"",this.#s=i??"",this.#r=n??!0,this.#t=a??!1,this.#e=o??"live",this.#h=c??{},this.#i=d??{},this.#f=p??{},this.#n=l??{}}get id(){return this.#m}get kind(){return this.#l}get label(){return this.#u}get contentHint(){return this.#s}set contentHint(e){this.#s=e}get enabled(){return this.#r}set enabled(e){let t=this.#r!==e;this.#r=e,t&&this.dispatchEvent(new Ye.FakeEvent("enabledchange"))}get muted(){return this.#t}get readyState(){return this.#e}get data(){return this.#n}set data(e){this.#n=e}get onmute(){return this.#a}set onmute(e){this.#a&&this.removeEventListener("mute",this.#a),this.#a=e,e&&this.addEventListener("mute",e)}get onunmute(){return this.#o}set onunmute(e){this.#o&&this.removeEventListener("unmute",this.#o),this.#o=e,e&&this.addEventListener("unmute",e)}get onended(){return this.#c}set onended(e){this.#c&&this.removeEventListener("ended",this.#c),this.#c=e,e&&this.addEventListener("ended",e)}get onenabledchange(){return this.#d}set onenabledchange(e){this.#d&&this.removeEventListener("enabledchange",this.#d),this.#d=e,e&&this.addEventListener("enabledchange",e)}get onstopped(){return this.#p}set onstopped(e){this.#p&&this.removeEventListener("stopped",this.#p),this.#p=e,e&&this.addEventListener("stopped",e)}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}stop(){this.#e!=="ended"&&(this.#e="ended",this.dispatchEvent(new Ye.FakeEvent("stopped")))}clone({id:e,data:t}={}){return new s({id:e??(0,Yi.v4)(),kind:this.#l,label:this.#u,contentHint:this.#s,enabled:this.#r,muted:this.#t,readyState:this.#e,capabilities:(0,er.clone)(this.#h),constraints:(0,er.clone)(this.#i),settings:(0,er.clone)(this.#f),data:t??(0,er.clone)(this.#n)})}getCapabilities(){return this.#h}getConstraints(){return this.#i}async applyConstraints(e={}){return this.#i=e,Promise.resolve()}getSettings(){return this.#f}remoteStop(){this.#e!=="ended"&&(this.#e="ended",this.dispatchEvent(new Ye.FakeEvent("stopped")),this.dispatchEvent(new Ye.FakeEvent("ended")))}remoteMute(){this.#t||(this.#t=!0,this.dispatchEvent(new Ye.FakeEvent("mute")))}remoteUnmute(){this.#t&&(this.#t=!1,this.dispatchEvent(new Ye.FakeEvent("unmute")))}};tr.FakeMediaStreamTrack=ss});var Xi=C(rr=>{"use strict";Object.defineProperty(rr,"__esModule",{value:!0});rr.FakeEventTarget=void 0;var is=class{listeners={};addEventListener(e,t,r){t&&(this.listeners[e]=this.listeners[e]??[],this.listeners[e].push({callback:typeof t=="function"?t:t.handleEvent,once:typeof r=="object"&&r.once===!0}))}removeEventListener(e,t,r){this.listeners[e]&&t&&(this.listeners[e]=this.listeners[e].filter(i=>i.callback!==(typeof t=="function"?t:t.handleEvent)))}dispatchEvent(e){if(!e||typeof e.type!="string")throw new Error("invalid event object");let t=this.listeners[e.type];if(!t)return!0;for(let r of[...t]){try{r.callback.call(this,e)}catch(i){setTimeout(()=>{throw i},0)}r.once&&this.removeEventListener(e.type,r.callback)}return!e.defaultPrevented}};rr.FakeEventTarget=is});var tn=C(ir=>{"use strict";Object.defineProperty(ir,"__esModule",{value:!0});ir.FakeHandler=void 0;var hc=Ji(),fc=H(),mc=$(),Je=be(),ns=ie(),en=Y(),gc=Xi(),q=new mc.Logger("FakeHandler"),Zi="FakeHandler",as=class s extends fc.EnhancedEventEmitter{_closed=!1;_fakeParameters;_getSendExtendedRtpCapabilities;_cname=`CNAME-${Je.generateRandomNumber()}`;_defaultSendStreamId=`${Je.generateRandomNumber()}`;_transportReady=!1;_nextLocalId=1;_tracks=new Map;_nextSctpStreamId=0;static createFactory(e){return{name:Zi,factory:t=>new s(t,e),getNativeRtpCapabilities:async({direction:t})=>(q.debug("getNativeRtpCapabilities() [direction:%o]",t),s.getLocalRtpCapabilities(e)),getNativeSctpCapabilities:async()=>(q.debug("getNativeSctpCapabilities()"),e.generateNativeSctpCapabilities())}}static getLocalRtpCapabilities(e){let t=e.generateNativeRtpCapabilities();return ns.validateAndNormalizeRtpCapabilities(t),t}constructor({getSendExtendedRtpCapabilities:e},t){super(),q.debug("constructor()"),this._getSendExtendedRtpCapabilities=e,this._fakeParameters=t}get name(){return Zi}close(){q.debug("close()"),!this._closed&&(this._closed=!0,super.close())}setIceGatheringState(e){this.emit("@icegatheringstatechange",e)}setConnectionState(e){this.emit("@connectionstatechange",e)}async updateIceServers(e){this.assertNotClosed(),q.debug("updateIceServers()")}async restartIce(e){this.assertNotClosed(),q.debug("restartIce()")}async getTransportStats(){return this.assertNotClosed(),new Map}async send({track:e,streamId:t,encodings:r,codecOptions:i,codec:n}){this.assertNotClosed(),q.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),this._transportReady||await this.setupTransport({localDtlsRole:"server"});let a=s.getLocalRtpCapabilities(this._fakeParameters),o=this._getSendExtendedRtpCapabilities(a),c=ns.getSendingRtpParameters(e.kind,o);c.codecs=ns.reduceCodecs(c.codecs,n);let d=c.codecs.some(l=>/.+\/rtx$/i.test(l.mimeType));c.mid=`mid-${Je.generateRandomNumber()}`,c.msid=`${t??"-"} ${e.id}`,r||(r=[{}]);for(let l of r)l.ssrc=Je.generateRandomNumber(),d&&(l.rtx={ssrc:Je.generateRandomNumber()});c.encodings=r,c.rtcp={cname:this._cname,reducedSize:!0,mux:!0},c.msid=`${t??this._defaultSendStreamId} ${e.id}`;let p=this._nextLocalId++;return this._tracks.set(p,e),{localId:String(p),rtpParameters:c}}async stopSending(e){if(q.debug("stopSending() [localId:%s]",e),!this._closed){if(!this._tracks.has(Number(e)))throw new Error("local track not found");this._tracks.delete(Number(e))}}async pauseSending(e){this.assertNotClosed()}async resumeSending(e){this.assertNotClosed()}async replaceTrack(e,t){this.assertNotClosed(),t?q.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):q.debug("replaceTrack() [localId:%s, no track]",e),this._tracks.delete(Number(e)),this._tracks.set(Number(e),t)}async setMaxSpatialLayer(e,t){this.assertNotClosed(),q.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t)}async setRtpEncodingParameters(e,t){this.assertNotClosed(),q.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t)}async getSenderStats(e){return this.assertNotClosed(),new Map}async sendDataChannel({sctpStreamParameters:e}){this.assertNotClosed(),this._transportReady||await this.setupTransport({localDtlsRole:"server"}),q.debug("sendDataChannel()");let t=new sr({id:this._nextSctpStreamId++,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,label:e.label,protocol:e.protocol}),r={streamId:this._nextSctpStreamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits};return{dataChannel:t,sctpStreamParameters:r}}async receive(e){this.assertNotClosed();let t=[];for(let r of e){let{trackId:i,kind:n}=r;this._transportReady||await this.setupTransport({localDtlsRole:"client"}),q.debug("receive() [trackId:%s, kind:%s]",i,n);let a=this._nextLocalId++,o=new hc.FakeMediaStreamTrack({kind:n});this._tracks.set(a,o),t.push({localId:String(a),track:o})}return t}async stopReceiving(e){if(!this._closed)for(let t of e)q.debug("stopReceiving() [localId:%s]",t),this._tracks.delete(Number(t))}async pauseReceiving(e){this.assertNotClosed()}async resumeReceiving(e){this.assertNotClosed()}async getReceiverStats(e){return this.assertNotClosed(),new Map}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){return this.assertNotClosed(),this._transportReady||await this.setupTransport({localDtlsRole:"client"}),q.debug("receiveDataChannel()"),{dataChannel:new sr({id:e.streamId,ordered:e.ordered,maxPacketLifeTime:e.maxPacketLifeTime,maxRetransmits:e.maxRetransmits,label:t,protocol:r})}}getDataChannelMaxMessageSize(){return 5e5}async setupTransport({localDtlsRole:e,localSdpObject:t}){let r=Je.clone(this._fakeParameters.generateLocalDtlsParameters());e&&(r.role=e),this.emit("@connectionstatechange","connecting"),await new Promise((i,n)=>this.emit("@connect",{dtlsParameters:r},i,n)),this._transportReady=!0}assertNotClosed(){if(this._closed)throw new en.InvalidStateError("method called in a closed handler")}};ir.FakeHandler=as;var sr=class extends gc.FakeEventTarget{_id;_negotiated=!0;_ordered;_maxPacketLifeTime;_maxRetransmits;_label;_protocol;_readyState="connecting";_bufferedAmount=0;_bufferedAmountLowThreshold=0;_binaryType="arraybuffer";_onopen=null;_onclosing=null;_onclose=null;_onmessage=null;_onbufferedamountlow=null;_onerror=null;constructor({id:e,ordered:t=!0,maxPacketLifeTime:r=null,maxRetransmits:i=null,label:n="",protocol:a=""}){super(),q.debug(`constructor() [id:${e}, ordered:${t}, maxPacketLifeTime:${r}, maxRetransmits:${i}, label:${n}, protocol:${a}`),this._id=e,this._ordered=t,this._maxPacketLifeTime=r,this._maxRetransmits=i,this._label=n,this._protocol=a}get id(){return this._id}get negotiated(){return this._negotiated}get ordered(){return this._ordered}get maxPacketLifeTime(){return this._maxPacketLifeTime}get maxRetransmits(){return this._maxRetransmits}get label(){return this._label}get protocol(){return this._protocol}get readyState(){return this._readyState}get bufferedAmount(){return this._bufferedAmount}get bufferedAmountLowThreshold(){return this._bufferedAmountLowThreshold}set bufferedAmountLowThreshold(e){this._bufferedAmountLowThreshold=e}get binaryType(){return this._binaryType}set binaryType(e){this._binaryType=e}get onopen(){return this._onopen}set onopen(e){this._onopen&&this.removeEventListener("open",this._onopen),this._onopen=e,e&&this.addEventListener("open",e)}get onclosing(){return this._onclosing}set onclosing(e){this._onclosing&&this.removeEventListener("closing",this._onclosing),this._onclosing=e,e&&this.addEventListener("closing",e)}get onclose(){return this._onclose}set onclose(e){this._onclose&&this.removeEventListener("close",this._onclose),this._onclose=e,e&&this.addEventListener("close",e)}get onmessage(){return this._onmessage}set onmessage(e){this._onmessage&&this.removeEventListener("message",this._onmessage),this._onmessage=e,e&&this.addEventListener("message",e)}get onbufferedamountlow(){return this._onbufferedamountlow}set onbufferedamountlow(e){this._onbufferedamountlow&&this.removeEventListener("bufferedamountlow",this._onbufferedamountlow),this._onbufferedamountlow=e,e&&this.addEventListener("bufferedamountlow",e)}get onerror(){return this._onerror}set onerror(e){this._onerror&&this.removeEventListener("error",this._onerror),this._onerror=e,e&&this.addEventListener("error",e)}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}close(){["closing","closed"].includes(this._readyState)||(this._readyState="closed")}send(e){if(this._readyState!=="open")throw new en.InvalidStateError("not open")}}});var rn=C(se=>{"use strict";Object.defineProperty(se,"__esModule",{value:!0});se.generateRouterRtpCapabilities=_c;se.generateNativeRtpCapabilities=vc;se.generateNativeSctpCapabilities=wc;se.generateLocalDtlsParameters=yc;se.generateTransportRemoteParameters=bc;se.generateProducerRemoteParameters=Sc;se.generateConsumerRemoteParameters=Cc;se.generateDataProducerRemoteParameters=Rc;se.generateDataConsumerRemoteParameters=Tc;var U=be();function K(){return String(U.generateRandomNumber())}function _c(){return U.deepFreeze({codecs:[{mimeType:"audio/opus",kind:"audio",preferredPayloadType:100,clockRate:48e3,channels:2,rtcpFeedback:[{type:"transport-cc"}],parameters:{useinbandfec:1,foo:"bar"}},{mimeType:"video/VP8",kind:"video",preferredPayloadType:101,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"x-google-start-bitrate":1500}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:102,clockRate:9e4,rtcpFeedback:[],parameters:{apt:101}},{mimeType:"video/H264",kind:"video",preferredPayloadType:103,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"level-asymmetry-allowed":1,"packetization-mode":1,"profile-level-id":"42e01f"}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:104,clockRate:9e4,rtcpFeedback:[],parameters:{apt:103}},{mimeType:"video/VP9",kind:"video",preferredPayloadType:105,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"profile-id":0,"x-google-start-bitrate":1500}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:106,clockRate:9e4,rtcpFeedback:[],parameters:{apt:105}}],headerExtensions:[{kind:"audio",uri:"urn:ietf:params:rtp-hdrext:sdes:mid",preferredId:1,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:sdes:mid",preferredId:1,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",preferredId:2,preferredEncrypt:!1,direction:"recvonly"},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",preferredId:3,preferredEncrypt:!1,direction:"recvonly"},{kind:"audio",uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",preferredId:4,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",preferredId:4,preferredEncrypt:!1,direction:"sendrecv"},{kind:"audio",uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",preferredId:5,preferredEncrypt:!1,direction:"recvonly"},{kind:"video",uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",preferredId:5,preferredEncrypt:!1,direction:"sendrecv"},{kind:"audio",uri:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",preferredId:10,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"urn:3gpp:video-orientation",preferredId:11,preferredEncrypt:!1,direction:"sendrecv"},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:toffset",preferredId:12,preferredEncrypt:!1,direction:"sendrecv"}]})}function vc(){return{codecs:[{mimeType:"audio/opus",kind:"audio",preferredPayloadType:111,clockRate:48e3,channels:2,rtcpFeedback:[{type:"transport-cc"}],parameters:{minptime:10,useinbandfec:1}},{mimeType:"audio/ISAC",kind:"audio",preferredPayloadType:103,clockRate:16e3,channels:1,rtcpFeedback:[{type:"transport-cc"}],parameters:{}},{mimeType:"audio/CN",kind:"audio",preferredPayloadType:106,clockRate:32e3,channels:1,rtcpFeedback:[{type:"transport-cc"}],parameters:{}},{mimeType:"audio/foo",kind:"audio",preferredPayloadType:107,clockRate:9e4,channels:4,rtcpFeedback:[{type:"foo-qwe-qwe"}],parameters:{foo:"lalala"}},{mimeType:"video/BAZCODEC",kind:"video",preferredPayloadType:100,clockRate:9e4,rtcpFeedback:[{type:"foo"},{type:"transport-cc"},{type:"ccm",parameter:"fir"},{type:"nack"},{type:"nack",parameter:"pli"}],parameters:{baz:"1234abcd"}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:101,clockRate:9e4,rtcpFeedback:[],parameters:{apt:100}},{mimeType:"video/VP8",kind:"video",preferredPayloadType:96,clockRate:9e4,rtcpFeedback:[{type:"goog-remb"},{type:"transport-cc"},{type:"ccm",parameter:"fir"},{type:"nack"},{type:"nack",parameter:"pli"}],parameters:{baz:"1234abcd"}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:97,clockRate:9e4,rtcpFeedback:[],parameters:{apt:96}},{mimeType:"video/VP9",kind:"video",preferredPayloadType:98,clockRate:9e4,rtcpFeedback:[{type:"goog-remb"},{type:"transport-cc"},{type:"ccm",parameter:"fir"},{type:"nack"},{type:"nack",parameter:"pli"}],parameters:{"profile-id":0}},{mimeType:"video/rtx",kind:"video",preferredPayloadType:99,clockRate:9e4,rtcpFeedback:[],parameters:{apt:98}}],headerExtensions:[{kind:"audio",uri:"urn:ietf:params:rtp-hdrext:sdes:mid",preferredId:1},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:sdes:mid",preferredId:1},{kind:"video",uri:"urn:ietf:params:rtp-hdrext:toffset",preferredId:2},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",preferredId:3},{kind:"video",uri:"urn:3gpp:video-orientation",preferredId:4},{kind:"video",uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",preferredId:5},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay",preferredId:6},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type",preferredId:7},{kind:"video",uri:"http://www.webrtc.org/experiments/rtp-hdrext/video-timing",preferredId:8},{kind:"audio",uri:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",preferredId:10}]}}function wc(){return U.deepFreeze({numStreams:{OS:2048,MIS:2048}})}function yc(){return U.deepFreeze({fingerprints:[{algorithm:"sha-256",value:"82:5A:68:3D:36:C3:0A:DE:AF:E7:32:43:D2:88:83:57:AC:2D:65:E5:80:C4:B6:FB:AF:1A:A0:21:9F:6D:0C:AD"}],role:"auto"})}function bc(){return{id:K(),iceParameters:U.deepFreeze({iceLite:!0,password:"yku5ej8nvfaor28lvtrabcx0wkrpkztz",usernameFragment:"h3hk1iz6qqlnqlne"}),iceCandidates:U.deepFreeze([{foundation:"udpcandidate",address:"9.9.9.9",ip:"9.9.9.9",port:40533,priority:1078862079,protocol:"udp",type:"host",tcpType:"passive"},{foundation:"udpcandidate",address:"9.9.9.9",ip:"9:9:9:9:9:9",port:41333,priority:1078862089,protocol:"udp",type:"host",tcpType:"passive"}]),dtlsParameters:U.deepFreeze({fingerprints:[{algorithm:"sha-256",value:"A9:F4:E0:D2:74:D3:0F:D9:CA:A5:2F:9F:7F:47:FA:F0:C4:72:DD:73:49:D0:3B:14:90:20:51:30:1B:90:8E:71"},{algorithm:"sha-384",value:"03:D9:0B:87:13:98:F6:6D:BC:FC:92:2E:39:D4:E1:97:32:61:30:56:84:70:81:6E:D1:82:97:EA:D9:C1:21:0F:6B:C5:E7:7F:E1:97:0C:17:97:6E:CF:B3:EF:2E:74:B0"},{algorithm:"sha-512",value:"84:27:A4:28:A4:73:AF:43:02:2A:44:68:FF:2F:29:5C:3B:11:9A:60:F4:A8:F0:F5:AC:A0:E3:49:3E:B1:34:53:A9:85:CE:51:9B:ED:87:5E:B8:F4:8E:3D:FA:20:51:B8:96:EE:DA:56:DC:2F:5C:62:79:15:23:E0:21:82:2B:2C"}],role:"auto"}),sctpParameters:U.deepFreeze({port:5e3,OS:2048,MIS:2048,maxMessageSize:2e6})}}function Sc(){return U.deepFreeze({id:K()})}function Cc({id:s,codecMimeType:e}={}){switch(e){case"audio/opus":return{id:s??K(),producerId:K(),kind:"audio",rtpParameters:U.deepFreeze({codecs:[{mimeType:"audio/opus",payloadType:100,clockRate:48e3,channels:2,rtcpFeedback:[{type:"transport-cc"}],parameters:{useinbandfec:1,foo:"bar"}}],encodings:[{ssrc:46687003}],headerExtensions:[{uri:"urn:ietf:params:rtp-hdrext:sdes:mid",id:1},{uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",id:5},{uri:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",id:10}],rtcp:{cname:"wB4Ql4lrsxYLjzuN",reducedSize:!0,mux:!0}})};case"audio/ISAC":return{id:s??K(),producerId:K(),kind:"audio",rtpParameters:U.deepFreeze({codecs:[{mimeType:"audio/ISAC",payloadType:111,clockRate:16e3,channels:1,rtcpFeedback:[{type:"transport-cc"}],parameters:{}}],encodings:[{ssrc:46687004}],headerExtensions:[{uri:"urn:ietf:params:rtp-hdrext:sdes:mid",id:1},{uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",id:5}],rtcp:{cname:"wB4Ql4lrsxYLjzuN",reducedSize:!0,mux:!0}})};case"video/VP8":return{id:s??K(),producerId:K(),kind:"video",rtpParameters:U.deepFreeze({codecs:[{mimeType:"video/VP8",payloadType:101,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"x-google-start-bitrate":1500}},{mimeType:"video/rtx",payloadType:102,clockRate:9e4,rtcpFeedback:[],parameters:{apt:101}}],encodings:[{ssrc:99991111,rtx:{ssrc:99991112}}],headerExtensions:[{uri:"urn:ietf:params:rtp-hdrext:sdes:mid",id:1},{uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",id:4},{uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",id:5},{uri:"urn:3gpp:video-orientation",id:11},{uri:"urn:ietf:params:rtp-hdrext:toffset",id:12}],rtcp:{cname:"wB4Ql4lrsxYLjzuN",reducedSize:!0,mux:!0}})};case"video/H264":return{id:s??K(),producerId:K(),kind:"video",rtpParameters:U.deepFreeze({codecs:[{mimeType:"video/H264",payloadType:103,clockRate:9e4,rtcpFeedback:[{type:"nack"},{type:"nack",parameter:"pli"},{type:"ccm",parameter:"fir"},{type:"goog-remb"},{type:"transport-cc"}],parameters:{"level-asymmetry-allowed":1,"packetization-mode":1,"profile-level-id":"42e01f"}},{mimeType:"video/rtx",payloadType:104,clockRate:9e4,rtcpFeedback:[],parameters:{apt:103}}],encodings:[{ssrc:99991113,rtx:{ssrc:99991114}}],headerExtensions:[{uri:"urn:ietf:params:rtp-hdrext:sdes:mid",id:1},{uri:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",id:4},{uri:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",id:5},{uri:"urn:3gpp:video-orientation",id:11},{uri:"urn:ietf:params:rtp-hdrext:toffset",id:12}],rtcp:{cname:"wB4Ql4lrsxYLjzuN",reducedSize:!0,mux:!0}})};default:throw new TypeError(`unknown codecMimeType '${e}'`)}}function Rc(){return U.deepFreeze({id:K()})}function Tc({id:s}={}){return{id:s??K(),dataProducerId:K(),sctpStreamParameters:U.deepFreeze({streamId:666,maxPacketLifeTime:5e3,maxRetransmits:void 0})}}});var $r=C(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});O.debug=O.testFakeParameters=O.FakeHandler=O.enhancedEvents=O.ortc=O.parseScalabilityMode=O.detectDeviceAsync=O.detectDevice=O.Device=O.version=O.types=void 0;var Ec=tt();O.debug=Ec.default;O.types=xs();O.version="3.20.0";var os=Vi();Object.defineProperty(O,"Device",{enumerable:!0,get:function(){return os.Device}});Object.defineProperty(O,"detectDevice",{enumerable:!0,get:function(){return os.detectDevice}});Object.defineProperty(O,"detectDeviceAsync",{enumerable:!0,get:function(){return os.detectDeviceAsync}});var xc=Te();Object.defineProperty(O,"parseScalabilityMode",{enumerable:!0,get:function(){return xc.parse}});O.ortc=ie();O.enhancedEvents=H();var kc=tn();Object.defineProperty(O,"FakeHandler",{enumerable:!0,get:function(){return kc.FakeHandler}});O.testFakeParameters=rn()});var nn=C(($d,cs)=>{"use strict";var Pc=Object.prototype.hasOwnProperty,V="~";function _t(){}Object.create&&(_t.prototype=Object.create(null),new _t().__proto__||(V=!1));function Dc(s,e,t){this.fn=s,this.context=e,this.once=t||!1}function sn(s,e,t,r,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new Dc(t,r||s,i),a=V?V+e:e;return s._events[a]?s._events[a].fn?s._events[a]=[s._events[a],n]:s._events[a].push(n):(s._events[a]=n,s._eventsCount++),s}function nr(s,e){--s._eventsCount===0?s._events=new _t:delete s._events[e]}function z(){this._events=new _t,this._eventsCount=0}z.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)Pc.call(t,r)&&e.push(V?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};z.prototype.listeners=function(e){var t=V?V+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,n=r.length,a=new Array(n);i<n;i++)a[i]=r[i].fn;return a};z.prototype.listenerCount=function(e){var t=V?V+e:e,r=this._events[t];return r?r.fn?1:r.length:0};z.prototype.emit=function(e,t,r,i,n,a){var o=V?V+e:e;if(!this._events[o])return!1;var c=this._events[o],d=arguments.length,p,l;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,r),!0;case 4:return c.fn.call(c.context,t,r,i),!0;case 5:return c.fn.call(c.context,t,r,i,n),!0;case 6:return c.fn.call(c.context,t,r,i,n,a),!0}for(l=1,p=new Array(d-1);l<d;l++)p[l-1]=arguments[l];c.fn.apply(c.context,p)}else{var u=c.length,f;for(l=0;l<u;l++)switch(c[l].once&&this.removeListener(e,c[l].fn,void 0,!0),d){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,t);break;case 3:c[l].fn.call(c[l].context,t,r);break;case 4:c[l].fn.call(c[l].context,t,r,i);break;default:if(!p)for(f=1,p=new Array(d-1);f<d;f++)p[f-1]=arguments[f];c[l].fn.apply(c[l].context,p)}}return!0};z.prototype.on=function(e,t,r){return sn(this,e,t,r,!1)};z.prototype.once=function(e,t,r){return sn(this,e,t,r,!0)};z.prototype.removeListener=function(e,t,r,i){var n=V?V+e:e;if(!this._events[n])return this;if(!t)return nr(this,n),this;var a=this._events[n];if(a.fn)a.fn===t&&(!i||a.once)&&(!r||a.context===r)&&nr(this,n);else{for(var o=0,c=[],d=a.length;o<d;o++)(a[o].fn!==t||i&&!a[o].once||r&&a[o].context!==r)&&c.push(a[o]);c.length?this._events[n]=c.length===1?c[0]:c:nr(this,n)}return this};z.prototype.removeAllListeners=function(e){var t;return e?(t=V?V+e:e,this._events[t]&&nr(this,t)):(this._events=new _t,this._eventsCount=0),this};z.prototype.off=z.prototype.removeListener;z.prototype.addListener=z.prototype.on;z.prefixed=V;z.EventEmitter=z;typeof cs<"u"&&(cs.exports=z)});var Gc={};fs(Gc,{ChannelMultiplexer:()=>Xe,DeferredChannelMultiplexer:()=>ar,TransportSession:()=>pr,decodeDocSyncFrame:()=>hs,encodeDocSyncFrame:()=>us,ensureNodeWebRTC:()=>dr,isNodeRuntime:()=>Ze,nodeMediasoupHandlerName:()=>cr});module.exports=gs(Gc);var fn=we($r());var ds=we(nn(),1);var Xe=class{_handlers=new Map;_ws;_onMessage;_onOpen;_listeningForOpen=!1;_pendingSends=[];_disposed=!1;constructor(e){this._ws=e,this._onMessage=t=>{if(typeof t.data!="string")return;let r;try{r=JSON.parse(t.data)}catch{console.warn("[ChannelMultiplexer] Failed to parse WebSocket message as JSON");return}if(!r.channel)return;let i=this._handlers.get(r.channel);if(i)for(let n of i)n(r)},this._ws.addEventListener("message",this._onMessage),this._onOpen=()=>{this.flushPendingSends()}}on(e,t){let r=this._handlers.get(e);return r||(r=new Set,this._handlers.set(e,r)),r.add(t),()=>{r.delete(t),r.size===0&&this._handlers.delete(e)}}emit(e,t){if(this._disposed)return;let r=JSON.stringify({channel:e,...t});if(this._ws.readyState===WebSocket.OPEN){this._ws.send(r);return}this._ws.readyState===WebSocket.CONNECTING&&(this._pendingSends.push(r),this.listenForOpen())}dispose(){this._disposed=!0,this._pendingSends=[],this._handlers.clear(),this._ws.removeEventListener("message",this._onMessage),this._ws.removeEventListener("open",this._onOpen),this._listeningForOpen=!1}flushPendingSends(){if(this._disposed||this._ws.readyState!==WebSocket.OPEN)return;this._ws.removeEventListener("open",this._onOpen),this._listeningForOpen=!1;let e=this._pendingSends;this._pendingSends=[];for(let t of e)this._ws.send(t)}listenForOpen(){this._listeningForOpen||(this._listeningForOpen=!0,this._ws.addEventListener("open",this._onOpen))}},ar=class{_handlers=new Map;_pendingSends=[];_target=null;_targetUnsubscribes=[];_disposed=!1;setTarget(e){if(this._disposed)return;this.detachTarget(),this._target=e;for(let[r,i]of this._handlers)for(let n of i)this._targetUnsubscribes.push(e.on(r,n));let t=this._pendingSends;this._pendingSends=[];for(let r of t)e.emit(r.channel,r.data)}rewriteSessionChannels(e,t){if(e===t)return;let r=`session:${e}:`,i=`session:${t}:`,n=new Map;for(let[a,o]of this._handlers)n.set(a.startsWith(r)?i+a.slice(r.length):a,o);this._handlers=n,this._pendingSends=this._pendingSends.map(a=>({...a,channel:a.channel.startsWith(r)?i+a.channel.slice(r.length):a.channel}))}on(e,t){if(this._disposed)return()=>{};let r=this._handlers.get(e);r||(r=new Set,this._handlers.set(e,r)),r.add(t);let i=this._target?.on(e,t);return i&&this._targetUnsubscribes.push(i),()=>{r?.delete(t),r?.size===0&&this._handlers.delete(e),i?.(),i&&(this._targetUnsubscribes=this._targetUnsubscribes.filter(n=>n!==i))}}emit(e,t){if(!this._disposed){if(this._target){this._target.emit(e,t);return}this._pendingSends.push({channel:e,data:t})}}dispose(){this._disposed=!0,this._pendingSends=[],this._handlers.clear(),this.detachTarget()}detachTarget(){for(let e of this._targetUnsubscribes)e();this._targetUnsubscribes=[],this._target=null}};function Ze(){return typeof window>"u"&&typeof process<"u"&&process.versions!=null&&process.versions.node!=null}function cr(){return Ze()?"Chrome111":void 0}var Lc=["RTCSessionDescription","RTCIceCandidate","RTCRtpReceiver","RTCRtpSender","RTCRtpTransceiver","RTCDataChannel","MediaStream","MediaStreamTrack"],or=null;function dr(){return Ze()?or||(or=Mc(),or):Promise.resolve()}async function Mc(){let s=globalThis;if(typeof s.WebSocket>"u")try{let e=await import("ws"),t=e.default??e;s.WebSocket=t}catch(e){an("WebSocket",e)}if(typeof s.RTCPeerConnection>"u")try{let e=await import("werift");Ic(s,e)}catch(e){an("werift",e)}}function Ic(s,e){let{RTCPeerConnection:t,useH264:r,useVP8:i,useOPUS:n,useSdesMid:a,useSdesRTPStreamId:o,useAbsSendTime:c,useTransportWideCC:d,useVideoOrientation:p}=e,l=()=>({video:[r(),i()],audio:[n()]}),u=()=>({video:[a(),o(),c(),d(),p()],audio:[a(),c(),d()]});class f extends t{constructor(h){super({...h,codecs:h?.codecs??l(),headerExtensions:h?.headerExtensions??u()})}}s.RTCPeerConnection=f;for(let m of Lc)e[m]!=null&&typeof s[m]>"u"&&(s[m]=e[m])}function an(s,e){let t=e instanceof Error?e.message:String(e);console.warn(`[urun-sh/core] Node WebRTC support: optional dependency "${s}" unavailable (${t}). Realtime media will not work in this Node process; install "${s}" to enable it. Doc/KV transport over WebSocket is unaffected.`)}var on="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function Oc(s){let e=globalThis.crypto,t=new Uint8Array(s);if(e?.getRandomValues)return e.getRandomValues(t),t;for(let r=0;r<s;r++)t[r]=Math.floor(Math.random()*256);return t}function cn(s=16){let e=Oc(s),t="";for(let r=0;r<s;r++)t+=on[e[r]%on.length];return t}var dn=[1e3,2e3,4e3,8e3,3e4],pn=5,Nc=15e3,Ac=2e3,Fc=6e3,jc=2,qc=750,zc=3,ln=[1e3,2e3,4e3],$c=15e3,ps="control",mn=0,gn=1,ls=64;function us(s,e){if(s===ps){let i=new Uint8Array(1+e.length);return i[0]=mn,i.set(e,1),i}let t=new TextEncoder().encode(s);if(t.length<1||t.length>ls)throw new Error(`[urun] doc key length out of range (1..${ls}): ${t.length}`);let r=new Uint8Array(3+t.length+e.length);return r[0]=gn,r[1]=t.length>>>8&255,r[2]=t.length&255,r.set(t,3),r.set(e,3+t.length),r}function hs(s){if(s.length===0)return{docKey:ps,payload:s.slice()};let e=s[0];if(e===mn)return{docKey:ps,payload:s.slice(1)};if(e===gn){if(s.length<3)return null;let t=s[1]<<8|s[2];if(t<1||t>ls||s.length<3+t)return null;let r=new TextDecoder().decode(s.subarray(3,3+t)),i=s.slice(3+t);return{docKey:r,payload:i}}return null}var Bc={queued:"queued",pending:"provisioning",allocating:"provisioning",provisioning:"provisioning",allocated:"connecting",connecting:"connecting",live:"live",running:"live",failed:"error",rejected:"error",expired:"error",cancelled:"ended",canceled:"ended",closed:"ended"},Uc=8e3,un=[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"}],pr=class{_state="disconnected";_sessionId=null;_tracks=new Map;_tracksByName=new Map;_options;_emitter=new ds.default;_ws=null;_device=null;_recvTransport=null;_sendTransport=null;_consumers=new Map;_audioProducer=null;_videoProducer=null;_pendingProduce=null;_multiplexer=null;_reconnectAttempts=0;_intentionalDisconnect=!1;_reconnectTimer=null;_stableResetTimer=null;_generation=0;_lastStartOptions;_resolveConnection=null;_recvTransportMsg=null;_lastConsumeMsg=null;_recvConnectWatchdog=null;_recvTcpFailoverDone=!1;_phase={name:"idle"};_requestId;_liveReached=!1;_mediaMonitorTimer=null;_lastInboundTotal=0;_mediaEverFlowed=!1;_lastInboundAdvanceAt=0;_mediaDeathHandled=!1;_currentEpoch=0;_consumerId=null;_pendingStreamSubscribes=new Set;get consumerId(){return this._consumerId===null&&(this._consumerId=Vc()),this._consumerId}get state(){return this._state}get currentIncarnation(){return this._currentEpoch}get phase(){return this._phase}get sessionId(){return this._sessionId}get tracks(){return this._tracks}get multiplexer(){return this._multiplexer}get isOpen(){return this._ws?.readyState===WebSocket.OPEN}getTrackByName(e){let t=this._tracksByName.get(e);if(t&&t.readyState!=="ended")return t;for(let r of this._tracks.values())if(r.kind===e&&r.readyState!=="ended")return r;return t}setAuth(e){this._options={...this._options,...e},this.isOpen&&this._send({type:"auth",orgId:this._options.orgId,jwt:this._options.jwt,authProvider:this._options.authProvider})}constructor(e){this._options=e??{url:""},e?.sessionId&&(this._sessionId=e.sessionId)}setConnection(e){if(this.isOpen)throw new Error("TransportSession: cannot change connection while connected");this._options={...this._options,...e},e.sessionId&&(this._sessionId=e.sessionId)}setConnectionResolver(e){this._resolveConnection=e}applyControlDocState(e){let t=e&&typeof e=="object"?e.session:void 0,r=Hc(t);r!==void 0&&this.setIncarnation(r)}setIncarnation(e){if(!Number.isFinite(e)||e<=this._currentEpoch)return;let t=this._currentEpoch>0,r=this._state==="connected";this._currentEpoch=e,t&&r&&!this._intentionalDisconnect&&this._renegotiate()}isStaleIncarnation(e){return Number.isFinite(e)?e<this._currentEpoch:!1}isStaleClosedMarker(e){if(!e)return!1;let t=typeof e.status=="string"?e.status:void 0;if(t!=="closed"&&t!=="ended")return!1;let r=e.status_epoch??e.statusEpoch,i=typeof r=="number"?r:Number(r);return Number.isFinite(i)?i<this._currentEpoch:!1}async connect(e){this._lastStartOptions=e,this._intentionalDisconnect=!1;let t=++this._generation;this._state!=="reconnecting"&&this._state!=="renegotiating"&&this._setState("connecting");let r=null,i=()=>t!==this._generation||this._intentionalDisconnect,n=()=>{if(i())throw new Error("TransportSession: connect cancelled")},a=async()=>{for(let c of this._connectUrls()){n();try{return await this._connectOnce(c,t,e),!0}catch(d){r=d instanceof Error?d:new Error(String(d)),this._cleanupSocket()}}return!1},o=this._resolveConnection?jc:1;for(let c=0;c<o;c++)if(c>0&&(await hn(qc),n()),await a())return;if(this._resolveConnection)for(let c=0;c<zc;c++){this._setState("reconnecting"),await hn(ln[Math.min(c,ln.length-1)]),n();try{let d=await this._resolveConnection();n(),this.setAuth({jwt:d.jwt??this._options.jwt,authProvider:this._options.authProvider,orgId:this._options.orgId}),this.setConnection({url:d.url,sessionId:d.sessionId,iceServers:d.iceServers??this._options.iceServers})}catch(d){if(i())throw new Error("TransportSession: connect cancelled");r=d instanceof Error?d:new Error(String(d));continue}if(await a())return}throw this._setState("failed"),r??new Error("TransportSession: connect failed")}disconnect(){if(this._generation+=1,this._intentionalDisconnect=!0,this._stopMediaMonitor(),this._reconnectTimer&&(clearTimeout(this._reconnectTimer),this._reconnectTimer=null),this._clearReconnectBudgetReset(),this._reconnectAttempts=0,this._audioProducer){this._send({type:"stopAudio"});try{this._audioProducer.close()}catch{}this._audioProducer=null}if(this._videoProducer){this._send({type:"stopVideo"});try{this._videoProducer.close()}catch{}this._videoProducer=null}for(let e of this._consumers.values())try{e.close()}catch{}if(this._consumers.clear(),this._sendTransport){try{this._sendTransport.close()}catch{}this._sendTransport=null}if(this._recvTransport){this._clearRecvWatchdog();try{this._recvTransport.close()}catch{}this._recvTransport=null}if(this._pendingProduce&&(clearTimeout(this._pendingProduce.timeoutId),this._pendingProduce.reject(new Error("TransportSession: disconnected")),this._pendingProduce=null),this._device=null,this._multiplexer&&(this._multiplexer.dispose(),this._multiplexer=null),this._ws){let e=this._ws;this._ws=null;try{e.close(1e3,"intentional disconnect")}catch{}}this._tracks.clear(),this._tracksByName.clear(),this._setState("disconnected"),this._liveReached=!1,this._setPhase("ended"),this._emitter.emit("disconnected")}on(e,t){return this._emitter.on(e,t),()=>{this._emitter.off(e,t)}}sendInput(e,t){this._send({type:"input",data:e,sequence:t})}sendDocSync(e,t){!this._ws||this._ws.readyState!==WebSocket.OPEN||this._ws.send(us(e,t))}onDocSync(e,t){let r=(i,n)=>{i===e&&t(n)};return this.on("docSync",r)}onDocSyncReady(e){return this.on("docSyncReady",e)}_emitDocSyncFrame(e){let t=hs(e);if(!t){console.warn("[urun] doc-sync: unknown/malformed typed-v1 frame; dropped");return}this._emitter.emit("docSync",t.docKey,t.payload)}async addTrack(e){if(!this._sendTransport)throw new Error("TransportSession: send transport not ready");this._audioProducer=await this._sendTransport.produce({track:e,codecOptions:{opusStereo:!1,opusDtx:!1,opusFec:!1}})}removeTrack(){this._audioProducer&&(this._send({type:"stopAudio"}),this._audioProducer.close(),this._audioProducer=null)}async addVideoTrack(e){if(!this._sendTransport)throw new Error("TransportSession: send transport not ready");this._videoProducer=await this._sendTransport.produce({track:e})}stopVideo(){this._videoProducer&&(this._send({type:"stopVideo"}),this._videoProducer.close(),this._videoProducer=null)}requestDiagnostics(){this._send({type:"diagnostics"})}seekStream(e,t){this._send({type:"stream.seek",stream:e,target:t})}subscribeStream(e){this._pendingStreamSubscribes.add(e),this._sendStreamSubscribe(e)}unsubscribeStream(e){this._pendingStreamSubscribes.delete(e),this._send({t:"stream.unsubscribe",name:e,consumerId:this.consumerId})}_sendStreamSubscribe(e){this._send({t:"stream.subscribe",name:e,consumerId:this.consumerId})}_flushStreamSubscribes(){for(let e of this._pendingStreamSubscribes)this._sendStreamSubscribe(e)}async _handleMessage(e){switch(e.type){case"routerRtpCapabilities":await this._onRouterCapabilities(e.rtpCapabilities);break;case"createWebRtcTransport":await this._onCreateRecvTransport(e);break;case"createSendTransport":await this._onCreateSendTransport(e);break;case"consume":await this._onConsume(e);break;case"produced":if(this._pendingProduce){let t=this._pendingProduce;this._pendingProduce=null,clearTimeout(t.timeoutId),t.resolve(e.id)}break;case"started":this._emitter.emit("started");break;case"status":this._onStatus(e);break}}_onStatus(e){let t=e.request_id??e.requestId;if(t&&(this._requestId=t),this._liveReached)return;let r=typeof e.status=="string"?e.status:void 0,i=(r&&Bc[r])??"provisioning",n=e.queue_position??e.queuePosition,a=e.queue_depth??e.queueDepth,o=typeof n=="number"&&typeof a=="number";if(i==="error"){this._setPhase("error",{error:{reason:r??"admission failed",code:r}});return}if(i==="ended"){this._setPhase("ended");return}if(i==="queued"){this._setPhase("queued",o?{queue:{position:n,depth:a}}:void 0);return}if(i==="connecting"){this._setPhase("connecting");return}this._setPhase("provisioning")}async _onRouterCapabilities(e){Ze()&&await dr();let t=cr(),r=new fn.Device(t?{handlerName:t}:void 0);await r.load({routerRtpCapabilities:e}),this._device=r,this._send({type:"rtpCapabilities",rtpCapabilities:r.rtpCapabilities})}async _onCreateRecvTransport(e){this._device&&(this._recvTransportMsg=e,this._recvTcpFailoverDone=!1,this._buildRecvTransport(e,!1))}_buildRecvTransport(e,t){if(!this._device)return;let r=e.iceCandidates,i=t?r.filter(o=>o.protocol==="tcp"):r,n=this._device.createRecvTransport({id:e.id,iceParameters:e.iceParameters,iceCandidates:i,dtlsParameters:e.dtlsParameters,iceServers:this._options.iceServers??un}),a=this._generation;n.on("connect",({dtlsParameters:o},c,d)=>{try{this._send({type:"connectTransport",transportId:n.id,dtlsParameters:o}),c()}catch(p){d(p)}}),n.on("connectionstatechange",o=>{if(a===this._generation){if(o==="connected"){this._clearRecvWatchdog();return}if(!(this._intentionalDisconnect&&o==="closed")&&(o==="failed"||o==="disconnected")){if(!t&&!this._recvTcpFailoverDone){this._failoverRecvToTcp(`state:${o}`);return}o==="failed"&&this._emitError(new Error(`media transport ${o}`),o)}}}),this._recvTransport=n,this._clearRecvWatchdog(),t||(this._recvConnectWatchdog=setTimeout(()=>{a===this._generation&&this._recvTransport?.connectionState!=="connected"&&this._failoverRecvToTcp("timeout")},Uc))}_clearRecvWatchdog(){this._recvConnectWatchdog&&(clearTimeout(this._recvConnectWatchdog),this._recvConnectWatchdog=null)}_failoverRecvToTcp(e){if(this._recvTcpFailoverDone||this._intentionalDisconnect)return;let t=this._recvTransportMsg;if(!this._device||!t)return;if(!t.iceCandidates.some(i=>i.protocol==="tcp")){this._emitter.emit("error",new Error(`media transport failed (${e}); no TCP candidate`));return}if(this._recvTcpFailoverDone=!0,this._clearRecvWatchdog(),this._recvTransport)try{this._recvTransport.close()}catch{}this._buildRecvTransport(t,!0),this._lastConsumeMsg&&this._onConsume(this._lastConsumeMsg)}async _onCreateSendTransport(e){if(!this._device)return;let t=this._device.createSendTransport({id:e.id,iceParameters:e.iceParameters,iceCandidates:e.iceCandidates,dtlsParameters:e.dtlsParameters,iceServers:this._options.iceServers??un}),r=this._generation;t.on("connect",({dtlsParameters:i},n,a)=>{try{this._send({type:"connectSendTransport",transportId:t.id,dtlsParameters:i}),n()}catch(o){a(o)}}),t.on("produce",({kind:i,rtpParameters:n},a,o)=>{if(this._pendingProduce){o(new Error("produce already pending"));return}let c=setTimeout(()=>{let d=this._pendingProduce;!d||d.timeoutId!==c||(this._pendingProduce=null,d.reject(new Error("Produce timed out")))},15e3);this._pendingProduce={timeoutId:c,resolve:d=>{a({id:d})},reject:o};try{this._send({type:"produce",kind:i,rtpParameters:n})}catch(d){this._pendingProduce?.timeoutId===c&&(this._pendingProduce=null,clearTimeout(c)),o(d)}}),t.on("connectionstatechange",i=>{r===this._generation&&(this._intentionalDisconnect&&i==="closed"||(i==="failed"||i==="closed")&&this._emitError(new Error(`media send transport ${i}`),i))}),this._sendTransport=t,this._emitter.emit("audioTransportReady")}async _onConsume(e){if(!this._recvTransport)return;this._lastConsumeMsg=e;let t=this._generation,r=await this._recvTransport.consume({id:e.id,producerId:e.producerId,kind:e.kind,rtpParameters:e.rtpParameters});this._consumers.set(r.id,r),this._tracks.set(r.track.id,r.track);let i=e.streamName??e.label;i&&this._tracksByName.set(i,r.track),this._liveReached||this._setPhase("live"),this._emitter.emit("track",r.track),r.track.addEventListener("ended",()=>{t!==this._generation||this._intentionalDisconnect||this._renegotiate()},{once:!0}),this._send({type:"resumeConsumer",consumerId:r.id}),this._startMediaMonitor()}_mediaPollMs(){let e=this._options.mediaLiveness?.pollMs;return e===void 0?Ac:e}_mediaStallTimeoutMs(){let e=this._options.mediaLiveness?.stallTimeoutMs;return e===void 0?Fc:e}_startMediaMonitor(){let e=this._mediaPollMs();if(e<=0||this._mediaMonitorTimer)return;this._lastInboundTotal=0,this._mediaEverFlowed=!1,this._lastInboundAdvanceAt=Date.now(),this._mediaDeathHandled=!1;let t=this._generation;this._mediaMonitorTimer=setInterval(()=>{t!==this._generation||this._intentionalDisconnect||this._sampleMediaLiveness(t)},e)}_stopMediaMonitor(){this._mediaMonitorTimer&&(clearInterval(this._mediaMonitorTimer),this._mediaMonitorTimer=null)}async _sampleMediaLiveness(e){if(this._consumers.size===0)return;let t=0;for(let i of this._consumers.values())t+=await Wc(i);if(e!==this._generation||this._intentionalDisconnect)return;let r=Date.now();if(t>this._lastInboundTotal){this._lastInboundTotal=t,this._lastInboundAdvanceAt=r,t>0&&(this._mediaEverFlowed=!0);return}this._mediaEverFlowed&&(this._mediaDeathHandled||r-this._lastInboundAdvanceAt>=this._mediaStallTimeoutMs()&&(this._mediaDeathHandled=!0,this._renegotiate()))}_renegotiate(){this._intentionalDisconnect||this._reconnectTimer||(this._stopMediaMonitor(),this._setState("renegotiating"),this._attemptReconnect())}_attemptReconnect(e){if(this._intentionalDisconnect||this._reconnectTimer)return;if(this._reconnectAttempts>=pn){this._setState("failed"),this._emitError(new Error(`Failed after ${pn} attempts`));return}let t=dn[Math.min(this._reconnectAttempts,dn.length-1)];this._reconnectAttempts++,this._state!=="renegotiating"&&this._setState("reconnecting"),this._reconnectTimer=setTimeout(async()=>{this._reconnectTimer=null,this._cleanupMedia();try{await this.connect(e??this._lastStartOptions)}catch(r){if(r instanceof Error&&r.message==="TransportSession: connect cancelled")return;this._attemptReconnect(e)}},t)}_connectUrls(){let e=[],t=r=>{if(!r)return;let i=/\/ws\/rtc\/[^/?#]+/.test(r),n=this._sessionId&&!i?`${r}${r.includes("?")?"&":"?"}sessionId=${encodeURIComponent(this._sessionId)}`:r;e.includes(n)||e.push(n)};t(this._options.url);for(let r of this._options.fallbackUrls??[])t(r);return e}_connectOnce(e,t,r){return new Promise((i,n)=>{let a=!1,o=!1,c=null,d=new WebSocket(e);d.binaryType="arraybuffer",this._ws=d;let p=l=>{o||this._ws!==d||t!==this._generation||(o=!0,c&&clearTimeout(c),n(l))};c=setTimeout(()=>{try{d.close()}catch{}p(new Error("TransportSession: connect timed out"))},Nc),d.onopen=()=>{o||t!==this._generation||(a=!0,c&&clearTimeout(c),this._multiplexer=new Xe(d),d.send(JSON.stringify(this._startMessage(r))),this._emitter.emit("docSyncReady"),this._flushStreamSubscribes(),this._scheduleReconnectBudgetReset(),this._setState("connected"),this._liveReached||this._setPhase("connecting"),this._emitter.emit("connected"),o=!0,i())},d.onerror=()=>{a||p(new Error("WebSocket connection error"))},d.onclose=()=>{if(!(this._ws!==d||t!==this._generation)){if(this._clearReconnectBudgetReset(),!a){p(new Error("WebSocket closed before connecting"));return}c&&clearTimeout(c),this._setState("disconnected"),this._intentionalDisconnect||(this._emitter.emit("disconnected"),this._attemptReconnect(r))}},d.onmessage=l=>{if(!(this._ws!==d||t!==this._generation)){if(typeof l.data=="string")try{this._handleMessage(JSON.parse(l.data))}catch(u){this._emitter.emit("error",u instanceof Error?u:new Error(String(u)))}else if(l.data instanceof ArrayBuffer)this._emitDocSyncFrame(new Uint8Array(l.data));else if(ArrayBuffer.isView(l.data)){let u=l.data;this._emitDocSyncFrame(new Uint8Array(u.buffer,u.byteOffset,u.byteLength))}}}})}_startMessage(e){let t={type:"start",docFraming:"typed-v1",video:e?.video??{width:854,height:480,frameRate:16}};return e?.prompt&&(t.prompt=e.prompt),e?.cameraControl&&(t.camera_control=e.cameraControl),e?.args&&(t.args=e.args),e?.app&&(t.app=e.app),e?.functionName&&(t.function=e.functionName),e?.role&&(t.role=e.role),this._options.orgId&&(t.orgId=this._options.orgId),this._options.jwt&&(t.jwt=this._options.jwt),this._options.authProvider&&(t.authProvider=this._options.authProvider),t}_cleanupSocket(){if(this._clearReconnectBudgetReset(),!this._ws)return;let e=this._ws;this._ws=null;try{e.close()}catch{}}_scheduleReconnectBudgetReset(){this._clearReconnectBudgetReset(),this._reconnectAttempts!==0&&(this._stableResetTimer=setTimeout(()=>{this._stableResetTimer=null,this._reconnectAttempts=0},$c))}_clearReconnectBudgetReset(){this._stableResetTimer&&(clearTimeout(this._stableResetTimer),this._stableResetTimer=null)}_cleanupMedia(){this._stopMediaMonitor();for(let e of this._consumers.values())try{e.close()}catch{}if(this._consumers.clear(),this._audioProducer){try{this._audioProducer.close()}catch{}this._audioProducer=null}if(this._clearRecvWatchdog(),this._recvTransport){try{this._recvTransport.close()}catch{}this._recvTransport=null}if(this._sendTransport){try{this._sendTransport.close()}catch{}this._sendTransport=null}this._pendingProduce&&(clearTimeout(this._pendingProduce.timeoutId),this._pendingProduce=null),this._device=null,this._tracks.clear(),this._tracksByName.clear(),this._multiplexer&&(this._multiplexer.dispose(),this._multiplexer=null)}_send(e){!this._ws||this._ws.readyState!==WebSocket.OPEN||this._ws.send(JSON.stringify(e))}_setState(e){this._state!==e&&(this._state=e,this._emitter.emit("stateChange",e))}_setPhase(e,t){e==="live"&&(this._liveReached=!0);let r={name:e};t?.queue&&(r.queue=t.queue),this._requestId&&(r.requestId=this._requestId),this._sessionId&&(r.sessionId=this._sessionId),t?.error&&(r.error=t.error),this._phase=r,this._emitter.emit("phase",r)}_emitError(e,t){this._setPhase("error",{error:{reason:e.message,code:t}}),this._emitter.emit("error",e)}};function hn(s){return new Promise(e=>setTimeout(e,s))}function Vc(){return cn()}async function Wc(s){if(typeof s.getStats!="function")return 0;let e;try{e=await s.getStats()}catch{return 0}let t=0,r=i=>{if(!i||typeof i!="object")return;let n=i;if(n.type==="inbound-rtp"){let a=typeof n.bytesReceived=="number"?n.bytesReceived:0,o=typeof n.packetsReceived=="number"?n.packetsReceived:0;t+=a+o}};if(e instanceof Map)for(let i of e.values())r(i);else if(Array.isArray(e))for(let i of e)r(i);else e&&typeof e.forEach=="function"&&e.forEach(r);return t}function Hc(s){if(!s||typeof s!="object")return;let e=s.epoch,t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:void 0}0&&(module.exports={ChannelMultiplexer,DeferredChannelMultiplexer,TransportSession,decodeDocSyncFrame,encodeDocSyncFrame,ensureNodeWebRTC,isNodeRuntime,nodeMediasoupHandlerName});
|