dignity.js 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- var DignityJS=(()=>{var wo=Object.defineProperty;var To=r=>{throw TypeError(r)};var Eo=(r,e,t)=>e in r?wo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var sn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var N=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Bi=(r,e,t)=>Eo(r,typeof e!="symbol"?e+"":e,t);var Rt=(r,e,t)=>e.has(r)?To("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var ji=N((vf,Li)=>{var on=class{constructor(){this.handlers=new Map}on(e,t){this.handlers.has(e)||this.handlers.set(e,new Set),this.handlers.get(e).add(t)}off(e,t){let n=this.handlers.get(e);n&&(n.delete(t),n.size===0&&this.handlers.delete(e))}emit(e,t){let n=this.handlers.get(e);if(n)for(let i of n)i(t)}};Li.exports=on});var Fi=N(()=>{});var zi=N((Cf,ar)=>{(function(r){"use strict";var e=function(a){var d,f=new Float64Array(16);if(a)for(d=0;d<a.length;d++)f[d]=a[d];return f},t=function(){throw new Error("no PRNG")},n=new Uint8Array(16),i=new Uint8Array(32);i[0]=9;var o=e(),c=e([1]),h=e([56129,1]),l=e([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),y=e([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),m=e([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),_=e([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),k=e([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function $(a,d,f,s){a[d]=f>>24&255,a[d+1]=f>>16&255,a[d+2]=f>>8&255,a[d+3]=f&255,a[d+4]=s>>24&255,a[d+5]=s>>16&255,a[d+6]=s>>8&255,a[d+7]=s&255}function re(a,d,f,s,u){var g,x=0;for(g=0;g<u;g++)x|=a[d+g]^f[s+g];return(1&x-1>>>8)-1}function fe(a,d,f,s){return re(a,d,f,s,16)}function ue(a,d,f,s){return re(a,d,f,s,32)}function xe(a,d,f,s){for(var u=s[0]&255|(s[1]&255)<<8|(s[2]&255)<<16|(s[3]&255)<<24,g=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,x=f[4]&255|(f[5]&255)<<8|(f[6]&255)<<16|(f[7]&255)<<24,C=f[8]&255|(f[9]&255)<<8|(f[10]&255)<<16|(f[11]&255)<<24,I=f[12]&255|(f[13]&255)<<8|(f[14]&255)<<16|(f[15]&255)<<24,j=s[4]&255|(s[5]&255)<<8|(s[6]&255)<<16|(s[7]&255)<<24,A=d[0]&255|(d[1]&255)<<8|(d[2]&255)<<16|(d[3]&255)<<24,oe=d[4]&255|(d[5]&255)<<8|(d[6]&255)<<16|(d[7]&255)<<24,D=d[8]&255|(d[9]&255)<<8|(d[10]&255)<<16|(d[11]&255)<<24,K=d[12]&255|(d[13]&255)<<8|(d[14]&255)<<16|(d[15]&255)<<24,q=s[8]&255|(s[9]&255)<<8|(s[10]&255)<<16|(s[11]&255)<<24,Y=f[16]&255|(f[17]&255)<<8|(f[18]&255)<<16|(f[19]&255)<<24,G=f[20]&255|(f[21]&255)<<8|(f[22]&255)<<16|(f[23]&255)<<24,V=f[24]&255|(f[25]&255)<<8|(f[26]&255)<<16|(f[27]&255)<<24,W=f[28]&255|(f[29]&255)<<8|(f[30]&255)<<16|(f[31]&255)<<24,H=s[12]&255|(s[13]&255)<<8|(s[14]&255)<<16|(s[15]&255)<<24,U=u,F=g,M=x,O=C,L=I,R=j,b=A,v=oe,w=D,S=K,P=q,E=Y,z=G,J=V,Z=W,X=H,p,te=0;te<20;te+=2)p=U+z|0,L^=p<<7|p>>>25,p=L+U|0,w^=p<<9|p>>>23,p=w+L|0,z^=p<<13|p>>>19,p=z+w|0,U^=p<<18|p>>>14,p=R+F|0,S^=p<<7|p>>>25,p=S+R|0,J^=p<<9|p>>>23,p=J+S|0,F^=p<<13|p>>>19,p=F+J|0,R^=p<<18|p>>>14,p=P+b|0,Z^=p<<7|p>>>25,p=Z+P|0,M^=p<<9|p>>>23,p=M+Z|0,b^=p<<13|p>>>19,p=b+M|0,P^=p<<18|p>>>14,p=X+E|0,O^=p<<7|p>>>25,p=O+X|0,v^=p<<9|p>>>23,p=v+O|0,E^=p<<13|p>>>19,p=E+v|0,X^=p<<18|p>>>14,p=U+O|0,F^=p<<7|p>>>25,p=F+U|0,M^=p<<9|p>>>23,p=M+F|0,O^=p<<13|p>>>19,p=O+M|0,U^=p<<18|p>>>14,p=R+L|0,b^=p<<7|p>>>25,p=b+R|0,v^=p<<9|p>>>23,p=v+b|0,L^=p<<13|p>>>19,p=L+v|0,R^=p<<18|p>>>14,p=P+S|0,E^=p<<7|p>>>25,p=E+P|0,w^=p<<9|p>>>23,p=w+E|0,S^=p<<13|p>>>19,p=S+w|0,P^=p<<18|p>>>14,p=X+Z|0,z^=p<<7|p>>>25,p=z+X|0,J^=p<<9|p>>>23,p=J+z|0,Z^=p<<13|p>>>19,p=Z+J|0,X^=p<<18|p>>>14;U=U+u|0,F=F+g|0,M=M+x|0,O=O+C|0,L=L+I|0,R=R+j|0,b=b+A|0,v=v+oe|0,w=w+D|0,S=S+K|0,P=P+q|0,E=E+Y|0,z=z+G|0,J=J+V|0,Z=Z+W|0,X=X+H|0,a[0]=U>>>0&255,a[1]=U>>>8&255,a[2]=U>>>16&255,a[3]=U>>>24&255,a[4]=F>>>0&255,a[5]=F>>>8&255,a[6]=F>>>16&255,a[7]=F>>>24&255,a[8]=M>>>0&255,a[9]=M>>>8&255,a[10]=M>>>16&255,a[11]=M>>>24&255,a[12]=O>>>0&255,a[13]=O>>>8&255,a[14]=O>>>16&255,a[15]=O>>>24&255,a[16]=L>>>0&255,a[17]=L>>>8&255,a[18]=L>>>16&255,a[19]=L>>>24&255,a[20]=R>>>0&255,a[21]=R>>>8&255,a[22]=R>>>16&255,a[23]=R>>>24&255,a[24]=b>>>0&255,a[25]=b>>>8&255,a[26]=b>>>16&255,a[27]=b>>>24&255,a[28]=v>>>0&255,a[29]=v>>>8&255,a[30]=v>>>16&255,a[31]=v>>>24&255,a[32]=w>>>0&255,a[33]=w>>>8&255,a[34]=w>>>16&255,a[35]=w>>>24&255,a[36]=S>>>0&255,a[37]=S>>>8&255,a[38]=S>>>16&255,a[39]=S>>>24&255,a[40]=P>>>0&255,a[41]=P>>>8&255,a[42]=P>>>16&255,a[43]=P>>>24&255,a[44]=E>>>0&255,a[45]=E>>>8&255,a[46]=E>>>16&255,a[47]=E>>>24&255,a[48]=z>>>0&255,a[49]=z>>>8&255,a[50]=z>>>16&255,a[51]=z>>>24&255,a[52]=J>>>0&255,a[53]=J>>>8&255,a[54]=J>>>16&255,a[55]=J>>>24&255,a[56]=Z>>>0&255,a[57]=Z>>>8&255,a[58]=Z>>>16&255,a[59]=Z>>>24&255,a[60]=X>>>0&255,a[61]=X>>>8&255,a[62]=X>>>16&255,a[63]=X>>>24&255}function gt(a,d,f,s){for(var u=s[0]&255|(s[1]&255)<<8|(s[2]&255)<<16|(s[3]&255)<<24,g=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,x=f[4]&255|(f[5]&255)<<8|(f[6]&255)<<16|(f[7]&255)<<24,C=f[8]&255|(f[9]&255)<<8|(f[10]&255)<<16|(f[11]&255)<<24,I=f[12]&255|(f[13]&255)<<8|(f[14]&255)<<16|(f[15]&255)<<24,j=s[4]&255|(s[5]&255)<<8|(s[6]&255)<<16|(s[7]&255)<<24,A=d[0]&255|(d[1]&255)<<8|(d[2]&255)<<16|(d[3]&255)<<24,oe=d[4]&255|(d[5]&255)<<8|(d[6]&255)<<16|(d[7]&255)<<24,D=d[8]&255|(d[9]&255)<<8|(d[10]&255)<<16|(d[11]&255)<<24,K=d[12]&255|(d[13]&255)<<8|(d[14]&255)<<16|(d[15]&255)<<24,q=s[8]&255|(s[9]&255)<<8|(s[10]&255)<<16|(s[11]&255)<<24,Y=f[16]&255|(f[17]&255)<<8|(f[18]&255)<<16|(f[19]&255)<<24,G=f[20]&255|(f[21]&255)<<8|(f[22]&255)<<16|(f[23]&255)<<24,V=f[24]&255|(f[25]&255)<<8|(f[26]&255)<<16|(f[27]&255)<<24,W=f[28]&255|(f[29]&255)<<8|(f[30]&255)<<16|(f[31]&255)<<24,H=s[12]&255|(s[13]&255)<<8|(s[14]&255)<<16|(s[15]&255)<<24,U=u,F=g,M=x,O=C,L=I,R=j,b=A,v=oe,w=D,S=K,P=q,E=Y,z=G,J=V,Z=W,X=H,p,te=0;te<20;te+=2)p=U+z|0,L^=p<<7|p>>>25,p=L+U|0,w^=p<<9|p>>>23,p=w+L|0,z^=p<<13|p>>>19,p=z+w|0,U^=p<<18|p>>>14,p=R+F|0,S^=p<<7|p>>>25,p=S+R|0,J^=p<<9|p>>>23,p=J+S|0,F^=p<<13|p>>>19,p=F+J|0,R^=p<<18|p>>>14,p=P+b|0,Z^=p<<7|p>>>25,p=Z+P|0,M^=p<<9|p>>>23,p=M+Z|0,b^=p<<13|p>>>19,p=b+M|0,P^=p<<18|p>>>14,p=X+E|0,O^=p<<7|p>>>25,p=O+X|0,v^=p<<9|p>>>23,p=v+O|0,E^=p<<13|p>>>19,p=E+v|0,X^=p<<18|p>>>14,p=U+O|0,F^=p<<7|p>>>25,p=F+U|0,M^=p<<9|p>>>23,p=M+F|0,O^=p<<13|p>>>19,p=O+M|0,U^=p<<18|p>>>14,p=R+L|0,b^=p<<7|p>>>25,p=b+R|0,v^=p<<9|p>>>23,p=v+b|0,L^=p<<13|p>>>19,p=L+v|0,R^=p<<18|p>>>14,p=P+S|0,E^=p<<7|p>>>25,p=E+P|0,w^=p<<9|p>>>23,p=w+E|0,S^=p<<13|p>>>19,p=S+w|0,P^=p<<18|p>>>14,p=X+Z|0,z^=p<<7|p>>>25,p=z+X|0,J^=p<<9|p>>>23,p=J+z|0,Z^=p<<13|p>>>19,p=Z+J|0,X^=p<<18|p>>>14;a[0]=U>>>0&255,a[1]=U>>>8&255,a[2]=U>>>16&255,a[3]=U>>>24&255,a[4]=R>>>0&255,a[5]=R>>>8&255,a[6]=R>>>16&255,a[7]=R>>>24&255,a[8]=P>>>0&255,a[9]=P>>>8&255,a[10]=P>>>16&255,a[11]=P>>>24&255,a[12]=X>>>0&255,a[13]=X>>>8&255,a[14]=X>>>16&255,a[15]=X>>>24&255,a[16]=b>>>0&255,a[17]=b>>>8&255,a[18]=b>>>16&255,a[19]=b>>>24&255,a[20]=v>>>0&255,a[21]=v>>>8&255,a[22]=v>>>16&255,a[23]=v>>>24&255,a[24]=w>>>0&255,a[25]=w>>>8&255,a[26]=w>>>16&255,a[27]=w>>>24&255,a[28]=S>>>0&255,a[29]=S>>>8&255,a[30]=S>>>16&255,a[31]=S>>>24&255}function Jt(a,d,f,s){xe(a,d,f,s)}function Xt(a,d,f,s){gt(a,d,f,s)}var dt=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function bi(a,d,f,s,u,g,x){var C=new Uint8Array(16),I=new Uint8Array(64),j,A;for(A=0;A<16;A++)C[A]=0;for(A=0;A<8;A++)C[A]=g[A];for(;u>=64;){for(Jt(I,C,x,dt),A=0;A<64;A++)a[d+A]=f[s+A]^I[A];for(j=1,A=8;A<16;A++)j=j+(C[A]&255)|0,C[A]=j&255,j>>>=8;u-=64,d+=64,s+=64}if(u>0)for(Jt(I,C,x,dt),A=0;A<u;A++)a[d+A]=f[s+A]^I[A];return 0}function vi(a,d,f,s,u){var g=new Uint8Array(16),x=new Uint8Array(64),C,I;for(I=0;I<16;I++)g[I]=0;for(I=0;I<8;I++)g[I]=s[I];for(;f>=64;){for(Jt(x,g,u,dt),I=0;I<64;I++)a[d+I]=x[I];for(C=1,I=8;I<16;I++)C=C+(g[I]&255)|0,g[I]=C&255,C>>>=8;f-=64,d+=64}if(f>0)for(Jt(x,g,u,dt),I=0;I<f;I++)a[d+I]=x[I];return 0}function _i(a,d,f,s,u){var g=new Uint8Array(32);Xt(g,s,u,dt);for(var x=new Uint8Array(8),C=0;C<8;C++)x[C]=s[C+16];return vi(a,d,f,x,g)}function $r(a,d,f,s,u,g,x){var C=new Uint8Array(32);Xt(C,g,x,dt);for(var I=new Uint8Array(8),j=0;j<8;j++)I[j]=g[j+16];return bi(a,d,f,s,u,I,C)}var Zt=function(a){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 d,f,s,u,g,x,C,I;d=a[0]&255|(a[1]&255)<<8,this.r[0]=d&8191,f=a[2]&255|(a[3]&255)<<8,this.r[1]=(d>>>13|f<<3)&8191,s=a[4]&255|(a[5]&255)<<8,this.r[2]=(f>>>10|s<<6)&7939,u=a[6]&255|(a[7]&255)<<8,this.r[3]=(s>>>7|u<<9)&8191,g=a[8]&255|(a[9]&255)<<8,this.r[4]=(u>>>4|g<<12)&255,this.r[5]=g>>>1&8190,x=a[10]&255|(a[11]&255)<<8,this.r[6]=(g>>>14|x<<2)&8191,C=a[12]&255|(a[13]&255)<<8,this.r[7]=(x>>>11|C<<5)&8065,I=a[14]&255|(a[15]&255)<<8,this.r[8]=(C>>>8|I<<8)&8191,this.r[9]=I>>>5&127,this.pad[0]=a[16]&255|(a[17]&255)<<8,this.pad[1]=a[18]&255|(a[19]&255)<<8,this.pad[2]=a[20]&255|(a[21]&255)<<8,this.pad[3]=a[22]&255|(a[23]&255)<<8,this.pad[4]=a[24]&255|(a[25]&255)<<8,this.pad[5]=a[26]&255|(a[27]&255)<<8,this.pad[6]=a[28]&255|(a[29]&255)<<8,this.pad[7]=a[30]&255|(a[31]&255)<<8};Zt.prototype.blocks=function(a,d,f){for(var s=this.fin?0:2048,u,g,x,C,I,j,A,oe,D,K,q,Y,G,V,W,H,U,F,M,O=this.h[0],L=this.h[1],R=this.h[2],b=this.h[3],v=this.h[4],w=this.h[5],S=this.h[6],P=this.h[7],E=this.h[8],z=this.h[9],J=this.r[0],Z=this.r[1],X=this.r[2],p=this.r[3],te=this.r[4],ae=this.r[5],ce=this.r[6],Q=this.r[7],ie=this.r[8],se=this.r[9];f>=16;)u=a[d+0]&255|(a[d+1]&255)<<8,O+=u&8191,g=a[d+2]&255|(a[d+3]&255)<<8,L+=(u>>>13|g<<3)&8191,x=a[d+4]&255|(a[d+5]&255)<<8,R+=(g>>>10|x<<6)&8191,C=a[d+6]&255|(a[d+7]&255)<<8,b+=(x>>>7|C<<9)&8191,I=a[d+8]&255|(a[d+9]&255)<<8,v+=(C>>>4|I<<12)&8191,w+=I>>>1&8191,j=a[d+10]&255|(a[d+11]&255)<<8,S+=(I>>>14|j<<2)&8191,A=a[d+12]&255|(a[d+13]&255)<<8,P+=(j>>>11|A<<5)&8191,oe=a[d+14]&255|(a[d+15]&255)<<8,E+=(A>>>8|oe<<8)&8191,z+=oe>>>5|s,D=0,K=D,K+=O*J,K+=L*(5*se),K+=R*(5*ie),K+=b*(5*Q),K+=v*(5*ce),D=K>>>13,K&=8191,K+=w*(5*ae),K+=S*(5*te),K+=P*(5*p),K+=E*(5*X),K+=z*(5*Z),D+=K>>>13,K&=8191,q=D,q+=O*Z,q+=L*J,q+=R*(5*se),q+=b*(5*ie),q+=v*(5*Q),D=q>>>13,q&=8191,q+=w*(5*ce),q+=S*(5*ae),q+=P*(5*te),q+=E*(5*p),q+=z*(5*X),D+=q>>>13,q&=8191,Y=D,Y+=O*X,Y+=L*Z,Y+=R*J,Y+=b*(5*se),Y+=v*(5*ie),D=Y>>>13,Y&=8191,Y+=w*(5*Q),Y+=S*(5*ce),Y+=P*(5*ae),Y+=E*(5*te),Y+=z*(5*p),D+=Y>>>13,Y&=8191,G=D,G+=O*p,G+=L*X,G+=R*Z,G+=b*J,G+=v*(5*se),D=G>>>13,G&=8191,G+=w*(5*ie),G+=S*(5*Q),G+=P*(5*ce),G+=E*(5*ae),G+=z*(5*te),D+=G>>>13,G&=8191,V=D,V+=O*te,V+=L*p,V+=R*X,V+=b*Z,V+=v*J,D=V>>>13,V&=8191,V+=w*(5*se),V+=S*(5*ie),V+=P*(5*Q),V+=E*(5*ce),V+=z*(5*ae),D+=V>>>13,V&=8191,W=D,W+=O*ae,W+=L*te,W+=R*p,W+=b*X,W+=v*Z,D=W>>>13,W&=8191,W+=w*J,W+=S*(5*se),W+=P*(5*ie),W+=E*(5*Q),W+=z*(5*ce),D+=W>>>13,W&=8191,H=D,H+=O*ce,H+=L*ae,H+=R*te,H+=b*p,H+=v*X,D=H>>>13,H&=8191,H+=w*Z,H+=S*J,H+=P*(5*se),H+=E*(5*ie),H+=z*(5*Q),D+=H>>>13,H&=8191,U=D,U+=O*Q,U+=L*ce,U+=R*ae,U+=b*te,U+=v*p,D=U>>>13,U&=8191,U+=w*X,U+=S*Z,U+=P*J,U+=E*(5*se),U+=z*(5*ie),D+=U>>>13,U&=8191,F=D,F+=O*ie,F+=L*Q,F+=R*ce,F+=b*ae,F+=v*te,D=F>>>13,F&=8191,F+=w*p,F+=S*X,F+=P*Z,F+=E*J,F+=z*(5*se),D+=F>>>13,F&=8191,M=D,M+=O*se,M+=L*ie,M+=R*Q,M+=b*ce,M+=v*ae,D=M>>>13,M&=8191,M+=w*te,M+=S*p,M+=P*X,M+=E*Z,M+=z*J,D+=M>>>13,M&=8191,D=(D<<2)+D|0,D=D+K|0,K=D&8191,D=D>>>13,q+=D,O=K,L=q,R=Y,b=G,v=V,w=W,S=H,P=U,E=F,z=M,d+=16,f-=16;this.h[0]=O,this.h[1]=L,this.h[2]=R,this.h[3]=b,this.h[4]=v,this.h[5]=w,this.h[6]=S,this.h[7]=P,this.h[8]=E,this.h[9]=z},Zt.prototype.finish=function(a,d){var f=new Uint16Array(10),s,u,g,x;if(this.leftover){for(x=this.leftover,this.buffer[x++]=1;x<16;x++)this.buffer[x]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(s=this.h[1]>>>13,this.h[1]&=8191,x=2;x<10;x++)this.h[x]+=s,s=this.h[x]>>>13,this.h[x]&=8191;for(this.h[0]+=s*5,s=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=s,s=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=s,f[0]=this.h[0]+5,s=f[0]>>>13,f[0]&=8191,x=1;x<10;x++)f[x]=this.h[x]+s,s=f[x]>>>13,f[x]&=8191;for(f[9]-=8192,u=(s^1)-1,x=0;x<10;x++)f[x]&=u;for(u=~u,x=0;x<10;x++)this.h[x]=this.h[x]&u|f[x];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,g=this.h[0]+this.pad[0],this.h[0]=g&65535,x=1;x<8;x++)g=(this.h[x]+this.pad[x]|0)+(g>>>16)|0,this.h[x]=g&65535;a[d+0]=this.h[0]>>>0&255,a[d+1]=this.h[0]>>>8&255,a[d+2]=this.h[1]>>>0&255,a[d+3]=this.h[1]>>>8&255,a[d+4]=this.h[2]>>>0&255,a[d+5]=this.h[2]>>>8&255,a[d+6]=this.h[3]>>>0&255,a[d+7]=this.h[3]>>>8&255,a[d+8]=this.h[4]>>>0&255,a[d+9]=this.h[4]>>>8&255,a[d+10]=this.h[5]>>>0&255,a[d+11]=this.h[5]>>>8&255,a[d+12]=this.h[6]>>>0&255,a[d+13]=this.h[6]>>>8&255,a[d+14]=this.h[7]>>>0&255,a[d+15]=this.h[7]>>>8&255},Zt.prototype.update=function(a,d,f){var s,u;if(this.leftover){for(u=16-this.leftover,u>f&&(u=f),s=0;s<u;s++)this.buffer[this.leftover+s]=a[d+s];if(f-=u,d+=u,this.leftover+=u,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(f>=16&&(u=f-f%16,this.blocks(a,d,u),d+=u,f-=u),f){for(s=0;s<f;s++)this.buffer[this.leftover+s]=a[d+s];this.leftover+=f}};function Kr(a,d,f,s,u,g){var x=new Zt(g);return x.update(f,s,u),x.finish(a,d),0}function Si(a,d,f,s,u,g){var x=new Uint8Array(16);return Kr(x,0,f,s,u,g),fe(a,d,x,0)}function qr(a,d,f,s,u){var g;if(f<32)return-1;for($r(a,0,d,0,f,s,u),Kr(a,16,a,32,f-32,a),g=0;g<16;g++)a[g]=0;return 0}function Vr(a,d,f,s,u){var g,x=new Uint8Array(32);if(f<32||(_i(x,0,32,s,u),Si(d,16,d,32,f-32,x)!==0))return-1;for($r(a,0,d,0,f,s,u),g=0;g<32;g++)a[g]=0;return 0}function Ze(a,d){var f;for(f=0;f<16;f++)a[f]=d[f]|0}function Hr(a){var d,f,s=1;for(d=0;d<16;d++)f=a[d]+s+65535,s=Math.floor(f/65536),a[d]=f-s*65536;a[0]+=s-1+37*(s-1)}function xt(a,d,f){for(var s,u=~(f-1),g=0;g<16;g++)s=u&(a[g]^d[g]),a[g]^=s,d[g]^=s}function bt(a,d){var f,s,u,g=e(),x=e();for(f=0;f<16;f++)x[f]=d[f];for(Hr(x),Hr(x),Hr(x),s=0;s<2;s++){for(g[0]=x[0]-65517,f=1;f<15;f++)g[f]=x[f]-65535-(g[f-1]>>16&1),g[f-1]&=65535;g[15]=x[15]-32767-(g[14]>>16&1),u=g[15]>>16&1,g[14]&=65535,xt(x,g,1-u)}for(f=0;f<16;f++)a[2*f]=x[f]&255,a[2*f+1]=x[f]>>8}function Ci(a,d){var f=new Uint8Array(32),s=new Uint8Array(32);return bt(f,a),bt(s,d),ue(f,0,s,0)}function Pi(a){var d=new Uint8Array(32);return bt(d,a),d[0]&1}function Wr(a,d){var f;for(f=0;f<16;f++)a[f]=d[2*f]+(d[2*f+1]<<8);a[15]&=32767}function ze(a,d,f){for(var s=0;s<16;s++)a[s]=d[s]+f[s]}function Ne(a,d,f){for(var s=0;s<16;s++)a[s]=d[s]-f[s]}function ne(a,d,f){var s,u,g=0,x=0,C=0,I=0,j=0,A=0,oe=0,D=0,K=0,q=0,Y=0,G=0,V=0,W=0,H=0,U=0,F=0,M=0,O=0,L=0,R=0,b=0,v=0,w=0,S=0,P=0,E=0,z=0,J=0,Z=0,X=0,p=f[0],te=f[1],ae=f[2],ce=f[3],Q=f[4],ie=f[5],se=f[6],ge=f[7],de=f[8],he=f[9],le=f[10],pe=f[11],ve=f[12],Ce=f[13],Pe=f[14],we=f[15];s=d[0],g+=s*p,x+=s*te,C+=s*ae,I+=s*ce,j+=s*Q,A+=s*ie,oe+=s*se,D+=s*ge,K+=s*de,q+=s*he,Y+=s*le,G+=s*pe,V+=s*ve,W+=s*Ce,H+=s*Pe,U+=s*we,s=d[1],x+=s*p,C+=s*te,I+=s*ae,j+=s*ce,A+=s*Q,oe+=s*ie,D+=s*se,K+=s*ge,q+=s*de,Y+=s*he,G+=s*le,V+=s*pe,W+=s*ve,H+=s*Ce,U+=s*Pe,F+=s*we,s=d[2],C+=s*p,I+=s*te,j+=s*ae,A+=s*ce,oe+=s*Q,D+=s*ie,K+=s*se,q+=s*ge,Y+=s*de,G+=s*he,V+=s*le,W+=s*pe,H+=s*ve,U+=s*Ce,F+=s*Pe,M+=s*we,s=d[3],I+=s*p,j+=s*te,A+=s*ae,oe+=s*ce,D+=s*Q,K+=s*ie,q+=s*se,Y+=s*ge,G+=s*de,V+=s*he,W+=s*le,H+=s*pe,U+=s*ve,F+=s*Ce,M+=s*Pe,O+=s*we,s=d[4],j+=s*p,A+=s*te,oe+=s*ae,D+=s*ce,K+=s*Q,q+=s*ie,Y+=s*se,G+=s*ge,V+=s*de,W+=s*he,H+=s*le,U+=s*pe,F+=s*ve,M+=s*Ce,O+=s*Pe,L+=s*we,s=d[5],A+=s*p,oe+=s*te,D+=s*ae,K+=s*ce,q+=s*Q,Y+=s*ie,G+=s*se,V+=s*ge,W+=s*de,H+=s*he,U+=s*le,F+=s*pe,M+=s*ve,O+=s*Ce,L+=s*Pe,R+=s*we,s=d[6],oe+=s*p,D+=s*te,K+=s*ae,q+=s*ce,Y+=s*Q,G+=s*ie,V+=s*se,W+=s*ge,H+=s*de,U+=s*he,F+=s*le,M+=s*pe,O+=s*ve,L+=s*Ce,R+=s*Pe,b+=s*we,s=d[7],D+=s*p,K+=s*te,q+=s*ae,Y+=s*ce,G+=s*Q,V+=s*ie,W+=s*se,H+=s*ge,U+=s*de,F+=s*he,M+=s*le,O+=s*pe,L+=s*ve,R+=s*Ce,b+=s*Pe,v+=s*we,s=d[8],K+=s*p,q+=s*te,Y+=s*ae,G+=s*ce,V+=s*Q,W+=s*ie,H+=s*se,U+=s*ge,F+=s*de,M+=s*he,O+=s*le,L+=s*pe,R+=s*ve,b+=s*Ce,v+=s*Pe,w+=s*we,s=d[9],q+=s*p,Y+=s*te,G+=s*ae,V+=s*ce,W+=s*Q,H+=s*ie,U+=s*se,F+=s*ge,M+=s*de,O+=s*he,L+=s*le,R+=s*pe,b+=s*ve,v+=s*Ce,w+=s*Pe,S+=s*we,s=d[10],Y+=s*p,G+=s*te,V+=s*ae,W+=s*ce,H+=s*Q,U+=s*ie,F+=s*se,M+=s*ge,O+=s*de,L+=s*he,R+=s*le,b+=s*pe,v+=s*ve,w+=s*Ce,S+=s*Pe,P+=s*we,s=d[11],G+=s*p,V+=s*te,W+=s*ae,H+=s*ce,U+=s*Q,F+=s*ie,M+=s*se,O+=s*ge,L+=s*de,R+=s*he,b+=s*le,v+=s*pe,w+=s*ve,S+=s*Ce,P+=s*Pe,E+=s*we,s=d[12],V+=s*p,W+=s*te,H+=s*ae,U+=s*ce,F+=s*Q,M+=s*ie,O+=s*se,L+=s*ge,R+=s*de,b+=s*he,v+=s*le,w+=s*pe,S+=s*ve,P+=s*Ce,E+=s*Pe,z+=s*we,s=d[13],W+=s*p,H+=s*te,U+=s*ae,F+=s*ce,M+=s*Q,O+=s*ie,L+=s*se,R+=s*ge,b+=s*de,v+=s*he,w+=s*le,S+=s*pe,P+=s*ve,E+=s*Ce,z+=s*Pe,J+=s*we,s=d[14],H+=s*p,U+=s*te,F+=s*ae,M+=s*ce,O+=s*Q,L+=s*ie,R+=s*se,b+=s*ge,v+=s*de,w+=s*he,S+=s*le,P+=s*pe,E+=s*ve,z+=s*Ce,J+=s*Pe,Z+=s*we,s=d[15],U+=s*p,F+=s*te,M+=s*ae,O+=s*ce,L+=s*Q,R+=s*ie,b+=s*se,v+=s*ge,w+=s*de,S+=s*he,P+=s*le,E+=s*pe,z+=s*ve,J+=s*Ce,Z+=s*Pe,X+=s*we,g+=38*F,x+=38*M,C+=38*O,I+=38*L,j+=38*R,A+=38*b,oe+=38*v,D+=38*w,K+=38*S,q+=38*P,Y+=38*E,G+=38*z,V+=38*J,W+=38*Z,H+=38*X,u=1,s=g+u+65535,u=Math.floor(s/65536),g=s-u*65536,s=x+u+65535,u=Math.floor(s/65536),x=s-u*65536,s=C+u+65535,u=Math.floor(s/65536),C=s-u*65536,s=I+u+65535,u=Math.floor(s/65536),I=s-u*65536,s=j+u+65535,u=Math.floor(s/65536),j=s-u*65536,s=A+u+65535,u=Math.floor(s/65536),A=s-u*65536,s=oe+u+65535,u=Math.floor(s/65536),oe=s-u*65536,s=D+u+65535,u=Math.floor(s/65536),D=s-u*65536,s=K+u+65535,u=Math.floor(s/65536),K=s-u*65536,s=q+u+65535,u=Math.floor(s/65536),q=s-u*65536,s=Y+u+65535,u=Math.floor(s/65536),Y=s-u*65536,s=G+u+65535,u=Math.floor(s/65536),G=s-u*65536,s=V+u+65535,u=Math.floor(s/65536),V=s-u*65536,s=W+u+65535,u=Math.floor(s/65536),W=s-u*65536,s=H+u+65535,u=Math.floor(s/65536),H=s-u*65536,s=U+u+65535,u=Math.floor(s/65536),U=s-u*65536,g+=u-1+37*(u-1),u=1,s=g+u+65535,u=Math.floor(s/65536),g=s-u*65536,s=x+u+65535,u=Math.floor(s/65536),x=s-u*65536,s=C+u+65535,u=Math.floor(s/65536),C=s-u*65536,s=I+u+65535,u=Math.floor(s/65536),I=s-u*65536,s=j+u+65535,u=Math.floor(s/65536),j=s-u*65536,s=A+u+65535,u=Math.floor(s/65536),A=s-u*65536,s=oe+u+65535,u=Math.floor(s/65536),oe=s-u*65536,s=D+u+65535,u=Math.floor(s/65536),D=s-u*65536,s=K+u+65535,u=Math.floor(s/65536),K=s-u*65536,s=q+u+65535,u=Math.floor(s/65536),q=s-u*65536,s=Y+u+65535,u=Math.floor(s/65536),Y=s-u*65536,s=G+u+65535,u=Math.floor(s/65536),G=s-u*65536,s=V+u+65535,u=Math.floor(s/65536),V=s-u*65536,s=W+u+65535,u=Math.floor(s/65536),W=s-u*65536,s=H+u+65535,u=Math.floor(s/65536),H=s-u*65536,s=U+u+65535,u=Math.floor(s/65536),U=s-u*65536,g+=u-1+37*(u-1),a[0]=g,a[1]=x,a[2]=C,a[3]=I,a[4]=j,a[5]=A,a[6]=oe,a[7]=D,a[8]=K,a[9]=q,a[10]=Y,a[11]=G,a[12]=V,a[13]=W,a[14]=H,a[15]=U}function Le(a,d){ne(a,d,d)}function wi(a,d){var f=e(),s;for(s=0;s<16;s++)f[s]=d[s];for(s=253;s>=0;s--)Le(f,f),s!==2&&s!==4&&ne(f,f,d);for(s=0;s<16;s++)a[s]=f[s]}function Ti(a,d){var f=e(),s;for(s=0;s<16;s++)f[s]=d[s];for(s=250;s>=0;s--)Le(f,f),s!==1&&ne(f,f,d);for(s=0;s<16;s++)a[s]=f[s]}function Qt(a,d,f){var s=new Uint8Array(32),u=new Float64Array(80),g,x,C=e(),I=e(),j=e(),A=e(),oe=e(),D=e();for(x=0;x<31;x++)s[x]=d[x];for(s[31]=d[31]&127|64,s[0]&=248,Wr(u,f),x=0;x<16;x++)I[x]=u[x],A[x]=C[x]=j[x]=0;for(C[0]=A[0]=1,x=254;x>=0;--x)g=s[x>>>3]>>>(x&7)&1,xt(C,I,g),xt(j,A,g),ze(oe,C,j),Ne(C,C,j),ze(j,I,A),Ne(I,I,A),Le(A,oe),Le(D,C),ne(C,j,C),ne(j,I,oe),ze(oe,C,j),Ne(C,C,j),Le(I,C),Ne(j,A,D),ne(C,j,h),ze(C,C,A),ne(j,j,C),ne(C,A,D),ne(A,I,u),Le(I,oe),xt(C,I,g),xt(j,A,g);for(x=0;x<16;x++)u[x+16]=C[x],u[x+32]=j[x],u[x+48]=I[x],u[x+64]=A[x];var K=u.subarray(32),q=u.subarray(16);return wi(K,K),ne(q,q,K),bt(a,q),0}function er(a,d){return Qt(a,d,i)}function Ei(a,d){return t(d,32),er(a,d)}function tr(a,d,f){var s=new Uint8Array(32);return Qt(s,f,d),Xt(a,n,s,dt)}var Ii=qr,xo=Vr;function bo(a,d,f,s,u,g){var x=new Uint8Array(32);return tr(x,u,g),Ii(a,d,f,s,x)}function vo(a,d,f,s,u,g){var x=new Uint8Array(32);return tr(x,u,g),xo(a,d,f,s,x)}var ki=[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 Ri(a,d,f,s){for(var u=new Int32Array(16),g=new Int32Array(16),x,C,I,j,A,oe,D,K,q,Y,G,V,W,H,U,F,M,O,L,R,b,v,w,S,P,E,z=a[0],J=a[1],Z=a[2],X=a[3],p=a[4],te=a[5],ae=a[6],ce=a[7],Q=d[0],ie=d[1],se=d[2],ge=d[3],de=d[4],he=d[5],le=d[6],pe=d[7],ve=0;s>=128;){for(L=0;L<16;L++)R=8*L+ve,u[L]=f[R+0]<<24|f[R+1]<<16|f[R+2]<<8|f[R+3],g[L]=f[R+4]<<24|f[R+5]<<16|f[R+6]<<8|f[R+7];for(L=0;L<80;L++)if(x=z,C=J,I=Z,j=X,A=p,oe=te,D=ae,K=ce,q=Q,Y=ie,G=se,V=ge,W=de,H=he,U=le,F=pe,b=ce,v=pe,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=(p>>>14|de<<18)^(p>>>18|de<<14)^(de>>>9|p<<23),v=(de>>>14|p<<18)^(de>>>18|p<<14)^(p>>>9|de<<23),w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,b=p&te^~p&ae,v=de&he^~de&le,w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,b=ki[L*2],v=ki[L*2+1],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,b=u[L%16],v=g[L%16],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,M=P&65535|E<<16,O=w&65535|S<<16,b=M,v=O,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=(z>>>28|Q<<4)^(Q>>>2|z<<30)^(Q>>>7|z<<25),v=(Q>>>28|z<<4)^(z>>>2|Q<<30)^(z>>>7|Q<<25),w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,b=z&J^z&Z^J&Z,v=Q&ie^Q&se^ie&se,w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,K=P&65535|E<<16,F=w&65535|S<<16,b=j,v=V,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=M,v=O,w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,j=P&65535|E<<16,V=w&65535|S<<16,J=x,Z=C,X=I,p=j,te=A,ae=oe,ce=D,z=K,ie=q,se=Y,ge=G,de=V,he=W,le=H,pe=U,Q=F,L%16===15)for(R=0;R<16;R++)b=u[R],v=g[R],w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=u[(R+9)%16],v=g[(R+9)%16],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,M=u[(R+1)%16],O=g[(R+1)%16],b=(M>>>1|O<<31)^(M>>>8|O<<24)^M>>>7,v=(O>>>1|M<<31)^(O>>>8|M<<24)^(O>>>7|M<<25),w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,M=u[(R+14)%16],O=g[(R+14)%16],b=(M>>>19|O<<13)^(O>>>29|M<<3)^M>>>6,v=(O>>>19|M<<13)^(M>>>29|O<<3)^(O>>>6|M<<26),w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,u[R]=P&65535|E<<16,g[R]=w&65535|S<<16;b=z,v=Q,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[0],v=d[0],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[0]=z=P&65535|E<<16,d[0]=Q=w&65535|S<<16,b=J,v=ie,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[1],v=d[1],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[1]=J=P&65535|E<<16,d[1]=ie=w&65535|S<<16,b=Z,v=se,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[2],v=d[2],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[2]=Z=P&65535|E<<16,d[2]=se=w&65535|S<<16,b=X,v=ge,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[3],v=d[3],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[3]=X=P&65535|E<<16,d[3]=ge=w&65535|S<<16,b=p,v=de,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[4],v=d[4],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[4]=p=P&65535|E<<16,d[4]=de=w&65535|S<<16,b=te,v=he,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[5],v=d[5],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[5]=te=P&65535|E<<16,d[5]=he=w&65535|S<<16,b=ae,v=le,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[6],v=d[6],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[6]=ae=P&65535|E<<16,d[6]=le=w&65535|S<<16,b=ce,v=pe,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[7],v=d[7],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[7]=ce=P&65535|E<<16,d[7]=pe=w&65535|S<<16,ve+=128,s-=128}return s}function ut(a,d,f){var s=new Int32Array(8),u=new Int32Array(8),g=new Uint8Array(256),x,C=f;for(s[0]=1779033703,s[1]=3144134277,s[2]=1013904242,s[3]=2773480762,s[4]=1359893119,s[5]=2600822924,s[6]=528734635,s[7]=1541459225,u[0]=4089235720,u[1]=2227873595,u[2]=4271175723,u[3]=1595750129,u[4]=2917565137,u[5]=725511199,u[6]=4215389547,u[7]=327033209,Ri(s,u,d,f),f%=128,x=0;x<f;x++)g[x]=d[C-f+x];for(g[f]=128,f=256-128*(f<112?1:0),g[f-9]=0,$(g,f-8,C/536870912|0,C<<3),Ri(s,u,g,f),x=0;x<8;x++)$(a,8*x,s[x],u[x]);return 0}function rr(a,d){var f=e(),s=e(),u=e(),g=e(),x=e(),C=e(),I=e(),j=e(),A=e();Ne(f,a[1],a[0]),Ne(A,d[1],d[0]),ne(f,f,A),ze(s,a[0],a[1]),ze(A,d[0],d[1]),ne(s,s,A),ne(u,a[3],d[3]),ne(u,u,y),ne(g,a[2],d[2]),ze(g,g,g),Ne(x,s,f),Ne(C,g,u),ze(I,g,u),ze(j,s,f),ne(a[0],x,C),ne(a[1],j,I),ne(a[2],I,C),ne(a[3],x,j)}function Ai(a,d,f){var s;for(s=0;s<4;s++)xt(a[s],d[s],f)}function Gr(a,d){var f=e(),s=e(),u=e();wi(u,d[2]),ne(f,d[0],u),ne(s,d[1],u),bt(a,s),a[31]^=Pi(f)<<7}function Yr(a,d,f){var s,u;for(Ze(a[0],o),Ze(a[1],c),Ze(a[2],c),Ze(a[3],o),u=255;u>=0;--u)s=f[u/8|0]>>(u&7)&1,Ai(a,d,s),rr(d,a),rr(a,a),Ai(a,d,s)}function nr(a,d){var f=[e(),e(),e(),e()];Ze(f[0],m),Ze(f[1],_),Ze(f[2],c),ne(f[3],m,_),Yr(a,f,d)}function Jr(a,d,f){var s=new Uint8Array(64),u=[e(),e(),e(),e()],g;for(f||t(d,32),ut(s,d,32),s[0]&=248,s[31]&=127,s[31]|=64,nr(u,s),Gr(a,u),g=0;g<32;g++)d[g+32]=a[g];return 0}var ir=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 Xr(a,d){var f,s,u,g;for(s=63;s>=32;--s){for(f=0,u=s-32,g=s-12;u<g;++u)d[u]+=f-16*d[s]*ir[u-(s-32)],f=Math.floor((d[u]+128)/256),d[u]-=f*256;d[u]+=f,d[s]=0}for(f=0,u=0;u<32;u++)d[u]+=f-(d[31]>>4)*ir[u],f=d[u]>>8,d[u]&=255;for(u=0;u<32;u++)d[u]-=f*ir[u];for(s=0;s<32;s++)d[s+1]+=d[s]>>8,a[s]=d[s]&255}function Zr(a){var d=new Float64Array(64),f;for(f=0;f<64;f++)d[f]=a[f];for(f=0;f<64;f++)a[f]=0;Xr(a,d)}function Mi(a,d,f,s){var u=new Uint8Array(64),g=new Uint8Array(64),x=new Uint8Array(64),C,I,j=new Float64Array(64),A=[e(),e(),e(),e()];ut(u,s,32),u[0]&=248,u[31]&=127,u[31]|=64;var oe=f+64;for(C=0;C<f;C++)a[64+C]=d[C];for(C=0;C<32;C++)a[32+C]=u[32+C];for(ut(x,a.subarray(32),f+32),Zr(x),nr(A,x),Gr(a,A),C=32;C<64;C++)a[C]=s[C];for(ut(g,a,f+64),Zr(g),C=0;C<64;C++)j[C]=0;for(C=0;C<32;C++)j[C]=x[C];for(C=0;C<32;C++)for(I=0;I<32;I++)j[C+I]+=g[C]*u[I];return Xr(a.subarray(32),j),oe}function _o(a,d){var f=e(),s=e(),u=e(),g=e(),x=e(),C=e(),I=e();return Ze(a[2],c),Wr(a[1],d),Le(u,a[1]),ne(g,u,l),Ne(u,u,a[2]),ze(g,a[2],g),Le(x,g),Le(C,x),ne(I,C,x),ne(f,I,u),ne(f,f,g),Ti(f,f),ne(f,f,u),ne(f,f,g),ne(f,f,g),ne(a[0],f,g),Le(s,a[0]),ne(s,s,g),Ci(s,u)&&ne(a[0],a[0],k),Le(s,a[0]),ne(s,s,g),Ci(s,u)?-1:(Pi(a[0])===d[31]>>7&&Ne(a[0],o,a[0]),ne(a[3],a[0],a[1]),0)}function Qr(a,d,f,s){var u,g=new Uint8Array(32),x=new Uint8Array(64),C=[e(),e(),e(),e()],I=[e(),e(),e(),e()];if(f<64||_o(I,s))return-1;for(u=0;u<f;u++)a[u]=d[u];for(u=0;u<32;u++)a[u+32]=s[u];if(ut(x,a,f),Zr(x),Yr(C,I,x),nr(I,d.subarray(32)),rr(C,I),Gr(g,C),f-=64,ue(d,0,g,0)){for(u=0;u<f;u++)a[u]=0;return-1}for(u=0;u<f;u++)a[u]=d[u+64];return f}var en=32,sr=24,Tt=32,vt=16,Et=32,or=32,It=32,kt=32,tn=32,Di=sr,So=Tt,Co=vt,Qe=64,ht=32,_t=64,rn=32,nn=64;r.lowlevel={crypto_core_hsalsa20:Xt,crypto_stream_xor:$r,crypto_stream:_i,crypto_stream_salsa20_xor:bi,crypto_stream_salsa20:vi,crypto_onetimeauth:Kr,crypto_onetimeauth_verify:Si,crypto_verify_16:fe,crypto_verify_32:ue,crypto_secretbox:qr,crypto_secretbox_open:Vr,crypto_scalarmult:Qt,crypto_scalarmult_base:er,crypto_box_beforenm:tr,crypto_box_afternm:Ii,crypto_box:bo,crypto_box_open:vo,crypto_box_keypair:Ei,crypto_hash:ut,crypto_sign:Mi,crypto_sign_keypair:Jr,crypto_sign_open:Qr,crypto_secretbox_KEYBYTES:en,crypto_secretbox_NONCEBYTES:sr,crypto_secretbox_ZEROBYTES:Tt,crypto_secretbox_BOXZEROBYTES:vt,crypto_scalarmult_BYTES:Et,crypto_scalarmult_SCALARBYTES:or,crypto_box_PUBLICKEYBYTES:It,crypto_box_SECRETKEYBYTES:kt,crypto_box_BEFORENMBYTES:tn,crypto_box_NONCEBYTES:Di,crypto_box_ZEROBYTES:So,crypto_box_BOXZEROBYTES:Co,crypto_sign_BYTES:Qe,crypto_sign_PUBLICKEYBYTES:ht,crypto_sign_SECRETKEYBYTES:_t,crypto_sign_SEEDBYTES:rn,crypto_hash_BYTES:nn,gf:e,D:l,L:ir,pack25519:bt,unpack25519:Wr,M:ne,A:ze,S:Le,Z:Ne,pow2523:Ti,add:rr,set25519:Ze,modL:Xr,scalarmult:Yr,scalarbase:nr};function Ui(a,d){if(a.length!==en)throw new Error("bad key size");if(d.length!==sr)throw new Error("bad nonce size")}function Po(a,d){if(a.length!==It)throw new Error("bad public key size");if(d.length!==kt)throw new Error("bad secret key size")}function Be(){for(var a=0;a<arguments.length;a++)if(!(arguments[a]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function Oi(a){for(var d=0;d<a.length;d++)a[d]=0}r.randomBytes=function(a){var d=new Uint8Array(a);return t(d,a),d},r.secretbox=function(a,d,f){Be(a,d,f),Ui(f,d);for(var s=new Uint8Array(Tt+a.length),u=new Uint8Array(s.length),g=0;g<a.length;g++)s[g+Tt]=a[g];return qr(u,s,s.length,d,f),u.subarray(vt)},r.secretbox.open=function(a,d,f){Be(a,d,f),Ui(f,d);for(var s=new Uint8Array(vt+a.length),u=new Uint8Array(s.length),g=0;g<a.length;g++)s[g+vt]=a[g];return s.length<32||Vr(u,s,s.length,d,f)!==0?null:u.subarray(Tt)},r.secretbox.keyLength=en,r.secretbox.nonceLength=sr,r.secretbox.overheadLength=vt,r.scalarMult=function(a,d){if(Be(a,d),a.length!==or)throw new Error("bad n size");if(d.length!==Et)throw new Error("bad p size");var f=new Uint8Array(Et);return Qt(f,a,d),f},r.scalarMult.base=function(a){if(Be(a),a.length!==or)throw new Error("bad n size");var d=new Uint8Array(Et);return er(d,a),d},r.scalarMult.scalarLength=or,r.scalarMult.groupElementLength=Et,r.box=function(a,d,f,s){var u=r.box.before(f,s);return r.secretbox(a,d,u)},r.box.before=function(a,d){Be(a,d),Po(a,d);var f=new Uint8Array(tn);return tr(f,a,d),f},r.box.after=r.secretbox,r.box.open=function(a,d,f,s){var u=r.box.before(f,s);return r.secretbox.open(a,d,u)},r.box.open.after=r.secretbox.open,r.box.keyPair=function(){var a=new Uint8Array(It),d=new Uint8Array(kt);return Ei(a,d),{publicKey:a,secretKey:d}},r.box.keyPair.fromSecretKey=function(a){if(Be(a),a.length!==kt)throw new Error("bad secret key size");var d=new Uint8Array(It);return er(d,a),{publicKey:d,secretKey:new Uint8Array(a)}},r.box.publicKeyLength=It,r.box.secretKeyLength=kt,r.box.sharedKeyLength=tn,r.box.nonceLength=Di,r.box.overheadLength=r.secretbox.overheadLength,r.sign=function(a,d){if(Be(a,d),d.length!==_t)throw new Error("bad secret key size");var f=new Uint8Array(Qe+a.length);return Mi(f,a,a.length,d),f},r.sign.open=function(a,d){if(Be(a,d),d.length!==ht)throw new Error("bad public key size");var f=new Uint8Array(a.length),s=Qr(f,a,a.length,d);if(s<0)return null;for(var u=new Uint8Array(s),g=0;g<u.length;g++)u[g]=f[g];return u},r.sign.detached=function(a,d){for(var f=r.sign(a,d),s=new Uint8Array(Qe),u=0;u<s.length;u++)s[u]=f[u];return s},r.sign.detached.verify=function(a,d,f){if(Be(a,d,f),d.length!==Qe)throw new Error("bad signature size");if(f.length!==ht)throw new Error("bad public key size");var s=new Uint8Array(Qe+a.length),u=new Uint8Array(Qe+a.length),g;for(g=0;g<Qe;g++)s[g]=d[g];for(g=0;g<a.length;g++)s[g+Qe]=a[g];return Qr(u,s,s.length,f)>=0},r.sign.keyPair=function(){var a=new Uint8Array(ht),d=new Uint8Array(_t);return Jr(a,d),{publicKey:a,secretKey:d}},r.sign.keyPair.fromSecretKey=function(a){if(Be(a),a.length!==_t)throw new Error("bad secret key size");for(var d=new Uint8Array(ht),f=0;f<d.length;f++)d[f]=a[32+f];return{publicKey:d,secretKey:new Uint8Array(a)}},r.sign.keyPair.fromSeed=function(a){if(Be(a),a.length!==rn)throw new Error("bad seed size");for(var d=new Uint8Array(ht),f=new Uint8Array(_t),s=0;s<32;s++)f[s]=a[s];return Jr(d,f,!0),{publicKey:d,secretKey:f}},r.sign.publicKeyLength=ht,r.sign.secretKeyLength=_t,r.sign.seedLength=rn,r.sign.signatureLength=Qe,r.hash=function(a){Be(a);var d=new Uint8Array(nn);return ut(d,a,a.length),d},r.hash.hashLength=nn,r.verify=function(a,d){return Be(a,d),a.length===0||d.length===0||a.length!==d.length?!1:re(a,0,d,0,a.length)===0},r.setPRNG=function(a){t=a},(function(){var a=typeof self<"u"?self.crypto||self.msCrypto:null;if(a&&a.getRandomValues){var d=65536;r.setPRNG(function(f,s){var u,g=new Uint8Array(s);for(u=0;u<s;u+=d)a.getRandomValues(g.subarray(u,u+Math.min(s-u,d)));for(u=0;u<s;u++)f[u]=g[u];Oi(g)})}else typeof sn<"u"&&(a=Fi(),a&&a.randomBytes&&r.setPRNG(function(f,s){var u,g=a.randomBytes(s);for(u=0;u<s;u++)f[u]=g[u];Oi(g)}))})()})(typeof ar<"u"&&ar.exports?ar.exports:self.nacl=self.nacl||{})});var $i=N((Ni,cr)=>{(function(r,e){"use strict";typeof cr<"u"&&cr.exports?cr.exports=e():(r.nacl||(r.nacl={}),r.nacl.util=e())})(Ni,function(){"use strict";var r={};function e(t){if(!/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(t))throw new TypeError("invalid encoding")}return r.decodeUTF8=function(t){if(typeof t!="string")throw new TypeError("expected string");var n,i=unescape(encodeURIComponent(t)),o=new Uint8Array(i.length);for(n=0;n<i.length;n++)o[n]=i.charCodeAt(n);return o},r.encodeUTF8=function(t){var n,i=[];for(n=0;n<t.length;n++)i.push(String.fromCharCode(t[n]));return decodeURIComponent(escape(i.join("")))},typeof atob>"u"?typeof Buffer.from<"u"?(r.encodeBase64=function(t){return Buffer.from(t).toString("base64")},r.decodeBase64=function(t){return e(t),new Uint8Array(Array.prototype.slice.call(Buffer.from(t,"base64"),0))}):(r.encodeBase64=function(t){return new Buffer(t).toString("base64")},r.decodeBase64=function(t){return e(t),new Uint8Array(Array.prototype.slice.call(new Buffer(t,"base64"),0))}):(r.encodeBase64=function(t){var n,i=[],o=t.length;for(n=0;n<o;n++)i.push(String.fromCharCode(t[n]));return btoa(i.join(""))},r.decodeBase64=function(t){e(t);var n,i=atob(t),o=new Uint8Array(i.length);for(n=0;n<i.length;n++)o[n]=i.charCodeAt(n);return o}),r})});var cn=N((wf,Ki)=>{var _e=class _e{fastPow(e,t,n){if(n===BigInt(1))return BigInt(0);let i=BigInt(1),o=e%n,c=t;for(;c>0;)c%BigInt(2)===BigInt(1)&&(i=i*o%n),c=c/BigInt(2),o=o*o%n;return i}quadRes(e){return this.fastPow(e,(_e.p-BigInt(1))/BigInt(2),_e.p)===BigInt(1)}modSqrtOp(e){let t,n=e;return this.quadRes(n)?t=this.fastPow(n,(_e.p+BigInt(1))/BigInt(4),_e.p):(n=(-n+_e.p)%_e.p,t=this.fastPow(n,(_e.p+BigInt(1))/BigInt(4),_e.p)),t}modOp(e,t){let n=e%_e.p;for(let i=BigInt(0);i<t;i+=BigInt(1))n=this.modSqrtOp(n);return n}modVerif(e,t,n){let i=t%_e.p,o=e;for(let c=BigInt(0);c<n;c+=BigInt(1))o=o**BigInt(2)%_e.p;return this.quadRes(o)||(o=(-o+_e.p)%_e.p),i===o||(-i+_e.p)%_e.p===o}generateProofVDF(e,t){return this.modOp(t,e)}verifyProofVDF(e,t,n){return this.modVerif(n,t,e)}};Bi(_e,"p",BigInt("170082004324204494273811327264862981553264701145937538369570764779791492622392118654022654452947093285873855529044371650895045691292912712699015605832276411308653107069798639938826015099738961427172366594187783204437869906954750443653318078358839409699824714551430573905637228307966826784684174483831608534979"));var an=_e;Ki.exports=an});var dn=N((Ef,Vi)=>{var qi=cn(),fn=class{static async compute(e,t){let n=new qi,i=BigInt(`0x${e}`);return n.generateProofVDF(t,i).toString(16)}static async verify(e,t,n){let i=new qi,o=BigInt(`0x${e}`),c=BigInt(`0x${n}`);return i.verifyProofVDF(t,o,c)}};Vi.exports=fn});var yn=N((If,Yi)=>{var Me=zi(),ye=$i(),un=dn(),fr={enabled:!0,signingEnabled:!0,encryptionEnabled:!0,powEnabled:!0,powTargetMs:1e3,appPassword:"change-this-app-password",broadcastPasswords:{},resolveBroadcastPassword:null,powSteps:22,trustedPeerKeys:{},kdfIterations:1e5};function At(r){return r===null||typeof r!="object"?JSON.stringify(r):Array.isArray(r)?`[${r.map(t=>At(t)).join(",")}]`:`{${Object.keys(r).sort().map(t=>`${JSON.stringify(t)}:${At(r[t])}`).join(",")}}`}function Wi(r,e){let t=new Uint8Array(r.length+e.length);return t.set(r,0),t.set(e,r.length),t}function dr(r){return Me.hash(r).slice(0,32)}function Hi(r){return Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}function Mt(r){return ye.decodeUTF8(r)}async function ln(r,e,t){let n=globalThis.crypto&&globalThis.crypto.subtle;if(n){let i=await n.importKey("raw",Mt(r),"PBKDF2",!1,["deriveBits"]),o=await n.deriveBits({name:"PBKDF2",salt:e,iterations:t,hash:"SHA-256"},i,256);return new Uint8Array(o)}try{let{pbkdf2Sync:i}=sn("crypto");return new Uint8Array(i(r,Buffer.from(e),t,32,"sha256"))}catch{return dr(Wi(Mt(r),e))}}function Gi(r,e){return dr(Wi(Mt(r),e))}function hn(r){if(!r||typeof r!="object")throw new Error("Public key must be an object with signingPublicKey and encryptionPublicKey");if(!r.signingPublicKey||!r.encryptionPublicKey)throw new Error("Public key object is missing signingPublicKey or encryptionPublicKey");return{signingPublicKey:r.signingPublicKey,encryptionPublicKey:r.encryptionPublicKey}}var pn=class{constructor({nodeId:e,options:t={},now:n}={}){if(!e)throw new Error("MessageSecurityService requires nodeId");this.nodeId=e,this.options={...fr,...t},this.now=n||(()=>Date.now());let i=t.keyPair||{signing:Me.sign.keyPair(),encryption:Me.box.keyPair()};this.signingSecretKey=i.signing.secretKey,this.signingPublicKey=i.signing.publicKey,this.encryptionSecretKey=i.encryption.secretKey,this.encryptionPublicKey=i.encryption.publicKey,this.publicKeyBundle={signingPublicKey:ye.encodeBase64(this.signingPublicKey),encryptionPublicKey:ye.encodeBase64(this.encryptionPublicKey)},this.peerPublicKeys=new Map;for(let[o,c]of Object.entries(this.options.trustedPeerKeys||{}))this.peerPublicKeys.set(o,hn(c));this.calibratedPowSteps=this.options.powSteps}getPublicKey(){return{...this.publicKeyBundle}}registerPeerPublicKey(e,t){this.peerPublicKeys.set(e,hn(t))}resolvePeerPublicKey(e,t){let n=this.peerPublicKeys.get(e),i=t?hn(t):null;if(n&&i&&(n.signingPublicKey!==i.signingPublicKey||n.encryptionPublicKey!==i.encryptionPublicKey))throw new Error(`Public key mismatch for peer ${e}`);return n||i||null}buildEnvelopeBase({messageType:e,payload:t,targetId:n=null}){return{version:1,senderId:this.nodeId,senderPublicKey:this.getPublicKey(),targetId:n,messageType:e,timestamp:this.now(),payload:t}}async secureOutgoingMessage({messageType:e,payload:t,targetId:n=null,securityContext:i={}}){if(!this.options.enabled)return this.buildEnvelopeBase({messageType:e,payload:t,targetId:n});let o=this.buildEnvelopeBase({messageType:e,payload:t,targetId:n}),c=await this.encryptPayload({payload:t,targetId:n,securityContext:i});if(o.payload=c.payload,o.security={encryption:c.security,signing:{enabled:!1},pow:{enabled:!1}},this.options.powEnabled){let h=await this.generatePow(o);o.security.pow={enabled:!0,messageHash:h.messageHash,challenge:h.challenge,proof:h.proof,steps:h.steps,durationMs:h.durationMs}}if(this.options.signingEnabled){let h=this.canonicalSigningInput(o),l=Me.sign.detached(ye.decodeUTF8(h),this.signingSecretKey);o.security.signing={enabled:!0,algorithm:"ed25519",signature:ye.encodeBase64(l)}}return o}canonicalSigningInput(e){return At({version:e.version,senderId:e.senderId,senderPublicKey:e.senderPublicKey,targetId:e.targetId,messageType:e.messageType,timestamp:e.timestamp,payload:e.payload,security:{encryption:e.security?e.security.encryption:{enabled:!1},pow:e.security?e.security.pow:{enabled:!1}}})}canonicalPowInput(e){return At({version:e.version,senderId:e.senderId,senderPublicKey:e.senderPublicKey,targetId:e.targetId,messageType:e.messageType,timestamp:e.timestamp,payload:e.payload,security:{encryption:e.security?e.security.encryption:{enabled:!1}}})}computePowMessageHash(e){return Hi(dr(Mt(this.canonicalPowInput(e))))}async decryptIncomingMessage(e){if(!this.options.enabled)return{ignored:!1,messageType:e.messageType,senderId:e.senderId,targetId:e.targetId,payload:e.payload};if(!e||typeof e!="object")throw new Error("Incoming message is invalid");if(e.targetId&&e.targetId!==this.nodeId)return{ignored:!0};e.security&&e.security.pow&&e.security.pow.enabled&&this.options.powEnabled&&await this.verifyPow(e),e.security&&e.security.signing&&e.security.signing.enabled&&this.options.signingEnabled&&this.verifySignature(e);let t=await this.decryptPayload(e);return{ignored:!1,messageType:e.messageType,senderId:e.senderId,targetId:e.targetId,payload:t}}resolveBroadcastPassword(e){let t=e||"default";if(typeof this.options.resolveBroadcastPassword=="function"){let i=this.options.resolveBroadcastPassword({scope:t,nodeId:this.nodeId,defaultPassword:this.options.appPassword,broadcastPasswords:this.options.broadcastPasswords||{}});if(typeof i=="string"&&i.length>0)return i}let n=this.options.broadcastPasswords?this.options.broadcastPasswords[t]:null;return typeof n=="string"&&n.length>0?n:this.options.appPassword}async encryptPayload({payload:e,targetId:t,securityContext:n={}}){if(!this.options.encryptionEnabled)return{payload:e,security:{enabled:!1,mode:"none"}};let i=ye.decodeUTF8(JSON.stringify(e));if(t){let k=this.resolvePeerPublicKey(t,null);if(!k)throw new Error(`Missing public key for target peer ${t}`);let $=Me.randomBytes(Me.box.nonceLength),re=Me.box(i,$,ye.decodeBase64(k.encryptionPublicKey),this.encryptionSecretKey);return{payload:ye.encodeBase64(re),security:{enabled:!0,mode:"direct",nonce:ye.encodeBase64($),senderEncryptionPublicKey:this.publicKeyBundle.encryptionPublicKey}}}let o=n.broadcastScope||"default",c=Me.randomBytes(Me.secretbox.nonceLength),h=Me.randomBytes(16),l=this.resolveBroadcastPassword(o),y=this.options.kdfIterations||fr.kdfIterations,m=await ln(l,h,y),_=Me.secretbox(i,c,m);return{payload:ye.encodeBase64(_),security:{enabled:!0,mode:"broadcast",scope:o,nonce:ye.encodeBase64(c),salt:ye.encodeBase64(h),kdf:"pbkdf2",kdfIterations:y}}}async decryptPayload(e){let t=e.security?e.security.encryption:null;if(!t||!t.enabled||!this.options.encryptionEnabled)return e.payload;let n=ye.decodeBase64(e.payload);if(t.mode==="broadcast"){let i=t.scope||"default",o=this.resolveBroadcastPassword(i),c=ye.decodeBase64(t.salt),h=ye.decodeBase64(t.nonce),l;if(t.kdf==="pbkdf2"){let m=t.kdfIterations||fr.kdfIterations;l=await ln(o,c,m)}else l=Gi(o,c);let y=Me.secretbox.open(n,h,l);if(!y)throw new Error("Unable to decrypt broadcast payload");return JSON.parse(ye.encodeUTF8(y))}if(t.mode==="direct"){let i=ye.decodeBase64(t.senderEncryptionPublicKey),o=ye.decodeBase64(t.nonce),c=Me.box.open(n,o,i,this.encryptionSecretKey);if(!c)throw new Error("Unable to decrypt direct payload");return JSON.parse(ye.encodeUTF8(c))}throw new Error(`Unsupported encryption mode: ${t.mode}`)}verifySignature(e){let t=this.resolvePeerPublicKey(e.senderId,e.senderPublicKey);if(!t)throw new Error(`Missing public key for sender ${e.senderId}`);let n=this.canonicalSigningInput(e);if(!Me.sign.detached.verify(ye.decodeUTF8(n),ye.decodeBase64(e.security.signing.signature),ye.decodeBase64(t.signingPublicKey))){let o=new Error(`Invalid signature for sender ${e.senderId}`);throw o.code="INVALID_SIGNATURE",o}return!0}async determinePowSteps(){if(typeof this.calibratedPowSteps=="bigint")return this.calibratedPowSteps;if(typeof this.options.powSteps=="number")return this.calibratedPowSteps=BigInt(Math.max(1,this.options.powSteps)),this.calibratedPowSteps;let e=Math.max(1,Number(this.options.powTargetMs||1)),t=Hi(dr(Mt(`probe:${this.nodeId}:${this.now()}`))),n=BigInt(2),i=this.now();await un.compute(t,n);let o=Math.max(1,this.now()-i),c=Math.max(1,Math.round(e/o*Number(n)));return this.calibratedPowSteps=BigInt(c),this.calibratedPowSteps}async generatePow(e){let t=this.computePowMessageHash(e),n=t,i=await this.determinePowSteps(),o=this.now(),c=await un.compute(n,i),h=this.now()-o;return{messageHash:t,challenge:n,proof:c,steps:i.toString(),durationMs:h}}async verifyPow(e){let t=this.computePowMessageHash(e),n=e.security.pow;if(!n||!n.messageHash||n.messageHash!==t||n.challenge!==n.messageHash){let o=new Error("PoW challenge mismatch");throw o.code="INVALID_POW",o}if(!await un.verify(n.messageHash,BigInt(n.steps),n.proof)){let o=new Error("PoW verification failed");throw o.code="INVALID_POW",o}return!0}};Yi.exports={MessageSecurityService:pn,stableStringify:At,deriveBroadcastKey:ln,legacyBroadcastKey:Gi,DEFAULT_SECURITY_OPTIONS:fr}});var Xi=N((kf,Ji)=>{var Io=ji(),{MessageSecurityService:ko}=yn(),mn=class extends Io{constructor({nodeId:e,networkAdapter:t,idGenerator:n,now:i,security:o}={}){if(super(),!e)throw new Error("DignityP2P requires nodeId");if(!t)throw new Error("DignityP2P requires networkAdapter");this.nodeId=e,this.networkAdapter=t,this.idGenerator=n||(()=>`${Date.now()}-${Math.random().toString(16).slice(2)}`),this.now=i||(()=>Date.now()),this.securityService=new ko({nodeId:this.nodeId,options:o||{},now:this.now}),this.bannedPeers=new Map,this.peerBanDurationMs=o&&typeof o.banDurationMs=="number"?o.banDurationMs:2880*60*1e3,this.resolveBroadcastScope=o&&typeof o.resolveBroadcastScope=="function"?o.resolveBroadcastScope:(()=>"default"),this.defaultDiscoveryHeartbeatMs=o&&typeof o.discoveryHeartbeatMs=="number"?o.discoveryHeartbeatMs:15e3,this.defaultPresenceTtlMs=o&&typeof o.presenceTtlMs=="number"?o.presenceTtlMs:45e3,this.discoveryRooms=new Map,this.presenceByScope=new Map,this.state=new Map,this.appliedOperations=new Set,this.boundMessageHandler=this.handleIncomingMessage.bind(this)}async start(){this.networkAdapter.onMessage(this.boundMessageHandler),await this.networkAdapter.start(this.nodeId)}async stop(){let e=Array.from(this.discoveryRooms.keys());for(let t of e)try{await this.leaveDiscovery(t)}catch(n){this.emit("warning",{type:"presence-leave-failed",scope:t,error:n})}this.networkAdapter.offMessage(this.boundMessageHandler),await this.networkAdapter.stop()}getCollection(e){if(!e)throw new Error("collectionName is required");return this.state.has(e)||this.state.set(e,new Map),this.state.get(e)}normalizeRecord(e){return!e||e.deletedAt?null:{id:e.id,ownerId:e.ownerId,collaboratorIds:Array.isArray(e.collaboratorIds)?[...e.collaboratorIds]:[],createdAt:e.createdAt,updatedAt:e.updatedAt,version:e.version,data:{...e.data}}}canUpdateRecord(e,t){return!e||!t?!1:e.ownerId===t?!0:Array.isArray(e.collaboratorIds)&&e.collaboratorIds.includes(t)}normalizeCollaboratorIds(e){return Array.isArray(e)?[...new Set(e.filter(Boolean))]:[]}getRecordPeerIds(e,t,n={}){let i=n.fromRecord||this.getCollection(e).get(t);if(!i)return[];let o=n.includeSelf===!0,c=[i.ownerId,...i.collaboratorIds||[]];return[...new Set(c.filter(Boolean).filter(h=>o||h!==this.nodeId))]}resolveReplicationPeers(e,t,n={},i={}){if(n.connectToPeers===!1)return;if(Array.isArray(n.connectToPeers))return n.connectToPeers;let o=new Set;if(i.fromRecord)for(let c of this.getRecordPeerIds(e,t,{fromRecord:i.fromRecord,includeSelf:!0}))o.add(c);else if(t)for(let c of this.getRecordPeerIds(e,t,{includeSelf:!0}))o.add(c);if(Array.isArray(n.collaborators))for(let c of this.normalizeCollaboratorIds(n.collaborators))o.add(c);if(Array.isArray(i.extraPeerIds))for(let c of i.extraPeerIds)c&&o.add(c);return[...o].filter(c=>c&&c!==this.nodeId)}async create(e,t,n={}){let i=this.getCollection(e),o=n.id||this.idGenerator();if(i.has(o)&&!i.get(o).deletedAt)throw new Error(`Object ${o} already exists in ${e}`);let c=this.now(),h=this.normalizeCollaboratorIds(n.collaborators),l={opId:this.idGenerator(),kind:"create",collectionName:e,id:o,actorId:this.nodeId,ownerId:this.nodeId,collaboratorIds:h,timestamp:c,payload:{...t}};return this.applyOperation(l),await this.broadcastMessage("operation",l,{broadcastScope:n.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:l,collectionName:e}),connectToPeers:this.resolveReplicationPeers(e,null,n,{extraPeerIds:n.collaborators})}),this.read(e,o)}read(e,t){let n=this.getCollection(e);return this.normalizeRecord(n.get(t))}list(e,t={}){let n=this.getCollection(e),i=t.includeDeleted||!1,o=[];for(let c of n.values())if(!(c.deletedAt&&!i)){if(c.deletedAt&&i){o.push({id:c.id,ownerId:c.ownerId,deletedAt:c.deletedAt,version:c.version});continue}o.push(this.normalizeRecord(c))}return o}async update(e,t,n,i={}){let o=this.getCollection(e).get(t);if(!o||o.deletedAt)throw new Error(`Object ${t} does not exist in ${e}`);if(!this.canUpdateRecord(o,this.nodeId))throw new Error(`Only owner ${o.ownerId} or collaborators can update object ${t}`);if(i.collaborators!==void 0&&o.ownerId!==this.nodeId)throw new Error(`Only owner ${o.ownerId} can change collaborators on object ${t}`);if(typeof i.expectedVersion=="number"&&o.version!==i.expectedVersion){this.emitConflict({kind:"update",collection:e,id:t,expectedVersion:i.expectedVersion,currentVersion:o.version,phase:"local"});let h=new Error(`Version conflict on ${e}/${t}: expected ${i.expectedVersion}, current ${o.version}`);throw h.code="VERSION_CONFLICT",h}let c={opId:this.idGenerator(),kind:"update",collectionName:e,id:t,actorId:this.nodeId,timestamp:this.now(),baseVersion:o.version,payload:{...n}};return i.collaborators!==void 0&&(c.collaboratorIds=this.normalizeCollaboratorIds(i.collaborators)),this.applyOperation(c),await this.broadcastMessage("operation",c,{broadcastScope:i.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:c,collectionName:e}),connectToPeers:this.resolveReplicationPeers(e,t,i,{fromRecord:o})}),this.read(e,t)}async updateWithRetry(e,t,n,i={}){let o=typeof i.maxAttempts=="number"?i.maxAttempts:5;for(let c=0;c<o;c+=1){let h=this.read(e,t);if(!h)throw new Error(`Object ${t} does not exist in ${e}`);let l=await n(h);try{return await this.update(e,t,l,{...i,expectedVersion:h.version})}catch(y){if(y.code!=="VERSION_CONFLICT"||c===o-1)throw y}}throw new Error(`Unable to update ${e}/${t} after ${o} attempts`)}async transferOwnership(e,t,n,i={}){if(!n)throw new Error("newOwnerId is required");let o=this.getCollection(e).get(t);if(!o||o.deletedAt)throw new Error(`Object ${t} does not exist in ${e}`);if(o.ownerId!==this.nodeId)throw new Error(`Only owner ${o.ownerId} can transfer object ${t}`);let c={opId:this.idGenerator(),kind:"transfer-ownership",collectionName:e,id:t,actorId:this.nodeId,timestamp:this.now(),baseVersion:o.version,newOwnerId:n,keepPreviousOwnerAsCollaborator:i.keepAsCollaborator!==!1};return this.applyOperation(c),await this.broadcastMessage("operation",c,{broadcastScope:i.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:c,collectionName:e}),connectToPeers:this.resolveReplicationPeers(e,t,i,{fromRecord:o,extraPeerIds:[n]})}),this.read(e,t)}async remove(e,t,n={}){let i=this.getCollection(e).get(t);if(!i||i.deletedAt)throw new Error(`Object ${t} does not exist in ${e}`);if(i.ownerId!==this.nodeId)throw new Error(`Only owner ${i.ownerId} can delete object ${t}`);let o={opId:this.idGenerator(),kind:"delete",collectionName:e,id:t,actorId:this.nodeId,timestamp:this.now(),baseVersion:i.version};this.applyOperation(o),await this.broadcastMessage("operation",o,{broadcastScope:n.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:o,collectionName:e}),connectToPeers:this.resolveReplicationPeers(e,t,n,{fromRecord:i})})}registerPeerPublicKey(e,t){this.securityService.registerPeerPublicKey(e,t)}trustPeerPublicKey(e,t){if(!e||!t)return!1;try{return this.registerPeerPublicKey(e,t),!0}catch(n){return this.emit("warning",{type:"peer-key-trust-failed",peerId:e,error:n}),!1}}trustPeerFromMetadata(e,t){return!t||!t.publicKey?!1:this.trustPeerPublicKey(e,t.publicKey)}getPublicKey(){return this.securityService.getPublicKey()}async connectToPeer(e){if(!e||e===this.nodeId)return null;if(typeof this.networkAdapter.connectToPeer!="function")throw new Error("Network adapter does not support connectToPeer");return this.networkAdapter.connectToPeer(e)}getConnectionStats(){let e=this.networkAdapter;if(!e)return{openCount:0,peerIds:[]};let t=typeof e.listOpenPeerIds=="function"?e.listOpenPeerIds():[];return{openCount:typeof e.getOpenConnectionCount=="function"?e.getOpenConnectionCount():t.length,peerIds:t}}async ensureConnectedToPeers(e=[]){let t=[...new Set((e||[]).filter(Boolean))],n=[];for(let i of t)if(i!==this.nodeId)try{await this.connectToPeer(i),n.push({peerId:i,ok:!0})}catch(o){this.emit("warning",{type:"peer-connect-failed",peerId:i,error:o}),n.push({peerId:i,ok:!1,error:o})}return n}async broadcastMessage(e,t,n={}){let i=n.connectToPeers;Array.isArray(i)&&i.length>0&&await this.ensureConnectedToPeers(i);let o=await this.securityService.secureOutgoingMessage({messageType:e,payload:t,targetId:null,securityContext:n});await this.networkAdapter.broadcast(o)}async sendDirectMessage(e,t,n){if(e)try{await this.connectToPeer(e)}catch(o){this.emit("warning",{type:"direct-message-connect-failed",targetId:e,error:o})}let i=await this.securityService.secureOutgoingMessage({messageType:t,payload:n,targetId:e});await this.networkAdapter.broadcast(i)}getPresenceMap(e){return this.presenceByScope.has(e)||this.presenceByScope.set(e,new Map),this.presenceByScope.get(e)}upsertPresence(e,t,n,i,o){let c=this.getPresenceMap(e),h=c.get(t),l={peerId:t,scope:e,metadata:n?{...n}:{},lastSeenAt:o,expiresAt:o+i};return c.set(t,l),this.trustPeerFromMetadata(t,l.metadata),h||this.emit("peerdiscovered",{scope:e,peerId:t,metadata:l.metadata}),l}prunePresence(e){let t=this.presenceByScope.get(e);if(!t)return;let n=this.now();for(let[i,o]of t.entries())o.expiresAt<=n&&(t.delete(i),this.emit("peerleft",{scope:e,peerId:i,reason:"timeout"}))}async joinDiscovery(e="main",t={}){let n=e||"main",i=t.heartbeatIntervalMs||this.defaultDiscoveryHeartbeatMs,o=t.ttlMs||this.defaultPresenceTtlMs,c={publicKey:this.getPublicKey(),...t.metadata||{}},h=Array.isArray(t.bootstrapPeerIds)?[...new Set(t.bootstrapPeerIds.filter(Boolean))]:[],l=this.discoveryRooms.get(n);l&&l.timer&&clearInterval(l.timer),h.length>0&&await this.ensureConnectedToPeers(h);let y=setInterval(()=>{this.announcePresence(n).catch(m=>{this.emit("warning",{type:"presence-heartbeat-failed",scope:n,error:m})})},i);this.discoveryRooms.set(n,{metadata:c,bootstrapPeerIds:h,heartbeatIntervalMs:i,ttlMs:o,timer:y}),this.upsertPresence(n,this.nodeId,c,o,this.now()),await this.announcePresence(n)}async announcePresence(e="main",t=null){let n=e||"main",i=this.discoveryRooms.get(n);if(!i)throw new Error(`Scope ${n} has not been joined for discovery`);let o=t||i.metadata||{},c=this.now();this.upsertPresence(n,this.nodeId,o,i.ttlMs,c),await this.broadcastMessage("presence:announce",{scope:n,peerId:this.nodeId,metadata:o,ttlMs:i.ttlMs,announcedAt:c},{broadcastScope:n})}async leaveDiscovery(e="main"){let t=e||"main",n=this.discoveryRooms.get(t);if(!n)return;n.timer&&clearInterval(n.timer),this.discoveryRooms.delete(t);let i=this.presenceByScope.get(t);i&&i.delete(this.nodeId),await this.broadcastMessage("presence:leave",{scope:t,peerId:this.nodeId,leftAt:this.now()},{broadcastScope:t})}listPeers(e="main",t={}){let n=e||"main",i=t.includeSelf!==!1;this.prunePresence(n);let o=this.presenceByScope.get(n);return o?Array.from(o.values()).filter(c=>i||c.peerId!==this.nodeId).map(c=>({peerId:c.peerId,scope:c.scope,metadata:{...c.metadata},lastSeenAt:c.lastSeenAt,expiresAt:c.expiresAt})):[]}async handleIncomingMessage(e){if(e&&e.opId&&e.kind){this.applyOperation(e);return}if(e&&e.senderId&&this.isPeerBanned(e.senderId)){this.emit("messageignored",{senderId:e.senderId,reason:"peer-banned"});return}e&&e.senderId&&e.senderPublicKey&&this.trustPeerPublicKey(e.senderId,e.senderPublicKey);let t;try{t=await this.securityService.decryptIncomingMessage(e)}catch(n){let i=e?e.senderId:null;i&&(n.code==="INVALID_SIGNATURE"||n.code==="INVALID_POW")&&this.banPeer(i,this.peerBanDurationMs,n.code),this.emit("securityerror",{senderId:i,error:n});return}if(!(!t||t.ignored)){if(t.messageType==="operation"){this.applyOperation(t.payload);return}if(t.messageType==="record:snapshot"){let n=t.payload||{},{collectionName:i,record:o}=n;i&&o&&this.restoreRecord(i,o)&&this.emit("change",{kind:"snapshot",collection:i,id:o.id});return}if(t.messageType==="presence:announce"){let n=t.payload||{},i=n.scope||"main",o=n.peerId||t.senderId;if(!o)return;let h=!this.getPresenceMap(i).has(o);this.upsertPresence(i,o,n.metadata||{},n.ttlMs||this.defaultPresenceTtlMs,n.announcedAt||this.now()),h&&o!==this.nodeId&&this.discoveryRooms.has(i)&&(typeof this.networkAdapter.connectToPeer=="function"&&Promise.resolve(this.connectToPeer(o)).catch(l=>{this.emit("warning",{type:"peer-connect-failed",scope:i,peerId:o,error:l})}),this.announcePresence(i).catch(l=>{this.emit("warning",{type:"presence-handshake-failed",scope:i,error:l})}));return}if(t.messageType==="presence:leave"){let n=t.payload||{},i=n.scope||"main",o=n.peerId||t.senderId,c=this.presenceByScope.get(i);c&&o&&c.has(o)&&(c.delete(o),this.emit("peerleft",{scope:i,peerId:o,reason:"leave"}));return}this.emit("message",{senderId:t.senderId,targetId:t.targetId,type:t.messageType,payload:t.payload})}}banPeer(e,t=this.peerBanDurationMs,n="manual"){if(!e)return;let i=this.now()+Math.max(1,t);this.bannedPeers.set(e,{peerId:e,reason:n,bannedAt:this.now(),bannedUntil:i}),this.emit("peerbanned",{peerId:e,reason:n,bannedUntil:i})}unbanPeer(e){this.bannedPeers.delete(e),this.emit("peerunbanned",{peerId:e})}getBanInfo(e){let t=this.bannedPeers.get(e);return t?t.bannedUntil<=this.now()?(this.bannedPeers.delete(e),null):{...t}:null}isPeerBanned(e){return this.getBanInfo(e)!==null}emitConflict(e){this.emit("conflict",e)}restoreRecord(e,t){if(!t||!t.id)return!1;let n=this.getCollection(e),i=n.get(t.id);return i&&i.version>=t.version?!1:(n.set(t.id,{id:t.id,ownerId:t.ownerId,collaboratorIds:this.normalizeCollaboratorIds(t.collaboratorIds),data:{...t.data||{}},createdAt:t.createdAt,updatedAt:t.updatedAt,deletedAt:t.deletedAt||null,version:t.version}),!0)}async pushRecordSnapshot(e,t,n={}){let o=this.getCollection(e).get(t);if(!o||o.deletedAt)throw new Error(`Object ${t} does not exist in ${e}`);let c={id:o.id,ownerId:o.ownerId,collaboratorIds:Array.isArray(o.collaboratorIds)?[...o.collaboratorIds]:[],data:{...o.data},createdAt:o.createdAt,updatedAt:o.updatedAt,deletedAt:o.deletedAt||null,version:o.version};return await this.broadcastMessage("record:snapshot",{collectionName:e,record:c},{broadcastScope:n.broadcastScope||this.resolveBroadcastScope({messageType:"record:snapshot",collectionName:e,id:t}),connectToPeers:this.resolveReplicationPeers(e,t,n,{fromRecord:o})}),c}applyOperation(e){if(!e||!e.opId||this.appliedOperations.has(e.opId))return!1;let t=this.getCollection(e.collectionName),n=t.get(e.id);if(e.kind==="create")return n&&!n.deletedAt?!1:(t.set(e.id,{id:e.id,ownerId:e.ownerId,collaboratorIds:this.normalizeCollaboratorIds(e.collaboratorIds),data:{...e.payload},createdAt:e.timestamp,updatedAt:e.timestamp,deletedAt:null,version:1}),this.appliedOperations.add(e.opId),this.emit("change",{kind:"create",collection:e.collectionName,id:e.id}),!0);if(!n||n.deletedAt)return e.kind!=="create"&&this.emit("warning",{type:"orphan-operation",kind:e.kind,collection:e.collectionName,id:e.id,actorId:e.actorId,hint:"Peer is missing the record; pushRecordSnapshot from the owner to catch up."}),!1;if(e.kind==="transfer-ownership"){if(e.actorId!==n.ownerId)return!1;if(typeof e.baseVersion=="number"&&e.baseVersion!==n.version)return this.emitConflict({kind:e.kind,collection:e.collectionName,id:e.id,expectedVersion:e.baseVersion,currentVersion:n.version,phase:"remote",operation:e}),!1;let i=n.ownerId;if(n.ownerId=e.newOwnerId,e.keepPreviousOwnerAsCollaborator!==!1){let o=this.normalizeCollaboratorIds(n.collaboratorIds);o.includes(i)||o.push(i),n.collaboratorIds=o.filter(c=>c!==e.newOwnerId)}return n.updatedAt=e.timestamp,n.version+=1,this.appliedOperations.add(e.opId),this.emit("change",{kind:"transfer-ownership",collection:e.collectionName,id:e.id,previousOwnerId:i,newOwnerId:e.newOwnerId}),!0}return e.kind==="delete"?e.actorId!==n.ownerId?!1:typeof e.baseVersion=="number"&&e.baseVersion!==n.version?(this.emitConflict({kind:e.kind,collection:e.collectionName,id:e.id,expectedVersion:e.baseVersion,currentVersion:n.version,phase:"remote",operation:e}),!1):(n.deletedAt=e.timestamp,n.updatedAt=e.timestamp,n.version+=1,this.appliedOperations.add(e.opId),this.emit("change",{kind:"delete",collection:e.collectionName,id:e.id}),!0):this.canUpdateRecord(n,e.actorId)?typeof e.baseVersion=="number"&&e.baseVersion!==n.version?(this.emitConflict({kind:e.kind,collection:e.collectionName,id:e.id,expectedVersion:e.baseVersion,currentVersion:n.version,phase:"remote",operation:e}),!1):e.kind==="update"?(n.data={...n.data,...e.payload},Array.isArray(e.collaboratorIds)&&e.actorId===n.ownerId&&(n.collaboratorIds=this.normalizeCollaboratorIds(e.collaboratorIds)),n.updatedAt=e.timestamp,n.version+=1,this.appliedOperations.add(e.opId),this.emit("change",{kind:"update",collection:e.collectionName,id:e.id}),!0):!1:!1}};Ji.exports=mn});var xn=N((Rf,Zi)=>{var gn=class{constructor(e=[]){this.providers=[...e],this.activeProvider=null}registerProvider(e){this.providers.push(e)}getProvidersByPriority(){return[...this.providers].sort((e,t)=>(e.priority||0)-(t.priority||0))}async connect(e=new Set){let t=this.getProvidersByPriority().filter(i=>!e.has(i.id)),n;for(let i of t)try{return await i.connect(),this.activeProvider=i,i}catch(o){n=o}throw n||new Error("No signaling provider could connect")}async send(e){this.activeProvider||await this.connect();try{await this.activeProvider.send(e)}catch(t){this.activeProvider&&typeof this.activeProvider.disconnect=="function"&&await this.activeProvider.disconnect();let n=this.activeProvider?this.activeProvider.id:null;this.activeProvider=null;let i=n?new Set([n]):new Set;return await this.connect(i),await this.activeProvider.send(e),t}return null}onMessage(e){for(let t of this.providers)typeof t.onMessage=="function"&&t.onMessage(e)}async disconnect(){let e=this.providers.filter(t=>typeof t.disconnect=="function").map(t=>t.disconnect());await Promise.all(e),this.activeProvider=null}};Zi.exports=gn});var ur=N((Af,Qi)=>{var bn=class{constructor({id:e,url:t,WebSocketImpl:n,priority:i=0}){if(!t)throw new Error("WebSocket signaling provider requires a url");this.id=e||t,this.url=t,this.priority=i,this.WebSocketImpl=n||globalThis.WebSocket,this.socket=null,this.messageHandlers=new Set}async connect(){if(!this.WebSocketImpl)throw new Error("WebSocket implementation is not available");await new Promise((e,t)=>{let n=new this.WebSocketImpl(this.buildConnectionUrl());n.onopen=()=>{this.socket=n,e()},n.onerror=()=>{t(new Error(`Unable to connect to signaling url ${this.url}`))},n.onmessage=i=>{let o=i.data;try{o=JSON.parse(i.data)}catch{o=i.data}for(let c of this.messageHandlers)c(o)}})}buildConnectionUrl(){if(!/^wss:\/\/(peerjs\.92k\.de|0\.peerjs\.com)(\/|$)/.test(this.url))return this.url;let t=`dignityjs_${Math.random().toString(36).slice(2,12)}`,n=Math.random().toString(36).slice(2,12),i=this.url.includes("?"),o=/[?&]id=/.test(this.url),c=/[?&]token=/.test(this.url),h=this.url;return o||(h+=`${i?"&":"?"}id=${t}`),c||(h+=`${h.includes("?")?"&":"?"}token=${n}`),h}onMessage(e){this.messageHandlers.add(e)}async send(e){if(!this.socket||this.socket.readyState!==1)throw new Error(`Signaling socket is not open for ${this.url}`);this.socket.send(JSON.stringify(e))}async disconnect(){this.socket&&(this.socket.close(),this.socket=null)}};Qi.exports=bn});var vn=N((Mf,es)=>{function Ro(r){let e=new URL(r),t=e.protocol==="wss:",n=e.hostname,i=e.port?Number(e.port):t?443:80,o=e.searchParams.get("key")||"peerjs",c=e.pathname||"/";return c.endsWith("/peerjs")&&(c=c.slice(0,-7)||"/"),c!=="/"&&!c.endsWith("/")&&(c+="/"),{secure:t,host:n,port:i,path:c,key:o}}es.exports=Ro});var ts=N((Df,lr)=>{function Cn(r,e,t,n){Object.defineProperty(r,e,{get:t,set:n,enumerable:!0,configurable:!0})}Cn(lr.exports,"unpack",()=>Mo);Cn(lr.exports,"pack",()=>Do);Cn(lr.exports,"Packer",()=>hr);var _n=class{constructor(){this.encoder=new TextEncoder,this._pieces=[],this._parts=[]}append_buffer(e){this.flush(),this._parts.push(e)}append(e){this._pieces.push(e)}flush(){if(this._pieces.length>0){let e=new Uint8Array(this._pieces);this._parts.push(e),this._pieces=[]}}toArrayBuffer(){let e=[];for(let t of this._parts)e.push(t);return Ao(e).buffer}};function Ao(r){let e=0;for(let i of r)e+=i.byteLength;let t=new Uint8Array(e),n=0;for(let i of r){let o=new Uint8Array(i.buffer,i.byteOffset,i.byteLength);t.set(o,n),n+=i.byteLength}return t}function Mo(r){return new Sn(r).unpack()}function Do(r){let e=new hr,t=e.pack(r);return t instanceof Promise?t.then(()=>e.getBuffer()):e.getBuffer()}var Sn=class{constructor(e){this.index=0,this.dataBuffer=e,this.dataView=new Uint8Array(this.dataBuffer),this.length=this.dataBuffer.byteLength}unpack(){let e=this.unpack_uint8();if(e<128)return e;if((e^224)<32)return(e^224)-32;let t;if((t=e^160)<=15)return this.unpack_raw(t);if((t=e^176)<=15)return this.unpack_string(t);if((t=e^144)<=15)return this.unpack_array(t);if((t=e^128)<=15)return this.unpack_map(t);switch(e){case 192:return null;case 193:return;case 194:return!1;case 195:return!0;case 202:return this.unpack_float();case 203:return this.unpack_double();case 204:return this.unpack_uint8();case 205:return this.unpack_uint16();case 206:return this.unpack_uint32();case 207:return this.unpack_uint64();case 208:return this.unpack_int8();case 209:return this.unpack_int16();case 210:return this.unpack_int32();case 211:return this.unpack_int64();case 212:return;case 213:return;case 214:return;case 215:return;case 216:return t=this.unpack_uint16(),this.unpack_string(t);case 217:return t=this.unpack_uint32(),this.unpack_string(t);case 218:return t=this.unpack_uint16(),this.unpack_raw(t);case 219:return t=this.unpack_uint32(),this.unpack_raw(t);case 220:return t=this.unpack_uint16(),this.unpack_array(t);case 221:return t=this.unpack_uint32(),this.unpack_array(t);case 222:return t=this.unpack_uint16(),this.unpack_map(t);case 223:return t=this.unpack_uint32(),this.unpack_map(t)}}unpack_uint8(){let e=this.dataView[this.index]&255;return this.index++,e}unpack_uint16(){let e=this.read(2),t=(e[0]&255)*256+(e[1]&255);return this.index+=2,t}unpack_uint32(){let e=this.read(4),t=((e[0]*256+e[1])*256+e[2])*256+e[3];return this.index+=4,t}unpack_uint64(){let e=this.read(8),t=((((((e[0]*256+e[1])*256+e[2])*256+e[3])*256+e[4])*256+e[5])*256+e[6])*256+e[7];return this.index+=8,t}unpack_int8(){let e=this.unpack_uint8();return e<128?e:e-256}unpack_int16(){let e=this.unpack_uint16();return e<32768?e:e-65536}unpack_int32(){let e=this.unpack_uint32();return e<2**31?e:e-2**32}unpack_int64(){let e=this.unpack_uint64();return e<2**63?e:e-2**64}unpack_raw(e){if(this.length<this.index+e)throw new Error(`BinaryPackFailure: index is out of range ${this.index} ${e} ${this.length}`);let t=this.dataBuffer.slice(this.index,this.index+e);return this.index+=e,t}unpack_string(e){let t=this.read(e),n=0,i="",o,c;for(;n<e;)o=t[n],o<160?(c=o,n++):(o^192)<32?(c=(o&31)<<6|t[n+1]&63,n+=2):(o^224)<16?(c=(o&15)<<12|(t[n+1]&63)<<6|t[n+2]&63,n+=3):(c=(o&7)<<18|(t[n+1]&63)<<12|(t[n+2]&63)<<6|t[n+3]&63,n+=4),i+=String.fromCodePoint(c);return this.index+=e,i}unpack_array(e){let t=new Array(e);for(let n=0;n<e;n++)t[n]=this.unpack();return t}unpack_map(e){let t={};for(let n=0;n<e;n++){let i=this.unpack();t[i]=this.unpack()}return t}unpack_float(){let e=this.unpack_uint32(),t=e>>31,n=(e>>23&255)-127,i=e&8388607|8388608;return(t===0?1:-1)*i*2**(n-23)}unpack_double(){let e=this.unpack_uint32(),t=this.unpack_uint32(),n=e>>31,i=(e>>20&2047)-1023,c=(e&1048575|1048576)*2**(i-20)+t*2**(i-52);return(n===0?1:-1)*c}read(e){let t=this.index;if(t+e<=this.length)return this.dataView.subarray(t,t+e);throw new Error("BinaryPackFailure: read index out of range")}},hr=class{getBuffer(){return this._bufferBuilder.toArrayBuffer()}pack(e){if(typeof e=="string")this.pack_string(e);else if(typeof e=="number")Math.floor(e)===e?this.pack_integer(e):this.pack_double(e);else if(typeof e=="boolean")e===!0?this._bufferBuilder.append(195):e===!1&&this._bufferBuilder.append(194);else if(e===void 0)this._bufferBuilder.append(192);else if(typeof e=="object")if(e===null)this._bufferBuilder.append(192);else{let t=e.constructor;if(e instanceof Array){let n=this.pack_array(e);if(n instanceof Promise)return n.then(()=>this._bufferBuilder.flush())}else if(e instanceof ArrayBuffer)this.pack_bin(new Uint8Array(e));else if("BYTES_PER_ELEMENT"in e){let n=e;this.pack_bin(new Uint8Array(n.buffer,n.byteOffset,n.byteLength))}else if(e instanceof Date)this.pack_string(e.toString());else{if(e instanceof Blob)return e.arrayBuffer().then(n=>{this.pack_bin(new Uint8Array(n)),this._bufferBuilder.flush()});if(t==Object||t.toString().startsWith("class")){let n=this.pack_object(e);if(n instanceof Promise)return n.then(()=>this._bufferBuilder.flush())}else throw new Error(`Type "${t.toString()}" not yet supported`)}}else throw new Error(`Type "${typeof e}" not yet supported`);this._bufferBuilder.flush()}pack_bin(e){let t=e.length;if(t<=15)this.pack_uint8(160+t);else if(t<=65535)this._bufferBuilder.append(218),this.pack_uint16(t);else if(t<=4294967295)this._bufferBuilder.append(219),this.pack_uint32(t);else throw new Error("Invalid length");this._bufferBuilder.append_buffer(e)}pack_string(e){let t=this._textEncoder.encode(e),n=t.length;if(n<=15)this.pack_uint8(176+n);else if(n<=65535)this._bufferBuilder.append(216),this.pack_uint16(n);else if(n<=4294967295)this._bufferBuilder.append(217),this.pack_uint32(n);else throw new Error("Invalid length");this._bufferBuilder.append_buffer(t)}pack_array(e){let t=e.length;if(t<=15)this.pack_uint8(144+t);else if(t<=65535)this._bufferBuilder.append(220),this.pack_uint16(t);else if(t<=4294967295)this._bufferBuilder.append(221),this.pack_uint32(t);else throw new Error("Invalid length");let n=i=>{if(i<t){let o=this.pack(e[i]);return o instanceof Promise?o.then(()=>n(i+1)):n(i+1)}};return n(0)}pack_integer(e){if(e>=-32&&e<=127)this._bufferBuilder.append(e&255);else if(e>=0&&e<=255)this._bufferBuilder.append(204),this.pack_uint8(e);else if(e>=-128&&e<=127)this._bufferBuilder.append(208),this.pack_int8(e);else if(e>=0&&e<=65535)this._bufferBuilder.append(205),this.pack_uint16(e);else if(e>=-32768&&e<=32767)this._bufferBuilder.append(209),this.pack_int16(e);else if(e>=0&&e<=4294967295)this._bufferBuilder.append(206),this.pack_uint32(e);else if(e>=-2147483648&&e<=2147483647)this._bufferBuilder.append(210),this.pack_int32(e);else if(e>=-9223372036854776e3&&e<=9223372036854776e3)this._bufferBuilder.append(211),this.pack_int64(e);else if(e>=0&&e<=18446744073709552e3)this._bufferBuilder.append(207),this.pack_uint64(e);else throw new Error("Invalid integer")}pack_double(e){let t=0;e<0&&(t=1,e=-e);let n=Math.floor(Math.log(e)/Math.LN2),i=e/2**n-1,o=Math.floor(i*2**52),c=2**32,h=t<<31|n+1023<<20|o/c&1048575,l=o%c;this._bufferBuilder.append(203),this.pack_int32(h),this.pack_int32(l)}pack_object(e){let t=Object.keys(e),n=t.length;if(n<=15)this.pack_uint8(128+n);else if(n<=65535)this._bufferBuilder.append(222),this.pack_uint16(n);else if(n<=4294967295)this._bufferBuilder.append(223),this.pack_uint32(n);else throw new Error("Invalid length");let i=o=>{if(o<t.length){let c=t[o];if(e.hasOwnProperty(c)){this.pack(c);let h=this.pack(e[c]);if(h instanceof Promise)return h.then(()=>i(o+1))}return i(o+1)}};return i(0)}pack_uint8(e){this._bufferBuilder.append(e)}pack_uint16(e){this._bufferBuilder.append(e>>8),this._bufferBuilder.append(e&255)}pack_uint32(e){let t=e&4294967295;this._bufferBuilder.append((t&4278190080)>>>24),this._bufferBuilder.append((t&16711680)>>>16),this._bufferBuilder.append((t&65280)>>>8),this._bufferBuilder.append(t&255)}pack_uint64(e){let t=e/4294967296,n=e%2**32;this._bufferBuilder.append((t&4278190080)>>>24),this._bufferBuilder.append((t&16711680)>>>16),this._bufferBuilder.append((t&65280)>>>8),this._bufferBuilder.append(t&255),this._bufferBuilder.append((n&4278190080)>>>24),this._bufferBuilder.append((n&16711680)>>>16),this._bufferBuilder.append((n&65280)>>>8),this._bufferBuilder.append(n&255)}pack_int8(e){this._bufferBuilder.append(e&255)}pack_int16(e){this._bufferBuilder.append((e&65280)>>8),this._bufferBuilder.append(e&255)}pack_int32(e){this._bufferBuilder.append(e>>>24&255),this._bufferBuilder.append((e&16711680)>>>16),this._bufferBuilder.append((e&65280)>>>8),this._bufferBuilder.append(e&255)}pack_int64(e){let t=Math.floor(e/4294967296),n=e%2**32;this._bufferBuilder.append((t&4278190080)>>>24),this._bufferBuilder.append((t&16711680)>>>16),this._bufferBuilder.append((t&65280)>>>8),this._bufferBuilder.append(t&255),this._bufferBuilder.append((n&4278190080)>>>24),this._bufferBuilder.append((n&16711680)>>>16),this._bufferBuilder.append((n&65280)>>>8),this._bufferBuilder.append(n&255)}constructor(){this._bufferBuilder=new _n,this._textEncoder=new TextEncoder}}});var nt=N(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.compactObject=ss;je.deprecated=No;je.detectBrowser=$o;je.disableLog=jo;je.disableWarnings=Fo;je.extractVersion=Dt;je.filterStats=Ko;je.log=zo;je.walkStats=pr;je.wrapPeerConnectionEvent=Lo;function Uo(r,e,t){return(e=Oo(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Oo(r){var e=Bo(r,"string");return rt(e)=="symbol"?e:e+""}function Bo(r,e){if(rt(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(rt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function rt(r){"@babel/helpers - typeof";return rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rt(r)}var ns=!0,is=!0;function Dt(r,e,t){var n=r.match(e);return n&&n.length>=t&&parseFloat(n[t],10)}function Lo(r,e,t){if(r.RTCPeerConnection){var n=r.RTCPeerConnection.prototype,i=n.addEventListener;n.addEventListener=function(c,h){if(c!==e)return i.apply(this,arguments);var l=function(m){var _=t(m);_&&(h.handleEvent?h.handleEvent(_):h(_))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(h,l),i.apply(this,[c,l])};var o=n.removeEventListener;n.removeEventListener=function(c,h){if(c!==e||!this._eventMap||!this._eventMap[e])return o.apply(this,arguments);if(!this._eventMap[e].has(h))return o.apply(this,arguments);var l=this._eventMap[e].get(h);return this._eventMap[e].delete(h),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,o.apply(this,[c,l])},Object.defineProperty(n,"on"+e,{get:function(){return this["_on"+e]},set:function(h){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),h&&this.addEventListener(e,this["_on"+e]=h)},enumerable:!0,configurable:!0})}}function jo(r){return typeof r!="boolean"?new Error("Argument type: "+rt(r)+". Please use a boolean."):(ns=r,r?"adapter.js logging disabled":"adapter.js logging enabled")}function Fo(r){return typeof r!="boolean"?new Error("Argument type: "+rt(r)+". Please use a boolean."):(is=!r,"adapter.js deprecation warnings "+(r?"disabled":"enabled"))}function zo(){if((typeof window>"u"?"undefined":rt(window))==="object"){if(ns)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function No(r,e){is&&console.warn(r+" is deprecated, please use "+e+" instead.")}function $o(r){var e={browser:null,version:null};if(typeof r>"u"||!r.navigator||!r.navigator.userAgent)return e.browser="Not a browser.",e;var t=r.navigator;if(t.userAgentData&&t.userAgentData.brands){var n=t.userAgentData.brands.find(function(i){return i.brand==="Chromium"});if(n)return{browser:"chrome",version:parseInt(n.version,10)}}if(t.mozGetUserMedia)e.browser="firefox",e.version=parseInt(Dt(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||r.isSecureContext===!1&&r.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(Dt(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2))||null;else if(r.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(Dt(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=r.RTCRtpTransceiver&&"currentDirection"in r.RTCRtpTransceiver.prototype,e._safariVersion=Dt(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function rs(r){return Object.prototype.toString.call(r)==="[object Object]"}function ss(r){return rs(r)?Object.keys(r).reduce(function(e,t){var n=rs(r[t]),i=n?ss(r[t]):r[t],o=n&&!Object.keys(i).length;return i===void 0||o?e:Object.assign(e,Uo({},t,i))},{}):r}function pr(r,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(function(n){n.endsWith("Id")?pr(r,r.get(e[n]),t):n.endsWith("Ids")&&e[n].forEach(function(i){pr(r,r.get(i),t)})}))}function Ko(r,e,t){var n=t?"outbound-rtp":"inbound-rtp",i=new Map;if(e===null)return i;var o=[];return r.forEach(function(c){c.type==="track"&&c.trackIdentifier===e.id&&o.push(c)}),o.forEach(function(c){r.forEach(function(h){h.type===n&&h.trackId===c.id&&pr(r,h,i)})}),i}});var cs=N(Pn=>{"use strict";Object.defineProperty(Pn,"__esModule",{value:!0});Pn.shimGetUserMedia=Vo;var qo=as(nt());function as(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(as=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||it(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function it(r){"@babel/helpers - typeof";return it=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},it(r)}var os=qo.log;function Vo(r,e){var t=r&&r.navigator;if(t.mediaDevices){var n=function(y){if(it(y)!=="object"||y.mandatory||y.optional)return y;var m={};return Object.keys(y).forEach(function(_){if(!(_==="require"||_==="advanced"||_==="mediaSource")){var k=it(y[_])==="object"?y[_]:{ideal:y[_]};k.exact!==void 0&&typeof k.exact=="number"&&(k.min=k.max=k.exact);var $=function(ue,xe){return ue?ue+xe.charAt(0).toUpperCase()+xe.slice(1):xe==="deviceId"?"sourceId":xe};if(k.ideal!==void 0){m.optional=m.optional||[];var re={};typeof k.ideal=="number"?(re[$("min",_)]=k.ideal,m.optional.push(re),re={},re[$("max",_)]=k.ideal,m.optional.push(re)):(re[$("",_)]=k.ideal,m.optional.push(re))}k.exact!==void 0&&typeof k.exact!="number"?(m.mandatory=m.mandatory||{},m.mandatory[$("",_)]=k.exact):["min","max"].forEach(function(fe){k[fe]!==void 0&&(m.mandatory=m.mandatory||{},m.mandatory[$(fe,_)]=k[fe])})}}),y.advanced&&(m.optional=(m.optional||[]).concat(y.advanced)),m},i=function(y,m){if(e.version>=61)return m(y);if(y=JSON.parse(JSON.stringify(y)),y&&it(y.audio)==="object"){var _=function(ue,xe,gt){xe in ue&&!(gt in ue)&&(ue[gt]=ue[xe],delete ue[xe])};y=JSON.parse(JSON.stringify(y)),_(y.audio,"autoGainControl","googAutoGainControl"),_(y.audio,"noiseSuppression","googNoiseSuppression"),y.audio=n(y.audio)}if(y&&it(y.video)==="object"){var k=y.video.facingMode;k=k&&(it(k)==="object"?k:{ideal:k});var $=e.version<66;if(k&&(k.exact==="user"||k.exact==="environment"||k.ideal==="user"||k.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!$)){delete y.video.facingMode;var re;if(k.exact==="environment"||k.ideal==="environment"?re=["back","rear"]:(k.exact==="user"||k.ideal==="user")&&(re=["front"]),re)return t.mediaDevices.enumerateDevices().then(function(fe){fe=fe.filter(function(xe){return xe.kind==="videoinput"});var ue=fe.find(function(xe){return re.some(function(gt){return xe.label.toLowerCase().includes(gt)})});return!ue&&fe.length&&re.includes("back")&&(ue=fe[fe.length-1]),ue&&(y.video.deviceId=k.exact?{exact:ue.deviceId}:{ideal:ue.deviceId}),y.video=n(y.video),os("chrome: "+JSON.stringify(y)),m(y)})}y.video=n(y.video)}return os("chrome: "+JSON.stringify(y)),m(y)},o=function(y){return e.version>=64?y:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[y.name]||y.name,message:y.message,constraint:y.constraint||y.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},c=function(y,m,_){i(y,function(k){t.webkitGetUserMedia(k,m,function($){_&&_(o($))})})};if(t.getUserMedia=c.bind(t),t.mediaDevices.getUserMedia){var h=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(l){return i(l,function(y){return h(y).then(function(m){if(y.audio&&!m.getAudioTracks().length||y.video&&!m.getVideoTracks().length)throw m.getTracks().forEach(function(_){_.stop()}),new DOMException("","NotFoundError");return m},function(m){return Promise.reject(o(m))})})}}}}});var hs=N($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.fixNegotiationNeeded=ta;$e.shimAddTrackRemoveTrack=Qo;$e.shimAddTrackRemoveTrackWithNative=us;$e.shimGetSendersWithDtmf=Xo;Object.defineProperty($e,"shimGetUserMedia",{enumerable:!0,get:function(){return Ho.shimGetUserMedia}});$e.shimMediaStream=Yo;$e.shimOnTrack=Jo;$e.shimPeerConnection=ea;$e.shimSenderReceiverGetStats=Zo;var Ut=fs(nt()),Ho=cs();function fs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(fs=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||He(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function ds(r,e,t){return(e=Wo(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Wo(r){var e=Go(r,"string");return He(e)=="symbol"?e:e+""}function Go(r,e){if(He(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(He(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function He(r){"@babel/helpers - typeof";return He=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(r)}function Yo(r){r.MediaStream=r.MediaStream||r.webkitMediaStream}function Jo(r){if(He(r)==="object"&&r.RTCPeerConnection&&!("ontrack"in r.RTCPeerConnection.prototype)){Object.defineProperty(r.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(n){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=n)},enumerable:!0,configurable:!0});var e=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){var n=this;return this._ontrackpoly||(this._ontrackpoly=function(i){i.stream.addEventListener("addtrack",function(o){var c;r.RTCPeerConnection.prototype.getReceivers?c=n.getReceivers().find(function(l){return l.track&&l.track.id===o.track.id}):c={track:o.track};var h=new Event("track");h.track=o.track,h.receiver=c,h.transceiver={receiver:c},h.streams=[i.stream],n.dispatchEvent(h)}),i.stream.getTracks().forEach(function(o){var c;r.RTCPeerConnection.prototype.getReceivers?c=n.getReceivers().find(function(l){return l.track&&l.track.id===o.id}):c={track:o};var h=new Event("track");h.track=o,h.receiver=c,h.transceiver={receiver:c},h.streams=[i.stream],n.dispatchEvent(h)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else Ut.wrapPeerConnectionEvent(r,"track",function(t){return t.transceiver||Object.defineProperty(t,"transceiver",{value:{receiver:t.receiver}}),t})}function Xo(r){if(He(r)==="object"&&r.RTCPeerConnection&&!("getSenders"in r.RTCPeerConnection.prototype)&&"createDTMFSender"in r.RTCPeerConnection.prototype){var e=function(l,y){return{track:y,get dtmf(){return this._dtmf===void 0&&(y.kind==="audio"?this._dtmf=l.createDTMFSender(y):this._dtmf=null),this._dtmf},_pc:l}};if(!r.RTCPeerConnection.prototype.getSenders){r.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};var t=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addTrack=function(l,y){var m=t.apply(this,arguments);return m||(m=e(this,l),this._senders.push(m)),m};var n=r.RTCPeerConnection.prototype.removeTrack;r.RTCPeerConnection.prototype.removeTrack=function(l){n.apply(this,arguments);var y=this._senders.indexOf(l);y!==-1&&this._senders.splice(y,1)}}var i=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(l){var y=this;this._senders=this._senders||[],i.apply(this,[l]),l.getTracks().forEach(function(m){y._senders.push(e(y,m))})};var o=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(l){var y=this;this._senders=this._senders||[],o.apply(this,[l]),l.getTracks().forEach(function(m){var _=y._senders.find(function(k){return k.track===m});_&&y._senders.splice(y._senders.indexOf(_),1)})}}else if(He(r)==="object"&&r.RTCPeerConnection&&"getSenders"in r.RTCPeerConnection.prototype&&"createDTMFSender"in r.RTCPeerConnection.prototype&&r.RTCRtpSender&&!("dtmf"in r.RTCRtpSender.prototype)){var c=r.RTCPeerConnection.prototype.getSenders;r.RTCPeerConnection.prototype.getSenders=function(){var l=this,y=c.apply(this,[]);return y.forEach(function(m){return m._pc=l}),y},Object.defineProperty(r.RTCRtpSender.prototype,"dtmf",{get:function(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function Zo(r){if(He(r)==="object"&&r.RTCPeerConnection&&r.RTCRtpSender&&r.RTCRtpReceiver){if(!("getStats"in r.RTCRtpSender.prototype)){var e=r.RTCPeerConnection.prototype.getSenders;e&&(r.RTCPeerConnection.prototype.getSenders=function(){var c=this,h=e.apply(this,[]);return h.forEach(function(l){return l._pc=c}),h});var t=r.RTCPeerConnection.prototype.addTrack;t&&(r.RTCPeerConnection.prototype.addTrack=function(){var c=t.apply(this,arguments);return c._pc=this,c}),r.RTCRtpSender.prototype.getStats=function(){var c=this;return this._pc.getStats().then(function(h){return Ut.filterStats(h,c.track,!0)})}}if(!("getStats"in r.RTCRtpReceiver.prototype)){var n=r.RTCPeerConnection.prototype.getReceivers;n&&(r.RTCPeerConnection.prototype.getReceivers=function(){var c=this,h=n.apply(this,[]);return h.forEach(function(l){return l._pc=c}),h}),Ut.wrapPeerConnectionEvent(r,"track",function(o){return o.receiver._pc=o.srcElement,o}),r.RTCRtpReceiver.prototype.getStats=function(){var c=this;return this._pc.getStats().then(function(h){return Ut.filterStats(h,c.track,!1)})}}if("getStats"in r.RTCRtpSender.prototype&&"getStats"in r.RTCRtpReceiver.prototype){var i=r.RTCPeerConnection.prototype.getStats;r.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof r.MediaStreamTrack){var c=arguments[0],h,l,y;return this.getSenders().forEach(function(m){m.track===c&&(h?y=!0:h=m)}),this.getReceivers().forEach(function(m){return m.track===c&&(l?y=!0:l=m),m.track===c}),y||h&&l?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):h?h.getStats():l?l.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return i.apply(this,arguments)}}}}function us(r){r.RTCPeerConnection.prototype.getLocalStreams=function(){var c=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(function(h){return c._shimmedLocalStreams[h][0]})};var e=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addTrack=function(c,h){if(!h)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};var l=e.apply(this,arguments);return this._shimmedLocalStreams[h.id]?this._shimmedLocalStreams[h.id].indexOf(l)===-1&&this._shimmedLocalStreams[h.id].push(l):this._shimmedLocalStreams[h.id]=[h,l],l};var t=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(c){var h=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{},c.getTracks().forEach(function(m){var _=h.getSenders().find(function(k){return k.track===m});if(_)throw new DOMException("Track already exists.","InvalidAccessError")});var l=this.getSenders();t.apply(this,arguments);var y=this.getSenders().filter(function(m){return l.indexOf(m)===-1});this._shimmedLocalStreams[c.id]=[c].concat(y)};var n=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(c){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[c.id],n.apply(this,arguments)};var i=r.RTCPeerConnection.prototype.removeTrack;r.RTCPeerConnection.prototype.removeTrack=function(c){var h=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},c&&Object.keys(this._shimmedLocalStreams).forEach(function(l){var y=h._shimmedLocalStreams[l].indexOf(c);y!==-1&&h._shimmedLocalStreams[l].splice(y,1),h._shimmedLocalStreams[l].length===1&&delete h._shimmedLocalStreams[l]}),i.apply(this,arguments)}}function Qo(r,e){if(!r.RTCPeerConnection)return;if(r.RTCPeerConnection.prototype.addTrack&&e.version>=65)return us(r);var t=r.RTCPeerConnection.prototype.getLocalStreams;r.RTCPeerConnection.prototype.getLocalStreams=function(){var m=this,_=t.apply(this);return this._reverseStreams=this._reverseStreams||{},_.map(function(k){return m._reverseStreams[k.id]})};var n=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(m){var _=this;if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},m.getTracks().forEach(function($){var re=_.getSenders().find(function(fe){return fe.track===$});if(re)throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[m.id]){var k=new r.MediaStream(m.getTracks());this._streams[m.id]=k,this._reverseStreams[k.id]=m,m=k}n.apply(this,[m])};var i=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(m){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[m.id]||m]),delete this._reverseStreams[this._streams[m.id]?this._streams[m.id].id:m.id],delete this._streams[m.id]},r.RTCPeerConnection.prototype.addTrack=function(m,_){var k=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");var $=[].slice.call(arguments,1);if($.length!==1||!$[0].getTracks().find(function(xe){return xe===m}))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");var re=this.getSenders().find(function(xe){return xe.track===m});if(re)throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};var fe=this._streams[_.id];if(fe)fe.addTrack(m),Promise.resolve().then(function(){k.dispatchEvent(new Event("negotiationneeded"))});else{var ue=new r.MediaStream([m]);this._streams[_.id]=ue,this._reverseStreams[ue.id]=_,this.addStream(ue)}return this.getSenders().find(function(xe){return xe.track===m})};function o(y,m){var _=m.sdp;return Object.keys(y._reverseStreams||[]).forEach(function(k){var $=y._reverseStreams[k],re=y._streams[$.id];_=_.replace(new RegExp(re.id,"g"),$.id)}),new RTCSessionDescription({type:m.type,sdp:_})}function c(y,m){var _=m.sdp;return Object.keys(y._reverseStreams||[]).forEach(function(k){var $=y._reverseStreams[k],re=y._streams[$.id];_=_.replace(new RegExp($.id,"g"),re.id)}),new RTCSessionDescription({type:m.type,sdp:_})}["createOffer","createAnswer"].forEach(function(y){var m=r.RTCPeerConnection.prototype[y],_=ds({},y,function(){var k=this,$=arguments,re=arguments.length&&typeof arguments[0]=="function";return re?m.apply(this,[function(fe){var ue=o(k,fe);$[0].apply(null,[ue])},function(fe){$[1]&&$[1].apply(null,fe)},arguments[2]]):m.apply(this,arguments).then(function(fe){return o(k,fe)})});r.RTCPeerConnection.prototype[y]=_[y]});var h=r.RTCPeerConnection.prototype.setLocalDescription;r.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?h.apply(this,arguments):(arguments[0]=c(this,arguments[0]),h.apply(this,arguments))};var l=Object.getOwnPropertyDescriptor(r.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(r.RTCPeerConnection.prototype,"localDescription",{get:function(){var m=l.get.apply(this);return m.type===""?m:o(this,m)}}),r.RTCPeerConnection.prototype.removeTrack=function(m){var _=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!m._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");var k=m._pc===this;if(!k)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};var $;Object.keys(this._streams).forEach(function(re){var fe=_._streams[re].getTracks().find(function(ue){return m.track===ue});fe&&($=_._streams[re])}),$&&($.getTracks().length===1?this.removeStream(this._reverseStreams[$.id]):$.removeTrack(m.track),this.dispatchEvent(new Event("negotiationneeded")))}}function ea(r,e){!r.RTCPeerConnection&&r.webkitRTCPeerConnection&&(r.RTCPeerConnection=r.webkitRTCPeerConnection),r.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){var n=r.RTCPeerConnection.prototype[t],i=ds({},t,function(){return arguments[0]=new(t==="addIceCandidate"?r.RTCIceCandidate:r.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)});r.RTCPeerConnection.prototype[t]=i[t]})}function ta(r,e){Ut.wrapPeerConnectionEvent(r,"negotiationneeded",function(t){var n=t.target;if(!((e.version<72||n.getConfiguration&&n.getConfiguration().sdpSemantics==="plan-b")&&n.signalingState!=="stable"))return t})}});var ps=N(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});wn.shimGetUserMedia=na;var ra=ls(nt());function ls(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(ls=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||St(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function St(r){"@babel/helpers - typeof";return St=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},St(r)}function na(r,e){var t=r&&r.navigator,n=r&&r.MediaStreamTrack;if(t.getUserMedia=function(l,y,m){ra.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(l).then(y,m)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){var i=function(y,m,_){m in y&&!(_ in y)&&(y[_]=y[m],delete y[m])},o=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(l){return St(l)==="object"&&St(l.audio)==="object"&&(l=JSON.parse(JSON.stringify(l)),i(l.audio,"autoGainControl","mozAutoGainControl"),i(l.audio,"noiseSuppression","mozNoiseSuppression")),o(l)},n&&n.prototype.getSettings){var c=n.prototype.getSettings;n.prototype.getSettings=function(){var l=c.apply(this,arguments);return i(l,"mozAutoGainControl","autoGainControl"),i(l,"mozNoiseSuppression","noiseSuppression"),l}}if(n&&n.prototype.applyConstraints){var h=n.prototype.applyConstraints;n.prototype.applyConstraints=function(l){return this.kind==="audio"&&St(l)==="object"&&(l=JSON.parse(JSON.stringify(l)),i(l,"autoGainControl","mozAutoGainControl"),i(l,"noiseSuppression","mozNoiseSuppression")),h.apply(this,[l])}}}}});var ys=N(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.shimGetDisplayMedia=ia;function ia(r,e){r.navigator.mediaDevices&&"getDisplayMedia"in r.navigator.mediaDevices||r.navigator.mediaDevices&&(r.navigator.mediaDevices.getDisplayMedia=function(n){if(!(n&&n.video)){var i=new DOMException("getDisplayMedia without video constraints is undefined");return i.name="NotFoundError",i.code=8,Promise.reject(i)}return n.video===!0?n.video={mediaSource:e}:n.video.mediaSource=e,r.navigator.mediaDevices.getUserMedia(n)})}});var xs=N(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.shimAddTransceiver=_a;Ue.shimCreateAnswer=Pa;Ue.shimCreateOffer=Ca;Object.defineProperty(Ue,"shimGetDisplayMedia",{enumerable:!0,get:function(){return oa.shimGetDisplayMedia}});Ue.shimGetParameters=Sa;Object.defineProperty(Ue,"shimGetUserMedia",{enumerable:!0,get:function(){return sa.shimGetUserMedia}});Ue.shimOnTrack=ya;Ue.shimPeerConnection=ma;Ue.shimRTCDataChannel=va;Ue.shimReceiverGetStats=xa;Ue.shimRemoveStream=ba;Ue.shimSenderGetStats=ga;var ms=gs(nt()),sa=ps(),oa=ys();function gs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(gs=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||De(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function aa(r){return ua(r)||da(r)||fa(r)||ca()}function ca(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fa(r,e){if(r){if(typeof r=="string")return En(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?En(r,e):void 0}}function da(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function ua(r){if(Array.isArray(r))return En(r)}function En(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function ha(r,e,t){return(e=la(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function la(r){var e=pa(r,"string");return De(e)=="symbol"?e:e+""}function pa(r,e){if(De(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(De(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function De(r){"@babel/helpers - typeof";return De=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(r)}function ya(r){De(r)==="object"&&r.RTCTrackEvent&&"receiver"in r.RTCTrackEvent.prototype&&!("transceiver"in r.RTCTrackEvent.prototype)&&Object.defineProperty(r.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})}function ma(r,e){if(!(De(r)!=="object"||!(r.RTCPeerConnection||r.mozRTCPeerConnection))){!r.RTCPeerConnection&&r.mozRTCPeerConnection&&(r.RTCPeerConnection=r.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(i){var o=r.RTCPeerConnection.prototype[i],c=ha({},i,function(){return arguments[0]=new(i==="addIceCandidate"?r.RTCIceCandidate:r.RTCSessionDescription)(arguments[0]),o.apply(this,arguments)});r.RTCPeerConnection.prototype[i]=c[i]});var t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},n=r.RTCPeerConnection.prototype.getStats;r.RTCPeerConnection.prototype.getStats=function(){var o=Array.prototype.slice.call(arguments),c=o[0],h=o[1],l=o[2];return n.apply(this,[c||null]).then(function(y){if(e.version<53&&!h)try{y.forEach(function(m){m.type=t[m.type]||m.type})}catch(m){if(m.name!=="TypeError")throw m;y.forEach(function(_,k){y.set(k,Object.assign({},_,{type:t[_.type]||_.type}))})}return y}).then(h,l)}}}function ga(r){if(De(r)==="object"&&r.RTCPeerConnection&&r.RTCRtpSender&&!(r.RTCRtpSender&&"getStats"in r.RTCRtpSender.prototype)){var e=r.RTCPeerConnection.prototype.getSenders;e&&(r.RTCPeerConnection.prototype.getSenders=function(){var i=this,o=e.apply(this,[]);return o.forEach(function(c){return c._pc=i}),o});var t=r.RTCPeerConnection.prototype.addTrack;t&&(r.RTCPeerConnection.prototype.addTrack=function(){var i=t.apply(this,arguments);return i._pc=this,i}),r.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}}function xa(r){if(De(r)==="object"&&r.RTCPeerConnection&&r.RTCRtpSender&&!(r.RTCRtpSender&&"getStats"in r.RTCRtpReceiver.prototype)){var e=r.RTCPeerConnection.prototype.getReceivers;e&&(r.RTCPeerConnection.prototype.getReceivers=function(){var n=this,i=e.apply(this,[]);return i.forEach(function(o){return o._pc=n}),i}),ms.wrapPeerConnectionEvent(r,"track",function(t){return t.receiver._pc=t.srcElement,t}),r.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}}function ba(r){!r.RTCPeerConnection||"removeStream"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.removeStream=function(t){var n=this;ms.deprecated("removeStream","removeTrack"),this.getSenders().forEach(function(i){i.track&&t.getTracks().includes(i.track)&&n.removeTrack(i)})})}function va(r){r.DataChannel&&!r.RTCDataChannel&&(r.RTCDataChannel=r.DataChannel)}function _a(r){if(De(r)==="object"&&r.RTCPeerConnection){var e=r.RTCPeerConnection.prototype.addTransceiver;e&&(r.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];var n=arguments[1]&&arguments[1].sendEncodings;n===void 0&&(n=[]),n=aa(n);var i=n.length>0;i&&n.forEach(function(l){if("rid"in l){var y=/^[a-z0-9]{0,16}$/i;if(!y.test(l.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in l&&!(parseFloat(l.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in l&&!(parseFloat(l.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});var o=e.apply(this,arguments);if(i){var c=o.sender,h=c.getParameters();(!("encodings"in h)||h.encodings.length===1&&Object.keys(h.encodings[0]).length===0)&&(h.encodings=n,c.sendEncodings=n,this.setParametersPromises.push(c.setParameters(h).then(function(){delete c.sendEncodings}).catch(function(){delete c.sendEncodings})))}return o})}}function Sa(r){if(De(r)==="object"&&r.RTCRtpSender){var e=r.RTCRtpSender.prototype.getParameters;e&&(r.RTCRtpSender.prototype.getParameters=function(){var n=e.apply(this,arguments);return"encodings"in n||(n.encodings=[].concat(this.sendEncodings||[{}])),n})}}function Ca(r){if(De(r)==="object"&&r.RTCPeerConnection){var e=r.RTCPeerConnection.prototype.createOffer;r.RTCPeerConnection.prototype.createOffer=function(){var n=arguments,i=this;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return e.apply(i,n)}).finally(function(){i.setParametersPromises=[]}):e.apply(this,arguments)}}}function Pa(r){if(De(r)==="object"&&r.RTCPeerConnection){var e=r.RTCPeerConnection.prototype.createAnswer;r.RTCPeerConnection.prototype.createAnswer=function(){var n=arguments,i=this;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return e.apply(i,n)}).finally(function(){i.setParametersPromises=[]}):e.apply(this,arguments)}}}});var Ss=N(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.shimAudioContext=Ma;Ke.shimCallbacksAPI=Ea;Ke.shimConstraints=_s;Ke.shimCreateOfferLegacy=Aa;Ke.shimGetUserMedia=Ia;Ke.shimLocalStreamsAPI=wa;Ke.shimRTCIceServerUrls=ka;Ke.shimRemoteStreamsAPI=Ta;Ke.shimTrackEventTransceiver=Ra;var bs=vs(nt());function vs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(vs=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||st(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function st(r){"@babel/helpers - typeof";return st=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},st(r)}function wa(r){if(!(st(r)!=="object"||!r.RTCPeerConnection)){if("getLocalStreams"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in r.RTCPeerConnection.prototype)){var e=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addStream=function(n){var i=this;this._localStreams||(this._localStreams=[]),this._localStreams.includes(n)||this._localStreams.push(n),n.getAudioTracks().forEach(function(o){return e.call(i,o,n)}),n.getVideoTracks().forEach(function(o){return e.call(i,o,n)})},r.RTCPeerConnection.prototype.addTrack=function(n){for(var i=this,o=arguments.length,c=new Array(o>1?o-1:0),h=1;h<o;h++)c[h-1]=arguments[h];return c&&c.forEach(function(l){i._localStreams?i._localStreams.includes(l)||i._localStreams.push(l):i._localStreams=[l]}),e.apply(this,arguments)}}"removeStream"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.removeStream=function(n){var i=this;this._localStreams||(this._localStreams=[]);var o=this._localStreams.indexOf(n);if(o!==-1){this._localStreams.splice(o,1);var c=n.getTracks();this.getSenders().forEach(function(h){c.includes(h.track)&&i.removeTrack(h)})}})}}function Ta(r){if(!(st(r)!=="object"||!r.RTCPeerConnection)&&("getRemoteStreams"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in r.RTCPeerConnection.prototype))){Object.defineProperty(r.RTCPeerConnection.prototype,"onaddstream",{get:function(){return this._onaddstream},set:function(n){var i=this;this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=n),this.addEventListener("track",this._onaddstreampoly=function(o){o.streams.forEach(function(c){if(i._remoteStreams||(i._remoteStreams=[]),!i._remoteStreams.includes(c)){i._remoteStreams.push(c);var h=new Event("addstream");h.stream=c,i.dispatchEvent(h)}})})}});var e=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){var n=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(i){i.streams.forEach(function(o){if(n._remoteStreams||(n._remoteStreams=[]),!(n._remoteStreams.indexOf(o)>=0)){n._remoteStreams.push(o);var c=new Event("addstream");c.stream=o,n.dispatchEvent(c)}})}),e.apply(n,arguments)}}}function Ea(r){if(!(st(r)!=="object"||!r.RTCPeerConnection)){var e=r.RTCPeerConnection.prototype,t=e.createOffer,n=e.createAnswer,i=e.setLocalDescription,o=e.setRemoteDescription,c=e.addIceCandidate;e.createOffer=function(y,m){var _=arguments.length>=2?arguments[2]:arguments[0],k=t.apply(this,[_]);return m?(k.then(y,m),Promise.resolve()):k},e.createAnswer=function(y,m){var _=arguments.length>=2?arguments[2]:arguments[0],k=n.apply(this,[_]);return m?(k.then(y,m),Promise.resolve()):k};var h=function(y,m,_){var k=i.apply(this,[y]);return _?(k.then(m,_),Promise.resolve()):k};e.setLocalDescription=h,h=function(y,m,_){var k=o.apply(this,[y]);return _?(k.then(m,_),Promise.resolve()):k},e.setRemoteDescription=h,h=function(y,m,_){var k=c.apply(this,[y]);return _?(k.then(m,_),Promise.resolve()):k},e.addIceCandidate=h}}function Ia(r){var e=r&&r.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){var t=e.mediaDevices,n=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=function(i){return n(_s(i))}}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=function(o,c,h){e.mediaDevices.getUserMedia(o).then(c,h)}.bind(e))}function _s(r){return r&&r.video!==void 0?Object.assign({},r,{video:bs.compactObject(r.video)}):r}function ka(r){if(r.RTCPeerConnection){var e=r.RTCPeerConnection;r.RTCPeerConnection=function(n,i){if(n&&n.iceServers){for(var o=[],c=0;c<n.iceServers.length;c++){var h=n.iceServers[c];h.urls===void 0&&h.url?(bs.deprecated("RTCIceServer.url","RTCIceServer.urls"),h=JSON.parse(JSON.stringify(h)),h.urls=h.url,delete h.url,o.push(h)):o.push(n.iceServers[c])}n.iceServers=o}return new e(n,i)},r.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(r.RTCPeerConnection,"generateCertificate",{get:function(){return e.generateCertificate}})}}function Ra(r){st(r)==="object"&&r.RTCTrackEvent&&"receiver"in r.RTCTrackEvent.prototype&&!("transceiver"in r.RTCTrackEvent.prototype)&&Object.defineProperty(r.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})}function Aa(r){var e=r.RTCPeerConnection.prototype.createOffer;r.RTCPeerConnection.prototype.createOffer=function(n){if(n){typeof n.offerToReceiveAudio<"u"&&(n.offerToReceiveAudio=!!n.offerToReceiveAudio);var i=this.getTransceivers().find(function(c){return c.receiver.track.kind==="audio"});n.offerToReceiveAudio===!1&&i?i.direction==="sendrecv"?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":i.direction==="recvonly"&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):n.offerToReceiveAudio===!0&&!i&&this.addTransceiver("audio",{direction:"recvonly"}),typeof n.offerToReceiveVideo<"u"&&(n.offerToReceiveVideo=!!n.offerToReceiveVideo);var o=this.getTransceivers().find(function(c){return c.receiver.track.kind==="video"});n.offerToReceiveVideo===!1&&o?o.direction==="sendrecv"?o.setDirection?o.setDirection("sendonly"):o.direction="sendonly":o.direction==="recvonly"&&(o.setDirection?o.setDirection("inactive"):o.direction="inactive"):n.offerToReceiveVideo===!0&&!o&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function Ma(r){st(r)!=="object"||r.AudioContext||(r.AudioContext=r.webkitAudioContext)}});var kn=N((Nf,In)=>{"use strict";var T={};T.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)};T.localCName=T.generateIdentifier();T.splitLines=function(r){return r.trim().split(`
1
+ var DignityJS=(()=>{var Eo=Object.defineProperty;var Io=r=>{throw TypeError(r)};var ko=(r,e,t)=>e in r?Eo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var an=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var N=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var cr=(r,e,t)=>ko(r,typeof e!="symbol"?e+"":e,t);var Rt=(r,e,t)=>e.has(r)?Io("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var zi=N(()=>{});var cn=N((Ef,fr)=>{(function(r){"use strict";var e=function(a){var d,f=new Float64Array(16);if(a)for(d=0;d<a.length;d++)f[d]=a[d];return f},t=function(){throw new Error("no PRNG")},n=new Uint8Array(16),i=new Uint8Array(32);i[0]=9;var o=e(),c=e([1]),h=e([56129,1]),l=e([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),y=e([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),m=e([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),_=e([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),k=e([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function $(a,d,f,s){a[d]=f>>24&255,a[d+1]=f>>16&255,a[d+2]=f>>8&255,a[d+3]=f&255,a[d+4]=s>>24&255,a[d+5]=s>>16&255,a[d+6]=s>>8&255,a[d+7]=s&255}function re(a,d,f,s,u){var g,x=0;for(g=0;g<u;g++)x|=a[d+g]^f[s+g];return(1&x-1>>>8)-1}function fe(a,d,f,s){return re(a,d,f,s,16)}function ue(a,d,f,s){return re(a,d,f,s,32)}function be(a,d,f,s){for(var u=s[0]&255|(s[1]&255)<<8|(s[2]&255)<<16|(s[3]&255)<<24,g=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,x=f[4]&255|(f[5]&255)<<8|(f[6]&255)<<16|(f[7]&255)<<24,C=f[8]&255|(f[9]&255)<<8|(f[10]&255)<<16|(f[11]&255)<<24,I=f[12]&255|(f[13]&255)<<8|(f[14]&255)<<16|(f[15]&255)<<24,j=s[4]&255|(s[5]&255)<<8|(s[6]&255)<<16|(s[7]&255)<<24,A=d[0]&255|(d[1]&255)<<8|(d[2]&255)<<16|(d[3]&255)<<24,oe=d[4]&255|(d[5]&255)<<8|(d[6]&255)<<16|(d[7]&255)<<24,D=d[8]&255|(d[9]&255)<<8|(d[10]&255)<<16|(d[11]&255)<<24,K=d[12]&255|(d[13]&255)<<8|(d[14]&255)<<16|(d[15]&255)<<24,q=s[8]&255|(s[9]&255)<<8|(s[10]&255)<<16|(s[11]&255)<<24,Y=f[16]&255|(f[17]&255)<<8|(f[18]&255)<<16|(f[19]&255)<<24,G=f[20]&255|(f[21]&255)<<8|(f[22]&255)<<16|(f[23]&255)<<24,V=f[24]&255|(f[25]&255)<<8|(f[26]&255)<<16|(f[27]&255)<<24,W=f[28]&255|(f[29]&255)<<8|(f[30]&255)<<16|(f[31]&255)<<24,H=s[12]&255|(s[13]&255)<<8|(s[14]&255)<<16|(s[15]&255)<<24,U=u,F=g,M=x,O=C,L=I,R=j,b=A,v=oe,w=D,S=K,P=q,E=Y,z=G,J=V,Z=W,X=H,p,te=0;te<20;te+=2)p=U+z|0,L^=p<<7|p>>>25,p=L+U|0,w^=p<<9|p>>>23,p=w+L|0,z^=p<<13|p>>>19,p=z+w|0,U^=p<<18|p>>>14,p=R+F|0,S^=p<<7|p>>>25,p=S+R|0,J^=p<<9|p>>>23,p=J+S|0,F^=p<<13|p>>>19,p=F+J|0,R^=p<<18|p>>>14,p=P+b|0,Z^=p<<7|p>>>25,p=Z+P|0,M^=p<<9|p>>>23,p=M+Z|0,b^=p<<13|p>>>19,p=b+M|0,P^=p<<18|p>>>14,p=X+E|0,O^=p<<7|p>>>25,p=O+X|0,v^=p<<9|p>>>23,p=v+O|0,E^=p<<13|p>>>19,p=E+v|0,X^=p<<18|p>>>14,p=U+O|0,F^=p<<7|p>>>25,p=F+U|0,M^=p<<9|p>>>23,p=M+F|0,O^=p<<13|p>>>19,p=O+M|0,U^=p<<18|p>>>14,p=R+L|0,b^=p<<7|p>>>25,p=b+R|0,v^=p<<9|p>>>23,p=v+b|0,L^=p<<13|p>>>19,p=L+v|0,R^=p<<18|p>>>14,p=P+S|0,E^=p<<7|p>>>25,p=E+P|0,w^=p<<9|p>>>23,p=w+E|0,S^=p<<13|p>>>19,p=S+w|0,P^=p<<18|p>>>14,p=X+Z|0,z^=p<<7|p>>>25,p=z+X|0,J^=p<<9|p>>>23,p=J+z|0,Z^=p<<13|p>>>19,p=Z+J|0,X^=p<<18|p>>>14;U=U+u|0,F=F+g|0,M=M+x|0,O=O+C|0,L=L+I|0,R=R+j|0,b=b+A|0,v=v+oe|0,w=w+D|0,S=S+K|0,P=P+q|0,E=E+Y|0,z=z+G|0,J=J+V|0,Z=Z+W|0,X=X+H|0,a[0]=U>>>0&255,a[1]=U>>>8&255,a[2]=U>>>16&255,a[3]=U>>>24&255,a[4]=F>>>0&255,a[5]=F>>>8&255,a[6]=F>>>16&255,a[7]=F>>>24&255,a[8]=M>>>0&255,a[9]=M>>>8&255,a[10]=M>>>16&255,a[11]=M>>>24&255,a[12]=O>>>0&255,a[13]=O>>>8&255,a[14]=O>>>16&255,a[15]=O>>>24&255,a[16]=L>>>0&255,a[17]=L>>>8&255,a[18]=L>>>16&255,a[19]=L>>>24&255,a[20]=R>>>0&255,a[21]=R>>>8&255,a[22]=R>>>16&255,a[23]=R>>>24&255,a[24]=b>>>0&255,a[25]=b>>>8&255,a[26]=b>>>16&255,a[27]=b>>>24&255,a[28]=v>>>0&255,a[29]=v>>>8&255,a[30]=v>>>16&255,a[31]=v>>>24&255,a[32]=w>>>0&255,a[33]=w>>>8&255,a[34]=w>>>16&255,a[35]=w>>>24&255,a[36]=S>>>0&255,a[37]=S>>>8&255,a[38]=S>>>16&255,a[39]=S>>>24&255,a[40]=P>>>0&255,a[41]=P>>>8&255,a[42]=P>>>16&255,a[43]=P>>>24&255,a[44]=E>>>0&255,a[45]=E>>>8&255,a[46]=E>>>16&255,a[47]=E>>>24&255,a[48]=z>>>0&255,a[49]=z>>>8&255,a[50]=z>>>16&255,a[51]=z>>>24&255,a[52]=J>>>0&255,a[53]=J>>>8&255,a[54]=J>>>16&255,a[55]=J>>>24&255,a[56]=Z>>>0&255,a[57]=Z>>>8&255,a[58]=Z>>>16&255,a[59]=Z>>>24&255,a[60]=X>>>0&255,a[61]=X>>>8&255,a[62]=X>>>16&255,a[63]=X>>>24&255}function gt(a,d,f,s){for(var u=s[0]&255|(s[1]&255)<<8|(s[2]&255)<<16|(s[3]&255)<<24,g=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,x=f[4]&255|(f[5]&255)<<8|(f[6]&255)<<16|(f[7]&255)<<24,C=f[8]&255|(f[9]&255)<<8|(f[10]&255)<<16|(f[11]&255)<<24,I=f[12]&255|(f[13]&255)<<8|(f[14]&255)<<16|(f[15]&255)<<24,j=s[4]&255|(s[5]&255)<<8|(s[6]&255)<<16|(s[7]&255)<<24,A=d[0]&255|(d[1]&255)<<8|(d[2]&255)<<16|(d[3]&255)<<24,oe=d[4]&255|(d[5]&255)<<8|(d[6]&255)<<16|(d[7]&255)<<24,D=d[8]&255|(d[9]&255)<<8|(d[10]&255)<<16|(d[11]&255)<<24,K=d[12]&255|(d[13]&255)<<8|(d[14]&255)<<16|(d[15]&255)<<24,q=s[8]&255|(s[9]&255)<<8|(s[10]&255)<<16|(s[11]&255)<<24,Y=f[16]&255|(f[17]&255)<<8|(f[18]&255)<<16|(f[19]&255)<<24,G=f[20]&255|(f[21]&255)<<8|(f[22]&255)<<16|(f[23]&255)<<24,V=f[24]&255|(f[25]&255)<<8|(f[26]&255)<<16|(f[27]&255)<<24,W=f[28]&255|(f[29]&255)<<8|(f[30]&255)<<16|(f[31]&255)<<24,H=s[12]&255|(s[13]&255)<<8|(s[14]&255)<<16|(s[15]&255)<<24,U=u,F=g,M=x,O=C,L=I,R=j,b=A,v=oe,w=D,S=K,P=q,E=Y,z=G,J=V,Z=W,X=H,p,te=0;te<20;te+=2)p=U+z|0,L^=p<<7|p>>>25,p=L+U|0,w^=p<<9|p>>>23,p=w+L|0,z^=p<<13|p>>>19,p=z+w|0,U^=p<<18|p>>>14,p=R+F|0,S^=p<<7|p>>>25,p=S+R|0,J^=p<<9|p>>>23,p=J+S|0,F^=p<<13|p>>>19,p=F+J|0,R^=p<<18|p>>>14,p=P+b|0,Z^=p<<7|p>>>25,p=Z+P|0,M^=p<<9|p>>>23,p=M+Z|0,b^=p<<13|p>>>19,p=b+M|0,P^=p<<18|p>>>14,p=X+E|0,O^=p<<7|p>>>25,p=O+X|0,v^=p<<9|p>>>23,p=v+O|0,E^=p<<13|p>>>19,p=E+v|0,X^=p<<18|p>>>14,p=U+O|0,F^=p<<7|p>>>25,p=F+U|0,M^=p<<9|p>>>23,p=M+F|0,O^=p<<13|p>>>19,p=O+M|0,U^=p<<18|p>>>14,p=R+L|0,b^=p<<7|p>>>25,p=b+R|0,v^=p<<9|p>>>23,p=v+b|0,L^=p<<13|p>>>19,p=L+v|0,R^=p<<18|p>>>14,p=P+S|0,E^=p<<7|p>>>25,p=E+P|0,w^=p<<9|p>>>23,p=w+E|0,S^=p<<13|p>>>19,p=S+w|0,P^=p<<18|p>>>14,p=X+Z|0,z^=p<<7|p>>>25,p=z+X|0,J^=p<<9|p>>>23,p=J+z|0,Z^=p<<13|p>>>19,p=Z+J|0,X^=p<<18|p>>>14;a[0]=U>>>0&255,a[1]=U>>>8&255,a[2]=U>>>16&255,a[3]=U>>>24&255,a[4]=R>>>0&255,a[5]=R>>>8&255,a[6]=R>>>16&255,a[7]=R>>>24&255,a[8]=P>>>0&255,a[9]=P>>>8&255,a[10]=P>>>16&255,a[11]=P>>>24&255,a[12]=X>>>0&255,a[13]=X>>>8&255,a[14]=X>>>16&255,a[15]=X>>>24&255,a[16]=b>>>0&255,a[17]=b>>>8&255,a[18]=b>>>16&255,a[19]=b>>>24&255,a[20]=v>>>0&255,a[21]=v>>>8&255,a[22]=v>>>16&255,a[23]=v>>>24&255,a[24]=w>>>0&255,a[25]=w>>>8&255,a[26]=w>>>16&255,a[27]=w>>>24&255,a[28]=S>>>0&255,a[29]=S>>>8&255,a[30]=S>>>16&255,a[31]=S>>>24&255}function Xt(a,d,f,s){be(a,d,f,s)}function Zt(a,d,f,s){gt(a,d,f,s)}var dt=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function Ci(a,d,f,s,u,g,x){var C=new Uint8Array(16),I=new Uint8Array(64),j,A;for(A=0;A<16;A++)C[A]=0;for(A=0;A<8;A++)C[A]=g[A];for(;u>=64;){for(Xt(I,C,x,dt),A=0;A<64;A++)a[d+A]=f[s+A]^I[A];for(j=1,A=8;A<16;A++)j=j+(C[A]&255)|0,C[A]=j&255,j>>>=8;u-=64,d+=64,s+=64}if(u>0)for(Xt(I,C,x,dt),A=0;A<u;A++)a[d+A]=f[s+A]^I[A];return 0}function Pi(a,d,f,s,u){var g=new Uint8Array(16),x=new Uint8Array(64),C,I;for(I=0;I<16;I++)g[I]=0;for(I=0;I<8;I++)g[I]=s[I];for(;f>=64;){for(Xt(x,g,u,dt),I=0;I<64;I++)a[d+I]=x[I];for(C=1,I=8;I<16;I++)C=C+(g[I]&255)|0,g[I]=C&255,C>>>=8;f-=64,d+=64}if(f>0)for(Xt(x,g,u,dt),I=0;I<f;I++)a[d+I]=x[I];return 0}function wi(a,d,f,s,u){var g=new Uint8Array(32);Zt(g,s,u,dt);for(var x=new Uint8Array(8),C=0;C<8;C++)x[C]=s[C+16];return Pi(a,d,f,x,g)}function qr(a,d,f,s,u,g,x){var C=new Uint8Array(32);Zt(C,g,x,dt);for(var I=new Uint8Array(8),j=0;j<8;j++)I[j]=g[j+16];return Ci(a,d,f,s,u,I,C)}var Qt=function(a){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 d,f,s,u,g,x,C,I;d=a[0]&255|(a[1]&255)<<8,this.r[0]=d&8191,f=a[2]&255|(a[3]&255)<<8,this.r[1]=(d>>>13|f<<3)&8191,s=a[4]&255|(a[5]&255)<<8,this.r[2]=(f>>>10|s<<6)&7939,u=a[6]&255|(a[7]&255)<<8,this.r[3]=(s>>>7|u<<9)&8191,g=a[8]&255|(a[9]&255)<<8,this.r[4]=(u>>>4|g<<12)&255,this.r[5]=g>>>1&8190,x=a[10]&255|(a[11]&255)<<8,this.r[6]=(g>>>14|x<<2)&8191,C=a[12]&255|(a[13]&255)<<8,this.r[7]=(x>>>11|C<<5)&8065,I=a[14]&255|(a[15]&255)<<8,this.r[8]=(C>>>8|I<<8)&8191,this.r[9]=I>>>5&127,this.pad[0]=a[16]&255|(a[17]&255)<<8,this.pad[1]=a[18]&255|(a[19]&255)<<8,this.pad[2]=a[20]&255|(a[21]&255)<<8,this.pad[3]=a[22]&255|(a[23]&255)<<8,this.pad[4]=a[24]&255|(a[25]&255)<<8,this.pad[5]=a[26]&255|(a[27]&255)<<8,this.pad[6]=a[28]&255|(a[29]&255)<<8,this.pad[7]=a[30]&255|(a[31]&255)<<8};Qt.prototype.blocks=function(a,d,f){for(var s=this.fin?0:2048,u,g,x,C,I,j,A,oe,D,K,q,Y,G,V,W,H,U,F,M,O=this.h[0],L=this.h[1],R=this.h[2],b=this.h[3],v=this.h[4],w=this.h[5],S=this.h[6],P=this.h[7],E=this.h[8],z=this.h[9],J=this.r[0],Z=this.r[1],X=this.r[2],p=this.r[3],te=this.r[4],ae=this.r[5],ce=this.r[6],Q=this.r[7],ie=this.r[8],se=this.r[9];f>=16;)u=a[d+0]&255|(a[d+1]&255)<<8,O+=u&8191,g=a[d+2]&255|(a[d+3]&255)<<8,L+=(u>>>13|g<<3)&8191,x=a[d+4]&255|(a[d+5]&255)<<8,R+=(g>>>10|x<<6)&8191,C=a[d+6]&255|(a[d+7]&255)<<8,b+=(x>>>7|C<<9)&8191,I=a[d+8]&255|(a[d+9]&255)<<8,v+=(C>>>4|I<<12)&8191,w+=I>>>1&8191,j=a[d+10]&255|(a[d+11]&255)<<8,S+=(I>>>14|j<<2)&8191,A=a[d+12]&255|(a[d+13]&255)<<8,P+=(j>>>11|A<<5)&8191,oe=a[d+14]&255|(a[d+15]&255)<<8,E+=(A>>>8|oe<<8)&8191,z+=oe>>>5|s,D=0,K=D,K+=O*J,K+=L*(5*se),K+=R*(5*ie),K+=b*(5*Q),K+=v*(5*ce),D=K>>>13,K&=8191,K+=w*(5*ae),K+=S*(5*te),K+=P*(5*p),K+=E*(5*X),K+=z*(5*Z),D+=K>>>13,K&=8191,q=D,q+=O*Z,q+=L*J,q+=R*(5*se),q+=b*(5*ie),q+=v*(5*Q),D=q>>>13,q&=8191,q+=w*(5*ce),q+=S*(5*ae),q+=P*(5*te),q+=E*(5*p),q+=z*(5*X),D+=q>>>13,q&=8191,Y=D,Y+=O*X,Y+=L*Z,Y+=R*J,Y+=b*(5*se),Y+=v*(5*ie),D=Y>>>13,Y&=8191,Y+=w*(5*Q),Y+=S*(5*ce),Y+=P*(5*ae),Y+=E*(5*te),Y+=z*(5*p),D+=Y>>>13,Y&=8191,G=D,G+=O*p,G+=L*X,G+=R*Z,G+=b*J,G+=v*(5*se),D=G>>>13,G&=8191,G+=w*(5*ie),G+=S*(5*Q),G+=P*(5*ce),G+=E*(5*ae),G+=z*(5*te),D+=G>>>13,G&=8191,V=D,V+=O*te,V+=L*p,V+=R*X,V+=b*Z,V+=v*J,D=V>>>13,V&=8191,V+=w*(5*se),V+=S*(5*ie),V+=P*(5*Q),V+=E*(5*ce),V+=z*(5*ae),D+=V>>>13,V&=8191,W=D,W+=O*ae,W+=L*te,W+=R*p,W+=b*X,W+=v*Z,D=W>>>13,W&=8191,W+=w*J,W+=S*(5*se),W+=P*(5*ie),W+=E*(5*Q),W+=z*(5*ce),D+=W>>>13,W&=8191,H=D,H+=O*ce,H+=L*ae,H+=R*te,H+=b*p,H+=v*X,D=H>>>13,H&=8191,H+=w*Z,H+=S*J,H+=P*(5*se),H+=E*(5*ie),H+=z*(5*Q),D+=H>>>13,H&=8191,U=D,U+=O*Q,U+=L*ce,U+=R*ae,U+=b*te,U+=v*p,D=U>>>13,U&=8191,U+=w*X,U+=S*Z,U+=P*J,U+=E*(5*se),U+=z*(5*ie),D+=U>>>13,U&=8191,F=D,F+=O*ie,F+=L*Q,F+=R*ce,F+=b*ae,F+=v*te,D=F>>>13,F&=8191,F+=w*p,F+=S*X,F+=P*Z,F+=E*J,F+=z*(5*se),D+=F>>>13,F&=8191,M=D,M+=O*se,M+=L*ie,M+=R*Q,M+=b*ce,M+=v*ae,D=M>>>13,M&=8191,M+=w*te,M+=S*p,M+=P*X,M+=E*Z,M+=z*J,D+=M>>>13,M&=8191,D=(D<<2)+D|0,D=D+K|0,K=D&8191,D=D>>>13,q+=D,O=K,L=q,R=Y,b=G,v=V,w=W,S=H,P=U,E=F,z=M,d+=16,f-=16;this.h[0]=O,this.h[1]=L,this.h[2]=R,this.h[3]=b,this.h[4]=v,this.h[5]=w,this.h[6]=S,this.h[7]=P,this.h[8]=E,this.h[9]=z},Qt.prototype.finish=function(a,d){var f=new Uint16Array(10),s,u,g,x;if(this.leftover){for(x=this.leftover,this.buffer[x++]=1;x<16;x++)this.buffer[x]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(s=this.h[1]>>>13,this.h[1]&=8191,x=2;x<10;x++)this.h[x]+=s,s=this.h[x]>>>13,this.h[x]&=8191;for(this.h[0]+=s*5,s=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=s,s=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=s,f[0]=this.h[0]+5,s=f[0]>>>13,f[0]&=8191,x=1;x<10;x++)f[x]=this.h[x]+s,s=f[x]>>>13,f[x]&=8191;for(f[9]-=8192,u=(s^1)-1,x=0;x<10;x++)f[x]&=u;for(u=~u,x=0;x<10;x++)this.h[x]=this.h[x]&u|f[x];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,g=this.h[0]+this.pad[0],this.h[0]=g&65535,x=1;x<8;x++)g=(this.h[x]+this.pad[x]|0)+(g>>>16)|0,this.h[x]=g&65535;a[d+0]=this.h[0]>>>0&255,a[d+1]=this.h[0]>>>8&255,a[d+2]=this.h[1]>>>0&255,a[d+3]=this.h[1]>>>8&255,a[d+4]=this.h[2]>>>0&255,a[d+5]=this.h[2]>>>8&255,a[d+6]=this.h[3]>>>0&255,a[d+7]=this.h[3]>>>8&255,a[d+8]=this.h[4]>>>0&255,a[d+9]=this.h[4]>>>8&255,a[d+10]=this.h[5]>>>0&255,a[d+11]=this.h[5]>>>8&255,a[d+12]=this.h[6]>>>0&255,a[d+13]=this.h[6]>>>8&255,a[d+14]=this.h[7]>>>0&255,a[d+15]=this.h[7]>>>8&255},Qt.prototype.update=function(a,d,f){var s,u;if(this.leftover){for(u=16-this.leftover,u>f&&(u=f),s=0;s<u;s++)this.buffer[this.leftover+s]=a[d+s];if(f-=u,d+=u,this.leftover+=u,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(f>=16&&(u=f-f%16,this.blocks(a,d,u),d+=u,f-=u),f){for(s=0;s<f;s++)this.buffer[this.leftover+s]=a[d+s];this.leftover+=f}};function Vr(a,d,f,s,u,g){var x=new Qt(g);return x.update(f,s,u),x.finish(a,d),0}function Ti(a,d,f,s,u,g){var x=new Uint8Array(16);return Vr(x,0,f,s,u,g),fe(a,d,x,0)}function Hr(a,d,f,s,u){var g;if(f<32)return-1;for(qr(a,0,d,0,f,s,u),Vr(a,16,a,32,f-32,a),g=0;g<16;g++)a[g]=0;return 0}function Wr(a,d,f,s,u){var g,x=new Uint8Array(32);if(f<32||(wi(x,0,32,s,u),Ti(d,16,d,32,f-32,x)!==0))return-1;for(qr(a,0,d,0,f,s,u),g=0;g<32;g++)a[g]=0;return 0}function Ze(a,d){var f;for(f=0;f<16;f++)a[f]=d[f]|0}function Gr(a){var d,f,s=1;for(d=0;d<16;d++)f=a[d]+s+65535,s=Math.floor(f/65536),a[d]=f-s*65536;a[0]+=s-1+37*(s-1)}function xt(a,d,f){for(var s,u=~(f-1),g=0;g<16;g++)s=u&(a[g]^d[g]),a[g]^=s,d[g]^=s}function bt(a,d){var f,s,u,g=e(),x=e();for(f=0;f<16;f++)x[f]=d[f];for(Gr(x),Gr(x),Gr(x),s=0;s<2;s++){for(g[0]=x[0]-65517,f=1;f<15;f++)g[f]=x[f]-65535-(g[f-1]>>16&1),g[f-1]&=65535;g[15]=x[15]-32767-(g[14]>>16&1),u=g[15]>>16&1,g[14]&=65535,xt(x,g,1-u)}for(f=0;f<16;f++)a[2*f]=x[f]&255,a[2*f+1]=x[f]>>8}function Ei(a,d){var f=new Uint8Array(32),s=new Uint8Array(32);return bt(f,a),bt(s,d),ue(f,0,s,0)}function Ii(a){var d=new Uint8Array(32);return bt(d,a),d[0]&1}function Yr(a,d){var f;for(f=0;f<16;f++)a[f]=d[2*f]+(d[2*f+1]<<8);a[15]&=32767}function ze(a,d,f){for(var s=0;s<16;s++)a[s]=d[s]+f[s]}function Ne(a,d,f){for(var s=0;s<16;s++)a[s]=d[s]-f[s]}function ne(a,d,f){var s,u,g=0,x=0,C=0,I=0,j=0,A=0,oe=0,D=0,K=0,q=0,Y=0,G=0,V=0,W=0,H=0,U=0,F=0,M=0,O=0,L=0,R=0,b=0,v=0,w=0,S=0,P=0,E=0,z=0,J=0,Z=0,X=0,p=f[0],te=f[1],ae=f[2],ce=f[3],Q=f[4],ie=f[5],se=f[6],xe=f[7],de=f[8],he=f[9],le=f[10],pe=f[11],_e=f[12],Ce=f[13],Pe=f[14],we=f[15];s=d[0],g+=s*p,x+=s*te,C+=s*ae,I+=s*ce,j+=s*Q,A+=s*ie,oe+=s*se,D+=s*xe,K+=s*de,q+=s*he,Y+=s*le,G+=s*pe,V+=s*_e,W+=s*Ce,H+=s*Pe,U+=s*we,s=d[1],x+=s*p,C+=s*te,I+=s*ae,j+=s*ce,A+=s*Q,oe+=s*ie,D+=s*se,K+=s*xe,q+=s*de,Y+=s*he,G+=s*le,V+=s*pe,W+=s*_e,H+=s*Ce,U+=s*Pe,F+=s*we,s=d[2],C+=s*p,I+=s*te,j+=s*ae,A+=s*ce,oe+=s*Q,D+=s*ie,K+=s*se,q+=s*xe,Y+=s*de,G+=s*he,V+=s*le,W+=s*pe,H+=s*_e,U+=s*Ce,F+=s*Pe,M+=s*we,s=d[3],I+=s*p,j+=s*te,A+=s*ae,oe+=s*ce,D+=s*Q,K+=s*ie,q+=s*se,Y+=s*xe,G+=s*de,V+=s*he,W+=s*le,H+=s*pe,U+=s*_e,F+=s*Ce,M+=s*Pe,O+=s*we,s=d[4],j+=s*p,A+=s*te,oe+=s*ae,D+=s*ce,K+=s*Q,q+=s*ie,Y+=s*se,G+=s*xe,V+=s*de,W+=s*he,H+=s*le,U+=s*pe,F+=s*_e,M+=s*Ce,O+=s*Pe,L+=s*we,s=d[5],A+=s*p,oe+=s*te,D+=s*ae,K+=s*ce,q+=s*Q,Y+=s*ie,G+=s*se,V+=s*xe,W+=s*de,H+=s*he,U+=s*le,F+=s*pe,M+=s*_e,O+=s*Ce,L+=s*Pe,R+=s*we,s=d[6],oe+=s*p,D+=s*te,K+=s*ae,q+=s*ce,Y+=s*Q,G+=s*ie,V+=s*se,W+=s*xe,H+=s*de,U+=s*he,F+=s*le,M+=s*pe,O+=s*_e,L+=s*Ce,R+=s*Pe,b+=s*we,s=d[7],D+=s*p,K+=s*te,q+=s*ae,Y+=s*ce,G+=s*Q,V+=s*ie,W+=s*se,H+=s*xe,U+=s*de,F+=s*he,M+=s*le,O+=s*pe,L+=s*_e,R+=s*Ce,b+=s*Pe,v+=s*we,s=d[8],K+=s*p,q+=s*te,Y+=s*ae,G+=s*ce,V+=s*Q,W+=s*ie,H+=s*se,U+=s*xe,F+=s*de,M+=s*he,O+=s*le,L+=s*pe,R+=s*_e,b+=s*Ce,v+=s*Pe,w+=s*we,s=d[9],q+=s*p,Y+=s*te,G+=s*ae,V+=s*ce,W+=s*Q,H+=s*ie,U+=s*se,F+=s*xe,M+=s*de,O+=s*he,L+=s*le,R+=s*pe,b+=s*_e,v+=s*Ce,w+=s*Pe,S+=s*we,s=d[10],Y+=s*p,G+=s*te,V+=s*ae,W+=s*ce,H+=s*Q,U+=s*ie,F+=s*se,M+=s*xe,O+=s*de,L+=s*he,R+=s*le,b+=s*pe,v+=s*_e,w+=s*Ce,S+=s*Pe,P+=s*we,s=d[11],G+=s*p,V+=s*te,W+=s*ae,H+=s*ce,U+=s*Q,F+=s*ie,M+=s*se,O+=s*xe,L+=s*de,R+=s*he,b+=s*le,v+=s*pe,w+=s*_e,S+=s*Ce,P+=s*Pe,E+=s*we,s=d[12],V+=s*p,W+=s*te,H+=s*ae,U+=s*ce,F+=s*Q,M+=s*ie,O+=s*se,L+=s*xe,R+=s*de,b+=s*he,v+=s*le,w+=s*pe,S+=s*_e,P+=s*Ce,E+=s*Pe,z+=s*we,s=d[13],W+=s*p,H+=s*te,U+=s*ae,F+=s*ce,M+=s*Q,O+=s*ie,L+=s*se,R+=s*xe,b+=s*de,v+=s*he,w+=s*le,S+=s*pe,P+=s*_e,E+=s*Ce,z+=s*Pe,J+=s*we,s=d[14],H+=s*p,U+=s*te,F+=s*ae,M+=s*ce,O+=s*Q,L+=s*ie,R+=s*se,b+=s*xe,v+=s*de,w+=s*he,S+=s*le,P+=s*pe,E+=s*_e,z+=s*Ce,J+=s*Pe,Z+=s*we,s=d[15],U+=s*p,F+=s*te,M+=s*ae,O+=s*ce,L+=s*Q,R+=s*ie,b+=s*se,v+=s*xe,w+=s*de,S+=s*he,P+=s*le,E+=s*pe,z+=s*_e,J+=s*Ce,Z+=s*Pe,X+=s*we,g+=38*F,x+=38*M,C+=38*O,I+=38*L,j+=38*R,A+=38*b,oe+=38*v,D+=38*w,K+=38*S,q+=38*P,Y+=38*E,G+=38*z,V+=38*J,W+=38*Z,H+=38*X,u=1,s=g+u+65535,u=Math.floor(s/65536),g=s-u*65536,s=x+u+65535,u=Math.floor(s/65536),x=s-u*65536,s=C+u+65535,u=Math.floor(s/65536),C=s-u*65536,s=I+u+65535,u=Math.floor(s/65536),I=s-u*65536,s=j+u+65535,u=Math.floor(s/65536),j=s-u*65536,s=A+u+65535,u=Math.floor(s/65536),A=s-u*65536,s=oe+u+65535,u=Math.floor(s/65536),oe=s-u*65536,s=D+u+65535,u=Math.floor(s/65536),D=s-u*65536,s=K+u+65535,u=Math.floor(s/65536),K=s-u*65536,s=q+u+65535,u=Math.floor(s/65536),q=s-u*65536,s=Y+u+65535,u=Math.floor(s/65536),Y=s-u*65536,s=G+u+65535,u=Math.floor(s/65536),G=s-u*65536,s=V+u+65535,u=Math.floor(s/65536),V=s-u*65536,s=W+u+65535,u=Math.floor(s/65536),W=s-u*65536,s=H+u+65535,u=Math.floor(s/65536),H=s-u*65536,s=U+u+65535,u=Math.floor(s/65536),U=s-u*65536,g+=u-1+37*(u-1),u=1,s=g+u+65535,u=Math.floor(s/65536),g=s-u*65536,s=x+u+65535,u=Math.floor(s/65536),x=s-u*65536,s=C+u+65535,u=Math.floor(s/65536),C=s-u*65536,s=I+u+65535,u=Math.floor(s/65536),I=s-u*65536,s=j+u+65535,u=Math.floor(s/65536),j=s-u*65536,s=A+u+65535,u=Math.floor(s/65536),A=s-u*65536,s=oe+u+65535,u=Math.floor(s/65536),oe=s-u*65536,s=D+u+65535,u=Math.floor(s/65536),D=s-u*65536,s=K+u+65535,u=Math.floor(s/65536),K=s-u*65536,s=q+u+65535,u=Math.floor(s/65536),q=s-u*65536,s=Y+u+65535,u=Math.floor(s/65536),Y=s-u*65536,s=G+u+65535,u=Math.floor(s/65536),G=s-u*65536,s=V+u+65535,u=Math.floor(s/65536),V=s-u*65536,s=W+u+65535,u=Math.floor(s/65536),W=s-u*65536,s=H+u+65535,u=Math.floor(s/65536),H=s-u*65536,s=U+u+65535,u=Math.floor(s/65536),U=s-u*65536,g+=u-1+37*(u-1),a[0]=g,a[1]=x,a[2]=C,a[3]=I,a[4]=j,a[5]=A,a[6]=oe,a[7]=D,a[8]=K,a[9]=q,a[10]=Y,a[11]=G,a[12]=V,a[13]=W,a[14]=H,a[15]=U}function Le(a,d){ne(a,d,d)}function ki(a,d){var f=e(),s;for(s=0;s<16;s++)f[s]=d[s];for(s=253;s>=0;s--)Le(f,f),s!==2&&s!==4&&ne(f,f,d);for(s=0;s<16;s++)a[s]=f[s]}function Ri(a,d){var f=e(),s;for(s=0;s<16;s++)f[s]=d[s];for(s=250;s>=0;s--)Le(f,f),s!==1&&ne(f,f,d);for(s=0;s<16;s++)a[s]=f[s]}function er(a,d,f){var s=new Uint8Array(32),u=new Float64Array(80),g,x,C=e(),I=e(),j=e(),A=e(),oe=e(),D=e();for(x=0;x<31;x++)s[x]=d[x];for(s[31]=d[31]&127|64,s[0]&=248,Yr(u,f),x=0;x<16;x++)I[x]=u[x],A[x]=C[x]=j[x]=0;for(C[0]=A[0]=1,x=254;x>=0;--x)g=s[x>>>3]>>>(x&7)&1,xt(C,I,g),xt(j,A,g),ze(oe,C,j),Ne(C,C,j),ze(j,I,A),Ne(I,I,A),Le(A,oe),Le(D,C),ne(C,j,C),ne(j,I,oe),ze(oe,C,j),Ne(C,C,j),Le(I,C),Ne(j,A,D),ne(C,j,h),ze(C,C,A),ne(j,j,C),ne(C,A,D),ne(A,I,u),Le(I,oe),xt(C,I,g),xt(j,A,g);for(x=0;x<16;x++)u[x+16]=C[x],u[x+32]=j[x],u[x+48]=I[x],u[x+64]=A[x];var K=u.subarray(32),q=u.subarray(16);return ki(K,K),ne(q,q,K),bt(a,q),0}function tr(a,d){return er(a,d,i)}function Ai(a,d){return t(d,32),tr(a,d)}function rr(a,d,f){var s=new Uint8Array(32);return er(s,f,d),Zt(a,n,s,dt)}var Mi=Hr,vo=Wr;function _o(a,d,f,s,u,g){var x=new Uint8Array(32);return rr(x,u,g),Mi(a,d,f,s,x)}function So(a,d,f,s,u,g){var x=new Uint8Array(32);return rr(x,u,g),vo(a,d,f,s,x)}var Di=[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 Ui(a,d,f,s){for(var u=new Int32Array(16),g=new Int32Array(16),x,C,I,j,A,oe,D,K,q,Y,G,V,W,H,U,F,M,O,L,R,b,v,w,S,P,E,z=a[0],J=a[1],Z=a[2],X=a[3],p=a[4],te=a[5],ae=a[6],ce=a[7],Q=d[0],ie=d[1],se=d[2],xe=d[3],de=d[4],he=d[5],le=d[6],pe=d[7],_e=0;s>=128;){for(L=0;L<16;L++)R=8*L+_e,u[L]=f[R+0]<<24|f[R+1]<<16|f[R+2]<<8|f[R+3],g[L]=f[R+4]<<24|f[R+5]<<16|f[R+6]<<8|f[R+7];for(L=0;L<80;L++)if(x=z,C=J,I=Z,j=X,A=p,oe=te,D=ae,K=ce,q=Q,Y=ie,G=se,V=xe,W=de,H=he,U=le,F=pe,b=ce,v=pe,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=(p>>>14|de<<18)^(p>>>18|de<<14)^(de>>>9|p<<23),v=(de>>>14|p<<18)^(de>>>18|p<<14)^(p>>>9|de<<23),w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,b=p&te^~p&ae,v=de&he^~de&le,w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,b=Di[L*2],v=Di[L*2+1],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,b=u[L%16],v=g[L%16],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,M=P&65535|E<<16,O=w&65535|S<<16,b=M,v=O,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=(z>>>28|Q<<4)^(Q>>>2|z<<30)^(Q>>>7|z<<25),v=(Q>>>28|z<<4)^(z>>>2|Q<<30)^(z>>>7|Q<<25),w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,b=z&J^z&Z^J&Z,v=Q&ie^Q&se^ie&se,w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,K=P&65535|E<<16,F=w&65535|S<<16,b=j,v=V,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=M,v=O,w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,j=P&65535|E<<16,V=w&65535|S<<16,J=x,Z=C,X=I,p=j,te=A,ae=oe,ce=D,z=K,ie=q,se=Y,xe=G,de=V,he=W,le=H,pe=U,Q=F,L%16===15)for(R=0;R<16;R++)b=u[R],v=g[R],w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=u[(R+9)%16],v=g[(R+9)%16],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,M=u[(R+1)%16],O=g[(R+1)%16],b=(M>>>1|O<<31)^(M>>>8|O<<24)^M>>>7,v=(O>>>1|M<<31)^(O>>>8|M<<24)^(O>>>7|M<<25),w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,M=u[(R+14)%16],O=g[(R+14)%16],b=(M>>>19|O<<13)^(O>>>29|M<<3)^M>>>6,v=(O>>>19|M<<13)^(M>>>29|O<<3)^(O>>>6|M<<26),w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,u[R]=P&65535|E<<16,g[R]=w&65535|S<<16;b=z,v=Q,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[0],v=d[0],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[0]=z=P&65535|E<<16,d[0]=Q=w&65535|S<<16,b=J,v=ie,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[1],v=d[1],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[1]=J=P&65535|E<<16,d[1]=ie=w&65535|S<<16,b=Z,v=se,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[2],v=d[2],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[2]=Z=P&65535|E<<16,d[2]=se=w&65535|S<<16,b=X,v=xe,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[3],v=d[3],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[3]=X=P&65535|E<<16,d[3]=xe=w&65535|S<<16,b=p,v=de,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[4],v=d[4],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[4]=p=P&65535|E<<16,d[4]=de=w&65535|S<<16,b=te,v=he,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[5],v=d[5],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[5]=te=P&65535|E<<16,d[5]=he=w&65535|S<<16,b=ae,v=le,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[6],v=d[6],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[6]=ae=P&65535|E<<16,d[6]=le=w&65535|S<<16,b=ce,v=pe,w=v&65535,S=v>>>16,P=b&65535,E=b>>>16,b=a[7],v=d[7],w+=v&65535,S+=v>>>16,P+=b&65535,E+=b>>>16,S+=w>>>16,P+=S>>>16,E+=P>>>16,a[7]=ce=P&65535|E<<16,d[7]=pe=w&65535|S<<16,_e+=128,s-=128}return s}function ut(a,d,f){var s=new Int32Array(8),u=new Int32Array(8),g=new Uint8Array(256),x,C=f;for(s[0]=1779033703,s[1]=3144134277,s[2]=1013904242,s[3]=2773480762,s[4]=1359893119,s[5]=2600822924,s[6]=528734635,s[7]=1541459225,u[0]=4089235720,u[1]=2227873595,u[2]=4271175723,u[3]=1595750129,u[4]=2917565137,u[5]=725511199,u[6]=4215389547,u[7]=327033209,Ui(s,u,d,f),f%=128,x=0;x<f;x++)g[x]=d[C-f+x];for(g[f]=128,f=256-128*(f<112?1:0),g[f-9]=0,$(g,f-8,C/536870912|0,C<<3),Ui(s,u,g,f),x=0;x<8;x++)$(a,8*x,s[x],u[x]);return 0}function nr(a,d){var f=e(),s=e(),u=e(),g=e(),x=e(),C=e(),I=e(),j=e(),A=e();Ne(f,a[1],a[0]),Ne(A,d[1],d[0]),ne(f,f,A),ze(s,a[0],a[1]),ze(A,d[0],d[1]),ne(s,s,A),ne(u,a[3],d[3]),ne(u,u,y),ne(g,a[2],d[2]),ze(g,g,g),Ne(x,s,f),Ne(C,g,u),ze(I,g,u),ze(j,s,f),ne(a[0],x,C),ne(a[1],j,I),ne(a[2],I,C),ne(a[3],x,j)}function Oi(a,d,f){var s;for(s=0;s<4;s++)xt(a[s],d[s],f)}function Jr(a,d){var f=e(),s=e(),u=e();ki(u,d[2]),ne(f,d[0],u),ne(s,d[1],u),bt(a,s),a[31]^=Ii(f)<<7}function Xr(a,d,f){var s,u;for(Ze(a[0],o),Ze(a[1],c),Ze(a[2],c),Ze(a[3],o),u=255;u>=0;--u)s=f[u/8|0]>>(u&7)&1,Oi(a,d,s),nr(d,a),nr(a,a),Oi(a,d,s)}function ir(a,d){var f=[e(),e(),e(),e()];Ze(f[0],m),Ze(f[1],_),Ze(f[2],c),ne(f[3],m,_),Xr(a,f,d)}function Zr(a,d,f){var s=new Uint8Array(64),u=[e(),e(),e(),e()],g;for(f||t(d,32),ut(s,d,32),s[0]&=248,s[31]&=127,s[31]|=64,ir(u,s),Jr(a,u),g=0;g<32;g++)d[g+32]=a[g];return 0}var sr=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 Qr(a,d){var f,s,u,g;for(s=63;s>=32;--s){for(f=0,u=s-32,g=s-12;u<g;++u)d[u]+=f-16*d[s]*sr[u-(s-32)],f=Math.floor((d[u]+128)/256),d[u]-=f*256;d[u]+=f,d[s]=0}for(f=0,u=0;u<32;u++)d[u]+=f-(d[31]>>4)*sr[u],f=d[u]>>8,d[u]&=255;for(u=0;u<32;u++)d[u]-=f*sr[u];for(s=0;s<32;s++)d[s+1]+=d[s]>>8,a[s]=d[s]&255}function en(a){var d=new Float64Array(64),f;for(f=0;f<64;f++)d[f]=a[f];for(f=0;f<64;f++)a[f]=0;Qr(a,d)}function Bi(a,d,f,s){var u=new Uint8Array(64),g=new Uint8Array(64),x=new Uint8Array(64),C,I,j=new Float64Array(64),A=[e(),e(),e(),e()];ut(u,s,32),u[0]&=248,u[31]&=127,u[31]|=64;var oe=f+64;for(C=0;C<f;C++)a[64+C]=d[C];for(C=0;C<32;C++)a[32+C]=u[32+C];for(ut(x,a.subarray(32),f+32),en(x),ir(A,x),Jr(a,A),C=32;C<64;C++)a[C]=s[C];for(ut(g,a,f+64),en(g),C=0;C<64;C++)j[C]=0;for(C=0;C<32;C++)j[C]=x[C];for(C=0;C<32;C++)for(I=0;I<32;I++)j[C+I]+=g[C]*u[I];return Qr(a.subarray(32),j),oe}function Co(a,d){var f=e(),s=e(),u=e(),g=e(),x=e(),C=e(),I=e();return Ze(a[2],c),Yr(a[1],d),Le(u,a[1]),ne(g,u,l),Ne(u,u,a[2]),ze(g,a[2],g),Le(x,g),Le(C,x),ne(I,C,x),ne(f,I,u),ne(f,f,g),Ri(f,f),ne(f,f,u),ne(f,f,g),ne(f,f,g),ne(a[0],f,g),Le(s,a[0]),ne(s,s,g),Ei(s,u)&&ne(a[0],a[0],k),Le(s,a[0]),ne(s,s,g),Ei(s,u)?-1:(Ii(a[0])===d[31]>>7&&Ne(a[0],o,a[0]),ne(a[3],a[0],a[1]),0)}function tn(a,d,f,s){var u,g=new Uint8Array(32),x=new Uint8Array(64),C=[e(),e(),e(),e()],I=[e(),e(),e(),e()];if(f<64||Co(I,s))return-1;for(u=0;u<f;u++)a[u]=d[u];for(u=0;u<32;u++)a[u+32]=s[u];if(ut(x,a,f),en(x),Xr(C,I,x),ir(I,d.subarray(32)),nr(C,I),Jr(g,C),f-=64,ue(d,0,g,0)){for(u=0;u<f;u++)a[u]=0;return-1}for(u=0;u<f;u++)a[u]=d[u+64];return f}var rn=32,or=24,Tt=32,vt=16,Et=32,ar=32,It=32,kt=32,nn=32,Li=or,Po=Tt,wo=vt,Qe=64,ht=32,_t=64,sn=32,on=64;r.lowlevel={crypto_core_hsalsa20:Zt,crypto_stream_xor:qr,crypto_stream:wi,crypto_stream_salsa20_xor:Ci,crypto_stream_salsa20:Pi,crypto_onetimeauth:Vr,crypto_onetimeauth_verify:Ti,crypto_verify_16:fe,crypto_verify_32:ue,crypto_secretbox:Hr,crypto_secretbox_open:Wr,crypto_scalarmult:er,crypto_scalarmult_base:tr,crypto_box_beforenm:rr,crypto_box_afternm:Mi,crypto_box:_o,crypto_box_open:So,crypto_box_keypair:Ai,crypto_hash:ut,crypto_sign:Bi,crypto_sign_keypair:Zr,crypto_sign_open:tn,crypto_secretbox_KEYBYTES:rn,crypto_secretbox_NONCEBYTES:or,crypto_secretbox_ZEROBYTES:Tt,crypto_secretbox_BOXZEROBYTES:vt,crypto_scalarmult_BYTES:Et,crypto_scalarmult_SCALARBYTES:ar,crypto_box_PUBLICKEYBYTES:It,crypto_box_SECRETKEYBYTES:kt,crypto_box_BEFORENMBYTES:nn,crypto_box_NONCEBYTES:Li,crypto_box_ZEROBYTES:Po,crypto_box_BOXZEROBYTES:wo,crypto_sign_BYTES:Qe,crypto_sign_PUBLICKEYBYTES:ht,crypto_sign_SECRETKEYBYTES:_t,crypto_sign_SEEDBYTES:sn,crypto_hash_BYTES:on,gf:e,D:l,L:sr,pack25519:bt,unpack25519:Yr,M:ne,A:ze,S:Le,Z:Ne,pow2523:Ri,add:nr,set25519:Ze,modL:Qr,scalarmult:Xr,scalarbase:ir};function ji(a,d){if(a.length!==rn)throw new Error("bad key size");if(d.length!==or)throw new Error("bad nonce size")}function To(a,d){if(a.length!==It)throw new Error("bad public key size");if(d.length!==kt)throw new Error("bad secret key size")}function Be(){for(var a=0;a<arguments.length;a++)if(!(arguments[a]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function Fi(a){for(var d=0;d<a.length;d++)a[d]=0}r.randomBytes=function(a){var d=new Uint8Array(a);return t(d,a),d},r.secretbox=function(a,d,f){Be(a,d,f),ji(f,d);for(var s=new Uint8Array(Tt+a.length),u=new Uint8Array(s.length),g=0;g<a.length;g++)s[g+Tt]=a[g];return Hr(u,s,s.length,d,f),u.subarray(vt)},r.secretbox.open=function(a,d,f){Be(a,d,f),ji(f,d);for(var s=new Uint8Array(vt+a.length),u=new Uint8Array(s.length),g=0;g<a.length;g++)s[g+vt]=a[g];return s.length<32||Wr(u,s,s.length,d,f)!==0?null:u.subarray(Tt)},r.secretbox.keyLength=rn,r.secretbox.nonceLength=or,r.secretbox.overheadLength=vt,r.scalarMult=function(a,d){if(Be(a,d),a.length!==ar)throw new Error("bad n size");if(d.length!==Et)throw new Error("bad p size");var f=new Uint8Array(Et);return er(f,a,d),f},r.scalarMult.base=function(a){if(Be(a),a.length!==ar)throw new Error("bad n size");var d=new Uint8Array(Et);return tr(d,a),d},r.scalarMult.scalarLength=ar,r.scalarMult.groupElementLength=Et,r.box=function(a,d,f,s){var u=r.box.before(f,s);return r.secretbox(a,d,u)},r.box.before=function(a,d){Be(a,d),To(a,d);var f=new Uint8Array(nn);return rr(f,a,d),f},r.box.after=r.secretbox,r.box.open=function(a,d,f,s){var u=r.box.before(f,s);return r.secretbox.open(a,d,u)},r.box.open.after=r.secretbox.open,r.box.keyPair=function(){var a=new Uint8Array(It),d=new Uint8Array(kt);return Ai(a,d),{publicKey:a,secretKey:d}},r.box.keyPair.fromSecretKey=function(a){if(Be(a),a.length!==kt)throw new Error("bad secret key size");var d=new Uint8Array(It);return tr(d,a),{publicKey:d,secretKey:new Uint8Array(a)}},r.box.publicKeyLength=It,r.box.secretKeyLength=kt,r.box.sharedKeyLength=nn,r.box.nonceLength=Li,r.box.overheadLength=r.secretbox.overheadLength,r.sign=function(a,d){if(Be(a,d),d.length!==_t)throw new Error("bad secret key size");var f=new Uint8Array(Qe+a.length);return Bi(f,a,a.length,d),f},r.sign.open=function(a,d){if(Be(a,d),d.length!==ht)throw new Error("bad public key size");var f=new Uint8Array(a.length),s=tn(f,a,a.length,d);if(s<0)return null;for(var u=new Uint8Array(s),g=0;g<u.length;g++)u[g]=f[g];return u},r.sign.detached=function(a,d){for(var f=r.sign(a,d),s=new Uint8Array(Qe),u=0;u<s.length;u++)s[u]=f[u];return s},r.sign.detached.verify=function(a,d,f){if(Be(a,d,f),d.length!==Qe)throw new Error("bad signature size");if(f.length!==ht)throw new Error("bad public key size");var s=new Uint8Array(Qe+a.length),u=new Uint8Array(Qe+a.length),g;for(g=0;g<Qe;g++)s[g]=d[g];for(g=0;g<a.length;g++)s[g+Qe]=a[g];return tn(u,s,s.length,f)>=0},r.sign.keyPair=function(){var a=new Uint8Array(ht),d=new Uint8Array(_t);return Zr(a,d),{publicKey:a,secretKey:d}},r.sign.keyPair.fromSecretKey=function(a){if(Be(a),a.length!==_t)throw new Error("bad secret key size");for(var d=new Uint8Array(ht),f=0;f<d.length;f++)d[f]=a[32+f];return{publicKey:d,secretKey:new Uint8Array(a)}},r.sign.keyPair.fromSeed=function(a){if(Be(a),a.length!==sn)throw new Error("bad seed size");for(var d=new Uint8Array(ht),f=new Uint8Array(_t),s=0;s<32;s++)f[s]=a[s];return Zr(d,f,!0),{publicKey:d,secretKey:f}},r.sign.publicKeyLength=ht,r.sign.secretKeyLength=_t,r.sign.seedLength=sn,r.sign.signatureLength=Qe,r.hash=function(a){Be(a);var d=new Uint8Array(on);return ut(d,a,a.length),d},r.hash.hashLength=on,r.verify=function(a,d){return Be(a,d),a.length===0||d.length===0||a.length!==d.length?!1:re(a,0,d,0,a.length)===0},r.setPRNG=function(a){t=a},(function(){var a=typeof self<"u"?self.crypto||self.msCrypto:null;if(a&&a.getRandomValues){var d=65536;r.setPRNG(function(f,s){var u,g=new Uint8Array(s);for(u=0;u<s;u+=d)a.getRandomValues(g.subarray(u,u+Math.min(s-u,d)));for(u=0;u<s;u++)f[u]=g[u];Fi(g)})}else typeof an<"u"&&(a=zi(),a&&a.randomBytes&&r.setPRNG(function(f,s){var u,g=a.randomBytes(s);for(u=0;u<s;u++)f[u]=g[u];Fi(g)}))})()})(typeof fr<"u"&&fr.exports?fr.exports:self.nacl=self.nacl||{})});var fn=N((Ni,dr)=>{(function(r,e){"use strict";typeof dr<"u"&&dr.exports?dr.exports=e():(r.nacl||(r.nacl={}),r.nacl.util=e())})(Ni,function(){"use strict";var r={};function e(t){if(!/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(t))throw new TypeError("invalid encoding")}return r.decodeUTF8=function(t){if(typeof t!="string")throw new TypeError("expected string");var n,i=unescape(encodeURIComponent(t)),o=new Uint8Array(i.length);for(n=0;n<i.length;n++)o[n]=i.charCodeAt(n);return o},r.encodeUTF8=function(t){var n,i=[];for(n=0;n<t.length;n++)i.push(String.fromCharCode(t[n]));return decodeURIComponent(escape(i.join("")))},typeof atob>"u"?typeof Buffer.from<"u"?(r.encodeBase64=function(t){return Buffer.from(t).toString("base64")},r.decodeBase64=function(t){return e(t),new Uint8Array(Array.prototype.slice.call(Buffer.from(t,"base64"),0))}):(r.encodeBase64=function(t){return new Buffer(t).toString("base64")},r.decodeBase64=function(t){return e(t),new Uint8Array(Array.prototype.slice.call(new Buffer(t,"base64"),0))}):(r.encodeBase64=function(t){var n,i=[],o=t.length;for(n=0;n<o;n++)i.push(String.fromCharCode(t[n]));return btoa(i.join(""))},r.decodeBase64=function(t){e(t);var n,i=atob(t),o=new Uint8Array(i.length);for(n=0;n<i.length;n++)o[n]=i.charCodeAt(n);return o}),r})});var Ki=N((kf,$i)=>{var dn=class{constructor(){this.handlers=new Map}on(e,t){this.handlers.has(e)||this.handlers.set(e,new Set),this.handlers.get(e).add(t)}off(e,t){let n=this.handlers.get(e);n&&(n.delete(t),n.size===0&&this.handlers.delete(e))}emit(e,t){let n=this.handlers.get(e);if(n)for(let i of n)i(t)}};$i.exports=dn});var hn=N((Rf,qi)=>{var ye=class ye{fastPow(e,t,n){if(n===BigInt(1))return BigInt(0);let i=BigInt(1),o=e%n,c=t;for(;c>0;)(c&BigInt(1))===BigInt(1)&&(i=i*o%n),c=c>>BigInt(1),o=o*o%n;return i}quadRes(e){return this.fastPow(e,ye.pHalf,ye.p)===BigInt(1)}modSqrtOp(e){let t,n=e;return this.quadRes(n)?t=this.fastPow(n,ye.pQuarter,ye.p):(n=(-n+ye.p)%ye.p,t=this.fastPow(n,ye.pQuarter,ye.p)),t}modOp(e,t){let n=e%ye.p;for(let i=BigInt(0);i<t;i+=BigInt(1))n=this.modSqrtOp(n);return n}modVerif(e,t,n){let i=t%ye.p,o=e;for(let c=BigInt(0);c<n;c+=BigInt(1))o=o**BigInt(2)%ye.p;return this.quadRes(o)||(o=(-o+ye.p)%ye.p),i===o||(-i+ye.p)%ye.p===o}generateProofVDF(e,t){return this.modOp(t,e)}verifyProofVDF(e,t,n){return this.modVerif(n,t,e)}};cr(ye,"p",BigInt("170082004324204494273811327264862981553264701145937538369570764779791492622392118654022654452947093285873855529044371650895045691292912712699015605832276411308653107069798639938826015099738961427172366594187783204437869906954750443653318078358839409699824714551430573905637228307966826784684174483831608534979")),cr(ye,"pHalf",ye.p-BigInt(1)>>BigInt(1)),cr(ye,"pQuarter",ye.p+BigInt(1)>>BigInt(2));var un=ye;qi.exports=un});var pn=N((Mf,Hi)=>{var Vi=hn(),ln=class{static async compute(e,t){let n=new Vi,i=BigInt(`0x${e}`);return n.generateProofVDF(t,i).toString(16)}static async verify(e,t,n){let i=new Vi,o=BigInt(`0x${e}`),c=BigInt(`0x${n}`);return i.verifyProofVDF(t,o,c)}};Hi.exports=ln});var bn=N((Df,Ji)=>{var Me=cn(),me=fn(),yn=pn(),ur={enabled:!0,signingEnabled:!0,encryptionEnabled:!0,powEnabled:!0,powTargetMs:1e3,appPassword:"change-this-app-password",broadcastPasswords:{},resolveBroadcastPassword:null,powSteps:22,trustedPeerKeys:{},kdfIterations:1e5};function At(r){return r===null||typeof r!="object"?JSON.stringify(r):Array.isArray(r)?`[${r.map(t=>At(t)).join(",")}]`:`{${Object.keys(r).sort().map(t=>`${JSON.stringify(t)}:${At(r[t])}`).join(",")}}`}function Gi(r,e){let t=new Uint8Array(r.length+e.length);return t.set(r,0),t.set(e,r.length),t}function hr(r){return Me.hash(r).slice(0,32)}function Wi(r){return Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}function Mt(r){return me.decodeUTF8(r)}async function gn(r,e,t){let n=globalThis.crypto&&globalThis.crypto.subtle;if(n){let i=await n.importKey("raw",Mt(r),"PBKDF2",!1,["deriveBits"]),o=await n.deriveBits({name:"PBKDF2",salt:e,iterations:t,hash:"SHA-256"},i,256);return new Uint8Array(o)}try{let{pbkdf2Sync:i}=an("crypto");return new Uint8Array(i(r,Buffer.from(e),t,32,"sha256"))}catch{return hr(Gi(Mt(r),e))}}function Yi(r,e){return hr(Gi(Mt(r),e))}function mn(r){if(!r||typeof r!="object")throw new Error("Public key must be an object with signingPublicKey and encryptionPublicKey");if(!r.signingPublicKey||!r.encryptionPublicKey)throw new Error("Public key object is missing signingPublicKey or encryptionPublicKey");return{signingPublicKey:r.signingPublicKey,encryptionPublicKey:r.encryptionPublicKey}}var xn=class{constructor({nodeId:e,options:t={},now:n}={}){if(!e)throw new Error("MessageSecurityService requires nodeId");this.nodeId=e,this.options={...ur,...t},this.now=n||(()=>Date.now());let i=t.keyPair||{signing:Me.sign.keyPair(),encryption:Me.box.keyPair()};this.signingSecretKey=i.signing.secretKey,this.signingPublicKey=i.signing.publicKey,this.encryptionSecretKey=i.encryption.secretKey,this.encryptionPublicKey=i.encryption.publicKey,this.publicKeyBundle={signingPublicKey:me.encodeBase64(this.signingPublicKey),encryptionPublicKey:me.encodeBase64(this.encryptionPublicKey)},this.peerPublicKeys=new Map;for(let[o,c]of Object.entries(this.options.trustedPeerKeys||{}))this.peerPublicKeys.set(o,mn(c));this.calibratedPowSteps=this.options.powSteps}getPublicKey(){return{...this.publicKeyBundle}}registerPeerPublicKey(e,t){this.peerPublicKeys.set(e,mn(t))}resolvePeerPublicKey(e,t){let n=this.peerPublicKeys.get(e),i=t?mn(t):null;if(n&&i&&(n.signingPublicKey!==i.signingPublicKey||n.encryptionPublicKey!==i.encryptionPublicKey))throw new Error(`Public key mismatch for peer ${e}`);return n||i||null}buildEnvelopeBase({messageType:e,payload:t,targetId:n=null}){return{version:1,senderId:this.nodeId,senderPublicKey:this.getPublicKey(),targetId:n,messageType:e,timestamp:this.now(),payload:t}}async secureOutgoingMessage({messageType:e,payload:t,targetId:n=null,securityContext:i={}}){if(!this.options.enabled)return this.buildEnvelopeBase({messageType:e,payload:t,targetId:n});let o=this.buildEnvelopeBase({messageType:e,payload:t,targetId:n}),c=await this.encryptPayload({payload:t,targetId:n,securityContext:i});if(o.payload=c.payload,o.security={encryption:c.security,signing:{enabled:!1},pow:{enabled:!1}},this.options.powEnabled){let h=await this.generatePow(o);o.security.pow={enabled:!0,messageHash:h.messageHash,challenge:h.challenge,proof:h.proof,steps:h.steps,durationMs:h.durationMs}}if(this.options.signingEnabled){let h=this.canonicalSigningInput(o),l=Me.sign.detached(me.decodeUTF8(h),this.signingSecretKey);o.security.signing={enabled:!0,algorithm:"ed25519",signature:me.encodeBase64(l)}}return o}canonicalSigningInput(e){return At({version:e.version,senderId:e.senderId,senderPublicKey:e.senderPublicKey,targetId:e.targetId,messageType:e.messageType,timestamp:e.timestamp,payload:e.payload,security:{encryption:e.security?e.security.encryption:{enabled:!1},pow:e.security?e.security.pow:{enabled:!1}}})}canonicalPowInput(e){return At({version:e.version,senderId:e.senderId,senderPublicKey:e.senderPublicKey,targetId:e.targetId,messageType:e.messageType,timestamp:e.timestamp,payload:e.payload,security:{encryption:e.security?e.security.encryption:{enabled:!1}}})}computePowMessageHash(e){return Wi(hr(Mt(this.canonicalPowInput(e))))}async decryptIncomingMessage(e){if(!this.options.enabled)return{ignored:!1,messageType:e.messageType,senderId:e.senderId,targetId:e.targetId,payload:e.payload};if(!e||typeof e!="object")throw new Error("Incoming message is invalid");if(e.targetId&&e.targetId!==this.nodeId)return{ignored:!0};e.security&&e.security.pow&&e.security.pow.enabled&&this.options.powEnabled&&await this.verifyPow(e),e.security&&e.security.signing&&e.security.signing.enabled&&this.options.signingEnabled&&this.verifySignature(e);let t=await this.decryptPayload(e);return{ignored:!1,messageType:e.messageType,senderId:e.senderId,targetId:e.targetId,payload:t}}resolveBroadcastPassword(e){let t=e||"default";if(typeof this.options.resolveBroadcastPassword=="function"){let i=this.options.resolveBroadcastPassword({scope:t,nodeId:this.nodeId,defaultPassword:this.options.appPassword,broadcastPasswords:this.options.broadcastPasswords||{}});if(typeof i=="string"&&i.length>0)return i}let n=this.options.broadcastPasswords?this.options.broadcastPasswords[t]:null;return typeof n=="string"&&n.length>0?n:this.options.appPassword}async encryptPayload({payload:e,targetId:t,securityContext:n={}}){if(!this.options.encryptionEnabled)return{payload:e,security:{enabled:!1,mode:"none"}};let i=me.decodeUTF8(JSON.stringify(e));if(t){let k=this.resolvePeerPublicKey(t,null);if(!k)throw new Error(`Missing public key for target peer ${t}`);let $=Me.randomBytes(Me.box.nonceLength),re=Me.box(i,$,me.decodeBase64(k.encryptionPublicKey),this.encryptionSecretKey);return{payload:me.encodeBase64(re),security:{enabled:!0,mode:"direct",nonce:me.encodeBase64($),senderEncryptionPublicKey:this.publicKeyBundle.encryptionPublicKey}}}let o=n.broadcastScope||"default",c=Me.randomBytes(Me.secretbox.nonceLength),h=Me.randomBytes(16),l=this.resolveBroadcastPassword(o),y=this.options.kdfIterations||ur.kdfIterations,m=await gn(l,h,y),_=Me.secretbox(i,c,m);return{payload:me.encodeBase64(_),security:{enabled:!0,mode:"broadcast",scope:o,nonce:me.encodeBase64(c),salt:me.encodeBase64(h),kdf:"pbkdf2",kdfIterations:y}}}async decryptPayload(e){let t=e.security?e.security.encryption:null;if(!t||!t.enabled||!this.options.encryptionEnabled)return e.payload;let n=me.decodeBase64(e.payload);if(t.mode==="broadcast"){let i=t.scope||"default",o=this.resolveBroadcastPassword(i),c=me.decodeBase64(t.salt),h=me.decodeBase64(t.nonce),l;if(t.kdf==="pbkdf2"){let m=t.kdfIterations||ur.kdfIterations;l=await gn(o,c,m)}else l=Yi(o,c);let y=Me.secretbox.open(n,h,l);if(!y)throw new Error("Unable to decrypt broadcast payload");return JSON.parse(me.encodeUTF8(y))}if(t.mode==="direct"){let i=me.decodeBase64(t.senderEncryptionPublicKey),o=me.decodeBase64(t.nonce),c=Me.box.open(n,o,i,this.encryptionSecretKey);if(!c)throw new Error("Unable to decrypt direct payload");return JSON.parse(me.encodeUTF8(c))}throw new Error(`Unsupported encryption mode: ${t.mode}`)}verifySignature(e){let t=this.resolvePeerPublicKey(e.senderId,e.senderPublicKey);if(!t)throw new Error(`Missing public key for sender ${e.senderId}`);let n=this.canonicalSigningInput(e);if(!Me.sign.detached.verify(me.decodeUTF8(n),me.decodeBase64(e.security.signing.signature),me.decodeBase64(t.signingPublicKey))){let o=new Error(`Invalid signature for sender ${e.senderId}`);throw o.code="INVALID_SIGNATURE",o}return!0}async determinePowSteps(){if(typeof this.calibratedPowSteps=="bigint")return this.calibratedPowSteps;if(typeof this.options.powSteps=="number")return this.calibratedPowSteps=BigInt(Math.max(1,this.options.powSteps)),this.calibratedPowSteps;let e=Math.max(1,Number(this.options.powTargetMs||1)),t=Wi(hr(Mt(`probe:${this.nodeId}:${this.now()}`))),n=BigInt(2),i=this.now();await yn.compute(t,n);let o=Math.max(1,this.now()-i),c=Math.max(1,Math.round(e/o*Number(n)));return this.calibratedPowSteps=BigInt(c),this.calibratedPowSteps}async generatePow(e){let t=this.computePowMessageHash(e),n=t,i=await this.determinePowSteps(),o=this.now(),c=await yn.compute(n,i),h=this.now()-o;return{messageHash:t,challenge:n,proof:c,steps:i.toString(),durationMs:h}}async verifyPow(e){let t=this.computePowMessageHash(e),n=e.security.pow;if(!n||!n.messageHash||n.messageHash!==t||n.challenge!==n.messageHash){let o=new Error("PoW challenge mismatch");throw o.code="INVALID_POW",o}if(!await yn.verify(n.messageHash,BigInt(n.steps),n.proof)){let o=new Error("PoW verification failed");throw o.code="INVALID_POW",o}return!0}};Ji.exports={MessageSecurityService:xn,stableStringify:At,deriveBroadcastKey:gn,legacyBroadcastKey:Yi,DEFAULT_SECURITY_OPTIONS:ur}});var Zi=N((Uf,Xi)=>{var Ro=cn(),Ao=fn(),Mo=Ki(),{MessageSecurityService:Do,stableStringify:Uo}=bn();function Dt(r){let e=Uo(r||{}),t=Ao.decodeUTF8(e),n=Ro.hash(t);return`sha512:${Array.from(n,o=>o.toString(16).padStart(2,"0")).join("")}`}var vn=class extends Mo{constructor({nodeId:e,networkAdapter:t,idGenerator:n,now:i,security:o}={}){if(super(),!e)throw new Error("DignityP2P requires nodeId");if(!t)throw new Error("DignityP2P requires networkAdapter");this.nodeId=e,this.networkAdapter=t,this.idGenerator=n||(()=>`${Date.now()}-${Math.random().toString(16).slice(2)}`),this.now=i||(()=>Date.now()),this.securityService=new Do({nodeId:this.nodeId,options:o||{},now:this.now}),this.bannedPeers=new Map,this.peerBanDurationMs=o&&typeof o.banDurationMs=="number"?o.banDurationMs:2880*60*1e3,this.resolveBroadcastScope=o&&typeof o.resolveBroadcastScope=="function"?o.resolveBroadcastScope:(()=>"default"),this.defaultDiscoveryHeartbeatMs=o&&typeof o.discoveryHeartbeatMs=="number"?o.discoveryHeartbeatMs:15e3,this.defaultPresenceTtlMs=o&&typeof o.presenceTtlMs=="number"?o.presenceTtlMs:45e3,this.discoveryRooms=new Map,this.presenceByScope=new Map,this.state=new Map,this.appliedOperations=new Set,this.boundMessageHandler=this.handleIncomingMessage.bind(this)}async start(){this.networkAdapter.onMessage(this.boundMessageHandler),await this.networkAdapter.start(this.nodeId)}async stop(){let e=Array.from(this.discoveryRooms.keys());for(let t of e)try{await this.leaveDiscovery(t)}catch(n){this.emit("warning",{type:"presence-leave-failed",scope:t,error:n})}this.networkAdapter.offMessage(this.boundMessageHandler),await this.networkAdapter.stop()}getCollection(e){if(!e)throw new Error("collectionName is required");return this.state.has(e)||this.state.set(e,new Map),this.state.get(e)}normalizeRecord(e){if(!e||e.deletedAt)return null;let t={...e.data||{}};return{id:e.id,ownerId:e.ownerId,collaboratorIds:Array.isArray(e.collaboratorIds)?[...e.collaboratorIds]:[],createdAt:e.createdAt,updatedAt:e.updatedAt,version:e.version,hash:e.hash||Dt(t),data:t}}canUpdateRecord(e,t){return!e||!t?!1:e.ownerId===t?!0:Array.isArray(e.collaboratorIds)&&e.collaboratorIds.includes(t)}normalizeCollaboratorIds(e){return Array.isArray(e)?[...new Set(e.filter(Boolean))]:[]}getRecordPeerIds(e,t,n={}){let i=n.fromRecord||this.getCollection(e).get(t);if(!i)return[];let o=n.includeSelf===!0,c=[i.ownerId,...i.collaboratorIds||[]];return[...new Set(c.filter(Boolean).filter(h=>o||h!==this.nodeId))]}resolveReplicationPeers(e,t,n={},i={}){if(n.connectToPeers===!1)return;if(Array.isArray(n.connectToPeers))return n.connectToPeers;let o=new Set;if(i.fromRecord)for(let c of this.getRecordPeerIds(e,t,{fromRecord:i.fromRecord,includeSelf:!0}))o.add(c);else if(t)for(let c of this.getRecordPeerIds(e,t,{includeSelf:!0}))o.add(c);if(Array.isArray(n.collaborators))for(let c of this.normalizeCollaboratorIds(n.collaborators))o.add(c);if(Array.isArray(i.extraPeerIds))for(let c of i.extraPeerIds)c&&o.add(c);return[...o].filter(c=>c&&c!==this.nodeId)}async create(e,t,n={}){let i=this.getCollection(e),o=n.id||this.idGenerator();if(i.has(o)&&!i.get(o).deletedAt)throw new Error(`Object ${o} already exists in ${e}`);let c=this.now(),h=this.normalizeCollaboratorIds(n.collaborators),l={opId:this.idGenerator(),kind:"create",collectionName:e,id:o,actorId:this.nodeId,ownerId:this.nodeId,collaboratorIds:h,timestamp:c,payload:{...t||{}}};return this.applyOperation(l),await this.broadcastMessage("operation",l,{broadcastScope:n.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:l,collectionName:e}),connectToPeers:this.resolveReplicationPeers(e,null,n,{extraPeerIds:n.collaborators})}),this.read(e,o)}read(e,t){let n=this.getCollection(e);return this.normalizeRecord(n.get(t))}list(e,t={}){let n=this.getCollection(e),i=t.includeDeleted||!1,o=[];for(let c of n.values())if(!(c.deletedAt&&!i)){if(c.deletedAt&&i){o.push({id:c.id,ownerId:c.ownerId,deletedAt:c.deletedAt,version:c.version});continue}o.push(this.normalizeRecord(c))}return o}async update(e,t,n,i={}){let o=this.getCollection(e).get(t);if(!o||o.deletedAt)throw new Error(`Object ${t} does not exist in ${e}`);if(!this.canUpdateRecord(o,this.nodeId))throw new Error(`Only owner ${o.ownerId} or collaborators can update object ${t}`);if(i.collaborators!==void 0&&o.ownerId!==this.nodeId)throw new Error(`Only owner ${o.ownerId} can change collaborators on object ${t}`);if(typeof i.expectedVersion=="number"&&o.version!==i.expectedVersion){this.emitConflict({kind:"update",collection:e,id:t,expectedVersion:i.expectedVersion,currentVersion:o.version,phase:"local"});let h=new Error(`Version conflict on ${e}/${t}: expected ${i.expectedVersion}, current ${o.version}`);throw h.code="VERSION_CONFLICT",h}let c={opId:this.idGenerator(),kind:"update",collectionName:e,id:t,actorId:this.nodeId,timestamp:this.now(),baseVersion:o.version,payload:{...n}};return i.collaborators!==void 0&&(c.collaboratorIds=this.normalizeCollaboratorIds(i.collaborators)),this.applyOperation(c),await this.broadcastMessage("operation",c,{broadcastScope:i.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:c,collectionName:e}),connectToPeers:this.resolveReplicationPeers(e,t,i,{fromRecord:o})}),this.read(e,t)}async updateWithRetry(e,t,n,i={}){let o=typeof i.maxAttempts=="number"?i.maxAttempts:5;for(let c=0;c<o;c+=1){let h=this.read(e,t);if(!h)throw new Error(`Object ${t} does not exist in ${e}`);let l=await n(h);try{return await this.update(e,t,l,{...i,expectedVersion:h.version})}catch(y){if(y.code!=="VERSION_CONFLICT"||c===o-1)throw y}}throw new Error(`Unable to update ${e}/${t} after ${o} attempts`)}async transferOwnership(e,t,n,i={}){if(!n)throw new Error("newOwnerId is required");let o=this.getCollection(e).get(t);if(!o||o.deletedAt)throw new Error(`Object ${t} does not exist in ${e}`);if(o.ownerId!==this.nodeId)throw new Error(`Only owner ${o.ownerId} can transfer object ${t}`);let c={opId:this.idGenerator(),kind:"transfer-ownership",collectionName:e,id:t,actorId:this.nodeId,timestamp:this.now(),baseVersion:o.version,newOwnerId:n,keepPreviousOwnerAsCollaborator:i.keepAsCollaborator!==!1};return this.applyOperation(c),await this.broadcastMessage("operation",c,{broadcastScope:i.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:c,collectionName:e}),connectToPeers:this.resolveReplicationPeers(e,t,i,{fromRecord:o,extraPeerIds:[n]})}),this.read(e,t)}async remove(e,t,n={}){let i=this.getCollection(e).get(t);if(!i||i.deletedAt)throw new Error(`Object ${t} does not exist in ${e}`);if(i.ownerId!==this.nodeId)throw new Error(`Only owner ${i.ownerId} can delete object ${t}`);let o={opId:this.idGenerator(),kind:"delete",collectionName:e,id:t,actorId:this.nodeId,timestamp:this.now(),baseVersion:i.version};this.applyOperation(o),await this.broadcastMessage("operation",o,{broadcastScope:n.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:o,collectionName:e}),connectToPeers:this.resolveReplicationPeers(e,t,n,{fromRecord:i})})}registerPeerPublicKey(e,t){this.securityService.registerPeerPublicKey(e,t)}trustPeerPublicKey(e,t){if(!e||!t)return!1;try{return this.registerPeerPublicKey(e,t),!0}catch(n){return this.emit("warning",{type:"peer-key-trust-failed",peerId:e,error:n}),!1}}trustPeerFromMetadata(e,t){return!t||!t.publicKey?!1:this.trustPeerPublicKey(e,t.publicKey)}getPublicKey(){return this.securityService.getPublicKey()}async connectToPeer(e){if(!e||e===this.nodeId)return null;if(typeof this.networkAdapter.connectToPeer!="function")throw new Error("Network adapter does not support connectToPeer");return this.networkAdapter.connectToPeer(e)}getConnectionStats(){let e=this.networkAdapter;if(!e)return{openCount:0,peerIds:[]};let t=typeof e.listOpenPeerIds=="function"?e.listOpenPeerIds():[];return{openCount:typeof e.getOpenConnectionCount=="function"?e.getOpenConnectionCount():t.length,peerIds:t}}async ensureConnectedToPeers(e=[]){let t=[...new Set((e||[]).filter(Boolean))],n=[];for(let i of t)if(i!==this.nodeId)try{await this.connectToPeer(i),n.push({peerId:i,ok:!0})}catch(o){this.emit("warning",{type:"peer-connect-failed",peerId:i,error:o}),n.push({peerId:i,ok:!1,error:o})}return n}async broadcastMessage(e,t,n={}){let i=n.connectToPeers;Array.isArray(i)&&i.length>0&&await this.ensureConnectedToPeers(i);let o=await this.securityService.secureOutgoingMessage({messageType:e,payload:t,targetId:null,securityContext:n});await this.networkAdapter.broadcast(o)}async sendDirectMessage(e,t,n){if(e)try{await this.connectToPeer(e)}catch(o){this.emit("warning",{type:"direct-message-connect-failed",targetId:e,error:o})}let i=await this.securityService.secureOutgoingMessage({messageType:t,payload:n,targetId:e});await this.networkAdapter.broadcast(i)}getPresenceMap(e){return this.presenceByScope.has(e)||this.presenceByScope.set(e,new Map),this.presenceByScope.get(e)}upsertPresence(e,t,n,i,o){let c=this.getPresenceMap(e),h=c.get(t),l={peerId:t,scope:e,metadata:n?{...n}:{},lastSeenAt:o,expiresAt:o+i};return c.set(t,l),this.trustPeerFromMetadata(t,l.metadata),h||this.emit("peerdiscovered",{scope:e,peerId:t,metadata:l.metadata}),l}prunePresence(e){let t=this.presenceByScope.get(e);if(!t)return;let n=this.now();for(let[i,o]of t.entries())o.expiresAt<=n&&(t.delete(i),this.emit("peerleft",{scope:e,peerId:i,reason:"timeout"}))}async joinDiscovery(e="main",t={}){let n=e||"main",i=t.heartbeatIntervalMs||this.defaultDiscoveryHeartbeatMs,o=t.ttlMs||this.defaultPresenceTtlMs,c={publicKey:this.getPublicKey(),...t.metadata||{}},h=Array.isArray(t.bootstrapPeerIds)?[...new Set(t.bootstrapPeerIds.filter(Boolean))]:[],l=this.discoveryRooms.get(n);l&&l.timer&&clearInterval(l.timer),h.length>0&&await this.ensureConnectedToPeers(h);let y=setInterval(()=>{this.announcePresence(n).catch(m=>{this.emit("warning",{type:"presence-heartbeat-failed",scope:n,error:m})})},i);this.discoveryRooms.set(n,{metadata:c,bootstrapPeerIds:h,heartbeatIntervalMs:i,ttlMs:o,timer:y}),this.upsertPresence(n,this.nodeId,c,o,this.now()),await this.announcePresence(n)}async announcePresence(e="main",t=null){let n=e||"main",i=this.discoveryRooms.get(n);if(!i)throw new Error(`Scope ${n} has not been joined for discovery`);let o=t||i.metadata||{},c=this.now();this.upsertPresence(n,this.nodeId,o,i.ttlMs,c),await this.broadcastMessage("presence:announce",{scope:n,peerId:this.nodeId,metadata:o,ttlMs:i.ttlMs,announcedAt:c},{broadcastScope:n})}async leaveDiscovery(e="main"){let t=e||"main",n=this.discoveryRooms.get(t);if(!n)return;n.timer&&clearInterval(n.timer),this.discoveryRooms.delete(t);let i=this.presenceByScope.get(t);i&&i.delete(this.nodeId),await this.broadcastMessage("presence:leave",{scope:t,peerId:this.nodeId,leftAt:this.now()},{broadcastScope:t})}listPeers(e="main",t={}){let n=e||"main",i=t.includeSelf!==!1;this.prunePresence(n);let o=this.presenceByScope.get(n);return o?Array.from(o.values()).filter(c=>i||c.peerId!==this.nodeId).map(c=>({peerId:c.peerId,scope:c.scope,metadata:{...c.metadata},lastSeenAt:c.lastSeenAt,expiresAt:c.expiresAt})):[]}async handleIncomingMessage(e){if(e&&e.opId&&e.kind){this.applyOperation(e);return}if(e&&e.senderId&&this.isPeerBanned(e.senderId)){this.emit("messageignored",{senderId:e.senderId,reason:"peer-banned"});return}e&&e.senderId&&e.senderPublicKey&&this.trustPeerPublicKey(e.senderId,e.senderPublicKey);let t;try{t=await this.securityService.decryptIncomingMessage(e)}catch(n){let i=e?e.senderId:null;i&&(n.code==="INVALID_SIGNATURE"||n.code==="INVALID_POW")&&this.banPeer(i,this.peerBanDurationMs,n.code),this.emit("securityerror",{senderId:i,error:n});return}if(!(!t||t.ignored)){if(t.messageType==="operation"){this.applyOperation(t.payload);return}if(t.messageType==="record:snapshot"){let n=t.payload||{},{collectionName:i,record:o}=n;i&&o&&this.restoreRecord(i,o)&&this.emit("change",{kind:"snapshot",collection:i,id:o.id});return}if(t.messageType==="presence:announce"){let n=t.payload||{},i=n.scope||"main",o=n.peerId||t.senderId;if(!o)return;let h=!this.getPresenceMap(i).has(o);this.upsertPresence(i,o,n.metadata||{},n.ttlMs||this.defaultPresenceTtlMs,n.announcedAt||this.now()),h&&o!==this.nodeId&&this.discoveryRooms.has(i)&&(typeof this.networkAdapter.connectToPeer=="function"&&Promise.resolve(this.connectToPeer(o)).catch(l=>{this.emit("warning",{type:"peer-connect-failed",scope:i,peerId:o,error:l})}),this.announcePresence(i).catch(l=>{this.emit("warning",{type:"presence-handshake-failed",scope:i,error:l})}));return}if(t.messageType==="presence:leave"){let n=t.payload||{},i=n.scope||"main",o=n.peerId||t.senderId,c=this.presenceByScope.get(i);c&&o&&c.has(o)&&(c.delete(o),this.emit("peerleft",{scope:i,peerId:o,reason:"leave"}));return}this.emit("message",{senderId:t.senderId,targetId:t.targetId,type:t.messageType,payload:t.payload})}}banPeer(e,t=this.peerBanDurationMs,n="manual"){if(!e)return;let i=this.now()+Math.max(1,t);this.bannedPeers.set(e,{peerId:e,reason:n,bannedAt:this.now(),bannedUntil:i}),this.emit("peerbanned",{peerId:e,reason:n,bannedUntil:i})}unbanPeer(e){this.bannedPeers.delete(e),this.emit("peerunbanned",{peerId:e})}getBanInfo(e){let t=this.bannedPeers.get(e);return t?t.bannedUntil<=this.now()?(this.bannedPeers.delete(e),null):{...t}:null}isPeerBanned(e){return this.getBanInfo(e)!==null}emitConflict(e){this.emit("conflict",e)}restoreRecord(e,t){if(!t||!t.id)return!1;let n=this.getCollection(e),i=n.get(t.id);if(i&&i.version>=t.version)return!1;let o={...t.data||{}},c=Dt(o);return t.hash&&t.hash!==c&&this.emit("warning",{type:"content-hash-mismatch",collection:e,id:t.id,advertisedHash:t.hash,computedHash:c}),n.set(t.id,{id:t.id,ownerId:t.ownerId,collaboratorIds:this.normalizeCollaboratorIds(t.collaboratorIds),data:o,hash:c,createdAt:t.createdAt,updatedAt:t.updatedAt,deletedAt:t.deletedAt||null,version:t.version}),!0}async pushRecordSnapshot(e,t,n={}){let o=this.getCollection(e).get(t);if(!o||o.deletedAt)throw new Error(`Object ${t} does not exist in ${e}`);let c={id:o.id,ownerId:o.ownerId,collaboratorIds:Array.isArray(o.collaboratorIds)?[...o.collaboratorIds]:[],data:{...o.data||{}},hash:o.hash||Dt(o.data||{}),createdAt:o.createdAt,updatedAt:o.updatedAt,deletedAt:o.deletedAt||null,version:o.version};return await this.broadcastMessage("record:snapshot",{collectionName:e,record:c},{broadcastScope:n.broadcastScope||this.resolveBroadcastScope({messageType:"record:snapshot",collectionName:e,id:t}),connectToPeers:this.resolveReplicationPeers(e,t,n,{fromRecord:o})}),c}applyOperation(e){if(!e||!e.opId||this.appliedOperations.has(e.opId))return!1;let t=this.getCollection(e.collectionName),n=t.get(e.id);if(e.kind==="create")return n&&!n.deletedAt?!1:(t.set(e.id,{id:e.id,ownerId:e.ownerId,collaboratorIds:this.normalizeCollaboratorIds(e.collaboratorIds),data:{...e.payload||{}},hash:Dt(e.payload||{}),createdAt:e.timestamp,updatedAt:e.timestamp,deletedAt:null,version:1}),this.appliedOperations.add(e.opId),this.emit("change",{kind:"create",collection:e.collectionName,id:e.id}),!0);if(!n||n.deletedAt)return e.kind!=="create"&&this.emit("warning",{type:"orphan-operation",kind:e.kind,collection:e.collectionName,id:e.id,actorId:e.actorId,hint:"Peer is missing the record; pushRecordSnapshot from the owner to catch up."}),!1;if(e.kind==="transfer-ownership"){if(e.actorId!==n.ownerId)return!1;if(typeof e.baseVersion=="number"&&e.baseVersion!==n.version)return this.emitConflict({kind:e.kind,collection:e.collectionName,id:e.id,expectedVersion:e.baseVersion,currentVersion:n.version,phase:"remote",operation:e}),!1;let i=n.ownerId;if(n.ownerId=e.newOwnerId,e.keepPreviousOwnerAsCollaborator!==!1){let o=this.normalizeCollaboratorIds(n.collaboratorIds);o.includes(i)||o.push(i),n.collaboratorIds=o.filter(c=>c!==e.newOwnerId)}return n.updatedAt=e.timestamp,n.version+=1,this.appliedOperations.add(e.opId),this.emit("change",{kind:"transfer-ownership",collection:e.collectionName,id:e.id,previousOwnerId:i,newOwnerId:e.newOwnerId}),!0}return e.kind==="delete"?e.actorId!==n.ownerId?!1:typeof e.baseVersion=="number"&&e.baseVersion!==n.version?(this.emitConflict({kind:e.kind,collection:e.collectionName,id:e.id,expectedVersion:e.baseVersion,currentVersion:n.version,phase:"remote",operation:e}),!1):(n.deletedAt=e.timestamp,n.updatedAt=e.timestamp,n.version+=1,this.appliedOperations.add(e.opId),this.emit("change",{kind:"delete",collection:e.collectionName,id:e.id}),!0):this.canUpdateRecord(n,e.actorId)?typeof e.baseVersion=="number"&&e.baseVersion!==n.version?(this.emitConflict({kind:e.kind,collection:e.collectionName,id:e.id,expectedVersion:e.baseVersion,currentVersion:n.version,phase:"remote",operation:e}),!1):e.kind==="update"?(n.data={...n.data,...e.payload},n.hash=Dt(n.data),Array.isArray(e.collaboratorIds)&&e.actorId===n.ownerId&&(n.collaboratorIds=this.normalizeCollaboratorIds(e.collaboratorIds)),n.updatedAt=e.timestamp,n.version+=1,this.appliedOperations.add(e.opId),this.emit("change",{kind:"update",collection:e.collectionName,id:e.id}),!0):!1:!1}};Xi.exports=vn});var Sn=N((Of,Qi)=>{var _n=class{constructor(e=[]){this.providers=[...e],this.activeProvider=null}registerProvider(e){this.providers.push(e)}getProvidersByPriority(){return[...this.providers].sort((e,t)=>(e.priority||0)-(t.priority||0))}async connect(e=new Set){let t=this.getProvidersByPriority().filter(i=>!e.has(i.id)),n;for(let i of t)try{return await i.connect(),this.activeProvider=i,i}catch(o){n=o}throw n||new Error("No signaling provider could connect")}async send(e){this.activeProvider||await this.connect();try{await this.activeProvider.send(e)}catch(t){this.activeProvider&&typeof this.activeProvider.disconnect=="function"&&await this.activeProvider.disconnect();let n=this.activeProvider?this.activeProvider.id:null;this.activeProvider=null;let i=n?new Set([n]):new Set;return await this.connect(i),await this.activeProvider.send(e),t}return null}onMessage(e){for(let t of this.providers)typeof t.onMessage=="function"&&t.onMessage(e)}async disconnect(){let e=this.providers.filter(t=>typeof t.disconnect=="function").map(t=>t.disconnect());await Promise.all(e),this.activeProvider=null}};Qi.exports=_n});var lr=N((Bf,ts)=>{function es(r){let e="";for(;e.length<r;){let t=Math.random().toString(36).slice(2);e+=t.length>0?t:"0"}return e.slice(0,r)}var Cn=class{constructor({id:e,url:t,WebSocketImpl:n,priority:i=0}){if(!t)throw new Error("WebSocket signaling provider requires a url");this.id=e||t,this.url=t,this.priority=i,this.WebSocketImpl=n||globalThis.WebSocket,this.socket=null,this.messageHandlers=new Set}async connect(){if(!this.WebSocketImpl)throw new Error("WebSocket implementation is not available");await new Promise((e,t)=>{let n=new this.WebSocketImpl(this.buildConnectionUrl());n.onopen=()=>{this.socket=n,e()},n.onerror=()=>{t(new Error(`Unable to connect to signaling url ${this.url}`))},n.onmessage=i=>{let o=i.data;try{o=JSON.parse(i.data)}catch{o=i.data}for(let c of this.messageHandlers)c(o)}})}buildConnectionUrl(){if(!/^wss:\/\/(peerjs\.92k\.de|0\.peerjs\.com)(\/|$)/.test(this.url))return this.url;let t=`dignityjs_${es(10)}`,n=es(10),i=this.url.includes("?"),o=/[?&]id=/.test(this.url),c=/[?&]token=/.test(this.url),h=this.url;return o||(h+=`${i?"&":"?"}id=${t}`),c||(h+=`${h.includes("?")?"&":"?"}token=${n}`),h}onMessage(e){this.messageHandlers.add(e)}async send(e){if(!this.socket||this.socket.readyState!==1)throw new Error(`Signaling socket is not open for ${this.url}`);this.socket.send(JSON.stringify(e))}async disconnect(){this.socket&&(this.socket.close(),this.socket=null)}};ts.exports=Cn});var Pn=N((Lf,rs)=>{function Oo(r){let e=new URL(r),t=e.protocol==="wss:",n=e.hostname,i=e.port?Number(e.port):t?443:80,o=e.searchParams.get("key")||"peerjs",c=e.pathname||"/";return c.endsWith("/peerjs")&&(c=c.slice(0,-7)||"/"),c!=="/"&&!c.endsWith("/")&&(c+="/"),{secure:t,host:n,port:i,path:c,key:o}}rs.exports=Oo});var ns=N((jf,yr)=>{function En(r,e,t,n){Object.defineProperty(r,e,{get:t,set:n,enumerable:!0,configurable:!0})}En(yr.exports,"unpack",()=>Lo);En(yr.exports,"pack",()=>jo);En(yr.exports,"Packer",()=>pr);var wn=class{constructor(){this.encoder=new TextEncoder,this._pieces=[],this._parts=[]}append_buffer(e){this.flush(),this._parts.push(e)}append(e){this._pieces.push(e)}flush(){if(this._pieces.length>0){let e=new Uint8Array(this._pieces);this._parts.push(e),this._pieces=[]}}toArrayBuffer(){let e=[];for(let t of this._parts)e.push(t);return Bo(e).buffer}};function Bo(r){let e=0;for(let i of r)e+=i.byteLength;let t=new Uint8Array(e),n=0;for(let i of r){let o=new Uint8Array(i.buffer,i.byteOffset,i.byteLength);t.set(o,n),n+=i.byteLength}return t}function Lo(r){return new Tn(r).unpack()}function jo(r){let e=new pr,t=e.pack(r);return t instanceof Promise?t.then(()=>e.getBuffer()):e.getBuffer()}var Tn=class{constructor(e){this.index=0,this.dataBuffer=e,this.dataView=new Uint8Array(this.dataBuffer),this.length=this.dataBuffer.byteLength}unpack(){let e=this.unpack_uint8();if(e<128)return e;if((e^224)<32)return(e^224)-32;let t;if((t=e^160)<=15)return this.unpack_raw(t);if((t=e^176)<=15)return this.unpack_string(t);if((t=e^144)<=15)return this.unpack_array(t);if((t=e^128)<=15)return this.unpack_map(t);switch(e){case 192:return null;case 193:return;case 194:return!1;case 195:return!0;case 202:return this.unpack_float();case 203:return this.unpack_double();case 204:return this.unpack_uint8();case 205:return this.unpack_uint16();case 206:return this.unpack_uint32();case 207:return this.unpack_uint64();case 208:return this.unpack_int8();case 209:return this.unpack_int16();case 210:return this.unpack_int32();case 211:return this.unpack_int64();case 212:return;case 213:return;case 214:return;case 215:return;case 216:return t=this.unpack_uint16(),this.unpack_string(t);case 217:return t=this.unpack_uint32(),this.unpack_string(t);case 218:return t=this.unpack_uint16(),this.unpack_raw(t);case 219:return t=this.unpack_uint32(),this.unpack_raw(t);case 220:return t=this.unpack_uint16(),this.unpack_array(t);case 221:return t=this.unpack_uint32(),this.unpack_array(t);case 222:return t=this.unpack_uint16(),this.unpack_map(t);case 223:return t=this.unpack_uint32(),this.unpack_map(t)}}unpack_uint8(){let e=this.dataView[this.index]&255;return this.index++,e}unpack_uint16(){let e=this.read(2),t=(e[0]&255)*256+(e[1]&255);return this.index+=2,t}unpack_uint32(){let e=this.read(4),t=((e[0]*256+e[1])*256+e[2])*256+e[3];return this.index+=4,t}unpack_uint64(){let e=this.read(8),t=((((((e[0]*256+e[1])*256+e[2])*256+e[3])*256+e[4])*256+e[5])*256+e[6])*256+e[7];return this.index+=8,t}unpack_int8(){let e=this.unpack_uint8();return e<128?e:e-256}unpack_int16(){let e=this.unpack_uint16();return e<32768?e:e-65536}unpack_int32(){let e=this.unpack_uint32();return e<2**31?e:e-2**32}unpack_int64(){let e=this.unpack_uint64();return e<2**63?e:e-2**64}unpack_raw(e){if(this.length<this.index+e)throw new Error(`BinaryPackFailure: index is out of range ${this.index} ${e} ${this.length}`);let t=this.dataBuffer.slice(this.index,this.index+e);return this.index+=e,t}unpack_string(e){let t=this.read(e),n=0,i="",o,c;for(;n<e;)o=t[n],o<160?(c=o,n++):(o^192)<32?(c=(o&31)<<6|t[n+1]&63,n+=2):(o^224)<16?(c=(o&15)<<12|(t[n+1]&63)<<6|t[n+2]&63,n+=3):(c=(o&7)<<18|(t[n+1]&63)<<12|(t[n+2]&63)<<6|t[n+3]&63,n+=4),i+=String.fromCodePoint(c);return this.index+=e,i}unpack_array(e){let t=new Array(e);for(let n=0;n<e;n++)t[n]=this.unpack();return t}unpack_map(e){let t={};for(let n=0;n<e;n++){let i=this.unpack();t[i]=this.unpack()}return t}unpack_float(){let e=this.unpack_uint32(),t=e>>31,n=(e>>23&255)-127,i=e&8388607|8388608;return(t===0?1:-1)*i*2**(n-23)}unpack_double(){let e=this.unpack_uint32(),t=this.unpack_uint32(),n=e>>31,i=(e>>20&2047)-1023,c=(e&1048575|1048576)*2**(i-20)+t*2**(i-52);return(n===0?1:-1)*c}read(e){let t=this.index;if(t+e<=this.length)return this.dataView.subarray(t,t+e);throw new Error("BinaryPackFailure: read index out of range")}},pr=class{getBuffer(){return this._bufferBuilder.toArrayBuffer()}pack(e){if(typeof e=="string")this.pack_string(e);else if(typeof e=="number")Math.floor(e)===e?this.pack_integer(e):this.pack_double(e);else if(typeof e=="boolean")e===!0?this._bufferBuilder.append(195):e===!1&&this._bufferBuilder.append(194);else if(e===void 0)this._bufferBuilder.append(192);else if(typeof e=="object")if(e===null)this._bufferBuilder.append(192);else{let t=e.constructor;if(e instanceof Array){let n=this.pack_array(e);if(n instanceof Promise)return n.then(()=>this._bufferBuilder.flush())}else if(e instanceof ArrayBuffer)this.pack_bin(new Uint8Array(e));else if("BYTES_PER_ELEMENT"in e){let n=e;this.pack_bin(new Uint8Array(n.buffer,n.byteOffset,n.byteLength))}else if(e instanceof Date)this.pack_string(e.toString());else{if(e instanceof Blob)return e.arrayBuffer().then(n=>{this.pack_bin(new Uint8Array(n)),this._bufferBuilder.flush()});if(t==Object||t.toString().startsWith("class")){let n=this.pack_object(e);if(n instanceof Promise)return n.then(()=>this._bufferBuilder.flush())}else throw new Error(`Type "${t.toString()}" not yet supported`)}}else throw new Error(`Type "${typeof e}" not yet supported`);this._bufferBuilder.flush()}pack_bin(e){let t=e.length;if(t<=15)this.pack_uint8(160+t);else if(t<=65535)this._bufferBuilder.append(218),this.pack_uint16(t);else if(t<=4294967295)this._bufferBuilder.append(219),this.pack_uint32(t);else throw new Error("Invalid length");this._bufferBuilder.append_buffer(e)}pack_string(e){let t=this._textEncoder.encode(e),n=t.length;if(n<=15)this.pack_uint8(176+n);else if(n<=65535)this._bufferBuilder.append(216),this.pack_uint16(n);else if(n<=4294967295)this._bufferBuilder.append(217),this.pack_uint32(n);else throw new Error("Invalid length");this._bufferBuilder.append_buffer(t)}pack_array(e){let t=e.length;if(t<=15)this.pack_uint8(144+t);else if(t<=65535)this._bufferBuilder.append(220),this.pack_uint16(t);else if(t<=4294967295)this._bufferBuilder.append(221),this.pack_uint32(t);else throw new Error("Invalid length");let n=i=>{if(i<t){let o=this.pack(e[i]);return o instanceof Promise?o.then(()=>n(i+1)):n(i+1)}};return n(0)}pack_integer(e){if(e>=-32&&e<=127)this._bufferBuilder.append(e&255);else if(e>=0&&e<=255)this._bufferBuilder.append(204),this.pack_uint8(e);else if(e>=-128&&e<=127)this._bufferBuilder.append(208),this.pack_int8(e);else if(e>=0&&e<=65535)this._bufferBuilder.append(205),this.pack_uint16(e);else if(e>=-32768&&e<=32767)this._bufferBuilder.append(209),this.pack_int16(e);else if(e>=0&&e<=4294967295)this._bufferBuilder.append(206),this.pack_uint32(e);else if(e>=-2147483648&&e<=2147483647)this._bufferBuilder.append(210),this.pack_int32(e);else if(e>=-9223372036854776e3&&e<=9223372036854776e3)this._bufferBuilder.append(211),this.pack_int64(e);else if(e>=0&&e<=18446744073709552e3)this._bufferBuilder.append(207),this.pack_uint64(e);else throw new Error("Invalid integer")}pack_double(e){let t=0;e<0&&(t=1,e=-e);let n=Math.floor(Math.log(e)/Math.LN2),i=e/2**n-1,o=Math.floor(i*2**52),c=2**32,h=t<<31|n+1023<<20|o/c&1048575,l=o%c;this._bufferBuilder.append(203),this.pack_int32(h),this.pack_int32(l)}pack_object(e){let t=Object.keys(e),n=t.length;if(n<=15)this.pack_uint8(128+n);else if(n<=65535)this._bufferBuilder.append(222),this.pack_uint16(n);else if(n<=4294967295)this._bufferBuilder.append(223),this.pack_uint32(n);else throw new Error("Invalid length");let i=o=>{if(o<t.length){let c=t[o];if(e.hasOwnProperty(c)){this.pack(c);let h=this.pack(e[c]);if(h instanceof Promise)return h.then(()=>i(o+1))}return i(o+1)}};return i(0)}pack_uint8(e){this._bufferBuilder.append(e)}pack_uint16(e){this._bufferBuilder.append(e>>8),this._bufferBuilder.append(e&255)}pack_uint32(e){let t=e&4294967295;this._bufferBuilder.append((t&4278190080)>>>24),this._bufferBuilder.append((t&16711680)>>>16),this._bufferBuilder.append((t&65280)>>>8),this._bufferBuilder.append(t&255)}pack_uint64(e){let t=e/4294967296,n=e%2**32;this._bufferBuilder.append((t&4278190080)>>>24),this._bufferBuilder.append((t&16711680)>>>16),this._bufferBuilder.append((t&65280)>>>8),this._bufferBuilder.append(t&255),this._bufferBuilder.append((n&4278190080)>>>24),this._bufferBuilder.append((n&16711680)>>>16),this._bufferBuilder.append((n&65280)>>>8),this._bufferBuilder.append(n&255)}pack_int8(e){this._bufferBuilder.append(e&255)}pack_int16(e){this._bufferBuilder.append((e&65280)>>8),this._bufferBuilder.append(e&255)}pack_int32(e){this._bufferBuilder.append(e>>>24&255),this._bufferBuilder.append((e&16711680)>>>16),this._bufferBuilder.append((e&65280)>>>8),this._bufferBuilder.append(e&255)}pack_int64(e){let t=Math.floor(e/4294967296),n=e%2**32;this._bufferBuilder.append((t&4278190080)>>>24),this._bufferBuilder.append((t&16711680)>>>16),this._bufferBuilder.append((t&65280)>>>8),this._bufferBuilder.append(t&255),this._bufferBuilder.append((n&4278190080)>>>24),this._bufferBuilder.append((n&16711680)>>>16),this._bufferBuilder.append((n&65280)>>>8),this._bufferBuilder.append(n&255)}constructor(){this._bufferBuilder=new wn,this._textEncoder=new TextEncoder}}});var nt=N(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.compactObject=as;je.deprecated=Ho;je.detectBrowser=Wo;je.disableLog=Ko;je.disableWarnings=qo;je.extractVersion=Ut;je.filterStats=Go;je.log=Vo;je.walkStats=mr;je.wrapPeerConnectionEvent=$o;function Fo(r,e,t){return(e=zo(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function zo(r){var e=No(r,"string");return rt(e)=="symbol"?e:e+""}function No(r,e){if(rt(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(rt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function rt(r){"@babel/helpers - typeof";return rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rt(r)}var ss=!0,os=!0;function Ut(r,e,t){var n=r.match(e);return n&&n.length>=t&&parseFloat(n[t],10)}function $o(r,e,t){if(r.RTCPeerConnection){var n=r.RTCPeerConnection.prototype,i=n.addEventListener;n.addEventListener=function(c,h){if(c!==e)return i.apply(this,arguments);var l=function(m){var _=t(m);_&&(h.handleEvent?h.handleEvent(_):h(_))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(h,l),i.apply(this,[c,l])};var o=n.removeEventListener;n.removeEventListener=function(c,h){if(c!==e||!this._eventMap||!this._eventMap[e])return o.apply(this,arguments);if(!this._eventMap[e].has(h))return o.apply(this,arguments);var l=this._eventMap[e].get(h);return this._eventMap[e].delete(h),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,o.apply(this,[c,l])},Object.defineProperty(n,"on"+e,{get:function(){return this["_on"+e]},set:function(h){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),h&&this.addEventListener(e,this["_on"+e]=h)},enumerable:!0,configurable:!0})}}function Ko(r){return typeof r!="boolean"?new Error("Argument type: "+rt(r)+". Please use a boolean."):(ss=r,r?"adapter.js logging disabled":"adapter.js logging enabled")}function qo(r){return typeof r!="boolean"?new Error("Argument type: "+rt(r)+". Please use a boolean."):(os=!r,"adapter.js deprecation warnings "+(r?"disabled":"enabled"))}function Vo(){if((typeof window>"u"?"undefined":rt(window))==="object"){if(ss)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Ho(r,e){os&&console.warn(r+" is deprecated, please use "+e+" instead.")}function Wo(r){var e={browser:null,version:null};if(typeof r>"u"||!r.navigator||!r.navigator.userAgent)return e.browser="Not a browser.",e;var t=r.navigator;if(t.userAgentData&&t.userAgentData.brands){var n=t.userAgentData.brands.find(function(i){return i.brand==="Chromium"});if(n)return{browser:"chrome",version:parseInt(n.version,10)}}if(t.mozGetUserMedia)e.browser="firefox",e.version=parseInt(Ut(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||r.isSecureContext===!1&&r.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(Ut(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2))||null;else if(r.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(Ut(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=r.RTCRtpTransceiver&&"currentDirection"in r.RTCRtpTransceiver.prototype,e._safariVersion=Ut(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function is(r){return Object.prototype.toString.call(r)==="[object Object]"}function as(r){return is(r)?Object.keys(r).reduce(function(e,t){var n=is(r[t]),i=n?as(r[t]):r[t],o=n&&!Object.keys(i).length;return i===void 0||o?e:Object.assign(e,Fo({},t,i))},{}):r}function mr(r,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(function(n){n.endsWith("Id")?mr(r,r.get(e[n]),t):n.endsWith("Ids")&&e[n].forEach(function(i){mr(r,r.get(i),t)})}))}function Go(r,e,t){var n=t?"outbound-rtp":"inbound-rtp",i=new Map;if(e===null)return i;var o=[];return r.forEach(function(c){c.type==="track"&&c.trackIdentifier===e.id&&o.push(c)}),o.forEach(function(c){r.forEach(function(h){h.type===n&&h.trackId===c.id&&mr(r,h,i)})}),i}});var ds=N(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.shimGetUserMedia=Jo;var Yo=fs(nt());function fs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(fs=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||it(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function it(r){"@babel/helpers - typeof";return it=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},it(r)}var cs=Yo.log;function Jo(r,e){var t=r&&r.navigator;if(t.mediaDevices){var n=function(y){if(it(y)!=="object"||y.mandatory||y.optional)return y;var m={};return Object.keys(y).forEach(function(_){if(!(_==="require"||_==="advanced"||_==="mediaSource")){var k=it(y[_])==="object"?y[_]:{ideal:y[_]};k.exact!==void 0&&typeof k.exact=="number"&&(k.min=k.max=k.exact);var $=function(ue,be){return ue?ue+be.charAt(0).toUpperCase()+be.slice(1):be==="deviceId"?"sourceId":be};if(k.ideal!==void 0){m.optional=m.optional||[];var re={};typeof k.ideal=="number"?(re[$("min",_)]=k.ideal,m.optional.push(re),re={},re[$("max",_)]=k.ideal,m.optional.push(re)):(re[$("",_)]=k.ideal,m.optional.push(re))}k.exact!==void 0&&typeof k.exact!="number"?(m.mandatory=m.mandatory||{},m.mandatory[$("",_)]=k.exact):["min","max"].forEach(function(fe){k[fe]!==void 0&&(m.mandatory=m.mandatory||{},m.mandatory[$(fe,_)]=k[fe])})}}),y.advanced&&(m.optional=(m.optional||[]).concat(y.advanced)),m},i=function(y,m){if(e.version>=61)return m(y);if(y=JSON.parse(JSON.stringify(y)),y&&it(y.audio)==="object"){var _=function(ue,be,gt){be in ue&&!(gt in ue)&&(ue[gt]=ue[be],delete ue[be])};y=JSON.parse(JSON.stringify(y)),_(y.audio,"autoGainControl","googAutoGainControl"),_(y.audio,"noiseSuppression","googNoiseSuppression"),y.audio=n(y.audio)}if(y&&it(y.video)==="object"){var k=y.video.facingMode;k=k&&(it(k)==="object"?k:{ideal:k});var $=e.version<66;if(k&&(k.exact==="user"||k.exact==="environment"||k.ideal==="user"||k.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!$)){delete y.video.facingMode;var re;if(k.exact==="environment"||k.ideal==="environment"?re=["back","rear"]:(k.exact==="user"||k.ideal==="user")&&(re=["front"]),re)return t.mediaDevices.enumerateDevices().then(function(fe){fe=fe.filter(function(be){return be.kind==="videoinput"});var ue=fe.find(function(be){return re.some(function(gt){return be.label.toLowerCase().includes(gt)})});return!ue&&fe.length&&re.includes("back")&&(ue=fe[fe.length-1]),ue&&(y.video.deviceId=k.exact?{exact:ue.deviceId}:{ideal:ue.deviceId}),y.video=n(y.video),cs("chrome: "+JSON.stringify(y)),m(y)})}y.video=n(y.video)}return cs("chrome: "+JSON.stringify(y)),m(y)},o=function(y){return e.version>=64?y:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[y.name]||y.name,message:y.message,constraint:y.constraint||y.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},c=function(y,m,_){i(y,function(k){t.webkitGetUserMedia(k,m,function($){_&&_(o($))})})};if(t.getUserMedia=c.bind(t),t.mediaDevices.getUserMedia){var h=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(l){return i(l,function(y){return h(y).then(function(m){if(y.audio&&!m.getAudioTracks().length||y.video&&!m.getVideoTracks().length)throw m.getTracks().forEach(function(_){_.stop()}),new DOMException("","NotFoundError");return m},function(m){return Promise.reject(o(m))})})}}}}});var ps=N($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.fixNegotiationNeeded=oa;$e.shimAddTrackRemoveTrack=ia;$e.shimAddTrackRemoveTrackWithNative=ls;$e.shimGetSendersWithDtmf=ra;Object.defineProperty($e,"shimGetUserMedia",{enumerable:!0,get:function(){return Xo.shimGetUserMedia}});$e.shimMediaStream=ea;$e.shimOnTrack=ta;$e.shimPeerConnection=sa;$e.shimSenderReceiverGetStats=na;var Ot=us(nt()),Xo=ds();function us(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(us=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||He(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function hs(r,e,t){return(e=Zo(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Zo(r){var e=Qo(r,"string");return He(e)=="symbol"?e:e+""}function Qo(r,e){if(He(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(He(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function He(r){"@babel/helpers - typeof";return He=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(r)}function ea(r){r.MediaStream=r.MediaStream||r.webkitMediaStream}function ta(r){if(He(r)==="object"&&r.RTCPeerConnection&&!("ontrack"in r.RTCPeerConnection.prototype)){Object.defineProperty(r.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(n){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=n)},enumerable:!0,configurable:!0});var e=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){var n=this;return this._ontrackpoly||(this._ontrackpoly=function(i){i.stream.addEventListener("addtrack",function(o){var c;r.RTCPeerConnection.prototype.getReceivers?c=n.getReceivers().find(function(l){return l.track&&l.track.id===o.track.id}):c={track:o.track};var h=new Event("track");h.track=o.track,h.receiver=c,h.transceiver={receiver:c},h.streams=[i.stream],n.dispatchEvent(h)}),i.stream.getTracks().forEach(function(o){var c;r.RTCPeerConnection.prototype.getReceivers?c=n.getReceivers().find(function(l){return l.track&&l.track.id===o.id}):c={track:o};var h=new Event("track");h.track=o,h.receiver=c,h.transceiver={receiver:c},h.streams=[i.stream],n.dispatchEvent(h)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else Ot.wrapPeerConnectionEvent(r,"track",function(t){return t.transceiver||Object.defineProperty(t,"transceiver",{value:{receiver:t.receiver}}),t})}function ra(r){if(He(r)==="object"&&r.RTCPeerConnection&&!("getSenders"in r.RTCPeerConnection.prototype)&&"createDTMFSender"in r.RTCPeerConnection.prototype){var e=function(l,y){return{track:y,get dtmf(){return this._dtmf===void 0&&(y.kind==="audio"?this._dtmf=l.createDTMFSender(y):this._dtmf=null),this._dtmf},_pc:l}};if(!r.RTCPeerConnection.prototype.getSenders){r.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};var t=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addTrack=function(l,y){var m=t.apply(this,arguments);return m||(m=e(this,l),this._senders.push(m)),m};var n=r.RTCPeerConnection.prototype.removeTrack;r.RTCPeerConnection.prototype.removeTrack=function(l){n.apply(this,arguments);var y=this._senders.indexOf(l);y!==-1&&this._senders.splice(y,1)}}var i=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(l){var y=this;this._senders=this._senders||[],i.apply(this,[l]),l.getTracks().forEach(function(m){y._senders.push(e(y,m))})};var o=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(l){var y=this;this._senders=this._senders||[],o.apply(this,[l]),l.getTracks().forEach(function(m){var _=y._senders.find(function(k){return k.track===m});_&&y._senders.splice(y._senders.indexOf(_),1)})}}else if(He(r)==="object"&&r.RTCPeerConnection&&"getSenders"in r.RTCPeerConnection.prototype&&"createDTMFSender"in r.RTCPeerConnection.prototype&&r.RTCRtpSender&&!("dtmf"in r.RTCRtpSender.prototype)){var c=r.RTCPeerConnection.prototype.getSenders;r.RTCPeerConnection.prototype.getSenders=function(){var l=this,y=c.apply(this,[]);return y.forEach(function(m){return m._pc=l}),y},Object.defineProperty(r.RTCRtpSender.prototype,"dtmf",{get:function(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function na(r){if(He(r)==="object"&&r.RTCPeerConnection&&r.RTCRtpSender&&r.RTCRtpReceiver){if(!("getStats"in r.RTCRtpSender.prototype)){var e=r.RTCPeerConnection.prototype.getSenders;e&&(r.RTCPeerConnection.prototype.getSenders=function(){var c=this,h=e.apply(this,[]);return h.forEach(function(l){return l._pc=c}),h});var t=r.RTCPeerConnection.prototype.addTrack;t&&(r.RTCPeerConnection.prototype.addTrack=function(){var c=t.apply(this,arguments);return c._pc=this,c}),r.RTCRtpSender.prototype.getStats=function(){var c=this;return this._pc.getStats().then(function(h){return Ot.filterStats(h,c.track,!0)})}}if(!("getStats"in r.RTCRtpReceiver.prototype)){var n=r.RTCPeerConnection.prototype.getReceivers;n&&(r.RTCPeerConnection.prototype.getReceivers=function(){var c=this,h=n.apply(this,[]);return h.forEach(function(l){return l._pc=c}),h}),Ot.wrapPeerConnectionEvent(r,"track",function(o){return o.receiver._pc=o.srcElement,o}),r.RTCRtpReceiver.prototype.getStats=function(){var c=this;return this._pc.getStats().then(function(h){return Ot.filterStats(h,c.track,!1)})}}if("getStats"in r.RTCRtpSender.prototype&&"getStats"in r.RTCRtpReceiver.prototype){var i=r.RTCPeerConnection.prototype.getStats;r.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof r.MediaStreamTrack){var c=arguments[0],h,l,y;return this.getSenders().forEach(function(m){m.track===c&&(h?y=!0:h=m)}),this.getReceivers().forEach(function(m){return m.track===c&&(l?y=!0:l=m),m.track===c}),y||h&&l?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):h?h.getStats():l?l.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return i.apply(this,arguments)}}}}function ls(r){r.RTCPeerConnection.prototype.getLocalStreams=function(){var c=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(function(h){return c._shimmedLocalStreams[h][0]})};var e=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addTrack=function(c,h){if(!h)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};var l=e.apply(this,arguments);return this._shimmedLocalStreams[h.id]?this._shimmedLocalStreams[h.id].indexOf(l)===-1&&this._shimmedLocalStreams[h.id].push(l):this._shimmedLocalStreams[h.id]=[h,l],l};var t=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(c){var h=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{},c.getTracks().forEach(function(m){var _=h.getSenders().find(function(k){return k.track===m});if(_)throw new DOMException("Track already exists.","InvalidAccessError")});var l=this.getSenders();t.apply(this,arguments);var y=this.getSenders().filter(function(m){return l.indexOf(m)===-1});this._shimmedLocalStreams[c.id]=[c].concat(y)};var n=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(c){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[c.id],n.apply(this,arguments)};var i=r.RTCPeerConnection.prototype.removeTrack;r.RTCPeerConnection.prototype.removeTrack=function(c){var h=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},c&&Object.keys(this._shimmedLocalStreams).forEach(function(l){var y=h._shimmedLocalStreams[l].indexOf(c);y!==-1&&h._shimmedLocalStreams[l].splice(y,1),h._shimmedLocalStreams[l].length===1&&delete h._shimmedLocalStreams[l]}),i.apply(this,arguments)}}function ia(r,e){if(!r.RTCPeerConnection)return;if(r.RTCPeerConnection.prototype.addTrack&&e.version>=65)return ls(r);var t=r.RTCPeerConnection.prototype.getLocalStreams;r.RTCPeerConnection.prototype.getLocalStreams=function(){var m=this,_=t.apply(this);return this._reverseStreams=this._reverseStreams||{},_.map(function(k){return m._reverseStreams[k.id]})};var n=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(m){var _=this;if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},m.getTracks().forEach(function($){var re=_.getSenders().find(function(fe){return fe.track===$});if(re)throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[m.id]){var k=new r.MediaStream(m.getTracks());this._streams[m.id]=k,this._reverseStreams[k.id]=m,m=k}n.apply(this,[m])};var i=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(m){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[m.id]||m]),delete this._reverseStreams[this._streams[m.id]?this._streams[m.id].id:m.id],delete this._streams[m.id]},r.RTCPeerConnection.prototype.addTrack=function(m,_){var k=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");var $=[].slice.call(arguments,1);if($.length!==1||!$[0].getTracks().find(function(be){return be===m}))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");var re=this.getSenders().find(function(be){return be.track===m});if(re)throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};var fe=this._streams[_.id];if(fe)fe.addTrack(m),Promise.resolve().then(function(){k.dispatchEvent(new Event("negotiationneeded"))});else{var ue=new r.MediaStream([m]);this._streams[_.id]=ue,this._reverseStreams[ue.id]=_,this.addStream(ue)}return this.getSenders().find(function(be){return be.track===m})};function o(y,m){var _=m.sdp;return Object.keys(y._reverseStreams||[]).forEach(function(k){var $=y._reverseStreams[k],re=y._streams[$.id];_=_.replace(new RegExp(re.id,"g"),$.id)}),new RTCSessionDescription({type:m.type,sdp:_})}function c(y,m){var _=m.sdp;return Object.keys(y._reverseStreams||[]).forEach(function(k){var $=y._reverseStreams[k],re=y._streams[$.id];_=_.replace(new RegExp($.id,"g"),re.id)}),new RTCSessionDescription({type:m.type,sdp:_})}["createOffer","createAnswer"].forEach(function(y){var m=r.RTCPeerConnection.prototype[y],_=hs({},y,function(){var k=this,$=arguments,re=arguments.length&&typeof arguments[0]=="function";return re?m.apply(this,[function(fe){var ue=o(k,fe);$[0].apply(null,[ue])},function(fe){$[1]&&$[1].apply(null,fe)},arguments[2]]):m.apply(this,arguments).then(function(fe){return o(k,fe)})});r.RTCPeerConnection.prototype[y]=_[y]});var h=r.RTCPeerConnection.prototype.setLocalDescription;r.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?h.apply(this,arguments):(arguments[0]=c(this,arguments[0]),h.apply(this,arguments))};var l=Object.getOwnPropertyDescriptor(r.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(r.RTCPeerConnection.prototype,"localDescription",{get:function(){var m=l.get.apply(this);return m.type===""?m:o(this,m)}}),r.RTCPeerConnection.prototype.removeTrack=function(m){var _=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!m._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");var k=m._pc===this;if(!k)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};var $;Object.keys(this._streams).forEach(function(re){var fe=_._streams[re].getTracks().find(function(ue){return m.track===ue});fe&&($=_._streams[re])}),$&&($.getTracks().length===1?this.removeStream(this._reverseStreams[$.id]):$.removeTrack(m.track),this.dispatchEvent(new Event("negotiationneeded")))}}function sa(r,e){!r.RTCPeerConnection&&r.webkitRTCPeerConnection&&(r.RTCPeerConnection=r.webkitRTCPeerConnection),r.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){var n=r.RTCPeerConnection.prototype[t],i=hs({},t,function(){return arguments[0]=new(t==="addIceCandidate"?r.RTCIceCandidate:r.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)});r.RTCPeerConnection.prototype[t]=i[t]})}function oa(r,e){Ot.wrapPeerConnectionEvent(r,"negotiationneeded",function(t){var n=t.target;if(!((e.version<72||n.getConfiguration&&n.getConfiguration().sdpSemantics==="plan-b")&&n.signalingState!=="stable"))return t})}});var ms=N(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});kn.shimGetUserMedia=ca;var aa=ys(nt());function ys(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(ys=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||St(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function St(r){"@babel/helpers - typeof";return St=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},St(r)}function ca(r,e){var t=r&&r.navigator,n=r&&r.MediaStreamTrack;if(t.getUserMedia=function(l,y,m){aa.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(l).then(y,m)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){var i=function(y,m,_){m in y&&!(_ in y)&&(y[_]=y[m],delete y[m])},o=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(l){return St(l)==="object"&&St(l.audio)==="object"&&(l=JSON.parse(JSON.stringify(l)),i(l.audio,"autoGainControl","mozAutoGainControl"),i(l.audio,"noiseSuppression","mozNoiseSuppression")),o(l)},n&&n.prototype.getSettings){var c=n.prototype.getSettings;n.prototype.getSettings=function(){var l=c.apply(this,arguments);return i(l,"mozAutoGainControl","autoGainControl"),i(l,"mozNoiseSuppression","noiseSuppression"),l}}if(n&&n.prototype.applyConstraints){var h=n.prototype.applyConstraints;n.prototype.applyConstraints=function(l){return this.kind==="audio"&&St(l)==="object"&&(l=JSON.parse(JSON.stringify(l)),i(l,"autoGainControl","mozAutoGainControl"),i(l,"noiseSuppression","mozNoiseSuppression")),h.apply(this,[l])}}}}});var gs=N(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.shimGetDisplayMedia=fa;function fa(r,e){r.navigator.mediaDevices&&"getDisplayMedia"in r.navigator.mediaDevices||r.navigator.mediaDevices&&(r.navigator.mediaDevices.getDisplayMedia=function(n){if(!(n&&n.video)){var i=new DOMException("getDisplayMedia without video constraints is undefined");return i.name="NotFoundError",i.code=8,Promise.reject(i)}return n.video===!0?n.video={mediaSource:e}:n.video.mediaSource=e,r.navigator.mediaDevices.getUserMedia(n)})}});var vs=N(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.shimAddTransceiver=Ta;Ue.shimCreateAnswer=ka;Ue.shimCreateOffer=Ia;Object.defineProperty(Ue,"shimGetDisplayMedia",{enumerable:!0,get:function(){return ua.shimGetDisplayMedia}});Ue.shimGetParameters=Ea;Object.defineProperty(Ue,"shimGetUserMedia",{enumerable:!0,get:function(){return da.shimGetUserMedia}});Ue.shimOnTrack=va;Ue.shimPeerConnection=_a;Ue.shimRTCDataChannel=wa;Ue.shimReceiverGetStats=Ca;Ue.shimRemoveStream=Pa;Ue.shimSenderGetStats=Sa;var xs=bs(nt()),da=ms(),ua=gs();function bs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(bs=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||De(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function ha(r){return ma(r)||ya(r)||pa(r)||la()}function la(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pa(r,e){if(r){if(typeof r=="string")return An(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?An(r,e):void 0}}function ya(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function ma(r){if(Array.isArray(r))return An(r)}function An(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function ga(r,e,t){return(e=xa(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function xa(r){var e=ba(r,"string");return De(e)=="symbol"?e:e+""}function ba(r,e){if(De(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(De(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function De(r){"@babel/helpers - typeof";return De=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(r)}function va(r){De(r)==="object"&&r.RTCTrackEvent&&"receiver"in r.RTCTrackEvent.prototype&&!("transceiver"in r.RTCTrackEvent.prototype)&&Object.defineProperty(r.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})}function _a(r,e){if(!(De(r)!=="object"||!(r.RTCPeerConnection||r.mozRTCPeerConnection))){!r.RTCPeerConnection&&r.mozRTCPeerConnection&&(r.RTCPeerConnection=r.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(i){var o=r.RTCPeerConnection.prototype[i],c=ga({},i,function(){return arguments[0]=new(i==="addIceCandidate"?r.RTCIceCandidate:r.RTCSessionDescription)(arguments[0]),o.apply(this,arguments)});r.RTCPeerConnection.prototype[i]=c[i]});var t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},n=r.RTCPeerConnection.prototype.getStats;r.RTCPeerConnection.prototype.getStats=function(){var o=Array.prototype.slice.call(arguments),c=o[0],h=o[1],l=o[2];return n.apply(this,[c||null]).then(function(y){if(e.version<53&&!h)try{y.forEach(function(m){m.type=t[m.type]||m.type})}catch(m){if(m.name!=="TypeError")throw m;y.forEach(function(_,k){y.set(k,Object.assign({},_,{type:t[_.type]||_.type}))})}return y}).then(h,l)}}}function Sa(r){if(De(r)==="object"&&r.RTCPeerConnection&&r.RTCRtpSender&&!(r.RTCRtpSender&&"getStats"in r.RTCRtpSender.prototype)){var e=r.RTCPeerConnection.prototype.getSenders;e&&(r.RTCPeerConnection.prototype.getSenders=function(){var i=this,o=e.apply(this,[]);return o.forEach(function(c){return c._pc=i}),o});var t=r.RTCPeerConnection.prototype.addTrack;t&&(r.RTCPeerConnection.prototype.addTrack=function(){var i=t.apply(this,arguments);return i._pc=this,i}),r.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}}function Ca(r){if(De(r)==="object"&&r.RTCPeerConnection&&r.RTCRtpSender&&!(r.RTCRtpSender&&"getStats"in r.RTCRtpReceiver.prototype)){var e=r.RTCPeerConnection.prototype.getReceivers;e&&(r.RTCPeerConnection.prototype.getReceivers=function(){var n=this,i=e.apply(this,[]);return i.forEach(function(o){return o._pc=n}),i}),xs.wrapPeerConnectionEvent(r,"track",function(t){return t.receiver._pc=t.srcElement,t}),r.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}}function Pa(r){!r.RTCPeerConnection||"removeStream"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.removeStream=function(t){var n=this;xs.deprecated("removeStream","removeTrack"),this.getSenders().forEach(function(i){i.track&&t.getTracks().includes(i.track)&&n.removeTrack(i)})})}function wa(r){r.DataChannel&&!r.RTCDataChannel&&(r.RTCDataChannel=r.DataChannel)}function Ta(r){if(De(r)==="object"&&r.RTCPeerConnection){var e=r.RTCPeerConnection.prototype.addTransceiver;e&&(r.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];var n=arguments[1]&&arguments[1].sendEncodings;n===void 0&&(n=[]),n=ha(n);var i=n.length>0;i&&n.forEach(function(l){if("rid"in l){var y=/^[a-z0-9]{0,16}$/i;if(!y.test(l.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in l&&!(parseFloat(l.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in l&&!(parseFloat(l.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});var o=e.apply(this,arguments);if(i){var c=o.sender,h=c.getParameters();(!("encodings"in h)||h.encodings.length===1&&Object.keys(h.encodings[0]).length===0)&&(h.encodings=n,c.sendEncodings=n,this.setParametersPromises.push(c.setParameters(h).then(function(){delete c.sendEncodings}).catch(function(){delete c.sendEncodings})))}return o})}}function Ea(r){if(De(r)==="object"&&r.RTCRtpSender){var e=r.RTCRtpSender.prototype.getParameters;e&&(r.RTCRtpSender.prototype.getParameters=function(){var n=e.apply(this,arguments);return"encodings"in n||(n.encodings=[].concat(this.sendEncodings||[{}])),n})}}function Ia(r){if(De(r)==="object"&&r.RTCPeerConnection){var e=r.RTCPeerConnection.prototype.createOffer;r.RTCPeerConnection.prototype.createOffer=function(){var n=arguments,i=this;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return e.apply(i,n)}).finally(function(){i.setParametersPromises=[]}):e.apply(this,arguments)}}}function ka(r){if(De(r)==="object"&&r.RTCPeerConnection){var e=r.RTCPeerConnection.prototype.createAnswer;r.RTCPeerConnection.prototype.createAnswer=function(){var n=arguments,i=this;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return e.apply(i,n)}).finally(function(){i.setParametersPromises=[]}):e.apply(this,arguments)}}}});var Ps=N(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.shimAudioContext=La;Ke.shimCallbacksAPI=Ma;Ke.shimConstraints=Cs;Ke.shimCreateOfferLegacy=Ba;Ke.shimGetUserMedia=Da;Ke.shimLocalStreamsAPI=Ra;Ke.shimRTCIceServerUrls=Ua;Ke.shimRemoteStreamsAPI=Aa;Ke.shimTrackEventTransceiver=Oa;var _s=Ss(nt());function Ss(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(Ss=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||st(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function st(r){"@babel/helpers - typeof";return st=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},st(r)}function Ra(r){if(!(st(r)!=="object"||!r.RTCPeerConnection)){if("getLocalStreams"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in r.RTCPeerConnection.prototype)){var e=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addStream=function(n){var i=this;this._localStreams||(this._localStreams=[]),this._localStreams.includes(n)||this._localStreams.push(n),n.getAudioTracks().forEach(function(o){return e.call(i,o,n)}),n.getVideoTracks().forEach(function(o){return e.call(i,o,n)})},r.RTCPeerConnection.prototype.addTrack=function(n){for(var i=this,o=arguments.length,c=new Array(o>1?o-1:0),h=1;h<o;h++)c[h-1]=arguments[h];return c&&c.forEach(function(l){i._localStreams?i._localStreams.includes(l)||i._localStreams.push(l):i._localStreams=[l]}),e.apply(this,arguments)}}"removeStream"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.removeStream=function(n){var i=this;this._localStreams||(this._localStreams=[]);var o=this._localStreams.indexOf(n);if(o!==-1){this._localStreams.splice(o,1);var c=n.getTracks();this.getSenders().forEach(function(h){c.includes(h.track)&&i.removeTrack(h)})}})}}function Aa(r){if(!(st(r)!=="object"||!r.RTCPeerConnection)&&("getRemoteStreams"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in r.RTCPeerConnection.prototype))){Object.defineProperty(r.RTCPeerConnection.prototype,"onaddstream",{get:function(){return this._onaddstream},set:function(n){var i=this;this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=n),this.addEventListener("track",this._onaddstreampoly=function(o){o.streams.forEach(function(c){if(i._remoteStreams||(i._remoteStreams=[]),!i._remoteStreams.includes(c)){i._remoteStreams.push(c);var h=new Event("addstream");h.stream=c,i.dispatchEvent(h)}})})}});var e=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){var n=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(i){i.streams.forEach(function(o){if(n._remoteStreams||(n._remoteStreams=[]),!(n._remoteStreams.indexOf(o)>=0)){n._remoteStreams.push(o);var c=new Event("addstream");c.stream=o,n.dispatchEvent(c)}})}),e.apply(n,arguments)}}}function Ma(r){if(!(st(r)!=="object"||!r.RTCPeerConnection)){var e=r.RTCPeerConnection.prototype,t=e.createOffer,n=e.createAnswer,i=e.setLocalDescription,o=e.setRemoteDescription,c=e.addIceCandidate;e.createOffer=function(y,m){var _=arguments.length>=2?arguments[2]:arguments[0],k=t.apply(this,[_]);return m?(k.then(y,m),Promise.resolve()):k},e.createAnswer=function(y,m){var _=arguments.length>=2?arguments[2]:arguments[0],k=n.apply(this,[_]);return m?(k.then(y,m),Promise.resolve()):k};var h=function(y,m,_){var k=i.apply(this,[y]);return _?(k.then(m,_),Promise.resolve()):k};e.setLocalDescription=h,h=function(y,m,_){var k=o.apply(this,[y]);return _?(k.then(m,_),Promise.resolve()):k},e.setRemoteDescription=h,h=function(y,m,_){var k=c.apply(this,[y]);return _?(k.then(m,_),Promise.resolve()):k},e.addIceCandidate=h}}function Da(r){var e=r&&r.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){var t=e.mediaDevices,n=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=function(i){return n(Cs(i))}}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=function(o,c,h){e.mediaDevices.getUserMedia(o).then(c,h)}.bind(e))}function Cs(r){return r&&r.video!==void 0?Object.assign({},r,{video:_s.compactObject(r.video)}):r}function Ua(r){if(r.RTCPeerConnection){var e=r.RTCPeerConnection;r.RTCPeerConnection=function(n,i){if(n&&n.iceServers){for(var o=[],c=0;c<n.iceServers.length;c++){var h=n.iceServers[c];h.urls===void 0&&h.url?(_s.deprecated("RTCIceServer.url","RTCIceServer.urls"),h=JSON.parse(JSON.stringify(h)),h.urls=h.url,delete h.url,o.push(h)):o.push(n.iceServers[c])}n.iceServers=o}return new e(n,i)},r.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(r.RTCPeerConnection,"generateCertificate",{get:function(){return e.generateCertificate}})}}function Oa(r){st(r)==="object"&&r.RTCTrackEvent&&"receiver"in r.RTCTrackEvent.prototype&&!("transceiver"in r.RTCTrackEvent.prototype)&&Object.defineProperty(r.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})}function Ba(r){var e=r.RTCPeerConnection.prototype.createOffer;r.RTCPeerConnection.prototype.createOffer=function(n){if(n){typeof n.offerToReceiveAudio<"u"&&(n.offerToReceiveAudio=!!n.offerToReceiveAudio);var i=this.getTransceivers().find(function(c){return c.receiver.track.kind==="audio"});n.offerToReceiveAudio===!1&&i?i.direction==="sendrecv"?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":i.direction==="recvonly"&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):n.offerToReceiveAudio===!0&&!i&&this.addTransceiver("audio",{direction:"recvonly"}),typeof n.offerToReceiveVideo<"u"&&(n.offerToReceiveVideo=!!n.offerToReceiveVideo);var o=this.getTransceivers().find(function(c){return c.receiver.track.kind==="video"});n.offerToReceiveVideo===!1&&o?o.direction==="sendrecv"?o.setDirection?o.setDirection("sendonly"):o.direction="sendonly":o.direction==="recvonly"&&(o.setDirection?o.setDirection("inactive"):o.direction="inactive"):n.offerToReceiveVideo===!0&&!o&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function La(r){st(r)!=="object"||r.AudioContext||(r.AudioContext=r.webkitAudioContext)}});var Dn=N((Hf,Mn)=>{"use strict";var T={};T.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)};T.localCName=T.generateIdentifier();T.splitLines=function(r){return r.trim().split(`
3
3
  `).map(e=>e.trim())};T.splitSections=function(r){return r.split(`
4
4
  m=`).map((t,n)=>(n>0?"m="+t:t).trim()+`\r
5
5
  `)};T.getDescription=function(r){let e=T.splitSections(r);return e&&e[0]};T.getMediaSections=function(r){let e=T.splitSections(r);return e.shift(),e};T.matchPrefix=function(r,e){return T.splitLines(r).filter(t=>t.indexOf(e)===0)};T.parseCandidate=function(r){let e;r.indexOf("a=candidate:")===0?e=r.substring(12).split(" "):e=r.substring(10).split(" ");let t={foundation:e[0],component:{1:"rtp",2:"rtcp"}[e[1]]||e[1],protocol:e[2].toLowerCase(),priority:parseInt(e[3],10),ip:e[4],address:e[4],port:parseInt(e[5],10),type:e[7]};for(let n=8;n<e.length;n+=2)switch(e[n]){case"raddr":t.relatedAddress=e[n+1];break;case"rport":t.relatedPort=parseInt(e[n+1],10);break;case"tcptype":t.tcpType=e[n+1];break;case"ufrag":t.ufrag=e[n+1],t.usernameFragment=e[n+1];break;default:t[e[n]]===void 0&&(t[e[n]]=e[n+1]);break}return t};T.writeCandidate=function(r){let e=[];e.push(r.foundation);let t=r.component;t==="rtp"?e.push(1):t==="rtcp"?e.push(2):e.push(t),e.push(r.protocol.toUpperCase()),e.push(r.priority),e.push(r.address||r.ip),e.push(r.port);let n=r.type;return e.push("typ"),e.push(n),n!=="host"&&r.relatedAddress&&r.relatedPort!==void 0&&(e.push("raddr"),e.push(r.relatedAddress),e.push("rport"),e.push(r.relatedPort)),r.tcpType&&r.protocol.toLowerCase()==="tcp"&&(e.push("tcptype"),e.push(r.tcpType)),(r.usernameFragment||r.ufrag)&&(e.push("ufrag"),e.push(r.usernameFragment||r.ufrag)),"candidate:"+e.join(" ")};T.parseIceOptions=function(r){return r.substring(14).split(" ")};T.parseRtpMap=function(r){let e=r.substring(9).split(" "),t={payloadType:parseInt(e.shift(),10)};return e=e[0].split("/"),t.name=e[0],t.clockRate=parseInt(e[1],10),t.channels=e.length===3?parseInt(e[2],10):1,t.numChannels=t.channels,t};T.writeRtpMap=function(r){let e=r.payloadType;r.preferredPayloadType!==void 0&&(e=r.preferredPayloadType);let t=r.channels||r.numChannels||1;return"a=rtpmap:"+e+" "+r.name+"/"+r.clockRate+(t!==1?"/"+t:"")+`\r
@@ -30,13 +30,13 @@ a=ice-pwd:`+r.password+`\r
30
30
  o=`+(t||"thisisadapterortc")+" "+n+" "+i+` IN IP4 127.0.0.1\r
31
31
  s=-\r
32
32
  t=0 0\r
33
- `};T.getDirection=function(r,e){let t=T.splitLines(r);for(let n=0;n<t.length;n++)switch(t[n]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return t[n].substring(2);default:}return e?T.getDirection(e):"sendrecv"};T.getKind=function(r){return T.splitLines(r)[0].split(" ")[0].substring(2)};T.isRejected=function(r){return r.split(" ",2)[1]==="0"};T.parseMLine=function(r){let t=T.splitLines(r)[0].substring(2).split(" ");return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(" ")}};T.parseOLine=function(r){let t=T.matchPrefix(r,"o=")[0].substring(2).split(" ");return{username:t[0],sessionId:t[1],sessionVersion:parseInt(t[2],10),netType:t[3],addressType:t[4],address:t[5]}};T.isValidSDP=function(r){if(typeof r!="string"||r.length===0)return!1;let e=T.splitLines(r);for(let t=0;t<e.length;t++)if(e[t].length<2||e[t].charAt(1)!=="=")return!1;return!0};typeof In=="object"&&(In.exports=T)});var Ps=N(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.removeExtmapAllowMixed=Fa;We.shimAddIceCandidateNullOrEmpty=za;We.shimConnectionState=ja;We.shimMaxMessageSize=Ba;We.shimParameterlessSetLocalDescription=Na;We.shimRTCIceCandidate=Ua;We.shimRTCIceCandidateRelayProtocol=Oa;We.shimSendThrowTypeError=La;var Ot=Da(kn()),Rn=Cs(nt());function Cs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(Cs=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||Bt(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function Da(r){return r&&r.__esModule?r:{default:r}}function Bt(r){"@babel/helpers - typeof";return Bt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bt(r)}function Ua(r){if(!(!r.RTCIceCandidate||r.RTCIceCandidate&&"foundation"in r.RTCIceCandidate.prototype)){var e=r.RTCIceCandidate;r.RTCIceCandidate=function(n){if(Bt(n)==="object"&&n.candidate&&n.candidate.indexOf("a=")===0&&(n=JSON.parse(JSON.stringify(n)),n.candidate=n.candidate.substring(2)),n.candidate&&n.candidate.length){var i=new e(n),o=Ot.default.parseCandidate(n.candidate);for(var c in o)c in i||Object.defineProperty(i,c,{value:o[c]});return i.toJSON=function(){return{candidate:i.candidate,sdpMid:i.sdpMid,sdpMLineIndex:i.sdpMLineIndex,usernameFragment:i.usernameFragment}},i}return new e(n)},r.RTCIceCandidate.prototype=e.prototype,Rn.wrapPeerConnectionEvent(r,"icecandidate",function(t){return t.candidate&&Object.defineProperty(t,"candidate",{value:new r.RTCIceCandidate(t.candidate),writable:"false"}),t})}}function Oa(r){!r.RTCIceCandidate||r.RTCIceCandidate&&"relayProtocol"in r.RTCIceCandidate.prototype||Rn.wrapPeerConnectionEvent(r,"icecandidate",function(e){if(e.candidate){var t=Ot.default.parseCandidate(e.candidate.candidate);t.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e})}function Ba(r,e){if(r.RTCPeerConnection){"sctp"in r.RTCPeerConnection.prototype||Object.defineProperty(r.RTCPeerConnection.prototype,"sctp",{get:function(){return typeof this._sctp>"u"?null:this._sctp}});var t=function(l){if(!l||!l.sdp)return!1;var y=Ot.default.splitSections(l.sdp);return y.shift(),y.some(function(m){var _=Ot.default.parseMLine(m);return _&&_.kind==="application"&&_.protocol.indexOf("SCTP")!==-1})},n=function(l){var y=l.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(y===null||y.length<2)return-1;var m=parseInt(y[1],10);return m!==m?-1:m},i=function(l){var y=65536;return e.browser==="firefox"&&(e.version<57?l===-1?y=16384:y=2147483637:e.version<60?y=e.version===57?65535:65536:y=2147483637),y},o=function(l,y){var m=65536;e.browser==="firefox"&&e.version===57&&(m=65535);var _=Ot.default.matchPrefix(l.sdp,"a=max-message-size:");return _.length>0?m=parseInt(_[0].substring(19),10):e.browser==="firefox"&&y!==-1&&(m=2147483637),m},c=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,e.browser==="chrome"&&e.version>=76){var l=this.getConfiguration(),y=l.sdpSemantics;y==="plan-b"&&Object.defineProperty(this,"sctp",{get:function(){return typeof this._sctp>"u"?null:this._sctp},enumerable:!0,configurable:!0})}if(t(arguments[0])){var m=n(arguments[0]),_=i(m),k=o(arguments[0],m),$;_===0&&k===0?$=Number.POSITIVE_INFINITY:_===0||k===0?$=Math.max(_,k):$=Math.min(_,k);var re={};Object.defineProperty(re,"maxMessageSize",{get:function(){return $}}),this._sctp=re}return c.apply(this,arguments)}}}function La(r){if(!(r.RTCPeerConnection&&"createDataChannel"in r.RTCPeerConnection.prototype))return;function e(n,i){var o=n.send;n.send=function(){var h=arguments[0],l=h.length||h.size||h.byteLength;if(n.readyState==="open"&&i.sctp&&l>i.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+i.sctp.maxMessageSize+" bytes)");return o.apply(n,arguments)}}var t=r.RTCPeerConnection.prototype.createDataChannel;r.RTCPeerConnection.prototype.createDataChannel=function(){var i=t.apply(this,arguments);return e(i,this),i},Rn.wrapPeerConnectionEvent(r,"datachannel",function(n){return e(n.channel,n.target),n})}function ja(r){if(!(!r.RTCPeerConnection||"connectionState"in r.RTCPeerConnection.prototype)){var e=r.RTCPeerConnection.prototype;Object.defineProperty(e,"connectionState",{get:function(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e,"onconnectionstatechange",{get:function(){return this._onconnectionstatechange||null},set:function(n){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),n&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=n)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(function(t){var n=e[t];e[t]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=function(i){var o=i.target;if(o._lastConnectionState!==o.connectionState){o._lastConnectionState=o.connectionState;var c=new Event("connectionstatechange",i);o.dispatchEvent(c)}return i},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}})}}function Fa(r,e){if(r.RTCPeerConnection&&!(e.browser==="chrome"&&e.version>=71)&&!(e.browser==="safari"&&e._safariVersion>=13.1)){var t=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(i){if(i&&i.sdp&&i.sdp.indexOf(`
33
+ `};T.getDirection=function(r,e){let t=T.splitLines(r);for(let n=0;n<t.length;n++)switch(t[n]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return t[n].substring(2);default:}return e?T.getDirection(e):"sendrecv"};T.getKind=function(r){return T.splitLines(r)[0].split(" ")[0].substring(2)};T.isRejected=function(r){return r.split(" ",2)[1]==="0"};T.parseMLine=function(r){let t=T.splitLines(r)[0].substring(2).split(" ");return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(" ")}};T.parseOLine=function(r){let t=T.matchPrefix(r,"o=")[0].substring(2).split(" ");return{username:t[0],sessionId:t[1],sessionVersion:parseInt(t[2],10),netType:t[3],addressType:t[4],address:t[5]}};T.isValidSDP=function(r){if(typeof r!="string"||r.length===0)return!1;let e=T.splitLines(r);for(let t=0;t<e.length;t++)if(e[t].length<2||e[t].charAt(1)!=="=")return!1;return!0};typeof Mn=="object"&&(Mn.exports=T)});var Ts=N(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.removeExtmapAllowMixed=qa;We.shimAddIceCandidateNullOrEmpty=Va;We.shimConnectionState=Ka;We.shimMaxMessageSize=Na;We.shimParameterlessSetLocalDescription=Ha;We.shimRTCIceCandidate=Fa;We.shimRTCIceCandidateRelayProtocol=za;We.shimSendThrowTypeError=$a;var Bt=ja(Dn()),Un=ws(nt());function ws(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(ws=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||Lt(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function ja(r){return r&&r.__esModule?r:{default:r}}function Lt(r){"@babel/helpers - typeof";return Lt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Lt(r)}function Fa(r){if(!(!r.RTCIceCandidate||r.RTCIceCandidate&&"foundation"in r.RTCIceCandidate.prototype)){var e=r.RTCIceCandidate;r.RTCIceCandidate=function(n){if(Lt(n)==="object"&&n.candidate&&n.candidate.indexOf("a=")===0&&(n=JSON.parse(JSON.stringify(n)),n.candidate=n.candidate.substring(2)),n.candidate&&n.candidate.length){var i=new e(n),o=Bt.default.parseCandidate(n.candidate);for(var c in o)c in i||Object.defineProperty(i,c,{value:o[c]});return i.toJSON=function(){return{candidate:i.candidate,sdpMid:i.sdpMid,sdpMLineIndex:i.sdpMLineIndex,usernameFragment:i.usernameFragment}},i}return new e(n)},r.RTCIceCandidate.prototype=e.prototype,Un.wrapPeerConnectionEvent(r,"icecandidate",function(t){return t.candidate&&Object.defineProperty(t,"candidate",{value:new r.RTCIceCandidate(t.candidate),writable:"false"}),t})}}function za(r){!r.RTCIceCandidate||r.RTCIceCandidate&&"relayProtocol"in r.RTCIceCandidate.prototype||Un.wrapPeerConnectionEvent(r,"icecandidate",function(e){if(e.candidate){var t=Bt.default.parseCandidate(e.candidate.candidate);t.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e})}function Na(r,e){if(r.RTCPeerConnection){"sctp"in r.RTCPeerConnection.prototype||Object.defineProperty(r.RTCPeerConnection.prototype,"sctp",{get:function(){return typeof this._sctp>"u"?null:this._sctp}});var t=function(l){if(!l||!l.sdp)return!1;var y=Bt.default.splitSections(l.sdp);return y.shift(),y.some(function(m){var _=Bt.default.parseMLine(m);return _&&_.kind==="application"&&_.protocol.indexOf("SCTP")!==-1})},n=function(l){var y=l.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(y===null||y.length<2)return-1;var m=parseInt(y[1],10);return m!==m?-1:m},i=function(l){var y=65536;return e.browser==="firefox"&&(e.version<57?l===-1?y=16384:y=2147483637:e.version<60?y=e.version===57?65535:65536:y=2147483637),y},o=function(l,y){var m=65536;e.browser==="firefox"&&e.version===57&&(m=65535);var _=Bt.default.matchPrefix(l.sdp,"a=max-message-size:");return _.length>0?m=parseInt(_[0].substring(19),10):e.browser==="firefox"&&y!==-1&&(m=2147483637),m},c=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,e.browser==="chrome"&&e.version>=76){var l=this.getConfiguration(),y=l.sdpSemantics;y==="plan-b"&&Object.defineProperty(this,"sctp",{get:function(){return typeof this._sctp>"u"?null:this._sctp},enumerable:!0,configurable:!0})}if(t(arguments[0])){var m=n(arguments[0]),_=i(m),k=o(arguments[0],m),$;_===0&&k===0?$=Number.POSITIVE_INFINITY:_===0||k===0?$=Math.max(_,k):$=Math.min(_,k);var re={};Object.defineProperty(re,"maxMessageSize",{get:function(){return $}}),this._sctp=re}return c.apply(this,arguments)}}}function $a(r){if(!(r.RTCPeerConnection&&"createDataChannel"in r.RTCPeerConnection.prototype))return;function e(n,i){var o=n.send;n.send=function(){var h=arguments[0],l=h.length||h.size||h.byteLength;if(n.readyState==="open"&&i.sctp&&l>i.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+i.sctp.maxMessageSize+" bytes)");return o.apply(n,arguments)}}var t=r.RTCPeerConnection.prototype.createDataChannel;r.RTCPeerConnection.prototype.createDataChannel=function(){var i=t.apply(this,arguments);return e(i,this),i},Un.wrapPeerConnectionEvent(r,"datachannel",function(n){return e(n.channel,n.target),n})}function Ka(r){if(!(!r.RTCPeerConnection||"connectionState"in r.RTCPeerConnection.prototype)){var e=r.RTCPeerConnection.prototype;Object.defineProperty(e,"connectionState",{get:function(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e,"onconnectionstatechange",{get:function(){return this._onconnectionstatechange||null},set:function(n){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),n&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=n)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(function(t){var n=e[t];e[t]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=function(i){var o=i.target;if(o._lastConnectionState!==o.connectionState){o._lastConnectionState=o.connectionState;var c=new Event("connectionstatechange",i);o.dispatchEvent(c)}return i},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}})}}function qa(r,e){if(r.RTCPeerConnection&&!(e.browser==="chrome"&&e.version>=71)&&!(e.browser==="safari"&&e._safariVersion>=13.1)){var t=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(i){if(i&&i.sdp&&i.sdp.indexOf(`
34
34
  a=extmap-allow-mixed`)!==-1){var o=i.sdp.split(`
35
35
  `).filter(function(c){return c.trim()!=="a=extmap-allow-mixed"}).join(`
36
- `);r.RTCSessionDescription&&i instanceof r.RTCSessionDescription?arguments[0]=new r.RTCSessionDescription({type:i.type,sdp:o}):i.sdp=o}return t.apply(this,arguments)}}}function za(r,e){if(r.RTCPeerConnection&&r.RTCPeerConnection.prototype){var t=r.RTCPeerConnection.prototype.addIceCandidate;!t||t.length===0||(r.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():t.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}}function Na(r,e){if(r.RTCPeerConnection&&r.RTCPeerConnection.prototype){var t=r.RTCPeerConnection.prototype.setLocalDescription;!t||t.length===0||(r.RTCPeerConnection.prototype.setLocalDescription=function(){var i=this,o=arguments[0]||{};if(Bt(o)!=="object"||o.type&&o.sdp)return t.apply(this,arguments);if(o={type:o.type,sdp:o.sdp},!o.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":o.type="offer";break;default:o.type="answer";break}if(o.sdp||o.type!=="offer"&&o.type!=="answer")return t.apply(this,[o]);var c=o.type==="offer"?this.createOffer:this.createAnswer;return c.apply(this).then(function(h){return t.apply(i,[h])})})}}});var ws=N(Mn=>{"use strict";function An(r){"@babel/helpers - typeof";return An=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},An(r)}Object.defineProperty(Mn,"__esModule",{value:!0});Mn.adapterFactory=Ka;var Lt=lt(nt()),qe=lt(hs()),Oe=lt(xs()),Ge=lt(Ss()),me=lt(Ps()),$a=lt(kn());function lt(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(lt=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||An(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function Ka(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=r.window,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},n=Lt.log,i=Lt.detectBrowser(e),o={browserDetails:i,commonShim:me,extractVersion:Lt.extractVersion,disableLog:Lt.disableLog,disableWarnings:Lt.disableWarnings,sdp:$a};switch(i.browser){case"chrome":if(!qe||!qe.shimPeerConnection||!t.shimChrome)return n("Chrome shim is not included in this adapter release."),o;if(i.version===null)return n("Chrome shim can not determine version, not shimming."),o;n("adapter.js shimming chrome."),o.browserShim=qe,me.shimAddIceCandidateNullOrEmpty(e,i),me.shimParameterlessSetLocalDescription(e,i),qe.shimGetUserMedia(e,i),qe.shimMediaStream(e,i),qe.shimPeerConnection(e,i),qe.shimOnTrack(e,i),qe.shimAddTrackRemoveTrack(e,i),qe.shimGetSendersWithDtmf(e,i),qe.shimSenderReceiverGetStats(e,i),qe.fixNegotiationNeeded(e,i),me.shimRTCIceCandidate(e,i),me.shimRTCIceCandidateRelayProtocol(e,i),me.shimConnectionState(e,i),me.shimMaxMessageSize(e,i),me.shimSendThrowTypeError(e,i),me.removeExtmapAllowMixed(e,i);break;case"firefox":if(!Oe||!Oe.shimPeerConnection||!t.shimFirefox)return n("Firefox shim is not included in this adapter release."),o;n("adapter.js shimming firefox."),o.browserShim=Oe,me.shimAddIceCandidateNullOrEmpty(e,i),me.shimParameterlessSetLocalDescription(e,i),Oe.shimGetUserMedia(e,i),Oe.shimPeerConnection(e,i),Oe.shimOnTrack(e,i),Oe.shimRemoveStream(e,i),Oe.shimSenderGetStats(e,i),Oe.shimReceiverGetStats(e,i),Oe.shimRTCDataChannel(e,i),Oe.shimAddTransceiver(e,i),Oe.shimGetParameters(e,i),Oe.shimCreateOffer(e,i),Oe.shimCreateAnswer(e,i),me.shimRTCIceCandidate(e,i),me.shimConnectionState(e,i),me.shimMaxMessageSize(e,i),me.shimSendThrowTypeError(e,i);break;case"safari":if(!Ge||!t.shimSafari)return n("Safari shim is not included in this adapter release."),o;n("adapter.js shimming safari."),o.browserShim=Ge,me.shimAddIceCandidateNullOrEmpty(e,i),me.shimParameterlessSetLocalDescription(e,i),Ge.shimRTCIceServerUrls(e,i),Ge.shimCreateOfferLegacy(e,i),Ge.shimCallbacksAPI(e,i),Ge.shimLocalStreamsAPI(e,i),Ge.shimRemoteStreamsAPI(e,i),Ge.shimTrackEventTransceiver(e,i),Ge.shimGetUserMedia(e,i),Ge.shimAudioContext(e,i),me.shimRTCIceCandidate(e,i),me.shimRTCIceCandidateRelayProtocol(e,i),me.shimMaxMessageSize(e,i),me.shimSendThrowTypeError(e,i),me.removeExtmapAllowMixed(e,i);break;default:n("Unsupported browser!");break}return o}});var Ts=N(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.default=void 0;var qa=ws(),Va=(0,qa.adapterFactory)({window:typeof window>"u"?void 0:window}),qf=yr.default=Va});var Is=N((Hf,Dn)=>{"use strict";var Ha=Object.prototype.hasOwnProperty,ke="~";function jt(){}Object.create&&(jt.prototype=Object.create(null),new jt().__proto__||(ke=!1));function Wa(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Es(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new Wa(t,n||r,i),c=ke?ke+e:e;return r._events[c]?r._events[c].fn?r._events[c]=[r._events[c],o]:r._events[c].push(o):(r._events[c]=o,r._eventsCount++),r}function mr(r,e){--r._eventsCount===0?r._events=new jt:delete r._events[e]}function Te(){this._events=new jt,this._eventsCount=0}Te.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Ha.call(t,n)&&e.push(ke?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Te.prototype.listeners=function(e){var t=ke?ke+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,c=new Array(o);i<o;i++)c[i]=n[i].fn;return c};Te.prototype.listenerCount=function(e){var t=ke?ke+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Te.prototype.emit=function(e,t,n,i,o,c){var h=ke?ke+e:e;if(!this._events[h])return!1;var l=this._events[h],y=arguments.length,m,_;if(l.fn){switch(l.once&&this.removeListener(e,l.fn,void 0,!0),y){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,t),!0;case 3:return l.fn.call(l.context,t,n),!0;case 4:return l.fn.call(l.context,t,n,i),!0;case 5:return l.fn.call(l.context,t,n,i,o),!0;case 6:return l.fn.call(l.context,t,n,i,o,c),!0}for(_=1,m=new Array(y-1);_<y;_++)m[_-1]=arguments[_];l.fn.apply(l.context,m)}else{var k=l.length,$;for(_=0;_<k;_++)switch(l[_].once&&this.removeListener(e,l[_].fn,void 0,!0),y){case 1:l[_].fn.call(l[_].context);break;case 2:l[_].fn.call(l[_].context,t);break;case 3:l[_].fn.call(l[_].context,t,n);break;case 4:l[_].fn.call(l[_].context,t,n,i);break;default:if(!m)for($=1,m=new Array(y-1);$<y;$++)m[$-1]=arguments[$];l[_].fn.apply(l[_].context,m)}}return!0};Te.prototype.on=function(e,t,n){return Es(this,e,t,n,!1)};Te.prototype.once=function(e,t,n){return Es(this,e,t,n,!0)};Te.prototype.removeListener=function(e,t,n,i){var o=ke?ke+e:e;if(!this._events[o])return this;if(!t)return mr(this,o),this;var c=this._events[o];if(c.fn)c.fn===t&&(!i||c.once)&&(!n||c.context===n)&&mr(this,o);else{for(var h=0,l=[],y=c.length;h<y;h++)(c[h].fn!==t||i&&!c[h].once||n&&c[h].context!==n)&&l.push(c[h]);l.length?this._events[o]=l.length===1?l[0]:l:mr(this,o)}return this};Te.prototype.removeAllListeners=function(e){var t;return e?(t=ke?ke+e:e,this._events[t]&&mr(this,t)):(this._events=new jt,this._eventsCount=0),this};Te.prototype.off=Te.prototype.removeListener;Te.prototype.addListener=Te.prototype.on;Te.prefixed=ke;Te.EventEmitter=Te;typeof Dn<"u"&&(Dn.exports=Te)});var Ft=N(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.getUint64=Fe.getInt64=Fe.setInt64=Fe.setUint64=Fe.UINT32_MAX=void 0;Fe.UINT32_MAX=4294967295;function Ga(r,e,t){let n=t/4294967296,i=t;r.setUint32(e,n),r.setUint32(e+4,i)}Fe.setUint64=Ga;function Ya(r,e,t){let n=Math.floor(t/4294967296),i=t;r.setUint32(e,n),r.setUint32(e+4,i)}Fe.setInt64=Ya;function Ja(r,e){let t=r.getInt32(e),n=r.getUint32(e+4);return t*4294967296+n}Fe.getInt64=Ja;function Xa(r,e){let t=r.getUint32(e),n=r.getUint32(e+4);return t*4294967296+n}Fe.getUint64=Xa});var xr=N(Ee=>{"use strict";var Un,On,Bn;Object.defineProperty(Ee,"__esModule",{value:!0});Ee.utf8DecodeTD=Ee.TEXT_DECODER_THRESHOLD=Ee.utf8DecodeJs=Ee.utf8EncodeTE=Ee.TEXT_ENCODER_THRESHOLD=Ee.utf8EncodeJs=Ee.utf8Count=void 0;var ks=Ft(),gr=(typeof process>"u"||((Un=process==null?void 0:process.env)===null||Un===void 0?void 0:Un.TEXT_ENCODING)!=="never")&&typeof TextEncoder<"u"&&typeof TextDecoder<"u";function Za(r){let e=r.length,t=0,n=0;for(;n<e;){let i=r.charCodeAt(n++);if((i&4294967168)===0){t++;continue}else if((i&4294965248)===0)t+=2;else{if(i>=55296&&i<=56319&&n<e){let o=r.charCodeAt(n);(o&64512)===56320&&(++n,i=((i&1023)<<10)+(o&1023)+65536)}(i&4294901760)===0?t+=3:t+=4}}return t}Ee.utf8Count=Za;function Qa(r,e,t){let n=r.length,i=t,o=0;for(;o<n;){let c=r.charCodeAt(o++);if((c&4294967168)===0){e[i++]=c;continue}else if((c&4294965248)===0)e[i++]=c>>6&31|192;else{if(c>=55296&&c<=56319&&o<n){let h=r.charCodeAt(o);(h&64512)===56320&&(++o,c=((c&1023)<<10)+(h&1023)+65536)}(c&4294901760)===0?(e[i++]=c>>12&15|224,e[i++]=c>>6&63|128):(e[i++]=c>>18&7|240,e[i++]=c>>12&63|128,e[i++]=c>>6&63|128)}e[i++]=c&63|128}}Ee.utf8EncodeJs=Qa;var zt=gr?new TextEncoder:void 0;Ee.TEXT_ENCODER_THRESHOLD=gr?typeof process<"u"&&((On=process==null?void 0:process.env)===null||On===void 0?void 0:On.TEXT_ENCODING)!=="force"?200:0:ks.UINT32_MAX;function ec(r,e,t){e.set(zt.encode(r),t)}function tc(r,e,t){zt.encodeInto(r,e.subarray(t))}Ee.utf8EncodeTE=zt?.encodeInto?tc:ec;var rc=4096;function nc(r,e,t){let n=e,i=n+t,o=[],c="";for(;n<i;){let h=r[n++];if((h&128)===0)o.push(h);else if((h&224)===192){let l=r[n++]&63;o.push((h&31)<<6|l)}else if((h&240)===224){let l=r[n++]&63,y=r[n++]&63;o.push((h&31)<<12|l<<6|y)}else if((h&248)===240){let l=r[n++]&63,y=r[n++]&63,m=r[n++]&63,_=(h&7)<<18|l<<12|y<<6|m;_>65535&&(_-=65536,o.push(_>>>10&1023|55296),_=56320|_&1023),o.push(_)}else o.push(h);o.length>=rc&&(c+=String.fromCharCode(...o),o.length=0)}return o.length>0&&(c+=String.fromCharCode(...o)),c}Ee.utf8DecodeJs=nc;var ic=gr?new TextDecoder:null;Ee.TEXT_DECODER_THRESHOLD=gr?typeof process<"u"&&((Bn=process==null?void 0:process.env)===null||Bn===void 0?void 0:Bn.TEXT_DECODER)!=="force"?200:0:ks.UINT32_MAX;function sc(r,e,t){let n=r.subarray(e,e+t);return ic.decode(n)}Ee.utf8DecodeTD=sc});var jn=N(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.ExtData=void 0;var Ln=class{constructor(e,t){this.type=e,this.data=t}};br.ExtData=Ln});var _r=N(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.DecodeError=void 0;var Fn=class r extends Error{constructor(e){super(e);let t=Object.create(r.prototype);Object.setPrototypeOf(this,t),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:r.name})}};vr.DecodeError=Fn});var zn=N(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.timestampExtension=Se.decodeTimestampExtension=Se.decodeTimestampToTimeSpec=Se.encodeTimestampExtension=Se.encodeDateToTimeSpec=Se.encodeTimeSpecToTimestamp=Se.EXT_TIMESTAMP=void 0;var oc=_r(),Rs=Ft();Se.EXT_TIMESTAMP=-1;var ac=4294967296-1,cc=17179869184-1;function As({sec:r,nsec:e}){if(r>=0&&e>=0&&r<=cc)if(e===0&&r<=ac){let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,r),t}else{let t=r/4294967296,n=r&4294967295,i=new Uint8Array(8),o=new DataView(i.buffer);return o.setUint32(0,e<<2|t&3),o.setUint32(4,n),i}else{let t=new Uint8Array(12),n=new DataView(t.buffer);return n.setUint32(0,e),(0,Rs.setInt64)(n,4,r),t}}Se.encodeTimeSpecToTimestamp=As;function Ms(r){let e=r.getTime(),t=Math.floor(e/1e3),n=(e-t*1e3)*1e6,i=Math.floor(n/1e9);return{sec:t+i,nsec:n-i*1e9}}Se.encodeDateToTimeSpec=Ms;function Ds(r){if(r instanceof Date){let e=Ms(r);return As(e)}else return null}Se.encodeTimestampExtension=Ds;function Us(r){let e=new DataView(r.buffer,r.byteOffset,r.byteLength);switch(r.byteLength){case 4:return{sec:e.getUint32(0),nsec:0};case 8:{let t=e.getUint32(0),n=e.getUint32(4),i=(t&3)*4294967296+n,o=t>>>2;return{sec:i,nsec:o}}case 12:{let t=(0,Rs.getInt64)(e,4),n=e.getUint32(0);return{sec:t,nsec:n}}default:throw new oc.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${r.length}`)}}Se.decodeTimestampToTimeSpec=Us;function Os(r){let e=Us(r);return new Date(e.sec*1e3+e.nsec/1e6)}Se.decodeTimestampExtension=Os;Se.timestampExtension={type:Se.EXT_TIMESTAMP,encode:Ds,decode:Os}});var Pr=N(Cr=>{"use strict";Object.defineProperty(Cr,"__esModule",{value:!0});Cr.ExtensionCodec=void 0;var Sr=jn(),fc=zn(),Nt=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(fc.timestampExtension)}register({type:e,encode:t,decode:n}){if(e>=0)this.encoders[e]=t,this.decoders[e]=n;else{let i=1+e;this.builtInEncoders[i]=t,this.builtInDecoders[i]=n}}tryToEncode(e,t){for(let n=0;n<this.builtInEncoders.length;n++){let i=this.builtInEncoders[n];if(i!=null){let o=i(e,t);if(o!=null){let c=-1-n;return new Sr.ExtData(c,o)}}}for(let n=0;n<this.encoders.length;n++){let i=this.encoders[n];if(i!=null){let o=i(e,t);if(o!=null){let c=n;return new Sr.ExtData(c,o)}}}return e instanceof Sr.ExtData?e:null}decode(e,t,n){let i=t<0?this.builtInDecoders[-1-t]:this.decoders[t];return i?i(e,t,n):new Sr.ExtData(t,e)}};Cr.ExtensionCodec=Nt;Nt.defaultCodec=new Nt});var Nn=N(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.createDataView=Ct.ensureUint8Array=void 0;function Bs(r){return r instanceof Uint8Array?r:ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r instanceof ArrayBuffer?new Uint8Array(r):Uint8Array.from(r)}Ct.ensureUint8Array=Bs;function dc(r){if(r instanceof ArrayBuffer)return new DataView(r);let e=Bs(r);return new DataView(e.buffer,e.byteOffset,e.byteLength)}Ct.createDataView=dc});var Kn=N(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.Encoder=Ye.DEFAULT_INITIAL_BUFFER_SIZE=Ye.DEFAULT_MAX_DEPTH=void 0;var $t=xr(),uc=Pr(),Ls=Ft(),hc=Nn();Ye.DEFAULT_MAX_DEPTH=100;Ye.DEFAULT_INITIAL_BUFFER_SIZE=2048;var $n=class{constructor(e=uc.ExtensionCodec.defaultCodec,t=void 0,n=Ye.DEFAULT_MAX_DEPTH,i=Ye.DEFAULT_INITIAL_BUFFER_SIZE,o=!1,c=!1,h=!1,l=!1){this.extensionCodec=e,this.context=t,this.maxDepth=n,this.initialBufferSize=i,this.sortKeys=o,this.forceFloat32=c,this.ignoreUndefined=h,this.forceIntegerToFloat=l,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}reinitializeState(){this.pos=0}encodeSharedRef(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}encode(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}doEncode(e,t){if(t>this.maxDepth)throw new Error(`Too deep objects in depth ${t}`);e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.encodeObject(e,t)}ensureBufferSizeToWrite(e){let t=this.pos+e;this.view.byteLength<t&&this.resizeBuffer(t*2)}resizeBuffer(e){let t=new ArrayBuffer(e),n=new Uint8Array(t),i=new DataView(t);n.set(this.bytes),this.view=i,this.bytes=n}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){Number.isSafeInteger(e)&&!this.forceIntegerToFloat?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):(this.writeU8(211),this.writeI64(e)):this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){if(e.length>$t.TEXT_ENCODER_THRESHOLD){let i=(0,$t.utf8Count)(e);this.ensureBufferSizeToWrite(5+i),this.writeStringHeader(i),(0,$t.utf8EncodeTE)(e,this.bytes,this.pos),this.pos+=i}else{let i=(0,$t.utf8Count)(e);this.ensureBufferSizeToWrite(5+i),this.writeStringHeader(i),(0,$t.utf8EncodeJs)(e,this.bytes,this.pos),this.pos+=i}}encodeObject(e,t){let n=this.extensionCodec.tryToEncode(e,this.context);if(n!=null)this.encodeExtension(n);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,t);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){let t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<4294967296)this.writeU8(198),this.writeU32(t);else throw new Error(`Too large binary: ${t}`);let n=(0,hc.ensureUint8Array)(e);this.writeU8a(n)}encodeArray(e,t){let n=e.length;if(n<16)this.writeU8(144+n);else if(n<65536)this.writeU8(220),this.writeU16(n);else if(n<4294967296)this.writeU8(221),this.writeU32(n);else throw new Error(`Too large array: ${n}`);for(let i of e)this.doEncode(i,t+1)}countWithoutUndefined(e,t){let n=0;for(let i of t)e[i]!==void 0&&n++;return n}encodeMap(e,t){let n=Object.keys(e);this.sortKeys&&n.sort();let i=this.ignoreUndefined?this.countWithoutUndefined(e,n):n.length;if(i<16)this.writeU8(128+i);else if(i<65536)this.writeU8(222),this.writeU16(i);else if(i<4294967296)this.writeU8(223),this.writeU32(i);else throw new Error(`Too large map object: ${i}`);for(let o of n){let c=e[o];this.ignoreUndefined&&c===void 0||(this.encodeString(o),this.doEncode(c,t+1))}}encodeExtension(e){let t=e.data.length;if(t===1)this.writeU8(212);else if(t===2)this.writeU8(213);else if(t===4)this.writeU8(214);else if(t===8)this.writeU8(215);else if(t===16)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<4294967296)this.writeU8(201),this.writeU32(t);else throw new Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){let t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),(0,Ls.setUint64)(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),(0,Ls.setInt64)(this.view,this.pos,e),this.pos+=8}};Ye.Encoder=$n});var js=N(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.encode=void 0;var lc=Kn(),pc={};function yc(r,e=pc){return new lc.Encoder(e.extensionCodec,e.context,e.maxDepth,e.initialBufferSize,e.sortKeys,e.forceFloat32,e.ignoreUndefined,e.forceIntegerToFloat).encodeSharedRef(r)}wr.encode=yc});var Fs=N(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.prettyByte=void 0;function mc(r){return`${r<0?"-":""}0x${Math.abs(r).toString(16).padStart(2,"0")}`}Tr.prettyByte=mc});var zs=N(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.CachedKeyDecoder=void 0;var gc=xr(),xc=16,bc=16,qn=class{constructor(e=xc,t=bc){this.maxKeyLength=e,this.maxLengthPerKey=t,this.hit=0,this.miss=0,this.caches=[];for(let n=0;n<this.maxKeyLength;n++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,n){let i=this.caches[n-1];e:for(let o of i){let c=o.bytes;for(let h=0;h<n;h++)if(c[h]!==e[t+h])continue e;return o.str}return null}store(e,t){let n=this.caches[e.length-1],i={bytes:e,str:t};n.length>=this.maxLengthPerKey?n[Math.random()*n.length|0]=i:n.push(i)}decode(e,t,n){let i=this.find(e,t,n);if(i!=null)return this.hit++,i;this.miss++;let o=(0,gc.utf8DecodeJs)(e,t,n),c=Uint8Array.prototype.slice.call(e,t,t+n);return this.store(c,o),o}};Er.CachedKeyDecoder=qn});var Ir=N(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.Decoder=tt.DataViewIndexOutOfBoundsError=void 0;var Vn=Fs(),vc=Pr(),pt=Ft(),Hn=xr(),Wn=Nn(),_c=zs(),et=_r(),Sc=r=>{let e=typeof r;return e==="string"||e==="number"},Kt=-1,Yn=new DataView(new ArrayBuffer(0)),Cc=new Uint8Array(Yn.buffer);tt.DataViewIndexOutOfBoundsError=(()=>{try{Yn.getInt8(0)}catch(r){return r.constructor}throw new Error("never reached")})();var Ns=new tt.DataViewIndexOutOfBoundsError("Insufficient data"),Pc=new _c.CachedKeyDecoder,Gn=class{constructor(e=vc.ExtensionCodec.defaultCodec,t=void 0,n=pt.UINT32_MAX,i=pt.UINT32_MAX,o=pt.UINT32_MAX,c=pt.UINT32_MAX,h=pt.UINT32_MAX,l=Pc){this.extensionCodec=e,this.context=t,this.maxStrLength=n,this.maxBinLength=i,this.maxArrayLength=o,this.maxMapLength=c,this.maxExtLength=h,this.keyDecoder=l,this.totalPos=0,this.pos=0,this.view=Yn,this.bytes=Cc,this.headByte=Kt,this.stack=[]}reinitializeState(){this.totalPos=0,this.headByte=Kt,this.stack.length=0}setBuffer(e){this.bytes=(0,Wn.ensureUint8Array)(e),this.view=(0,Wn.createDataView)(this.bytes),this.pos=0}appendBuffer(e){if(this.headByte===Kt&&!this.hasRemaining(1))this.setBuffer(e);else{let t=this.bytes.subarray(this.pos),n=(0,Wn.ensureUint8Array)(e),i=new Uint8Array(t.length+n.length);i.set(t),i.set(n,t.length),this.setBuffer(i)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){let{view:t,pos:n}=this;return new RangeError(`Extra ${t.byteLength-n} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){this.reinitializeState(),this.setBuffer(e);let t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}*decodeMulti(e){for(this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}async decodeAsync(e){let t=!1,n;for await(let h of e){if(t)throw this.createExtraByteError(this.totalPos);this.appendBuffer(h);try{n=this.doDecodeSync(),t=!0}catch(l){if(!(l instanceof tt.DataViewIndexOutOfBoundsError))throw l}this.totalPos+=this.pos}if(t){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return n}let{headByte:i,pos:o,totalPos:c}=this;throw new RangeError(`Insufficient data in parsing ${(0,Vn.prettyByte)(i)} at ${c} (${o} in the current buffer)`)}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,t){let n=t,i=-1;for await(let o of e){if(t&&i===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(o),n&&(i=this.readArraySize(),n=!1,this.complete());try{for(;yield this.doDecodeSync(),--i!==0;);}catch(c){if(!(c instanceof tt.DataViewIndexOutOfBoundsError))throw c}this.totalPos+=this.pos}}doDecodeSync(){e:for(;;){let e=this.readHeadByte(),t;if(e>=224)t=e-256;else if(e<192)if(e<128)t=e;else if(e<144){let i=e-128;if(i!==0){this.pushMapState(i),this.complete();continue e}else t={}}else if(e<160){let i=e-144;if(i!==0){this.pushArrayState(i),this.complete();continue e}else t=[]}else{let i=e-160;t=this.decodeUtf8String(i,0)}else if(e===192)t=null;else if(e===194)t=!1;else if(e===195)t=!0;else if(e===202)t=this.readF32();else if(e===203)t=this.readF64();else if(e===204)t=this.readU8();else if(e===205)t=this.readU16();else if(e===206)t=this.readU32();else if(e===207)t=this.readU64();else if(e===208)t=this.readI8();else if(e===209)t=this.readI16();else if(e===210)t=this.readI32();else if(e===211)t=this.readI64();else if(e===217){let i=this.lookU8();t=this.decodeUtf8String(i,1)}else if(e===218){let i=this.lookU16();t=this.decodeUtf8String(i,2)}else if(e===219){let i=this.lookU32();t=this.decodeUtf8String(i,4)}else if(e===220){let i=this.readU16();if(i!==0){this.pushArrayState(i),this.complete();continue e}else t=[]}else if(e===221){let i=this.readU32();if(i!==0){this.pushArrayState(i),this.complete();continue e}else t=[]}else if(e===222){let i=this.readU16();if(i!==0){this.pushMapState(i),this.complete();continue e}else t={}}else if(e===223){let i=this.readU32();if(i!==0){this.pushMapState(i),this.complete();continue e}else t={}}else if(e===196){let i=this.lookU8();t=this.decodeBinary(i,1)}else if(e===197){let i=this.lookU16();t=this.decodeBinary(i,2)}else if(e===198){let i=this.lookU32();t=this.decodeBinary(i,4)}else if(e===212)t=this.decodeExtension(1,0);else if(e===213)t=this.decodeExtension(2,0);else if(e===214)t=this.decodeExtension(4,0);else if(e===215)t=this.decodeExtension(8,0);else if(e===216)t=this.decodeExtension(16,0);else if(e===199){let i=this.lookU8();t=this.decodeExtension(i,1)}else if(e===200){let i=this.lookU16();t=this.decodeExtension(i,2)}else if(e===201){let i=this.lookU32();t=this.decodeExtension(i,4)}else throw new et.DecodeError(`Unrecognized type byte: ${(0,Vn.prettyByte)(e)}`);this.complete();let n=this.stack;for(;n.length>0;){let i=n[n.length-1];if(i.type===0)if(i.array[i.position]=t,i.position++,i.position===i.size)n.pop(),t=i.array;else continue e;else if(i.type===1){if(!Sc(t))throw new et.DecodeError("The type of key must be string or number but "+typeof t);if(t==="__proto__")throw new et.DecodeError("The key __proto__ is not allowed");i.key=t,i.type=2;continue e}else if(i.map[i.key]=t,i.readCount++,i.readCount===i.size)n.pop(),t=i.map;else{i.key=null,i.type=1;continue e}}return t}}readHeadByte(){return this.headByte===Kt&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=Kt}readArraySize(){let e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new et.DecodeError(`Unrecognized array type byte: ${(0,Vn.prettyByte)(e)}`)}}}pushMapState(e){if(e>this.maxMapLength)throw new et.DecodeError(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.push({type:1,size:e,key:null,readCount:0,map:{}})}pushArrayState(e){if(e>this.maxArrayLength)throw new et.DecodeError(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.push({type:0,size:e,array:new Array(e),position:0})}decodeUtf8String(e,t){var n;if(e>this.maxStrLength)throw new et.DecodeError(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw Ns;let i=this.pos+t,o;return this.stateIsMapKey()&&(!((n=this.keyDecoder)===null||n===void 0)&&n.canBeCached(e))?o=this.keyDecoder.decode(this.bytes,i,e):e>Hn.TEXT_DECODER_THRESHOLD?o=(0,Hn.utf8DecodeTD)(this.bytes,i,e):o=(0,Hn.utf8DecodeJs)(this.bytes,i,e),this.pos+=t+e,o}stateIsMapKey(){return this.stack.length>0?this.stack[this.stack.length-1].type===1:!1}decodeBinary(e,t){if(e>this.maxBinLength)throw new et.DecodeError(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw Ns;let n=this.pos+t,i=this.bytes.subarray(n,n+e);return this.pos+=t+e,i}decodeExtension(e,t){if(e>this.maxExtLength)throw new et.DecodeError(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);let n=this.view.getInt8(this.pos+t),i=this.decodeBinary(e,t+1);return this.extensionCodec.decode(i,n,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){let e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){let e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){let e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){let e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){let e=(0,pt.getUint64)(this.view,this.pos);return this.pos+=8,e}readI64(){let e=(0,pt.getInt64)(this.view,this.pos);return this.pos+=8,e}readF32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}};tt.Decoder=Gn});var Jn=N(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.decodeMulti=Je.decode=Je.defaultDecodeOptions=void 0;var $s=Ir();Je.defaultDecodeOptions={};function wc(r,e=Je.defaultDecodeOptions){return new $s.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decode(r)}Je.decode=wc;function Tc(r,e=Je.defaultDecodeOptions){return new $s.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeMulti(r)}Je.decodeMulti=Tc});var Vs=N(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.ensureAsyncIterable=ot.asyncIterableFromStream=ot.isAsyncIterable=void 0;function Ks(r){return r[Symbol.asyncIterator]!=null}ot.isAsyncIterable=Ks;function Ec(r){if(r==null)throw new Error("Assertion Failure: value must not be null nor undefined")}async function*qs(r){let e=r.getReader();try{for(;;){let{done:t,value:n}=await e.read();if(t)return;Ec(n),yield n}}finally{e.releaseLock()}}ot.asyncIterableFromStream=qs;function Ic(r){return Ks(r)?r:qs(r)}ot.ensureAsyncIterable=Ic});var Ws=N(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.decodeStream=Xe.decodeMultiStream=Xe.decodeArrayStream=Xe.decodeAsync=void 0;var Xn=Ir(),Zn=Vs(),kr=Jn();async function kc(r,e=kr.defaultDecodeOptions){let t=(0,Zn.ensureAsyncIterable)(r);return new Xn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeAsync(t)}Xe.decodeAsync=kc;function Rc(r,e=kr.defaultDecodeOptions){let t=(0,Zn.ensureAsyncIterable)(r);return new Xn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeArrayStream(t)}Xe.decodeArrayStream=Rc;function Hs(r,e=kr.defaultDecodeOptions){let t=(0,Zn.ensureAsyncIterable)(r);return new Xn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeStream(t)}Xe.decodeMultiStream=Hs;function Ac(r,e=kr.defaultDecodeOptions){return Hs(r,e)}Xe.decodeStream=Ac});var Js=N(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});ee.decodeTimestampExtension=ee.encodeTimestampExtension=ee.decodeTimestampToTimeSpec=ee.encodeTimeSpecToTimestamp=ee.encodeDateToTimeSpec=ee.EXT_TIMESTAMP=ee.ExtData=ee.ExtensionCodec=ee.Encoder=ee.DataViewIndexOutOfBoundsError=ee.DecodeError=ee.Decoder=ee.decodeStream=ee.decodeMultiStream=ee.decodeArrayStream=ee.decodeAsync=ee.decodeMulti=ee.decode=ee.encode=void 0;var Mc=js();Object.defineProperty(ee,"encode",{enumerable:!0,get:function(){return Mc.encode}});var Gs=Jn();Object.defineProperty(ee,"decode",{enumerable:!0,get:function(){return Gs.decode}});Object.defineProperty(ee,"decodeMulti",{enumerable:!0,get:function(){return Gs.decodeMulti}});var Rr=Ws();Object.defineProperty(ee,"decodeAsync",{enumerable:!0,get:function(){return Rr.decodeAsync}});Object.defineProperty(ee,"decodeArrayStream",{enumerable:!0,get:function(){return Rr.decodeArrayStream}});Object.defineProperty(ee,"decodeMultiStream",{enumerable:!0,get:function(){return Rr.decodeMultiStream}});Object.defineProperty(ee,"decodeStream",{enumerable:!0,get:function(){return Rr.decodeStream}});var Ys=Ir();Object.defineProperty(ee,"Decoder",{enumerable:!0,get:function(){return Ys.Decoder}});Object.defineProperty(ee,"DataViewIndexOutOfBoundsError",{enumerable:!0,get:function(){return Ys.DataViewIndexOutOfBoundsError}});var Dc=_r();Object.defineProperty(ee,"DecodeError",{enumerable:!0,get:function(){return Dc.DecodeError}});var Uc=Kn();Object.defineProperty(ee,"Encoder",{enumerable:!0,get:function(){return Uc.Encoder}});var Oc=Pr();Object.defineProperty(ee,"ExtensionCodec",{enumerable:!0,get:function(){return Oc.ExtensionCodec}});var Bc=jn();Object.defineProperty(ee,"ExtData",{enumerable:!0,get:function(){return Bc.ExtData}});var Pt=zn();Object.defineProperty(ee,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return Pt.EXT_TIMESTAMP}});Object.defineProperty(ee,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return Pt.encodeDateToTimeSpec}});Object.defineProperty(ee,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return Pt.encodeTimeSpecToTimestamp}});Object.defineProperty(ee,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return Pt.decodeTimestampToTimeSpec}});Object.defineProperty(ee,"encodeTimestampExtension",{enumerable:!0,get:function(){return Pt.encodeTimestampExtension}});Object.defineProperty(ee,"decodeTimestampExtension",{enumerable:!0,get:function(){return Pt.decodeTimestampExtension}})});var li=N((fd,Ve)=>{var Ar=ts(),Xs=Ts(),to=Is(),Zs=Js();function Lc(r){Object.defineProperty(r,"__esModule",{value:!0,configurable:!0})}function jc(r,e){return Object.keys(e).forEach(function(t){t==="default"||t==="__esModule"||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r}function Ae(r,e,t,n){Object.defineProperty(r,e,{get:t,set:n,enumerable:!0,configurable:!0})}function Qs(r){return r&&r.__esModule?r.default:r}Lc(Ve.exports);Ae(Ve.exports,"default",()=>$c);Ae(Ve.exports,"util",()=>Re);Ae(Ve.exports,"BufferedConnection",()=>wt);Ae(Ve.exports,"StreamConnection",()=>jr);Ae(Ve.exports,"MsgPack",()=>Yt);Ae(Ve.exports,"Peer",()=>Gt);Ae(Ve.exports,"MsgPackPeer",()=>ai);Ae(Ve.exports,"PeerError",()=>Or);var Mr=class{constructor(){this.chunkedMTU=16300,this._dataCount=1,this.chunk=e=>{let t=[],n=e.byteLength,i=Math.ceil(n/this.chunkedMTU),o=0,c=0;for(;c<n;){let h=Math.min(n,c+this.chunkedMTU),l=e.slice(c,h),y={__peerData:this._dataCount,n:o,data:l,total:i};t.push(y),c=h,o++}return this._dataCount++,t}}};function Fc(r){let e=0;for(let i of r)e+=i.byteLength;let t=new Uint8Array(e),n=0;for(let i of r)t.set(i,n),n+=i.byteLength;return t}var Qn=Qs(Xs).default||Qs(Xs),qt=new class{isWebRTCSupported(){return typeof RTCPeerConnection<"u"}isBrowserSupported(){let r=this.getBrowser(),e=this.getVersion();return this.supportedBrowsers.includes(r)?r==="chrome"?e>=this.minChromeVersion:r==="firefox"?e>=this.minFirefoxVersion:r==="safari"?!this.isIOS&&e>=this.minSafariVersion:!1:!1}getBrowser(){return Qn.browserDetails.browser}getVersion(){return Qn.browserDetails.version||0}isUnifiedPlanSupported(){let r=this.getBrowser(),e=Qn.browserDetails.version||0;if(r==="chrome"&&e<this.minChromeVersion)return!1;if(r==="firefox"&&e>=this.minFirefoxVersion)return!0;if(!window.RTCRtpTransceiver||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let t,n=!1;try{t=new RTCPeerConnection,t.addTransceiver("audio"),n=!0}catch{}finally{t&&t.close()}return n}toString(){return`Supports:
36
+ `);r.RTCSessionDescription&&i instanceof r.RTCSessionDescription?arguments[0]=new r.RTCSessionDescription({type:i.type,sdp:o}):i.sdp=o}return t.apply(this,arguments)}}}function Va(r,e){if(r.RTCPeerConnection&&r.RTCPeerConnection.prototype){var t=r.RTCPeerConnection.prototype.addIceCandidate;!t||t.length===0||(r.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():t.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}}function Ha(r,e){if(r.RTCPeerConnection&&r.RTCPeerConnection.prototype){var t=r.RTCPeerConnection.prototype.setLocalDescription;!t||t.length===0||(r.RTCPeerConnection.prototype.setLocalDescription=function(){var i=this,o=arguments[0]||{};if(Lt(o)!=="object"||o.type&&o.sdp)return t.apply(this,arguments);if(o={type:o.type,sdp:o.sdp},!o.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":o.type="offer";break;default:o.type="answer";break}if(o.sdp||o.type!=="offer"&&o.type!=="answer")return t.apply(this,[o]);var c=o.type==="offer"?this.createOffer:this.createAnswer;return c.apply(this).then(function(h){return t.apply(i,[h])})})}}});var Es=N(Bn=>{"use strict";function On(r){"@babel/helpers - typeof";return On=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},On(r)}Object.defineProperty(Bn,"__esModule",{value:!0});Bn.adapterFactory=Ga;var jt=lt(nt()),qe=lt(ps()),Oe=lt(vs()),Ge=lt(Ps()),ge=lt(Ts()),Wa=lt(Dn());function lt(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(lt=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||On(o)!="object"&&typeof o!="function")return y;if(h=c?n:t){if(h.has(o))return h.get(o);h.set(o,y)}for(var m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(l.get||l.set)?h(y,m,l):y[m]=o[m]);return y})(r,e)}function Ga(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=r.window,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},n=jt.log,i=jt.detectBrowser(e),o={browserDetails:i,commonShim:ge,extractVersion:jt.extractVersion,disableLog:jt.disableLog,disableWarnings:jt.disableWarnings,sdp:Wa};switch(i.browser){case"chrome":if(!qe||!qe.shimPeerConnection||!t.shimChrome)return n("Chrome shim is not included in this adapter release."),o;if(i.version===null)return n("Chrome shim can not determine version, not shimming."),o;n("adapter.js shimming chrome."),o.browserShim=qe,ge.shimAddIceCandidateNullOrEmpty(e,i),ge.shimParameterlessSetLocalDescription(e,i),qe.shimGetUserMedia(e,i),qe.shimMediaStream(e,i),qe.shimPeerConnection(e,i),qe.shimOnTrack(e,i),qe.shimAddTrackRemoveTrack(e,i),qe.shimGetSendersWithDtmf(e,i),qe.shimSenderReceiverGetStats(e,i),qe.fixNegotiationNeeded(e,i),ge.shimRTCIceCandidate(e,i),ge.shimRTCIceCandidateRelayProtocol(e,i),ge.shimConnectionState(e,i),ge.shimMaxMessageSize(e,i),ge.shimSendThrowTypeError(e,i),ge.removeExtmapAllowMixed(e,i);break;case"firefox":if(!Oe||!Oe.shimPeerConnection||!t.shimFirefox)return n("Firefox shim is not included in this adapter release."),o;n("adapter.js shimming firefox."),o.browserShim=Oe,ge.shimAddIceCandidateNullOrEmpty(e,i),ge.shimParameterlessSetLocalDescription(e,i),Oe.shimGetUserMedia(e,i),Oe.shimPeerConnection(e,i),Oe.shimOnTrack(e,i),Oe.shimRemoveStream(e,i),Oe.shimSenderGetStats(e,i),Oe.shimReceiverGetStats(e,i),Oe.shimRTCDataChannel(e,i),Oe.shimAddTransceiver(e,i),Oe.shimGetParameters(e,i),Oe.shimCreateOffer(e,i),Oe.shimCreateAnswer(e,i),ge.shimRTCIceCandidate(e,i),ge.shimConnectionState(e,i),ge.shimMaxMessageSize(e,i),ge.shimSendThrowTypeError(e,i);break;case"safari":if(!Ge||!t.shimSafari)return n("Safari shim is not included in this adapter release."),o;n("adapter.js shimming safari."),o.browserShim=Ge,ge.shimAddIceCandidateNullOrEmpty(e,i),ge.shimParameterlessSetLocalDescription(e,i),Ge.shimRTCIceServerUrls(e,i),Ge.shimCreateOfferLegacy(e,i),Ge.shimCallbacksAPI(e,i),Ge.shimLocalStreamsAPI(e,i),Ge.shimRemoteStreamsAPI(e,i),Ge.shimTrackEventTransceiver(e,i),Ge.shimGetUserMedia(e,i),Ge.shimAudioContext(e,i),ge.shimRTCIceCandidate(e,i),ge.shimRTCIceCandidateRelayProtocol(e,i),ge.shimMaxMessageSize(e,i),ge.shimSendThrowTypeError(e,i),ge.removeExtmapAllowMixed(e,i);break;default:n("Unsupported browser!");break}return o}});var Is=N(gr=>{"use strict";Object.defineProperty(gr,"__esModule",{value:!0});gr.default=void 0;var Ya=Es(),Ja=(0,Ya.adapterFactory)({window:typeof window>"u"?void 0:window}),Yf=gr.default=Ja});var Rs=N((Xf,Ln)=>{"use strict";var Xa=Object.prototype.hasOwnProperty,ke="~";function Ft(){}Object.create&&(Ft.prototype=Object.create(null),new Ft().__proto__||(ke=!1));function Za(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function ks(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new Za(t,n||r,i),c=ke?ke+e:e;return r._events[c]?r._events[c].fn?r._events[c]=[r._events[c],o]:r._events[c].push(o):(r._events[c]=o,r._eventsCount++),r}function xr(r,e){--r._eventsCount===0?r._events=new Ft:delete r._events[e]}function Te(){this._events=new Ft,this._eventsCount=0}Te.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Xa.call(t,n)&&e.push(ke?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Te.prototype.listeners=function(e){var t=ke?ke+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,c=new Array(o);i<o;i++)c[i]=n[i].fn;return c};Te.prototype.listenerCount=function(e){var t=ke?ke+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Te.prototype.emit=function(e,t,n,i,o,c){var h=ke?ke+e:e;if(!this._events[h])return!1;var l=this._events[h],y=arguments.length,m,_;if(l.fn){switch(l.once&&this.removeListener(e,l.fn,void 0,!0),y){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,t),!0;case 3:return l.fn.call(l.context,t,n),!0;case 4:return l.fn.call(l.context,t,n,i),!0;case 5:return l.fn.call(l.context,t,n,i,o),!0;case 6:return l.fn.call(l.context,t,n,i,o,c),!0}for(_=1,m=new Array(y-1);_<y;_++)m[_-1]=arguments[_];l.fn.apply(l.context,m)}else{var k=l.length,$;for(_=0;_<k;_++)switch(l[_].once&&this.removeListener(e,l[_].fn,void 0,!0),y){case 1:l[_].fn.call(l[_].context);break;case 2:l[_].fn.call(l[_].context,t);break;case 3:l[_].fn.call(l[_].context,t,n);break;case 4:l[_].fn.call(l[_].context,t,n,i);break;default:if(!m)for($=1,m=new Array(y-1);$<y;$++)m[$-1]=arguments[$];l[_].fn.apply(l[_].context,m)}}return!0};Te.prototype.on=function(e,t,n){return ks(this,e,t,n,!1)};Te.prototype.once=function(e,t,n){return ks(this,e,t,n,!0)};Te.prototype.removeListener=function(e,t,n,i){var o=ke?ke+e:e;if(!this._events[o])return this;if(!t)return xr(this,o),this;var c=this._events[o];if(c.fn)c.fn===t&&(!i||c.once)&&(!n||c.context===n)&&xr(this,o);else{for(var h=0,l=[],y=c.length;h<y;h++)(c[h].fn!==t||i&&!c[h].once||n&&c[h].context!==n)&&l.push(c[h]);l.length?this._events[o]=l.length===1?l[0]:l:xr(this,o)}return this};Te.prototype.removeAllListeners=function(e){var t;return e?(t=ke?ke+e:e,this._events[t]&&xr(this,t)):(this._events=new Ft,this._eventsCount=0),this};Te.prototype.off=Te.prototype.removeListener;Te.prototype.addListener=Te.prototype.on;Te.prefixed=ke;Te.EventEmitter=Te;typeof Ln<"u"&&(Ln.exports=Te)});var zt=N(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.getUint64=Fe.getInt64=Fe.setInt64=Fe.setUint64=Fe.UINT32_MAX=void 0;Fe.UINT32_MAX=4294967295;function Qa(r,e,t){let n=t/4294967296,i=t;r.setUint32(e,n),r.setUint32(e+4,i)}Fe.setUint64=Qa;function ec(r,e,t){let n=Math.floor(t/4294967296),i=t;r.setUint32(e,n),r.setUint32(e+4,i)}Fe.setInt64=ec;function tc(r,e){let t=r.getInt32(e),n=r.getUint32(e+4);return t*4294967296+n}Fe.getInt64=tc;function rc(r,e){let t=r.getUint32(e),n=r.getUint32(e+4);return t*4294967296+n}Fe.getUint64=rc});var vr=N(Ee=>{"use strict";var jn,Fn,zn;Object.defineProperty(Ee,"__esModule",{value:!0});Ee.utf8DecodeTD=Ee.TEXT_DECODER_THRESHOLD=Ee.utf8DecodeJs=Ee.utf8EncodeTE=Ee.TEXT_ENCODER_THRESHOLD=Ee.utf8EncodeJs=Ee.utf8Count=void 0;var As=zt(),br=(typeof process>"u"||((jn=process==null?void 0:process.env)===null||jn===void 0?void 0:jn.TEXT_ENCODING)!=="never")&&typeof TextEncoder<"u"&&typeof TextDecoder<"u";function nc(r){let e=r.length,t=0,n=0;for(;n<e;){let i=r.charCodeAt(n++);if((i&4294967168)===0){t++;continue}else if((i&4294965248)===0)t+=2;else{if(i>=55296&&i<=56319&&n<e){let o=r.charCodeAt(n);(o&64512)===56320&&(++n,i=((i&1023)<<10)+(o&1023)+65536)}(i&4294901760)===0?t+=3:t+=4}}return t}Ee.utf8Count=nc;function ic(r,e,t){let n=r.length,i=t,o=0;for(;o<n;){let c=r.charCodeAt(o++);if((c&4294967168)===0){e[i++]=c;continue}else if((c&4294965248)===0)e[i++]=c>>6&31|192;else{if(c>=55296&&c<=56319&&o<n){let h=r.charCodeAt(o);(h&64512)===56320&&(++o,c=((c&1023)<<10)+(h&1023)+65536)}(c&4294901760)===0?(e[i++]=c>>12&15|224,e[i++]=c>>6&63|128):(e[i++]=c>>18&7|240,e[i++]=c>>12&63|128,e[i++]=c>>6&63|128)}e[i++]=c&63|128}}Ee.utf8EncodeJs=ic;var Nt=br?new TextEncoder:void 0;Ee.TEXT_ENCODER_THRESHOLD=br?typeof process<"u"&&((Fn=process==null?void 0:process.env)===null||Fn===void 0?void 0:Fn.TEXT_ENCODING)!=="force"?200:0:As.UINT32_MAX;function sc(r,e,t){e.set(Nt.encode(r),t)}function oc(r,e,t){Nt.encodeInto(r,e.subarray(t))}Ee.utf8EncodeTE=Nt?.encodeInto?oc:sc;var ac=4096;function cc(r,e,t){let n=e,i=n+t,o=[],c="";for(;n<i;){let h=r[n++];if((h&128)===0)o.push(h);else if((h&224)===192){let l=r[n++]&63;o.push((h&31)<<6|l)}else if((h&240)===224){let l=r[n++]&63,y=r[n++]&63;o.push((h&31)<<12|l<<6|y)}else if((h&248)===240){let l=r[n++]&63,y=r[n++]&63,m=r[n++]&63,_=(h&7)<<18|l<<12|y<<6|m;_>65535&&(_-=65536,o.push(_>>>10&1023|55296),_=56320|_&1023),o.push(_)}else o.push(h);o.length>=ac&&(c+=String.fromCharCode(...o),o.length=0)}return o.length>0&&(c+=String.fromCharCode(...o)),c}Ee.utf8DecodeJs=cc;var fc=br?new TextDecoder:null;Ee.TEXT_DECODER_THRESHOLD=br?typeof process<"u"&&((zn=process==null?void 0:process.env)===null||zn===void 0?void 0:zn.TEXT_DECODER)!=="force"?200:0:As.UINT32_MAX;function dc(r,e,t){let n=r.subarray(e,e+t);return fc.decode(n)}Ee.utf8DecodeTD=dc});var $n=N(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.ExtData=void 0;var Nn=class{constructor(e,t){this.type=e,this.data=t}};_r.ExtData=Nn});var Cr=N(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.DecodeError=void 0;var Kn=class r extends Error{constructor(e){super(e);let t=Object.create(r.prototype);Object.setPrototypeOf(this,t),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:r.name})}};Sr.DecodeError=Kn});var qn=N(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.timestampExtension=Se.decodeTimestampExtension=Se.decodeTimestampToTimeSpec=Se.encodeTimestampExtension=Se.encodeDateToTimeSpec=Se.encodeTimeSpecToTimestamp=Se.EXT_TIMESTAMP=void 0;var uc=Cr(),Ms=zt();Se.EXT_TIMESTAMP=-1;var hc=4294967296-1,lc=17179869184-1;function Ds({sec:r,nsec:e}){if(r>=0&&e>=0&&r<=lc)if(e===0&&r<=hc){let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,r),t}else{let t=r/4294967296,n=r&4294967295,i=new Uint8Array(8),o=new DataView(i.buffer);return o.setUint32(0,e<<2|t&3),o.setUint32(4,n),i}else{let t=new Uint8Array(12),n=new DataView(t.buffer);return n.setUint32(0,e),(0,Ms.setInt64)(n,4,r),t}}Se.encodeTimeSpecToTimestamp=Ds;function Us(r){let e=r.getTime(),t=Math.floor(e/1e3),n=(e-t*1e3)*1e6,i=Math.floor(n/1e9);return{sec:t+i,nsec:n-i*1e9}}Se.encodeDateToTimeSpec=Us;function Os(r){if(r instanceof Date){let e=Us(r);return Ds(e)}else return null}Se.encodeTimestampExtension=Os;function Bs(r){let e=new DataView(r.buffer,r.byteOffset,r.byteLength);switch(r.byteLength){case 4:return{sec:e.getUint32(0),nsec:0};case 8:{let t=e.getUint32(0),n=e.getUint32(4),i=(t&3)*4294967296+n,o=t>>>2;return{sec:i,nsec:o}}case 12:{let t=(0,Ms.getInt64)(e,4),n=e.getUint32(0);return{sec:t,nsec:n}}default:throw new uc.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${r.length}`)}}Se.decodeTimestampToTimeSpec=Bs;function Ls(r){let e=Bs(r);return new Date(e.sec*1e3+e.nsec/1e6)}Se.decodeTimestampExtension=Ls;Se.timestampExtension={type:Se.EXT_TIMESTAMP,encode:Os,decode:Ls}});var Tr=N(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.ExtensionCodec=void 0;var Pr=$n(),pc=qn(),$t=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(pc.timestampExtension)}register({type:e,encode:t,decode:n}){if(e>=0)this.encoders[e]=t,this.decoders[e]=n;else{let i=1+e;this.builtInEncoders[i]=t,this.builtInDecoders[i]=n}}tryToEncode(e,t){for(let n=0;n<this.builtInEncoders.length;n++){let i=this.builtInEncoders[n];if(i!=null){let o=i(e,t);if(o!=null){let c=-1-n;return new Pr.ExtData(c,o)}}}for(let n=0;n<this.encoders.length;n++){let i=this.encoders[n];if(i!=null){let o=i(e,t);if(o!=null){let c=n;return new Pr.ExtData(c,o)}}}return e instanceof Pr.ExtData?e:null}decode(e,t,n){let i=t<0?this.builtInDecoders[-1-t]:this.decoders[t];return i?i(e,t,n):new Pr.ExtData(t,e)}};wr.ExtensionCodec=$t;$t.defaultCodec=new $t});var Vn=N(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.createDataView=Ct.ensureUint8Array=void 0;function js(r){return r instanceof Uint8Array?r:ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r instanceof ArrayBuffer?new Uint8Array(r):Uint8Array.from(r)}Ct.ensureUint8Array=js;function yc(r){if(r instanceof ArrayBuffer)return new DataView(r);let e=js(r);return new DataView(e.buffer,e.byteOffset,e.byteLength)}Ct.createDataView=yc});var Wn=N(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.Encoder=Ye.DEFAULT_INITIAL_BUFFER_SIZE=Ye.DEFAULT_MAX_DEPTH=void 0;var Kt=vr(),mc=Tr(),Fs=zt(),gc=Vn();Ye.DEFAULT_MAX_DEPTH=100;Ye.DEFAULT_INITIAL_BUFFER_SIZE=2048;var Hn=class{constructor(e=mc.ExtensionCodec.defaultCodec,t=void 0,n=Ye.DEFAULT_MAX_DEPTH,i=Ye.DEFAULT_INITIAL_BUFFER_SIZE,o=!1,c=!1,h=!1,l=!1){this.extensionCodec=e,this.context=t,this.maxDepth=n,this.initialBufferSize=i,this.sortKeys=o,this.forceFloat32=c,this.ignoreUndefined=h,this.forceIntegerToFloat=l,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}reinitializeState(){this.pos=0}encodeSharedRef(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}encode(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}doEncode(e,t){if(t>this.maxDepth)throw new Error(`Too deep objects in depth ${t}`);e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.encodeObject(e,t)}ensureBufferSizeToWrite(e){let t=this.pos+e;this.view.byteLength<t&&this.resizeBuffer(t*2)}resizeBuffer(e){let t=new ArrayBuffer(e),n=new Uint8Array(t),i=new DataView(t);n.set(this.bytes),this.view=i,this.bytes=n}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){Number.isSafeInteger(e)&&!this.forceIntegerToFloat?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):(this.writeU8(211),this.writeI64(e)):this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){if(e.length>Kt.TEXT_ENCODER_THRESHOLD){let i=(0,Kt.utf8Count)(e);this.ensureBufferSizeToWrite(5+i),this.writeStringHeader(i),(0,Kt.utf8EncodeTE)(e,this.bytes,this.pos),this.pos+=i}else{let i=(0,Kt.utf8Count)(e);this.ensureBufferSizeToWrite(5+i),this.writeStringHeader(i),(0,Kt.utf8EncodeJs)(e,this.bytes,this.pos),this.pos+=i}}encodeObject(e,t){let n=this.extensionCodec.tryToEncode(e,this.context);if(n!=null)this.encodeExtension(n);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,t);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){let t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<4294967296)this.writeU8(198),this.writeU32(t);else throw new Error(`Too large binary: ${t}`);let n=(0,gc.ensureUint8Array)(e);this.writeU8a(n)}encodeArray(e,t){let n=e.length;if(n<16)this.writeU8(144+n);else if(n<65536)this.writeU8(220),this.writeU16(n);else if(n<4294967296)this.writeU8(221),this.writeU32(n);else throw new Error(`Too large array: ${n}`);for(let i of e)this.doEncode(i,t+1)}countWithoutUndefined(e,t){let n=0;for(let i of t)e[i]!==void 0&&n++;return n}encodeMap(e,t){let n=Object.keys(e);this.sortKeys&&n.sort();let i=this.ignoreUndefined?this.countWithoutUndefined(e,n):n.length;if(i<16)this.writeU8(128+i);else if(i<65536)this.writeU8(222),this.writeU16(i);else if(i<4294967296)this.writeU8(223),this.writeU32(i);else throw new Error(`Too large map object: ${i}`);for(let o of n){let c=e[o];this.ignoreUndefined&&c===void 0||(this.encodeString(o),this.doEncode(c,t+1))}}encodeExtension(e){let t=e.data.length;if(t===1)this.writeU8(212);else if(t===2)this.writeU8(213);else if(t===4)this.writeU8(214);else if(t===8)this.writeU8(215);else if(t===16)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<4294967296)this.writeU8(201),this.writeU32(t);else throw new Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){let t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),(0,Fs.setUint64)(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),(0,Fs.setInt64)(this.view,this.pos,e),this.pos+=8}};Ye.Encoder=Hn});var zs=N(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.encode=void 0;var xc=Wn(),bc={};function vc(r,e=bc){return new xc.Encoder(e.extensionCodec,e.context,e.maxDepth,e.initialBufferSize,e.sortKeys,e.forceFloat32,e.ignoreUndefined,e.forceIntegerToFloat).encodeSharedRef(r)}Er.encode=vc});var Ns=N(Ir=>{"use strict";Object.defineProperty(Ir,"__esModule",{value:!0});Ir.prettyByte=void 0;function _c(r){return`${r<0?"-":""}0x${Math.abs(r).toString(16).padStart(2,"0")}`}Ir.prettyByte=_c});var $s=N(kr=>{"use strict";Object.defineProperty(kr,"__esModule",{value:!0});kr.CachedKeyDecoder=void 0;var Sc=vr(),Cc=16,Pc=16,Gn=class{constructor(e=Cc,t=Pc){this.maxKeyLength=e,this.maxLengthPerKey=t,this.hit=0,this.miss=0,this.caches=[];for(let n=0;n<this.maxKeyLength;n++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,n){let i=this.caches[n-1];e:for(let o of i){let c=o.bytes;for(let h=0;h<n;h++)if(c[h]!==e[t+h])continue e;return o.str}return null}store(e,t){let n=this.caches[e.length-1],i={bytes:e,str:t};n.length>=this.maxLengthPerKey?n[Math.random()*n.length|0]=i:n.push(i)}decode(e,t,n){let i=this.find(e,t,n);if(i!=null)return this.hit++,i;this.miss++;let o=(0,Sc.utf8DecodeJs)(e,t,n),c=Uint8Array.prototype.slice.call(e,t,t+n);return this.store(c,o),o}};kr.CachedKeyDecoder=Gn});var Rr=N(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.Decoder=tt.DataViewIndexOutOfBoundsError=void 0;var Yn=Ns(),wc=Tr(),pt=zt(),Jn=vr(),Xn=Vn(),Tc=$s(),et=Cr(),Ec=r=>{let e=typeof r;return e==="string"||e==="number"},qt=-1,Qn=new DataView(new ArrayBuffer(0)),Ic=new Uint8Array(Qn.buffer);tt.DataViewIndexOutOfBoundsError=(()=>{try{Qn.getInt8(0)}catch(r){return r.constructor}throw new Error("never reached")})();var Ks=new tt.DataViewIndexOutOfBoundsError("Insufficient data"),kc=new Tc.CachedKeyDecoder,Zn=class{constructor(e=wc.ExtensionCodec.defaultCodec,t=void 0,n=pt.UINT32_MAX,i=pt.UINT32_MAX,o=pt.UINT32_MAX,c=pt.UINT32_MAX,h=pt.UINT32_MAX,l=kc){this.extensionCodec=e,this.context=t,this.maxStrLength=n,this.maxBinLength=i,this.maxArrayLength=o,this.maxMapLength=c,this.maxExtLength=h,this.keyDecoder=l,this.totalPos=0,this.pos=0,this.view=Qn,this.bytes=Ic,this.headByte=qt,this.stack=[]}reinitializeState(){this.totalPos=0,this.headByte=qt,this.stack.length=0}setBuffer(e){this.bytes=(0,Xn.ensureUint8Array)(e),this.view=(0,Xn.createDataView)(this.bytes),this.pos=0}appendBuffer(e){if(this.headByte===qt&&!this.hasRemaining(1))this.setBuffer(e);else{let t=this.bytes.subarray(this.pos),n=(0,Xn.ensureUint8Array)(e),i=new Uint8Array(t.length+n.length);i.set(t),i.set(n,t.length),this.setBuffer(i)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){let{view:t,pos:n}=this;return new RangeError(`Extra ${t.byteLength-n} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){this.reinitializeState(),this.setBuffer(e);let t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}*decodeMulti(e){for(this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}async decodeAsync(e){let t=!1,n;for await(let h of e){if(t)throw this.createExtraByteError(this.totalPos);this.appendBuffer(h);try{n=this.doDecodeSync(),t=!0}catch(l){if(!(l instanceof tt.DataViewIndexOutOfBoundsError))throw l}this.totalPos+=this.pos}if(t){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return n}let{headByte:i,pos:o,totalPos:c}=this;throw new RangeError(`Insufficient data in parsing ${(0,Yn.prettyByte)(i)} at ${c} (${o} in the current buffer)`)}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,t){let n=t,i=-1;for await(let o of e){if(t&&i===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(o),n&&(i=this.readArraySize(),n=!1,this.complete());try{for(;yield this.doDecodeSync(),--i!==0;);}catch(c){if(!(c instanceof tt.DataViewIndexOutOfBoundsError))throw c}this.totalPos+=this.pos}}doDecodeSync(){e:for(;;){let e=this.readHeadByte(),t;if(e>=224)t=e-256;else if(e<192)if(e<128)t=e;else if(e<144){let i=e-128;if(i!==0){this.pushMapState(i),this.complete();continue e}else t={}}else if(e<160){let i=e-144;if(i!==0){this.pushArrayState(i),this.complete();continue e}else t=[]}else{let i=e-160;t=this.decodeUtf8String(i,0)}else if(e===192)t=null;else if(e===194)t=!1;else if(e===195)t=!0;else if(e===202)t=this.readF32();else if(e===203)t=this.readF64();else if(e===204)t=this.readU8();else if(e===205)t=this.readU16();else if(e===206)t=this.readU32();else if(e===207)t=this.readU64();else if(e===208)t=this.readI8();else if(e===209)t=this.readI16();else if(e===210)t=this.readI32();else if(e===211)t=this.readI64();else if(e===217){let i=this.lookU8();t=this.decodeUtf8String(i,1)}else if(e===218){let i=this.lookU16();t=this.decodeUtf8String(i,2)}else if(e===219){let i=this.lookU32();t=this.decodeUtf8String(i,4)}else if(e===220){let i=this.readU16();if(i!==0){this.pushArrayState(i),this.complete();continue e}else t=[]}else if(e===221){let i=this.readU32();if(i!==0){this.pushArrayState(i),this.complete();continue e}else t=[]}else if(e===222){let i=this.readU16();if(i!==0){this.pushMapState(i),this.complete();continue e}else t={}}else if(e===223){let i=this.readU32();if(i!==0){this.pushMapState(i),this.complete();continue e}else t={}}else if(e===196){let i=this.lookU8();t=this.decodeBinary(i,1)}else if(e===197){let i=this.lookU16();t=this.decodeBinary(i,2)}else if(e===198){let i=this.lookU32();t=this.decodeBinary(i,4)}else if(e===212)t=this.decodeExtension(1,0);else if(e===213)t=this.decodeExtension(2,0);else if(e===214)t=this.decodeExtension(4,0);else if(e===215)t=this.decodeExtension(8,0);else if(e===216)t=this.decodeExtension(16,0);else if(e===199){let i=this.lookU8();t=this.decodeExtension(i,1)}else if(e===200){let i=this.lookU16();t=this.decodeExtension(i,2)}else if(e===201){let i=this.lookU32();t=this.decodeExtension(i,4)}else throw new et.DecodeError(`Unrecognized type byte: ${(0,Yn.prettyByte)(e)}`);this.complete();let n=this.stack;for(;n.length>0;){let i=n[n.length-1];if(i.type===0)if(i.array[i.position]=t,i.position++,i.position===i.size)n.pop(),t=i.array;else continue e;else if(i.type===1){if(!Ec(t))throw new et.DecodeError("The type of key must be string or number but "+typeof t);if(t==="__proto__")throw new et.DecodeError("The key __proto__ is not allowed");i.key=t,i.type=2;continue e}else if(i.map[i.key]=t,i.readCount++,i.readCount===i.size)n.pop(),t=i.map;else{i.key=null,i.type=1;continue e}}return t}}readHeadByte(){return this.headByte===qt&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=qt}readArraySize(){let e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new et.DecodeError(`Unrecognized array type byte: ${(0,Yn.prettyByte)(e)}`)}}}pushMapState(e){if(e>this.maxMapLength)throw new et.DecodeError(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.push({type:1,size:e,key:null,readCount:0,map:{}})}pushArrayState(e){if(e>this.maxArrayLength)throw new et.DecodeError(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.push({type:0,size:e,array:new Array(e),position:0})}decodeUtf8String(e,t){var n;if(e>this.maxStrLength)throw new et.DecodeError(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw Ks;let i=this.pos+t,o;return this.stateIsMapKey()&&(!((n=this.keyDecoder)===null||n===void 0)&&n.canBeCached(e))?o=this.keyDecoder.decode(this.bytes,i,e):e>Jn.TEXT_DECODER_THRESHOLD?o=(0,Jn.utf8DecodeTD)(this.bytes,i,e):o=(0,Jn.utf8DecodeJs)(this.bytes,i,e),this.pos+=t+e,o}stateIsMapKey(){return this.stack.length>0?this.stack[this.stack.length-1].type===1:!1}decodeBinary(e,t){if(e>this.maxBinLength)throw new et.DecodeError(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw Ks;let n=this.pos+t,i=this.bytes.subarray(n,n+e);return this.pos+=t+e,i}decodeExtension(e,t){if(e>this.maxExtLength)throw new et.DecodeError(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);let n=this.view.getInt8(this.pos+t),i=this.decodeBinary(e,t+1);return this.extensionCodec.decode(i,n,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){let e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){let e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){let e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){let e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){let e=(0,pt.getUint64)(this.view,this.pos);return this.pos+=8,e}readI64(){let e=(0,pt.getInt64)(this.view,this.pos);return this.pos+=8,e}readF32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}};tt.Decoder=Zn});var ei=N(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.decodeMulti=Je.decode=Je.defaultDecodeOptions=void 0;var qs=Rr();Je.defaultDecodeOptions={};function Rc(r,e=Je.defaultDecodeOptions){return new qs.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decode(r)}Je.decode=Rc;function Ac(r,e=Je.defaultDecodeOptions){return new qs.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeMulti(r)}Je.decodeMulti=Ac});var Ws=N(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.ensureAsyncIterable=ot.asyncIterableFromStream=ot.isAsyncIterable=void 0;function Vs(r){return r[Symbol.asyncIterator]!=null}ot.isAsyncIterable=Vs;function Mc(r){if(r==null)throw new Error("Assertion Failure: value must not be null nor undefined")}async function*Hs(r){let e=r.getReader();try{for(;;){let{done:t,value:n}=await e.read();if(t)return;Mc(n),yield n}}finally{e.releaseLock()}}ot.asyncIterableFromStream=Hs;function Dc(r){return Vs(r)?r:Hs(r)}ot.ensureAsyncIterable=Dc});var Ys=N(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.decodeStream=Xe.decodeMultiStream=Xe.decodeArrayStream=Xe.decodeAsync=void 0;var ti=Rr(),ri=Ws(),Ar=ei();async function Uc(r,e=Ar.defaultDecodeOptions){let t=(0,ri.ensureAsyncIterable)(r);return new ti.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeAsync(t)}Xe.decodeAsync=Uc;function Oc(r,e=Ar.defaultDecodeOptions){let t=(0,ri.ensureAsyncIterable)(r);return new ti.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeArrayStream(t)}Xe.decodeArrayStream=Oc;function Gs(r,e=Ar.defaultDecodeOptions){let t=(0,ri.ensureAsyncIterable)(r);return new ti.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeStream(t)}Xe.decodeMultiStream=Gs;function Bc(r,e=Ar.defaultDecodeOptions){return Gs(r,e)}Xe.decodeStream=Bc});var Zs=N(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});ee.decodeTimestampExtension=ee.encodeTimestampExtension=ee.decodeTimestampToTimeSpec=ee.encodeTimeSpecToTimestamp=ee.encodeDateToTimeSpec=ee.EXT_TIMESTAMP=ee.ExtData=ee.ExtensionCodec=ee.Encoder=ee.DataViewIndexOutOfBoundsError=ee.DecodeError=ee.Decoder=ee.decodeStream=ee.decodeMultiStream=ee.decodeArrayStream=ee.decodeAsync=ee.decodeMulti=ee.decode=ee.encode=void 0;var Lc=zs();Object.defineProperty(ee,"encode",{enumerable:!0,get:function(){return Lc.encode}});var Js=ei();Object.defineProperty(ee,"decode",{enumerable:!0,get:function(){return Js.decode}});Object.defineProperty(ee,"decodeMulti",{enumerable:!0,get:function(){return Js.decodeMulti}});var Mr=Ys();Object.defineProperty(ee,"decodeAsync",{enumerable:!0,get:function(){return Mr.decodeAsync}});Object.defineProperty(ee,"decodeArrayStream",{enumerable:!0,get:function(){return Mr.decodeArrayStream}});Object.defineProperty(ee,"decodeMultiStream",{enumerable:!0,get:function(){return Mr.decodeMultiStream}});Object.defineProperty(ee,"decodeStream",{enumerable:!0,get:function(){return Mr.decodeStream}});var Xs=Rr();Object.defineProperty(ee,"Decoder",{enumerable:!0,get:function(){return Xs.Decoder}});Object.defineProperty(ee,"DataViewIndexOutOfBoundsError",{enumerable:!0,get:function(){return Xs.DataViewIndexOutOfBoundsError}});var jc=Cr();Object.defineProperty(ee,"DecodeError",{enumerable:!0,get:function(){return jc.DecodeError}});var Fc=Wn();Object.defineProperty(ee,"Encoder",{enumerable:!0,get:function(){return Fc.Encoder}});var zc=Tr();Object.defineProperty(ee,"ExtensionCodec",{enumerable:!0,get:function(){return zc.ExtensionCodec}});var Nc=$n();Object.defineProperty(ee,"ExtData",{enumerable:!0,get:function(){return Nc.ExtData}});var Pt=qn();Object.defineProperty(ee,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return Pt.EXT_TIMESTAMP}});Object.defineProperty(ee,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return Pt.encodeDateToTimeSpec}});Object.defineProperty(ee,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return Pt.encodeTimeSpecToTimestamp}});Object.defineProperty(ee,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return Pt.decodeTimestampToTimeSpec}});Object.defineProperty(ee,"encodeTimestampExtension",{enumerable:!0,get:function(){return Pt.encodeTimestampExtension}});Object.defineProperty(ee,"decodeTimestampExtension",{enumerable:!0,get:function(){return Pt.decodeTimestampExtension}})});var gi=N((pd,Ve)=>{var Dr=ns(),Qs=Is(),no=Rs(),eo=Zs();function $c(r){Object.defineProperty(r,"__esModule",{value:!0,configurable:!0})}function Kc(r,e){return Object.keys(e).forEach(function(t){t==="default"||t==="__esModule"||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r}function Ae(r,e,t,n){Object.defineProperty(r,e,{get:t,set:n,enumerable:!0,configurable:!0})}function to(r){return r&&r.__esModule?r.default:r}$c(Ve.exports);Ae(Ve.exports,"default",()=>Wc);Ae(Ve.exports,"util",()=>Re);Ae(Ve.exports,"BufferedConnection",()=>wt);Ae(Ve.exports,"StreamConnection",()=>zr);Ae(Ve.exports,"MsgPack",()=>Jt);Ae(Ve.exports,"Peer",()=>Yt);Ae(Ve.exports,"MsgPackPeer",()=>ui);Ae(Ve.exports,"PeerError",()=>Lr);var Ur=class{constructor(){this.chunkedMTU=16300,this._dataCount=1,this.chunk=e=>{let t=[],n=e.byteLength,i=Math.ceil(n/this.chunkedMTU),o=0,c=0;for(;c<n;){let h=Math.min(n,c+this.chunkedMTU),l=e.slice(c,h),y={__peerData:this._dataCount,n:o,data:l,total:i};t.push(y),c=h,o++}return this._dataCount++,t}}};function qc(r){let e=0;for(let i of r)e+=i.byteLength;let t=new Uint8Array(e),n=0;for(let i of r)t.set(i,n),n+=i.byteLength;return t}var ni=to(Qs).default||to(Qs),Vt=new class{isWebRTCSupported(){return typeof RTCPeerConnection<"u"}isBrowserSupported(){let r=this.getBrowser(),e=this.getVersion();return this.supportedBrowsers.includes(r)?r==="chrome"?e>=this.minChromeVersion:r==="firefox"?e>=this.minFirefoxVersion:r==="safari"?!this.isIOS&&e>=this.minSafariVersion:!1:!1}getBrowser(){return ni.browserDetails.browser}getVersion(){return ni.browserDetails.version||0}isUnifiedPlanSupported(){let r=this.getBrowser(),e=ni.browserDetails.version||0;if(r==="chrome"&&e<this.minChromeVersion)return!1;if(r==="firefox"&&e>=this.minFirefoxVersion)return!0;if(!window.RTCRtpTransceiver||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let t,n=!1;try{t=new RTCPeerConnection,t.addTransceiver("audio"),n=!0}catch{}finally{t&&t.close()}return n}toString(){return`Supports:
37
37
  browser:${this.getBrowser()}
38
38
  version:${this.getVersion()}
39
39
  isIOS:${this.isIOS}
40
40
  isWebRTCSupported:${this.isWebRTCSupported()}
41
41
  isBrowserSupported:${this.isBrowserSupported()}
42
- isUnifiedPlanSupported:${this.isUnifiedPlanSupported()}`}constructor(){this.isIOS=typeof navigator<"u"?["iPad","iPhone","iPod"].includes(navigator.platform):!1,this.supportedBrowsers=["firefox","chrome","safari"],this.minFirefoxVersion=59,this.minChromeVersion=72,this.minSafariVersion=605}},zc=r=>!r||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(r),ro=()=>Math.random().toString(36).slice(2),eo={iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:["turn:eu-0.turn.peerjs.com:3478","turn:us-0.turn.peerjs.com:3478"],username:"peerjs",credential:"peerjsp"}],sdpSemantics:"unified-plan"},ei=class extends Mr{noop(){}blobToArrayBuffer(e,t){let n=new FileReader;return n.onload=function(i){i.target&&t(i.target.result)},n.readAsArrayBuffer(e),n}binaryStringToArrayBuffer(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t.buffer}isSecure(){return location.protocol==="https:"}constructor(...e){super(...e),this.CLOUD_HOST="0.peerjs.com",this.CLOUD_PORT=443,this.chunkedBrowsers={Chrome:1,chrome:1},this.defaultConfig=eo,this.browser=qt.getBrowser(),this.browserVersion=qt.getVersion(),this.pack=Ar.pack,this.unpack=Ar.unpack,this.supports=(function(){let t={browser:qt.isBrowserSupported(),webRTC:qt.isWebRTCSupported(),audioVideo:!1,data:!1,binaryBlob:!1,reliable:!1};if(!t.webRTC)return t;let n;try{n=new RTCPeerConnection(eo),t.audioVideo=!0;let i;try{i=n.createDataChannel("_PEERJSTEST",{ordered:!0}),t.data=!0,t.reliable=!!i.ordered;try{i.binaryType="blob",t.binaryBlob=!qt.isIOS}catch{}}catch{}finally{i&&i.close()}}catch{}finally{n&&n.close()}return t})(),this.validateId=zc,this.randomToken=ro}},Re=new ei,Nc="PeerJS: ",ti=class{get logLevel(){return this._logLevel}set logLevel(e){this._logLevel=e}log(...e){this._logLevel>=3&&this._print(3,...e)}warn(...e){this._logLevel>=2&&this._print(2,...e)}error(...e){this._logLevel>=1&&this._print(1,...e)}setLogFunction(e){this._print=e}_print(e,...t){let n=[Nc,...t];for(let i in n)n[i]instanceof Error&&(n[i]="("+n[i].name+") "+n[i].message);e>=3?console.log(...n):e>=2?console.warn("WARNING",...n):e>=1&&console.error("ERROR",...n)}constructor(){this._logLevel=0}},B=new ti,ft={};Ae(ft,"ConnectionType",()=>ct);Ae(ft,"PeerErrorType",()=>be);Ae(ft,"BaseConnectionErrorType",()=>ri);Ae(ft,"DataConnectionErrorType",()=>hi);Ae(ft,"SerializationType",()=>Fr);Ae(ft,"SocketEventType",()=>at);Ae(ft,"ServerMessageType",()=>Ie);var ct=(function(r){return r.Data="data",r.Media="media",r})({}),be=(function(r){return r.BrowserIncompatible="browser-incompatible",r.Disconnected="disconnected",r.InvalidID="invalid-id",r.InvalidKey="invalid-key",r.Network="network",r.PeerUnavailable="peer-unavailable",r.SslUnavailable="ssl-unavailable",r.ServerError="server-error",r.SocketError="socket-error",r.SocketClosed="socket-closed",r.UnavailableID="unavailable-id",r.WebRTC="webrtc",r})({}),ri=(function(r){return r.NegotiationFailed="negotiation-failed",r.ConnectionClosed="connection-closed",r})({}),hi=(function(r){return r.NotOpenYet="not-open-yet",r.MessageToBig="message-too-big",r})({}),Fr=(function(r){return r.Binary="binary",r.BinaryUTF8="binary-utf8",r.JSON="json",r.None="raw",r})({}),at=(function(r){return r.Message="message",r.Disconnected="disconnected",r.Error="error",r.Close="close",r})({}),Ie=(function(r){return r.Heartbeat="HEARTBEAT",r.Candidate="CANDIDATE",r.Offer="OFFER",r.Answer="ANSWER",r.Open="OPEN",r.Error="ERROR",r.IdTaken="ID-TAKEN",r.InvalidKey="INVALID-KEY",r.Leave="LEAVE",r.Expire="EXPIRE",r})({}),no="1.5.5",ni=class extends to.EventEmitter{constructor(e,t,n,i,o,c=5e3){super(),this.pingInterval=c,this._disconnected=!0,this._messagesQueue=[];let h=e?"wss://":"ws://";this._baseUrl=h+t+":"+n+i+"peerjs?key="+o}start(e,t){this._id=e;let n=`${this._baseUrl}&id=${e}&token=${t}`;this._socket||!this._disconnected||(this._socket=new WebSocket(n+"&version="+no),this._disconnected=!1,this._socket.onmessage=i=>{let o;try{o=JSON.parse(i.data),B.log("Server message received:",o)}catch{B.log("Invalid server message",i.data);return}this.emit(at.Message,o)},this._socket.onclose=i=>{this._disconnected||(B.log("Socket closed.",i),this._cleanup(),this._disconnected=!0,this.emit(at.Disconnected))},this._socket.onopen=()=>{this._disconnected||(this._sendQueuedMessages(),B.log("Socket open"),this._scheduleHeartbeat())})}_scheduleHeartbeat(){this._wsPingTimer=setTimeout(()=>{this._sendHeartbeat()},this.pingInterval)}_sendHeartbeat(){if(!this._wsOpen()){B.log("Cannot send heartbeat, because socket closed");return}let e=JSON.stringify({type:Ie.Heartbeat});this._socket.send(e),this._scheduleHeartbeat()}_wsOpen(){return!!this._socket&&this._socket.readyState===1}_sendQueuedMessages(){let e=[...this._messagesQueue];this._messagesQueue=[];for(let t of e)this.send(t)}send(e){if(this._disconnected)return;if(!this._id){this._messagesQueue.push(e);return}if(!e.type){this.emit(at.Error,"Invalid message");return}if(!this._wsOpen())return;let t=JSON.stringify(e);this._socket.send(t)}close(){this._disconnected||(this._cleanup(),this._disconnected=!0)}_cleanup(){this._socket&&(this._socket.onopen=this._socket.onmessage=this._socket.onclose=null,this._socket.close(),this._socket=void 0),clearTimeout(this._wsPingTimer)}},Dr=class{constructor(e){this.connection=e}startConnection(e){let t=this._startPeerConnection();if(this.connection.peerConnection=t,this.connection.type===ct.Media&&e._stream&&this._addTracksToConnection(e._stream,t),e.originator){let n=this.connection,i={ordered:!!e.reliable},o=t.createDataChannel(n.label,i);n._initializeDataChannel(o),this._makeOffer()}else this.handleSDP("OFFER",e.sdp)}_startPeerConnection(){B.log("Creating RTCPeerConnection.");let e=new RTCPeerConnection(this.connection.provider.options.config);return this._setupListeners(e),e}_setupListeners(e){let t=this.connection.peer,n=this.connection.connectionId,i=this.connection.type,o=this.connection.provider;B.log("Listening for ICE candidates."),e.onicecandidate=c=>{!c.candidate||!c.candidate.candidate||(B.log(`Received ICE candidates for ${t}:`,c.candidate),o.socket.send({type:Ie.Candidate,payload:{candidate:c.candidate,type:i,connectionId:n},dst:t}))},e.oniceconnectionstatechange=()=>{switch(e.iceConnectionState){case"failed":B.log("iceConnectionState is failed, closing connections to "+t),this.connection.emitError(ri.NegotiationFailed,"Negotiation of connection to "+t+" failed."),this.connection.close();break;case"closed":B.log("iceConnectionState is closed, closing connections to "+t),this.connection.emitError(ri.ConnectionClosed,"Connection to "+t+" closed."),this.connection.close();break;case"disconnected":B.log("iceConnectionState changed to disconnected on the connection with "+t);break;case"completed":e.onicecandidate=()=>{};break}this.connection.emit("iceStateChanged",e.iceConnectionState)},B.log("Listening for data channel"),e.ondatachannel=c=>{B.log("Received data channel");let h=c.channel;o.getConnection(t,n)._initializeDataChannel(h)},B.log("Listening for remote stream"),e.ontrack=c=>{B.log("Received remote stream");let h=c.streams[0],l=o.getConnection(t,n);if(l.type===ct.Media){let y=l;this._addStreamToMediaConnection(h,y)}}}cleanup(){B.log("Cleaning up PeerConnection to "+this.connection.peer);let e=this.connection.peerConnection;if(!e)return;this.connection.peerConnection=null,e.onicecandidate=e.oniceconnectionstatechange=e.ondatachannel=e.ontrack=()=>{};let t=e.signalingState!=="closed",n=!1,i=this.connection.dataChannel;i&&(n=!!i.readyState&&i.readyState!=="closed"),(t||n)&&e.close()}async _makeOffer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createOffer(this.connection.options.constraints);B.log("Created offer."),this.connection.options.sdpTransform&&typeof this.connection.options.sdpTransform=="function"&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),B.log("Set localDescription:",n,`for:${this.connection.peer}`);let i={sdp:n,type:this.connection.type,connectionId:this.connection.connectionId,metadata:this.connection.metadata};if(this.connection.type===ct.Data){let o=this.connection;i={...i,label:o.label,reliable:o.reliable,serialization:o.serialization}}t.socket.send({type:Ie.Offer,payload:i,dst:this.connection.peer})}catch(i){i!="OperationError: Failed to set local offer sdp: Called in wrong state: kHaveRemoteOffer"&&(t.emitError(be.WebRTC,i),B.log("Failed to setLocalDescription, ",i))}}catch(n){t.emitError(be.WebRTC,n),B.log("Failed to createOffer, ",n)}}async _makeAnswer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createAnswer();B.log("Created answer."),this.connection.options.sdpTransform&&typeof this.connection.options.sdpTransform=="function"&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),B.log("Set localDescription:",n,`for:${this.connection.peer}`),t.socket.send({type:Ie.Answer,payload:{sdp:n,type:this.connection.type,connectionId:this.connection.connectionId},dst:this.connection.peer})}catch(i){t.emitError(be.WebRTC,i),B.log("Failed to setLocalDescription, ",i)}}catch(n){t.emitError(be.WebRTC,n),B.log("Failed to create answer, ",n)}}async handleSDP(e,t){t=new RTCSessionDescription(t);let n=this.connection.peerConnection,i=this.connection.provider;B.log("Setting remote description",t);let o=this;try{await n.setRemoteDescription(t),B.log(`Set remoteDescription:${e} for:${this.connection.peer}`),e==="OFFER"&&await o._makeAnswer()}catch(c){i.emitError(be.WebRTC,c),B.log("Failed to setRemoteDescription, ",c)}}async handleCandidate(e){B.log("handleCandidate:",e);try{await this.connection.peerConnection.addIceCandidate(e),B.log(`Added ICE candidate for:${this.connection.peer}`)}catch(t){this.connection.provider.emitError(be.WebRTC,t),B.log("Failed to handleCandidate, ",t)}}_addTracksToConnection(e,t){if(B.log(`add tracks from stream ${e.id} to peer connection`),!t.addTrack)return B.error("Your browser does't support RTCPeerConnection#addTrack. Ignored.");e.getTracks().forEach(n=>{t.addTrack(n,e)})}_addStreamToMediaConnection(e,t){B.log(`add stream ${e.id} to media connection ${t.connectionId}`),t.addStream(e)}},Ur=class extends to.EventEmitter{emitError(e,t){B.error("Error:",t),this.emit("error",new Or(`${e}`,t))}},Or=class extends Error{constructor(e,t){typeof t=="string"?super(t):(super(),Object.assign(this,t)),this.type=e}},Br=class extends Ur{get open(){return this._open}constructor(e,t,n){super(),this.peer=e,this.provider=t,this.options=n,this._open=!1,this.metadata=n.metadata}},ci,Ht=class Ht extends Br{get type(){return ct.Media}get localStream(){return this._localStream}get remoteStream(){return this._remoteStream}constructor(e,t,n){super(e,t,n),this._localStream=this.options._stream,this.connectionId=this.options.connectionId||Ht.ID_PREFIX+Re.randomToken(),this._negotiator=new Dr(this),this._localStream&&this._negotiator.startConnection({_stream:this._localStream,originator:!0})}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{B.log(`DC#${this.connectionId} dc connection success`),this.emit("willCloseOnRemote")},this.dataChannel.onclose=()=>{B.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}addStream(e){B.log("Receiving stream",e),this._remoteStream=e,super.emit("stream",e)}handleMessage(e){let t=e.type,n=e.payload;switch(e.type){case Ie.Answer:this._negotiator.handleSDP(t,n.sdp),this._open=!0;break;case Ie.Candidate:this._negotiator.handleCandidate(n.candidate);break;default:B.warn(`Unrecognized message type:${t} from peer:${this.peer}`);break}}answer(e,t={}){if(this._localStream){B.warn("Local stream already exists on this MediaConnection. Are you answering a call twice?");return}this._localStream=e,t&&t.sdpTransform&&(this.options.sdpTransform=t.sdpTransform),this._negotiator.startConnection({...this.options._payload,_stream:e});let n=this.provider._getMessages(this.connectionId);for(let i of n)this.handleMessage(i);this._open=!0}close(){this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this._localStream=null,this._remoteStream=null,this.provider&&(this.provider._removeConnection(this),this.provider=null),this.options&&this.options._stream&&(this.options._stream=null),this.open&&(this._open=!1,super.emit("close"))}};ci=new WeakMap,Rt(Ht,ci,Ht.ID_PREFIX="mc_");var Lr=Ht,ii=class{constructor(e){this._options=e}_buildRequest(e){let t=this._options.secure?"https":"http",{host:n,port:i,path:o,key:c}=this._options,h=new URL(`${t}://${n}:${i}${o}${c}/${e}`);return h.searchParams.set("ts",`${Date.now()}${Math.random()}`),h.searchParams.set("version",no),fetch(h.href,{referrerPolicy:this._options.referrerPolicy})}async retrieveId(){try{let e=await this._buildRequest("id");if(e.status!==200)throw new Error(`Error. Status:${e.status}`);return e.text()}catch(e){B.error("Error retrieving ID",e);let t="";throw this._options.path==="/"&&this._options.host!==Re.CLOUD_HOST&&(t=" If you passed in a `path` to your self-hosted PeerServer, you'll also need to pass in that same path when creating a new Peer."),new Error("Could not get an ID from the server."+t)}}async listAllPeers(){try{let e=await this._buildRequest("peers");if(e.status!==200){if(e.status===401){let t="";throw this._options.host===Re.CLOUD_HOST?t="It looks like you're using the cloud server. You can email team@peerjs.com to enable peer listing for your API key.":t="You need to enable `allow_discovery` on your self-hosted PeerServer to use this feature.",new Error("It doesn't look like you have permission to list peers IDs. "+t)}throw new Error(`Error. Status:${e.status}`)}return e.json()}catch(e){throw B.error("Error retrieving list peers",e),new Error("Could not get list peers from the server."+e)}}},fi,di,yt=class yt extends Br{get type(){return ct.Data}constructor(e,t,n){super(e,t,n),this.connectionId=this.options.connectionId||yt.ID_PREFIX+ro(),this.label=this.options.label||this.connectionId,this.reliable=!!this.options.reliable,this._negotiator=new Dr(this),this._negotiator.startConnection(this.options._payload||{originator:!0,reliable:this.reliable})}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{B.log(`DC#${this.connectionId} dc connection success`),this._open=!0,this.emit("open")},this.dataChannel.onmessage=t=>{B.log(`DC#${this.connectionId} dc onmessage:`,t.data)},this.dataChannel.onclose=()=>{B.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}close(e){if(e?.flush){this.send({__peerData:{type:"close"}});return}this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this.provider&&(this.provider._removeConnection(this),this.provider=null),this.dataChannel&&(this.dataChannel.onopen=null,this.dataChannel.onmessage=null,this.dataChannel.onclose=null,this.dataChannel=null),this.open&&(this._open=!1,super.emit("close"))}send(e,t=!1){if(!this.open){this.emitError(hi.NotOpenYet,"Connection is not open. You should listen for the `open` event before sending messages.");return}return this._send(e,t)}async handleMessage(e){let t=e.payload;switch(e.type){case Ie.Answer:await this._negotiator.handleSDP(e.type,t.sdp);break;case Ie.Candidate:await this._negotiator.handleCandidate(t.candidate);break;default:B.warn("Unrecognized message type:",e.type,"from peer:",this.peer);break}}};fi=new WeakMap,di=new WeakMap,Rt(yt,fi,yt.ID_PREFIX="dc_"),Rt(yt,di,yt.MAX_BUFFERED_AMOUNT=8388608);var mt=yt,wt=class extends mt{get bufferSize(){return this._bufferSize}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType="arraybuffer",this.dataChannel.addEventListener("message",t=>this._handleDataMessage(t))}_bufferedSend(e){(this._buffering||!this._trySend(e))&&(this._buffer.push(e),this._bufferSize=this._buffer.length)}_trySend(e){if(!this.open)return!1;if(this.dataChannel.bufferedAmount>mt.MAX_BUFFERED_AMOUNT)return this._buffering=!0,setTimeout(()=>{this._buffering=!1,this._tryBuffer()},50),!1;try{this.dataChannel.send(e)}catch(t){return B.error(`DC#:${this.connectionId} Error when sending:`,t),this._buffering=!0,this.close(),!1}return!0}_tryBuffer(){if(!this.open||this._buffer.length===0)return;let e=this._buffer[0];this._trySend(e)&&(this._buffer.shift(),this._bufferSize=this._buffer.length,this._tryBuffer())}close(e){if(e?.flush){this.send({__peerData:{type:"close"}});return}this._buffer=[],this._bufferSize=0,super.close()}constructor(...e){super(...e),this._buffer=[],this._bufferSize=0,this._buffering=!1}},Vt=class extends wt{close(e){super.close(e),this._chunkedData={}}constructor(e,t,n){super(e,t,n),this.chunker=new Mr,this.serialization=Fr.Binary,this._chunkedData={}}_handleDataMessage({data:e}){let t=(0,Ar.unpack)(e),n=t.__peerData;if(n){if(n.type==="close"){this.close();return}this._handleChunk(t);return}this.emit("data",t)}_handleChunk(e){let t=e.__peerData,n=this._chunkedData[t]||{data:[],count:0,total:e.total};if(n.data[e.n]=new Uint8Array(e.data),n.count++,this._chunkedData[t]=n,n.total===n.count){delete this._chunkedData[t];let i=Fc(n.data);this._handleDataMessage({data:i})}}_send(e,t){let n=(0,Ar.pack)(e);if(n instanceof Promise)return this._send_blob(n);if(!t&&n.byteLength>this.chunker.chunkedMTU){this._sendChunks(n);return}this._bufferedSend(n)}async _send_blob(e){let t=await e;if(t.byteLength>this.chunker.chunkedMTU){this._sendChunks(t);return}this._bufferedSend(t)}_sendChunks(e){let t=this.chunker.chunk(e);B.log(`DC#${this.connectionId} Try to send ${t.length} chunks...`);for(let n of t)this.send(n,!0)}},si=class extends wt{_handleDataMessage({data:e}){super.emit("data",e)}_send(e,t){this._bufferedSend(e)}constructor(...e){super(...e),this.serialization=Fr.None}},oi=class extends wt{_handleDataMessage({data:e}){let t=this.parse(this.decoder.decode(e)),n=t.__peerData;if(n&&n.type==="close"){this.close();return}this.emit("data",t)}_send(e,t){let n=this.encoder.encode(this.stringify(e));if(n.byteLength>=Re.chunkedMTU){this.emitError(hi.MessageToBig,"Message too big for JSON channel");return}this._bufferedSend(n)}constructor(...e){super(...e),this.serialization=Fr.JSON,this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.stringify=JSON.stringify,this.parse=JSON.parse}},ui,Wt=class Wt extends Ur{get id(){return this._id}get options(){return this._options}get open(){return this._open}get socket(){return this._socket}get connections(){let e=Object.create(null);for(let[t,n]of this._connections)e[t]=n;return e}get destroyed(){return this._destroyed}get disconnected(){return this._disconnected}constructor(e,t){super(),this._serializers={raw:si,json:oi,binary:Vt,"binary-utf8":Vt,default:Vt},this._id=null,this._lastServerId=null,this._destroyed=!1,this._disconnected=!1,this._open=!1,this._connections=new Map,this._lostMessages=new Map;let n;if(e&&e.constructor==Object?t=e:e&&(n=e.toString()),t={debug:0,host:Re.CLOUD_HOST,port:Re.CLOUD_PORT,path:"/",key:Wt.DEFAULT_KEY,token:Re.randomToken(),config:Re.defaultConfig,referrerPolicy:"strict-origin-when-cross-origin",serializers:{},...t},this._options=t,this._serializers={...this._serializers,...this.options.serializers},this._options.host==="/"&&(this._options.host=window.location.hostname),this._options.path&&(this._options.path[0]!=="/"&&(this._options.path="/"+this._options.path),this._options.path[this._options.path.length-1]!=="/"&&(this._options.path+="/")),this._options.secure===void 0&&this._options.host!==Re.CLOUD_HOST?this._options.secure=Re.isSecure():this._options.host==Re.CLOUD_HOST&&(this._options.secure=!0),this._options.logFunction&&B.setLogFunction(this._options.logFunction),B.logLevel=this._options.debug||0,this._api=new ii(t),this._socket=this._createServerConnection(),!Re.supports.audioVideo&&!Re.supports.data){this._delayedAbort(be.BrowserIncompatible,"The current browser does not support WebRTC");return}if(n&&!Re.validateId(n)){this._delayedAbort(be.InvalidID,`ID "${n}" is invalid`);return}n?this._initialize(n):this._api.retrieveId().then(i=>this._initialize(i)).catch(i=>this._abort(be.ServerError,i))}_createServerConnection(){let e=new ni(this._options.secure,this._options.host,this._options.port,this._options.path,this._options.key,this._options.pingInterval);return e.on(at.Message,t=>{this._handleMessage(t)}),e.on(at.Error,t=>{this._abort(be.SocketError,t)}),e.on(at.Disconnected,()=>{this.disconnected||(this.emitError(be.Network,"Lost connection to server."),this.disconnect())}),e.on(at.Close,()=>{this.disconnected||this._abort(be.SocketClosed,"Underlying socket is already closed.")}),e}_initialize(e){this._id=e,this.socket.start(e,this._options.token)}_handleMessage(e){let t=e.type,n=e.payload,i=e.src;switch(t){case Ie.Open:this._lastServerId=this.id,this._open=!0,this.emit("open",this.id);break;case Ie.Error:this._abort(be.ServerError,n.msg);break;case Ie.IdTaken:this._abort(be.UnavailableID,`ID "${this.id}" is taken`);break;case Ie.InvalidKey:this._abort(be.InvalidKey,`API KEY "${this._options.key}" is invalid`);break;case Ie.Leave:B.log(`Received leave message from ${i}`),this._cleanupPeer(i),this._connections.delete(i);break;case Ie.Expire:this.emitError(be.PeerUnavailable,`Could not connect to peer ${i}`);break;case Ie.Offer:{let o=n.connectionId,c=this.getConnection(i,o);if(c&&(c.close(),B.warn(`Offer received for existing Connection ID:${o}`)),n.type===ct.Media){let l=new Lr(i,this,{connectionId:o,_payload:n,metadata:n.metadata});c=l,this._addConnection(i,c),this.emit("call",l)}else if(n.type===ct.Data){let l=new this._serializers[n.serialization](i,this,{connectionId:o,_payload:n,metadata:n.metadata,label:n.label,serialization:n.serialization,reliable:n.reliable});c=l,this._addConnection(i,c),this.emit("connection",l)}else{B.warn(`Received malformed connection type:${n.type}`);return}let h=this._getMessages(o);for(let l of h)c.handleMessage(l);break}default:{if(!n){B.warn(`You received a malformed message from ${i} of type ${t}`);return}let o=n.connectionId,c=this.getConnection(i,o);c&&c.peerConnection?c.handleMessage(e):o?this._storeMessage(o,e):B.warn("You received an unrecognized message:",e);break}}}_storeMessage(e,t){this._lostMessages.has(e)||this._lostMessages.set(e,[]),this._lostMessages.get(e).push(t)}_getMessages(e){let t=this._lostMessages.get(e);return t?(this._lostMessages.delete(e),t):[]}connect(e,t={}){if(t={serialization:"default",...t},this.disconnected){B.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect, or call reconnect on this peer if you believe its ID to still be available."),this.emitError(be.Disconnected,"Cannot connect to new Peer after disconnecting from server.");return}let n=new this._serializers[t.serialization](e,this,t);return this._addConnection(e,n),n}call(e,t,n={}){if(this.disconnected){B.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect."),this.emitError(be.Disconnected,"Cannot connect to new Peer after disconnecting from server.");return}if(!t){B.error("To call a peer, you must provide a stream from your browser's `getUserMedia`.");return}let i=new Lr(e,this,{...n,_stream:t});return this._addConnection(e,i),i}_addConnection(e,t){B.log(`add connection ${t.type}:${t.connectionId} to peerId:${e}`),this._connections.has(e)||this._connections.set(e,[]),this._connections.get(e).push(t)}_removeConnection(e){let t=this._connections.get(e.peer);if(t){let n=t.indexOf(e);n!==-1&&t.splice(n,1)}this._lostMessages.delete(e.connectionId)}getConnection(e,t){let n=this._connections.get(e);if(!n)return null;for(let i of n)if(i.connectionId===t)return i;return null}_delayedAbort(e,t){setTimeout(()=>{this._abort(e,t)},0)}_abort(e,t){B.error("Aborting!"),this.emitError(e,t),this._lastServerId?this.disconnect():this.destroy()}destroy(){this.destroyed||(B.log(`Destroy peer with ID:${this.id}`),this.disconnect(),this._cleanup(),this._destroyed=!0,this.emit("close"))}_cleanup(){for(let e of this._connections.keys())this._cleanupPeer(e),this._connections.delete(e);this.socket.removeAllListeners()}_cleanupPeer(e){let t=this._connections.get(e);if(t)for(let n of t)n.close()}disconnect(){if(this.disconnected)return;let e=this.id;B.log(`Disconnect peer with ID:${e}`),this._disconnected=!0,this._open=!1,this.socket.close(),this._lastServerId=e,this._id=null,this.emit("disconnected",e)}reconnect(){if(this.disconnected&&!this.destroyed)B.log(`Attempting reconnection to server with ID ${this._lastServerId}`),this._disconnected=!1,this._initialize(this._lastServerId);else{if(this.destroyed)throw new Error("This peer cannot reconnect to the server. It has already been destroyed.");if(!this.disconnected&&!this.open)B.error("In a hurry? We're still trying to make the initial connection!");else throw new Error(`Peer ${this.id} cannot reconnect because it is not disconnected from the server!`)}}listAllPeers(e=t=>{}){this._api.listAllPeers().then(t=>e(t)).catch(t=>this._abort(be.ServerError,t))}};ui=new WeakMap,Rt(Wt,ui,Wt.DEFAULT_KEY="peerjs");var Gt=Wt,jr=class extends mt{constructor(e,t,n){super(e,t,{...n,reliable:!0}),this._CHUNK_SIZE=32768,this._splitStream=new TransformStream({transform:(i,o)=>{for(let c=0;c<i.length;c+=this._CHUNK_SIZE)o.enqueue(i.subarray(c,c+this._CHUNK_SIZE))}}),this._rawSendStream=new WritableStream({write:async(i,o)=>{let c=new Promise(h=>this.dataChannel.addEventListener("bufferedamountlow",h,{once:!0}));await(this.dataChannel.bufferedAmount<=mt.MAX_BUFFERED_AMOUNT-i.byteLength||c);try{this.dataChannel.send(i)}catch(h){B.error(`DC#:${this.connectionId} Error when sending:`,h),o.error(h),this.close()}}}),this.writer=this._splitStream.writable.getWriter(),this._rawReadStream=new ReadableStream({start:i=>{this.once("open",()=>{this.dataChannel.addEventListener("message",o=>{i.enqueue(o.data)})})}}),this._splitStream.readable.pipeTo(this._rawSendStream)}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType="arraybuffer",this.dataChannel.bufferedAmountLowThreshold=mt.MAX_BUFFERED_AMOUNT/2}},Yt=class extends jr{constructor(e,t,n){super(e,t,n),this.serialization="MsgPack",this._encoder=new Zs.Encoder,(async()=>{for await(let i of(0,Zs.decodeMultiStream)(this._rawReadStream)){if(i.__peerData?.type==="close"){this.close();return}this.emit("data",i)}})()}_send(e){return this.writer.write(this._encoder.encode(e))}},ai=class extends Gt{constructor(...e){super(...e),this._serializers={MsgPack:Yt,default:Yt}}},$c=Gt;jc(Ve.exports,ft)});var yi=N((hd,io)=>{var Kc=ur(),qc=vn(),pi=class{constructor({id:e,url:t,PeerImpl:n,WebSocketImpl:i,priority:o=0,connectTimeoutMs:c=1e4}){if(!t)throw new Error("PeerJS signaling provider requires a url");this.id=e||t,this.url=t,this.priority=o,this.isCustomPeerImpl=!!n,this.PeerImpl=n||this.resolvePeerImplementation(),this.WebSocketImpl=i,this.connectTimeoutMs=c,this.peer=null,this.peerId=null,this.connections=new Map,this.messageHandlers=new Set,this.fallbackProvider=null}resolvePeerImplementation(){try{let e=li();return e.Peer||e}catch{return null}}parsePeerJsServerUrl(){return qc(this.url)}shouldUseWebSocketFallback(){return!this.isCustomPeerImpl&&typeof globalThis.RTCPeerConnection!="function"}useWebSocketFallback(){return this.fallbackProvider||(this.fallbackProvider=new Kc({id:`${this.id}-ws-fallback`,url:this.url,WebSocketImpl:this.WebSocketImpl,priority:this.priority})),this.fallbackProvider}async connect(){if(this.shouldUseWebSocketFallback()){await this.useWebSocketFallback().connect();return}if(!this.PeerImpl)throw new Error("PeerJS implementation is not available");let e=this.parsePeerJsServerUrl(),t=`dignityjs_${Math.random().toString(36).slice(2,12)}`;await new Promise((n,i)=>{let o=new this.PeerImpl(t,{host:e.host,port:e.port,path:e.path,secure:e.secure,key:e.key}),c=setTimeout(()=>{i(new Error(`Unable to connect to signaling url ${this.url}`))},this.connectTimeoutMs);o.on("open",()=>{clearTimeout(c),this.peer=o,this.peerId=t,n()}),o.on("connection",h=>{this.attachConnectionHandlers(h)}),o.on("error",async h=>{if(clearTimeout(c),h&&h.type==="browser-incompatible")try{await this.useWebSocketFallback().connect(),n();return}catch{i(new Error(`Unable to connect to signaling url ${this.url}`));return}i(new Error(`Unable to connect to signaling url ${this.url}`))})})}attachConnectionHandlers(e){let t=e.peer;this.connections.set(t,e),e.on("data",n=>{for(let i of this.messageHandlers)i(n)}),e.on("close",()=>{this.connections.delete(t)})}async openConnection(e){if(!this.peer)throw new Error("PeerJS is not connected");let t=this.connections.get(e);return t&&t.open?t:await new Promise((n,i)=>{let o=this.peer.connect(e,{reliable:!0,serialization:"json"}),c=setTimeout(()=>{i(new Error(`Unable to connect peer ${e} via ${this.url}`))},this.connectTimeoutMs);o.on("open",()=>{clearTimeout(c),this.attachConnectionHandlers(o),n(o)}),o.on("error",()=>{clearTimeout(c),i(new Error(`Unable to connect peer ${e} via ${this.url}`))})})}onMessage(e){if(this.fallbackProvider){this.fallbackProvider.onMessage(e);return}this.messageHandlers.add(e)}async send(e){if(this.fallbackProvider){await this.fallbackProvider.send(e);return}if(!this.peer)throw new Error(`Signaling socket is not open for ${this.url}`);if(e&&e.to){(await this.openConnection(e.to)).send(e);return}for(let t of this.connections.values())t.open&&t.send(e)}async disconnect(){if(this.fallbackProvider){await this.fallbackProvider.disconnect(),this.fallbackProvider=null;return}for(let e of this.connections.values())typeof e.close=="function"&&e.close();this.connections.clear(),this.peer&&typeof this.peer.destroy=="function"&&this.peer.destroy(),this.peer=null,this.peerId=null}};io.exports=pi});var zr=N((ld,so)=>{var Vc=["wss://peerjs.92k.de/peerjs?key=peerjs","wss://0.peerjs.com/peerjs?key=peerjs"],Hc=["wss://relay.dignity.dev/signaling","wss://backup-relay.dignity.dev/signaling"];so.exports={DEFAULT_CLOUDFLARE_SIGNALING_URLS:Vc,DEFAULT_SIGNALING_FALLBACK_URLS:Hc}});var co=N((pd,ao)=>{var Wc=xn(),oo=ur(),Gc=yi(),{DEFAULT_CLOUDFLARE_SIGNALING_URLS:Yc,DEFAULT_SIGNALING_FALLBACK_URLS:Jc}=zr();function Xc(r={}){let e=r.cloudflareUrls||Yc,t=r.fallbackUrls||Jc,n=r.WebSocketImpl,i=[];return e.forEach((o,c)=>{let l=/^wss:\/\/(peerjs\.92k\.de|0\.peerjs\.com)(\/|$)/.test(o)?Gc:oo;i.push(new l({id:`cloudflare-${c+1}`,url:o,WebSocketImpl:n,priority:c}))}),t.forEach((o,c)=>{i.push(new oo({id:`fallback-${c+1}`,url:o,WebSocketImpl:n,priority:e.length+c}))}),Array.isArray(r.customProviders)&&i.push(...r.customProviders),new Wc(i)}ao.exports=Xc});var uo=N((yd,fo)=>{var mi=class{constructor(){this.adapters=new Map}register(e){this.adapters.set(e.nodeId,e)}unregister(e){this.adapters.delete(e)}async broadcast(e,t){let n=[];for(let[i,o]of this.adapters.entries())i!==e&&n.push(o.receive(t));await Promise.all(n)}},gi=class{constructor(e){if(!e)throw new Error("InMemoryNetworkAdapter requires an InMemoryNetworkHub");this.hub=e,this.nodeId=null,this.messageHandlers=new Set}async start(e){this.nodeId=e,this.hub.register(this)}async stop(){this.nodeId&&this.hub.unregister(this.nodeId),this.nodeId=null}async broadcast(e){if(!this.nodeId)throw new Error("Network adapter has not been started");await this.hub.broadcast(this.nodeId,e)}onMessage(e){this.messageHandlers.add(e)}offMessage(e){this.messageHandlers.delete(e)}async receive(e){let t=[];for(let n of this.messageHandlers)t.push(n(e));await Promise.all(t)}};fo.exports={InMemoryNetworkHub:mi,InMemoryNetworkAdapter:gi}});var po=N((md,lo)=>{var{DEFAULT_CLOUDFLARE_SIGNALING_URLS:Zc}=zr(),ho=vn();function Qc(r){if(r)return r;try{let e=li();return e.Peer||e}catch{return null}}var Nr=class{constructor({url:e,urls:t,PeerImpl:n,connectTimeoutMs:i=12e3}={}){this.urls=t||(e?[e]:[...Zc]),this.url=this.urls[0],this.PeerImpl=Qc(n),this.connectTimeoutMs=i,this.nodeId=null,this.peer=null,this.connections=new Map,this.pendingConnections=new Map,this.messageHandlers=new Set}async start(e){if(!e)throw new Error("PeerJSNetworkAdapter requires nodeId on start");if(!this.PeerImpl)throw new Error("PeerJS implementation is not available");this.peer&&await this.stop();let t;for(let n of this.urls)try{await this.startWithUrl(e,n),this.url=n;return}catch(i){t=i}throw t||new Error("Unable to connect PeerJS network adapter")}async startWithUrl(e,t){this.nodeId=e;let n=ho(t);await new Promise((i,o)=>{let c=new this.PeerImpl(e,{host:n.host,port:n.port,path:n.path,secure:n.secure,key:n.key}),h=setTimeout(()=>{c.destroy?.(),o(new Error(`Unable to connect PeerJS network adapter to ${t}`))},this.connectTimeoutMs);c.on("open",()=>{clearTimeout(h),this.peer=c,i()}),c.on("connection",l=>{this.attachConnectionHandlers(l)}),c.on("error",l=>{clearTimeout(h),c.destroy?.(),o(l||new Error(`Unable to connect PeerJS network adapter to ${t}`))})})}attachConnectionHandlers(e){let t=e.peer;t&&(this.connections.set(t,e),e.on("data",n=>{let i=[];for(let o of this.messageHandlers)i.push(o(n));return Promise.all(i)}),e.on("close",()=>{this.connections.delete(t)}))}async connectToPeer(e){if(!e||e===this.nodeId)return null;let t=this.connections.get(e);if(t&&t.open)return t;if(this.pendingConnections.has(e))return this.pendingConnections.get(e);if(!this.peer)throw new Error("PeerJS network adapter has not been started");let n=new Promise((i,o)=>{let c=this.peer.connect(e,{reliable:!0,serialization:"json"}),h=setTimeout(()=>{o(new Error(`Unable to connect to peer ${e}`))},this.connectTimeoutMs);c.on("open",()=>{clearTimeout(h),this.attachConnectionHandlers(c),i(c)}),c.on("error",()=>{clearTimeout(h),o(new Error(`Unable to connect to peer ${e}`))})}).finally(()=>{this.pendingConnections.delete(e)});return this.pendingConnections.set(e,n),n}onMessage(e){this.messageHandlers.add(e)}offMessage(e){this.messageHandlers.delete(e)}async broadcast(e){if(!this.peer)throw new Error("PeerJS network adapter has not been started");let t=[];for(let n of this.connections.values())n.open&&t.push(n.send(e));await Promise.all(t)}getOpenConnectionCount(){return this.listOpenPeerIds().length}listOpenPeerIds(){let e=[];for(let[t,n]of this.connections.entries())n.open&&e.push(t);return e}isConnectedTo(e){let t=this.connections.get(e);return!!(t&&t.open)}async stop(){for(let e of this.connections.values())typeof e.close=="function"&&e.close();this.connections.clear(),this.pendingConnections.clear(),this.peer&&typeof this.peer.destroy=="function"&&this.peer.destroy(),this.peer=null,this.nodeId=null}};function ef(r={}){return new Nr(r)}lo.exports={PeerJSNetworkAdapter:Nr,createPeerJSNetworkAdapter:ef,parsePeerJsServerUrl:ho}});var mo=N((gd,yo)=>{var xi=class{constructor({dbName:e="dignity",storeName:t="records",collections:n=null,indexedDB:i=typeof globalThis<"u"?globalThis.indexedDB:null}={}){this.dbName=e,this.storeName=t,this.collections=n,this.indexedDB=i,this.node=null,this.changeHandler=null}recordKey(e,t){return`${e}:${t}`}shouldPersist(e){return this.collections?this.collections.includes(e):!0}openDb(){return this.indexedDB?new Promise((e,t)=>{let n=this.indexedDB.open(this.dbName,1);n.onupgradeneeded=()=>{let i=n.result;i.objectStoreNames.contains(this.storeName)||i.createObjectStore(this.storeName,{keyPath:"key"})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error||new Error("Unable to open IndexedDB"))}):Promise.reject(new Error("IndexedDB is not available"))}runTransaction(e,t){return this.openDb().then(n=>new Promise((i,o)=>{let c=n.transaction(this.storeName,e),h=c.objectStore(this.storeName);Promise.resolve(t(h)).then(i).catch(o),c.oncomplete=()=>n.close(),c.onerror=()=>o(c.error||new Error("IndexedDB transaction failed")),c.onabort=()=>o(c.error||new Error("IndexedDB transaction aborted"))}))}serializeRecord(e,t){let n=this.node.getCollection(e).get(t);return n?{key:this.recordKey(e,t),collection:e,id:t,ownerId:n.ownerId,collaboratorIds:Array.isArray(n.collaboratorIds)?[...n.collaboratorIds]:[],data:{...n.data},createdAt:n.createdAt,updatedAt:n.updatedAt,deletedAt:n.deletedAt,version:n.version}:null}async persistRecord(e,t){if(!this.node||!this.shouldPersist(e))return;let n=this.serializeRecord(e,t),i=this.recordKey(e,t);if(!n){await this.runTransaction("readwrite",o=>new Promise((c,h)=>{let l=o.delete(i);l.onsuccess=()=>c(),l.onerror=()=>h(l.error)}));return}await this.runTransaction("readwrite",o=>new Promise((c,h)=>{let l=o.put(n);l.onsuccess=()=>c(),l.onerror=()=>h(l.error)}))}persistChange(e){!e||!e.collection||!e.id||this.persistRecord(e.collection,e.id).catch(t=>{this.node.emit("warning",{type:"persistence-failed",collection:e.collection,id:e.id,error:t})})}async loadAllRecords(){return this.runTransaction("readonly",e=>new Promise((t,n)=>{let i=e.getAll();i.onsuccess=()=>t(i.result||[]),i.onerror=()=>n(i.error)}))}async hydrate(){if(!this.node)throw new Error("IndexedDBPersistence requires an attached node before hydrate");let e=await this.loadAllRecords();for(let t of e)this.shouldPersist(t.collection)&&this.node.restoreRecord(t.collection,{id:t.id,ownerId:t.ownerId,collaboratorIds:t.collaboratorIds,data:t.data,createdAt:t.createdAt,updatedAt:t.updatedAt,deletedAt:t.deletedAt,version:t.version})}async attach(e){if(!e)throw new Error("IndexedDBPersistence.attach requires a DignityP2P node");this.node=e,await this.hydrate(),this.changeHandler=t=>this.persistChange(t),e.on("change",this.changeHandler)}async detach(){this.node&&this.changeHandler&&this.node.off("change",this.changeHandler),this.changeHandler=null,this.node=null}async clear(){await this.runTransaction("readwrite",e=>new Promise((t,n)=>{let i=e.clear();i.onsuccess=()=>t(),i.onerror=()=>n(i.error)}))}};yo.exports=xi});var xf=N((xd,go)=>{var tf=Xi(),rf=co(),nf=xn(),sf=ur(),of=yi(),{InMemoryNetworkHub:af,InMemoryNetworkAdapter:cf}=uo(),{PeerJSNetworkAdapter:ff,createPeerJSNetworkAdapter:df}=po(),uf=mo(),{DEFAULT_CLOUDFLARE_SIGNALING_URLS:hf,DEFAULT_SIGNALING_FALLBACK_URLS:lf}=zr(),pf=dn(),yf=cn(),{MessageSecurityService:mf,DEFAULT_SECURITY_OPTIONS:gf}=yn();go.exports={DignityP2P:tf,createDefaultSignalingPool:rf,SignalingPool:nf,WebSocketSignalingProvider:sf,PeerJSSignalingProvider:of,InMemoryNetworkHub:af,InMemoryNetworkAdapter:cf,PeerJSNetworkAdapter:ff,createPeerJSNetworkAdapter:df,IndexedDBPersistence:uf,DEFAULT_CLOUDFLARE_SIGNALING_URLS:hf,DEFAULT_SIGNALING_FALLBACK_URLS:lf,VDF:pf,SlothPermutation:yf,MessageSecurityService:mf,DEFAULT_SECURITY_OPTIONS:gf}});return xf();})();
42
+ isUnifiedPlanSupported:${this.isUnifiedPlanSupported()}`}constructor(){this.isIOS=typeof navigator<"u"?["iPad","iPhone","iPod"].includes(navigator.platform):!1,this.supportedBrowsers=["firefox","chrome","safari"],this.minFirefoxVersion=59,this.minChromeVersion=72,this.minSafariVersion=605}},Vc=r=>!r||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(r),io=()=>Math.random().toString(36).slice(2),ro={iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:["turn:eu-0.turn.peerjs.com:3478","turn:us-0.turn.peerjs.com:3478"],username:"peerjs",credential:"peerjsp"}],sdpSemantics:"unified-plan"},ii=class extends Ur{noop(){}blobToArrayBuffer(e,t){let n=new FileReader;return n.onload=function(i){i.target&&t(i.target.result)},n.readAsArrayBuffer(e),n}binaryStringToArrayBuffer(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t.buffer}isSecure(){return location.protocol==="https:"}constructor(...e){super(...e),this.CLOUD_HOST="0.peerjs.com",this.CLOUD_PORT=443,this.chunkedBrowsers={Chrome:1,chrome:1},this.defaultConfig=ro,this.browser=Vt.getBrowser(),this.browserVersion=Vt.getVersion(),this.pack=Dr.pack,this.unpack=Dr.unpack,this.supports=(function(){let t={browser:Vt.isBrowserSupported(),webRTC:Vt.isWebRTCSupported(),audioVideo:!1,data:!1,binaryBlob:!1,reliable:!1};if(!t.webRTC)return t;let n;try{n=new RTCPeerConnection(ro),t.audioVideo=!0;let i;try{i=n.createDataChannel("_PEERJSTEST",{ordered:!0}),t.data=!0,t.reliable=!!i.ordered;try{i.binaryType="blob",t.binaryBlob=!Vt.isIOS}catch{}}catch{}finally{i&&i.close()}}catch{}finally{n&&n.close()}return t})(),this.validateId=Vc,this.randomToken=io}},Re=new ii,Hc="PeerJS: ",si=class{get logLevel(){return this._logLevel}set logLevel(e){this._logLevel=e}log(...e){this._logLevel>=3&&this._print(3,...e)}warn(...e){this._logLevel>=2&&this._print(2,...e)}error(...e){this._logLevel>=1&&this._print(1,...e)}setLogFunction(e){this._print=e}_print(e,...t){let n=[Hc,...t];for(let i in n)n[i]instanceof Error&&(n[i]="("+n[i].name+") "+n[i].message);e>=3?console.log(...n):e>=2?console.warn("WARNING",...n):e>=1&&console.error("ERROR",...n)}constructor(){this._logLevel=0}},B=new si,ft={};Ae(ft,"ConnectionType",()=>ct);Ae(ft,"PeerErrorType",()=>ve);Ae(ft,"BaseConnectionErrorType",()=>oi);Ae(ft,"DataConnectionErrorType",()=>mi);Ae(ft,"SerializationType",()=>Nr);Ae(ft,"SocketEventType",()=>at);Ae(ft,"ServerMessageType",()=>Ie);var ct=(function(r){return r.Data="data",r.Media="media",r})({}),ve=(function(r){return r.BrowserIncompatible="browser-incompatible",r.Disconnected="disconnected",r.InvalidID="invalid-id",r.InvalidKey="invalid-key",r.Network="network",r.PeerUnavailable="peer-unavailable",r.SslUnavailable="ssl-unavailable",r.ServerError="server-error",r.SocketError="socket-error",r.SocketClosed="socket-closed",r.UnavailableID="unavailable-id",r.WebRTC="webrtc",r})({}),oi=(function(r){return r.NegotiationFailed="negotiation-failed",r.ConnectionClosed="connection-closed",r})({}),mi=(function(r){return r.NotOpenYet="not-open-yet",r.MessageToBig="message-too-big",r})({}),Nr=(function(r){return r.Binary="binary",r.BinaryUTF8="binary-utf8",r.JSON="json",r.None="raw",r})({}),at=(function(r){return r.Message="message",r.Disconnected="disconnected",r.Error="error",r.Close="close",r})({}),Ie=(function(r){return r.Heartbeat="HEARTBEAT",r.Candidate="CANDIDATE",r.Offer="OFFER",r.Answer="ANSWER",r.Open="OPEN",r.Error="ERROR",r.IdTaken="ID-TAKEN",r.InvalidKey="INVALID-KEY",r.Leave="LEAVE",r.Expire="EXPIRE",r})({}),so="1.5.5",ai=class extends no.EventEmitter{constructor(e,t,n,i,o,c=5e3){super(),this.pingInterval=c,this._disconnected=!0,this._messagesQueue=[];let h=e?"wss://":"ws://";this._baseUrl=h+t+":"+n+i+"peerjs?key="+o}start(e,t){this._id=e;let n=`${this._baseUrl}&id=${e}&token=${t}`;this._socket||!this._disconnected||(this._socket=new WebSocket(n+"&version="+so),this._disconnected=!1,this._socket.onmessage=i=>{let o;try{o=JSON.parse(i.data),B.log("Server message received:",o)}catch{B.log("Invalid server message",i.data);return}this.emit(at.Message,o)},this._socket.onclose=i=>{this._disconnected||(B.log("Socket closed.",i),this._cleanup(),this._disconnected=!0,this.emit(at.Disconnected))},this._socket.onopen=()=>{this._disconnected||(this._sendQueuedMessages(),B.log("Socket open"),this._scheduleHeartbeat())})}_scheduleHeartbeat(){this._wsPingTimer=setTimeout(()=>{this._sendHeartbeat()},this.pingInterval)}_sendHeartbeat(){if(!this._wsOpen()){B.log("Cannot send heartbeat, because socket closed");return}let e=JSON.stringify({type:Ie.Heartbeat});this._socket.send(e),this._scheduleHeartbeat()}_wsOpen(){return!!this._socket&&this._socket.readyState===1}_sendQueuedMessages(){let e=[...this._messagesQueue];this._messagesQueue=[];for(let t of e)this.send(t)}send(e){if(this._disconnected)return;if(!this._id){this._messagesQueue.push(e);return}if(!e.type){this.emit(at.Error,"Invalid message");return}if(!this._wsOpen())return;let t=JSON.stringify(e);this._socket.send(t)}close(){this._disconnected||(this._cleanup(),this._disconnected=!0)}_cleanup(){this._socket&&(this._socket.onopen=this._socket.onmessage=this._socket.onclose=null,this._socket.close(),this._socket=void 0),clearTimeout(this._wsPingTimer)}},Or=class{constructor(e){this.connection=e}startConnection(e){let t=this._startPeerConnection();if(this.connection.peerConnection=t,this.connection.type===ct.Media&&e._stream&&this._addTracksToConnection(e._stream,t),e.originator){let n=this.connection,i={ordered:!!e.reliable},o=t.createDataChannel(n.label,i);n._initializeDataChannel(o),this._makeOffer()}else this.handleSDP("OFFER",e.sdp)}_startPeerConnection(){B.log("Creating RTCPeerConnection.");let e=new RTCPeerConnection(this.connection.provider.options.config);return this._setupListeners(e),e}_setupListeners(e){let t=this.connection.peer,n=this.connection.connectionId,i=this.connection.type,o=this.connection.provider;B.log("Listening for ICE candidates."),e.onicecandidate=c=>{!c.candidate||!c.candidate.candidate||(B.log(`Received ICE candidates for ${t}:`,c.candidate),o.socket.send({type:Ie.Candidate,payload:{candidate:c.candidate,type:i,connectionId:n},dst:t}))},e.oniceconnectionstatechange=()=>{switch(e.iceConnectionState){case"failed":B.log("iceConnectionState is failed, closing connections to "+t),this.connection.emitError(oi.NegotiationFailed,"Negotiation of connection to "+t+" failed."),this.connection.close();break;case"closed":B.log("iceConnectionState is closed, closing connections to "+t),this.connection.emitError(oi.ConnectionClosed,"Connection to "+t+" closed."),this.connection.close();break;case"disconnected":B.log("iceConnectionState changed to disconnected on the connection with "+t);break;case"completed":e.onicecandidate=()=>{};break}this.connection.emit("iceStateChanged",e.iceConnectionState)},B.log("Listening for data channel"),e.ondatachannel=c=>{B.log("Received data channel");let h=c.channel;o.getConnection(t,n)._initializeDataChannel(h)},B.log("Listening for remote stream"),e.ontrack=c=>{B.log("Received remote stream");let h=c.streams[0],l=o.getConnection(t,n);if(l.type===ct.Media){let y=l;this._addStreamToMediaConnection(h,y)}}}cleanup(){B.log("Cleaning up PeerConnection to "+this.connection.peer);let e=this.connection.peerConnection;if(!e)return;this.connection.peerConnection=null,e.onicecandidate=e.oniceconnectionstatechange=e.ondatachannel=e.ontrack=()=>{};let t=e.signalingState!=="closed",n=!1,i=this.connection.dataChannel;i&&(n=!!i.readyState&&i.readyState!=="closed"),(t||n)&&e.close()}async _makeOffer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createOffer(this.connection.options.constraints);B.log("Created offer."),this.connection.options.sdpTransform&&typeof this.connection.options.sdpTransform=="function"&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),B.log("Set localDescription:",n,`for:${this.connection.peer}`);let i={sdp:n,type:this.connection.type,connectionId:this.connection.connectionId,metadata:this.connection.metadata};if(this.connection.type===ct.Data){let o=this.connection;i={...i,label:o.label,reliable:o.reliable,serialization:o.serialization}}t.socket.send({type:Ie.Offer,payload:i,dst:this.connection.peer})}catch(i){i!="OperationError: Failed to set local offer sdp: Called in wrong state: kHaveRemoteOffer"&&(t.emitError(ve.WebRTC,i),B.log("Failed to setLocalDescription, ",i))}}catch(n){t.emitError(ve.WebRTC,n),B.log("Failed to createOffer, ",n)}}async _makeAnswer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createAnswer();B.log("Created answer."),this.connection.options.sdpTransform&&typeof this.connection.options.sdpTransform=="function"&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),B.log("Set localDescription:",n,`for:${this.connection.peer}`),t.socket.send({type:Ie.Answer,payload:{sdp:n,type:this.connection.type,connectionId:this.connection.connectionId},dst:this.connection.peer})}catch(i){t.emitError(ve.WebRTC,i),B.log("Failed to setLocalDescription, ",i)}}catch(n){t.emitError(ve.WebRTC,n),B.log("Failed to create answer, ",n)}}async handleSDP(e,t){t=new RTCSessionDescription(t);let n=this.connection.peerConnection,i=this.connection.provider;B.log("Setting remote description",t);let o=this;try{await n.setRemoteDescription(t),B.log(`Set remoteDescription:${e} for:${this.connection.peer}`),e==="OFFER"&&await o._makeAnswer()}catch(c){i.emitError(ve.WebRTC,c),B.log("Failed to setRemoteDescription, ",c)}}async handleCandidate(e){B.log("handleCandidate:",e);try{await this.connection.peerConnection.addIceCandidate(e),B.log(`Added ICE candidate for:${this.connection.peer}`)}catch(t){this.connection.provider.emitError(ve.WebRTC,t),B.log("Failed to handleCandidate, ",t)}}_addTracksToConnection(e,t){if(B.log(`add tracks from stream ${e.id} to peer connection`),!t.addTrack)return B.error("Your browser does't support RTCPeerConnection#addTrack. Ignored.");e.getTracks().forEach(n=>{t.addTrack(n,e)})}_addStreamToMediaConnection(e,t){B.log(`add stream ${e.id} to media connection ${t.connectionId}`),t.addStream(e)}},Br=class extends no.EventEmitter{emitError(e,t){B.error("Error:",t),this.emit("error",new Lr(`${e}`,t))}},Lr=class extends Error{constructor(e,t){typeof t=="string"?super(t):(super(),Object.assign(this,t)),this.type=e}},jr=class extends Br{get open(){return this._open}constructor(e,t,n){super(),this.peer=e,this.provider=t,this.options=n,this._open=!1,this.metadata=n.metadata}},hi,Wt=class Wt extends jr{get type(){return ct.Media}get localStream(){return this._localStream}get remoteStream(){return this._remoteStream}constructor(e,t,n){super(e,t,n),this._localStream=this.options._stream,this.connectionId=this.options.connectionId||Wt.ID_PREFIX+Re.randomToken(),this._negotiator=new Or(this),this._localStream&&this._negotiator.startConnection({_stream:this._localStream,originator:!0})}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{B.log(`DC#${this.connectionId} dc connection success`),this.emit("willCloseOnRemote")},this.dataChannel.onclose=()=>{B.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}addStream(e){B.log("Receiving stream",e),this._remoteStream=e,super.emit("stream",e)}handleMessage(e){let t=e.type,n=e.payload;switch(e.type){case Ie.Answer:this._negotiator.handleSDP(t,n.sdp),this._open=!0;break;case Ie.Candidate:this._negotiator.handleCandidate(n.candidate);break;default:B.warn(`Unrecognized message type:${t} from peer:${this.peer}`);break}}answer(e,t={}){if(this._localStream){B.warn("Local stream already exists on this MediaConnection. Are you answering a call twice?");return}this._localStream=e,t&&t.sdpTransform&&(this.options.sdpTransform=t.sdpTransform),this._negotiator.startConnection({...this.options._payload,_stream:e});let n=this.provider._getMessages(this.connectionId);for(let i of n)this.handleMessage(i);this._open=!0}close(){this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this._localStream=null,this._remoteStream=null,this.provider&&(this.provider._removeConnection(this),this.provider=null),this.options&&this.options._stream&&(this.options._stream=null),this.open&&(this._open=!1,super.emit("close"))}};hi=new WeakMap,Rt(Wt,hi,Wt.ID_PREFIX="mc_");var Fr=Wt,ci=class{constructor(e){this._options=e}_buildRequest(e){let t=this._options.secure?"https":"http",{host:n,port:i,path:o,key:c}=this._options,h=new URL(`${t}://${n}:${i}${o}${c}/${e}`);return h.searchParams.set("ts",`${Date.now()}${Math.random()}`),h.searchParams.set("version",so),fetch(h.href,{referrerPolicy:this._options.referrerPolicy})}async retrieveId(){try{let e=await this._buildRequest("id");if(e.status!==200)throw new Error(`Error. Status:${e.status}`);return e.text()}catch(e){B.error("Error retrieving ID",e);let t="";throw this._options.path==="/"&&this._options.host!==Re.CLOUD_HOST&&(t=" If you passed in a `path` to your self-hosted PeerServer, you'll also need to pass in that same path when creating a new Peer."),new Error("Could not get an ID from the server."+t)}}async listAllPeers(){try{let e=await this._buildRequest("peers");if(e.status!==200){if(e.status===401){let t="";throw this._options.host===Re.CLOUD_HOST?t="It looks like you're using the cloud server. You can email team@peerjs.com to enable peer listing for your API key.":t="You need to enable `allow_discovery` on your self-hosted PeerServer to use this feature.",new Error("It doesn't look like you have permission to list peers IDs. "+t)}throw new Error(`Error. Status:${e.status}`)}return e.json()}catch(e){throw B.error("Error retrieving list peers",e),new Error("Could not get list peers from the server."+e)}}},li,pi,yt=class yt extends jr{get type(){return ct.Data}constructor(e,t,n){super(e,t,n),this.connectionId=this.options.connectionId||yt.ID_PREFIX+io(),this.label=this.options.label||this.connectionId,this.reliable=!!this.options.reliable,this._negotiator=new Or(this),this._negotiator.startConnection(this.options._payload||{originator:!0,reliable:this.reliable})}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{B.log(`DC#${this.connectionId} dc connection success`),this._open=!0,this.emit("open")},this.dataChannel.onmessage=t=>{B.log(`DC#${this.connectionId} dc onmessage:`,t.data)},this.dataChannel.onclose=()=>{B.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}close(e){if(e?.flush){this.send({__peerData:{type:"close"}});return}this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this.provider&&(this.provider._removeConnection(this),this.provider=null),this.dataChannel&&(this.dataChannel.onopen=null,this.dataChannel.onmessage=null,this.dataChannel.onclose=null,this.dataChannel=null),this.open&&(this._open=!1,super.emit("close"))}send(e,t=!1){if(!this.open){this.emitError(mi.NotOpenYet,"Connection is not open. You should listen for the `open` event before sending messages.");return}return this._send(e,t)}async handleMessage(e){let t=e.payload;switch(e.type){case Ie.Answer:await this._negotiator.handleSDP(e.type,t.sdp);break;case Ie.Candidate:await this._negotiator.handleCandidate(t.candidate);break;default:B.warn("Unrecognized message type:",e.type,"from peer:",this.peer);break}}};li=new WeakMap,pi=new WeakMap,Rt(yt,li,yt.ID_PREFIX="dc_"),Rt(yt,pi,yt.MAX_BUFFERED_AMOUNT=8388608);var mt=yt,wt=class extends mt{get bufferSize(){return this._bufferSize}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType="arraybuffer",this.dataChannel.addEventListener("message",t=>this._handleDataMessage(t))}_bufferedSend(e){(this._buffering||!this._trySend(e))&&(this._buffer.push(e),this._bufferSize=this._buffer.length)}_trySend(e){if(!this.open)return!1;if(this.dataChannel.bufferedAmount>mt.MAX_BUFFERED_AMOUNT)return this._buffering=!0,setTimeout(()=>{this._buffering=!1,this._tryBuffer()},50),!1;try{this.dataChannel.send(e)}catch(t){return B.error(`DC#:${this.connectionId} Error when sending:`,t),this._buffering=!0,this.close(),!1}return!0}_tryBuffer(){if(!this.open||this._buffer.length===0)return;let e=this._buffer[0];this._trySend(e)&&(this._buffer.shift(),this._bufferSize=this._buffer.length,this._tryBuffer())}close(e){if(e?.flush){this.send({__peerData:{type:"close"}});return}this._buffer=[],this._bufferSize=0,super.close()}constructor(...e){super(...e),this._buffer=[],this._bufferSize=0,this._buffering=!1}},Ht=class extends wt{close(e){super.close(e),this._chunkedData={}}constructor(e,t,n){super(e,t,n),this.chunker=new Ur,this.serialization=Nr.Binary,this._chunkedData={}}_handleDataMessage({data:e}){let t=(0,Dr.unpack)(e),n=t.__peerData;if(n){if(n.type==="close"){this.close();return}this._handleChunk(t);return}this.emit("data",t)}_handleChunk(e){let t=e.__peerData,n=this._chunkedData[t]||{data:[],count:0,total:e.total};if(n.data[e.n]=new Uint8Array(e.data),n.count++,this._chunkedData[t]=n,n.total===n.count){delete this._chunkedData[t];let i=qc(n.data);this._handleDataMessage({data:i})}}_send(e,t){let n=(0,Dr.pack)(e);if(n instanceof Promise)return this._send_blob(n);if(!t&&n.byteLength>this.chunker.chunkedMTU){this._sendChunks(n);return}this._bufferedSend(n)}async _send_blob(e){let t=await e;if(t.byteLength>this.chunker.chunkedMTU){this._sendChunks(t);return}this._bufferedSend(t)}_sendChunks(e){let t=this.chunker.chunk(e);B.log(`DC#${this.connectionId} Try to send ${t.length} chunks...`);for(let n of t)this.send(n,!0)}},fi=class extends wt{_handleDataMessage({data:e}){super.emit("data",e)}_send(e,t){this._bufferedSend(e)}constructor(...e){super(...e),this.serialization=Nr.None}},di=class extends wt{_handleDataMessage({data:e}){let t=this.parse(this.decoder.decode(e)),n=t.__peerData;if(n&&n.type==="close"){this.close();return}this.emit("data",t)}_send(e,t){let n=this.encoder.encode(this.stringify(e));if(n.byteLength>=Re.chunkedMTU){this.emitError(mi.MessageToBig,"Message too big for JSON channel");return}this._bufferedSend(n)}constructor(...e){super(...e),this.serialization=Nr.JSON,this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.stringify=JSON.stringify,this.parse=JSON.parse}},yi,Gt=class Gt extends Br{get id(){return this._id}get options(){return this._options}get open(){return this._open}get socket(){return this._socket}get connections(){let e=Object.create(null);for(let[t,n]of this._connections)e[t]=n;return e}get destroyed(){return this._destroyed}get disconnected(){return this._disconnected}constructor(e,t){super(),this._serializers={raw:fi,json:di,binary:Ht,"binary-utf8":Ht,default:Ht},this._id=null,this._lastServerId=null,this._destroyed=!1,this._disconnected=!1,this._open=!1,this._connections=new Map,this._lostMessages=new Map;let n;if(e&&e.constructor==Object?t=e:e&&(n=e.toString()),t={debug:0,host:Re.CLOUD_HOST,port:Re.CLOUD_PORT,path:"/",key:Gt.DEFAULT_KEY,token:Re.randomToken(),config:Re.defaultConfig,referrerPolicy:"strict-origin-when-cross-origin",serializers:{},...t},this._options=t,this._serializers={...this._serializers,...this.options.serializers},this._options.host==="/"&&(this._options.host=window.location.hostname),this._options.path&&(this._options.path[0]!=="/"&&(this._options.path="/"+this._options.path),this._options.path[this._options.path.length-1]!=="/"&&(this._options.path+="/")),this._options.secure===void 0&&this._options.host!==Re.CLOUD_HOST?this._options.secure=Re.isSecure():this._options.host==Re.CLOUD_HOST&&(this._options.secure=!0),this._options.logFunction&&B.setLogFunction(this._options.logFunction),B.logLevel=this._options.debug||0,this._api=new ci(t),this._socket=this._createServerConnection(),!Re.supports.audioVideo&&!Re.supports.data){this._delayedAbort(ve.BrowserIncompatible,"The current browser does not support WebRTC");return}if(n&&!Re.validateId(n)){this._delayedAbort(ve.InvalidID,`ID "${n}" is invalid`);return}n?this._initialize(n):this._api.retrieveId().then(i=>this._initialize(i)).catch(i=>this._abort(ve.ServerError,i))}_createServerConnection(){let e=new ai(this._options.secure,this._options.host,this._options.port,this._options.path,this._options.key,this._options.pingInterval);return e.on(at.Message,t=>{this._handleMessage(t)}),e.on(at.Error,t=>{this._abort(ve.SocketError,t)}),e.on(at.Disconnected,()=>{this.disconnected||(this.emitError(ve.Network,"Lost connection to server."),this.disconnect())}),e.on(at.Close,()=>{this.disconnected||this._abort(ve.SocketClosed,"Underlying socket is already closed.")}),e}_initialize(e){this._id=e,this.socket.start(e,this._options.token)}_handleMessage(e){let t=e.type,n=e.payload,i=e.src;switch(t){case Ie.Open:this._lastServerId=this.id,this._open=!0,this.emit("open",this.id);break;case Ie.Error:this._abort(ve.ServerError,n.msg);break;case Ie.IdTaken:this._abort(ve.UnavailableID,`ID "${this.id}" is taken`);break;case Ie.InvalidKey:this._abort(ve.InvalidKey,`API KEY "${this._options.key}" is invalid`);break;case Ie.Leave:B.log(`Received leave message from ${i}`),this._cleanupPeer(i),this._connections.delete(i);break;case Ie.Expire:this.emitError(ve.PeerUnavailable,`Could not connect to peer ${i}`);break;case Ie.Offer:{let o=n.connectionId,c=this.getConnection(i,o);if(c&&(c.close(),B.warn(`Offer received for existing Connection ID:${o}`)),n.type===ct.Media){let l=new Fr(i,this,{connectionId:o,_payload:n,metadata:n.metadata});c=l,this._addConnection(i,c),this.emit("call",l)}else if(n.type===ct.Data){let l=new this._serializers[n.serialization](i,this,{connectionId:o,_payload:n,metadata:n.metadata,label:n.label,serialization:n.serialization,reliable:n.reliable});c=l,this._addConnection(i,c),this.emit("connection",l)}else{B.warn(`Received malformed connection type:${n.type}`);return}let h=this._getMessages(o);for(let l of h)c.handleMessage(l);break}default:{if(!n){B.warn(`You received a malformed message from ${i} of type ${t}`);return}let o=n.connectionId,c=this.getConnection(i,o);c&&c.peerConnection?c.handleMessage(e):o?this._storeMessage(o,e):B.warn("You received an unrecognized message:",e);break}}}_storeMessage(e,t){this._lostMessages.has(e)||this._lostMessages.set(e,[]),this._lostMessages.get(e).push(t)}_getMessages(e){let t=this._lostMessages.get(e);return t?(this._lostMessages.delete(e),t):[]}connect(e,t={}){if(t={serialization:"default",...t},this.disconnected){B.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect, or call reconnect on this peer if you believe its ID to still be available."),this.emitError(ve.Disconnected,"Cannot connect to new Peer after disconnecting from server.");return}let n=new this._serializers[t.serialization](e,this,t);return this._addConnection(e,n),n}call(e,t,n={}){if(this.disconnected){B.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect."),this.emitError(ve.Disconnected,"Cannot connect to new Peer after disconnecting from server.");return}if(!t){B.error("To call a peer, you must provide a stream from your browser's `getUserMedia`.");return}let i=new Fr(e,this,{...n,_stream:t});return this._addConnection(e,i),i}_addConnection(e,t){B.log(`add connection ${t.type}:${t.connectionId} to peerId:${e}`),this._connections.has(e)||this._connections.set(e,[]),this._connections.get(e).push(t)}_removeConnection(e){let t=this._connections.get(e.peer);if(t){let n=t.indexOf(e);n!==-1&&t.splice(n,1)}this._lostMessages.delete(e.connectionId)}getConnection(e,t){let n=this._connections.get(e);if(!n)return null;for(let i of n)if(i.connectionId===t)return i;return null}_delayedAbort(e,t){setTimeout(()=>{this._abort(e,t)},0)}_abort(e,t){B.error("Aborting!"),this.emitError(e,t),this._lastServerId?this.disconnect():this.destroy()}destroy(){this.destroyed||(B.log(`Destroy peer with ID:${this.id}`),this.disconnect(),this._cleanup(),this._destroyed=!0,this.emit("close"))}_cleanup(){for(let e of this._connections.keys())this._cleanupPeer(e),this._connections.delete(e);this.socket.removeAllListeners()}_cleanupPeer(e){let t=this._connections.get(e);if(t)for(let n of t)n.close()}disconnect(){if(this.disconnected)return;let e=this.id;B.log(`Disconnect peer with ID:${e}`),this._disconnected=!0,this._open=!1,this.socket.close(),this._lastServerId=e,this._id=null,this.emit("disconnected",e)}reconnect(){if(this.disconnected&&!this.destroyed)B.log(`Attempting reconnection to server with ID ${this._lastServerId}`),this._disconnected=!1,this._initialize(this._lastServerId);else{if(this.destroyed)throw new Error("This peer cannot reconnect to the server. It has already been destroyed.");if(!this.disconnected&&!this.open)B.error("In a hurry? We're still trying to make the initial connection!");else throw new Error(`Peer ${this.id} cannot reconnect because it is not disconnected from the server!`)}}listAllPeers(e=t=>{}){this._api.listAllPeers().then(t=>e(t)).catch(t=>this._abort(ve.ServerError,t))}};yi=new WeakMap,Rt(Gt,yi,Gt.DEFAULT_KEY="peerjs");var Yt=Gt,zr=class extends mt{constructor(e,t,n){super(e,t,{...n,reliable:!0}),this._CHUNK_SIZE=32768,this._splitStream=new TransformStream({transform:(i,o)=>{for(let c=0;c<i.length;c+=this._CHUNK_SIZE)o.enqueue(i.subarray(c,c+this._CHUNK_SIZE))}}),this._rawSendStream=new WritableStream({write:async(i,o)=>{let c=new Promise(h=>this.dataChannel.addEventListener("bufferedamountlow",h,{once:!0}));await(this.dataChannel.bufferedAmount<=mt.MAX_BUFFERED_AMOUNT-i.byteLength||c);try{this.dataChannel.send(i)}catch(h){B.error(`DC#:${this.connectionId} Error when sending:`,h),o.error(h),this.close()}}}),this.writer=this._splitStream.writable.getWriter(),this._rawReadStream=new ReadableStream({start:i=>{this.once("open",()=>{this.dataChannel.addEventListener("message",o=>{i.enqueue(o.data)})})}}),this._splitStream.readable.pipeTo(this._rawSendStream)}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType="arraybuffer",this.dataChannel.bufferedAmountLowThreshold=mt.MAX_BUFFERED_AMOUNT/2}},Jt=class extends zr{constructor(e,t,n){super(e,t,n),this.serialization="MsgPack",this._encoder=new eo.Encoder,(async()=>{for await(let i of(0,eo.decodeMultiStream)(this._rawReadStream)){if(i.__peerData?.type==="close"){this.close();return}this.emit("data",i)}})()}_send(e){return this.writer.write(this._encoder.encode(e))}},ui=class extends Yt{constructor(...e){super(...e),this._serializers={MsgPack:Jt,default:Jt}}},Wc=Yt;Kc(Ve.exports,ft)});var bi=N((gd,oo)=>{var Gc=lr(),Yc=Pn(),xi=class{constructor({id:e,url:t,PeerImpl:n,WebSocketImpl:i,priority:o=0,connectTimeoutMs:c=1e4}){if(!t)throw new Error("PeerJS signaling provider requires a url");this.id=e||t,this.url=t,this.priority=o,this.isCustomPeerImpl=!!n,this.PeerImpl=n||this.resolvePeerImplementation(),this.WebSocketImpl=i,this.connectTimeoutMs=c,this.peer=null,this.peerId=null,this.connections=new Map,this.messageHandlers=new Set,this.fallbackProvider=null}resolvePeerImplementation(){try{let e=gi();return e.Peer||e}catch{return null}}parsePeerJsServerUrl(){return Yc(this.url)}shouldUseWebSocketFallback(){return!this.isCustomPeerImpl&&typeof globalThis.RTCPeerConnection!="function"}useWebSocketFallback(){return this.fallbackProvider||(this.fallbackProvider=new Gc({id:`${this.id}-ws-fallback`,url:this.url,WebSocketImpl:this.WebSocketImpl,priority:this.priority})),this.fallbackProvider}async connect(){if(this.shouldUseWebSocketFallback()){await this.useWebSocketFallback().connect();return}if(!this.PeerImpl)throw new Error("PeerJS implementation is not available");let e=this.parsePeerJsServerUrl(),t=`dignityjs_${Math.random().toString(36).slice(2,12)}`;await new Promise((n,i)=>{let o=new this.PeerImpl(t,{host:e.host,port:e.port,path:e.path,secure:e.secure,key:e.key}),c=setTimeout(()=>{i(new Error(`Unable to connect to signaling url ${this.url}`))},this.connectTimeoutMs);o.on("open",()=>{clearTimeout(c),this.peer=o,this.peerId=t,n()}),o.on("connection",h=>{this.attachConnectionHandlers(h)}),o.on("error",async h=>{if(clearTimeout(c),h&&h.type==="browser-incompatible")try{await this.useWebSocketFallback().connect(),n();return}catch{i(new Error(`Unable to connect to signaling url ${this.url}`));return}i(new Error(`Unable to connect to signaling url ${this.url}`))})})}attachConnectionHandlers(e){let t=e.peer;this.connections.set(t,e),e.on("data",n=>{for(let i of this.messageHandlers)i(n)}),e.on("close",()=>{this.connections.delete(t)})}async openConnection(e){if(!this.peer)throw new Error("PeerJS is not connected");let t=this.connections.get(e);return t&&t.open?t:await new Promise((n,i)=>{let o=this.peer.connect(e,{reliable:!0,serialization:"json"}),c=setTimeout(()=>{i(new Error(`Unable to connect peer ${e} via ${this.url}`))},this.connectTimeoutMs);o.on("open",()=>{clearTimeout(c),this.attachConnectionHandlers(o),n(o)}),o.on("error",()=>{clearTimeout(c),i(new Error(`Unable to connect peer ${e} via ${this.url}`))})})}onMessage(e){if(this.fallbackProvider){this.fallbackProvider.onMessage(e);return}this.messageHandlers.add(e)}async send(e){if(this.fallbackProvider){await this.fallbackProvider.send(e);return}if(!this.peer)throw new Error(`Signaling socket is not open for ${this.url}`);if(e&&e.to){(await this.openConnection(e.to)).send(e);return}for(let t of this.connections.values())t.open&&t.send(e)}async disconnect(){if(this.fallbackProvider){await this.fallbackProvider.disconnect(),this.fallbackProvider=null;return}for(let e of this.connections.values())typeof e.close=="function"&&e.close();this.connections.clear(),this.peer&&typeof this.peer.destroy=="function"&&this.peer.destroy(),this.peer=null,this.peerId=null}};oo.exports=xi});var $r=N((xd,ao)=>{var Jc=["wss://peerjs.92k.de/peerjs?key=peerjs","wss://0.peerjs.com/peerjs?key=peerjs"],Xc=["wss://relay.dignity.dev/signaling","wss://backup-relay.dignity.dev/signaling"];ao.exports={DEFAULT_CLOUDFLARE_SIGNALING_URLS:Jc,DEFAULT_SIGNALING_FALLBACK_URLS:Xc}});var uo=N((bd,fo)=>{var Zc=Sn(),co=lr(),Qc=bi(),{DEFAULT_CLOUDFLARE_SIGNALING_URLS:ef,DEFAULT_SIGNALING_FALLBACK_URLS:tf}=$r();function rf(r={}){let e=r.cloudflareUrls||ef,t=r.fallbackUrls||tf,n=r.WebSocketImpl,i=[];return e.forEach((o,c)=>{let l=/^wss:\/\/(peerjs\.92k\.de|0\.peerjs\.com)(\/|$)/.test(o)?Qc:co;i.push(new l({id:`cloudflare-${c+1}`,url:o,WebSocketImpl:n,priority:c}))}),t.forEach((o,c)=>{i.push(new co({id:`fallback-${c+1}`,url:o,WebSocketImpl:n,priority:e.length+c}))}),Array.isArray(r.customProviders)&&i.push(...r.customProviders),new Zc(i)}fo.exports=rf});var lo=N((vd,ho)=>{var vi=class{constructor(){this.adapters=new Map}register(e){this.adapters.set(e.nodeId,e)}unregister(e){this.adapters.delete(e)}async broadcast(e,t){let n=[];for(let[i,o]of this.adapters.entries())i!==e&&n.push(o.receive(t));await Promise.all(n)}},_i=class{constructor(e){if(!e)throw new Error("InMemoryNetworkAdapter requires an InMemoryNetworkHub");this.hub=e,this.nodeId=null,this.messageHandlers=new Set}async start(e){this.nodeId=e,this.hub.register(this)}async stop(){this.nodeId&&this.hub.unregister(this.nodeId),this.nodeId=null}async broadcast(e){if(!this.nodeId)throw new Error("Network adapter has not been started");await this.hub.broadcast(this.nodeId,e)}onMessage(e){this.messageHandlers.add(e)}offMessage(e){this.messageHandlers.delete(e)}async receive(e){let t=[];for(let n of this.messageHandlers)t.push(n(e));await Promise.all(t)}};ho.exports={InMemoryNetworkHub:vi,InMemoryNetworkAdapter:_i}});var mo=N((_d,yo)=>{var{DEFAULT_CLOUDFLARE_SIGNALING_URLS:nf}=$r(),po=Pn();function sf(r){if(r)return r;try{let e=gi();return e.Peer||e}catch{return null}}var Kr=class{constructor({url:e,urls:t,PeerImpl:n,connectTimeoutMs:i=12e3}={}){this.urls=t||(e?[e]:[...nf]),this.url=this.urls[0],this.PeerImpl=sf(n),this.connectTimeoutMs=i,this.nodeId=null,this.peer=null,this.connections=new Map,this.pendingConnections=new Map,this.messageHandlers=new Set}async start(e){if(!e)throw new Error("PeerJSNetworkAdapter requires nodeId on start");if(!this.PeerImpl)throw new Error("PeerJS implementation is not available");this.peer&&await this.stop();let t;for(let n of this.urls)try{await this.startWithUrl(e,n),this.url=n;return}catch(i){t=i}throw t||new Error("Unable to connect PeerJS network adapter")}async startWithUrl(e,t){this.nodeId=e;let n=po(t);await new Promise((i,o)=>{let c=new this.PeerImpl(e,{host:n.host,port:n.port,path:n.path,secure:n.secure,key:n.key}),h=setTimeout(()=>{c.destroy?.(),o(new Error(`Unable to connect PeerJS network adapter to ${t}`))},this.connectTimeoutMs);c.on("open",()=>{clearTimeout(h),this.peer=c,i()}),c.on("connection",l=>{this.attachConnectionHandlers(l)}),c.on("error",l=>{clearTimeout(h),c.destroy?.(),o(l||new Error(`Unable to connect PeerJS network adapter to ${t}`))})})}attachConnectionHandlers(e){let t=e.peer;t&&(this.connections.set(t,e),e.on("data",n=>{let i=[];for(let o of this.messageHandlers)i.push(o(n));return Promise.all(i)}),e.on("close",()=>{this.connections.delete(t)}))}async connectToPeer(e){if(!e||e===this.nodeId)return null;let t=this.connections.get(e);if(t&&t.open)return t;if(this.pendingConnections.has(e))return this.pendingConnections.get(e);if(!this.peer)throw new Error("PeerJS network adapter has not been started");let n=new Promise((i,o)=>{let c=this.peer.connect(e,{reliable:!0,serialization:"json"}),h=setTimeout(()=>{o(new Error(`Unable to connect to peer ${e}`))},this.connectTimeoutMs);c.on("open",()=>{clearTimeout(h),this.attachConnectionHandlers(c),i(c)}),c.on("error",()=>{clearTimeout(h),o(new Error(`Unable to connect to peer ${e}`))})}).finally(()=>{this.pendingConnections.delete(e)});return this.pendingConnections.set(e,n),n}onMessage(e){this.messageHandlers.add(e)}offMessage(e){this.messageHandlers.delete(e)}async broadcast(e){if(!this.peer)throw new Error("PeerJS network adapter has not been started");let t=[];for(let n of this.connections.values())n.open&&t.push(n.send(e));await Promise.all(t)}getOpenConnectionCount(){return this.listOpenPeerIds().length}listOpenPeerIds(){let e=[];for(let[t,n]of this.connections.entries())n.open&&e.push(t);return e}isConnectedTo(e){let t=this.connections.get(e);return!!(t&&t.open)}async stop(){for(let e of this.connections.values())typeof e.close=="function"&&e.close();this.connections.clear(),this.pendingConnections.clear(),this.peer&&typeof this.peer.destroy=="function"&&this.peer.destroy(),this.peer=null,this.nodeId=null}};function of(r={}){return new Kr(r)}yo.exports={PeerJSNetworkAdapter:Kr,createPeerJSNetworkAdapter:of,parsePeerJsServerUrl:po}});var xo=N((Sd,go)=>{var Si=class{constructor({dbName:e="dignity",storeName:t="records",collections:n=null,indexedDB:i=typeof globalThis<"u"?globalThis.indexedDB:null}={}){this.dbName=e,this.storeName=t,this.collections=n,this.indexedDB=i,this.node=null,this.changeHandler=null}recordKey(e,t){return`${e}:${t}`}shouldPersist(e){return this.collections?this.collections.includes(e):!0}openDb(){return this.indexedDB?new Promise((e,t)=>{let n=this.indexedDB.open(this.dbName,1);n.onupgradeneeded=()=>{let i=n.result;i.objectStoreNames.contains(this.storeName)||i.createObjectStore(this.storeName,{keyPath:"key"})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error||new Error("Unable to open IndexedDB"))}):Promise.reject(new Error("IndexedDB is not available"))}runTransaction(e,t){return this.openDb().then(n=>new Promise((i,o)=>{let c=n.transaction(this.storeName,e),h=c.objectStore(this.storeName);Promise.resolve(t(h)).then(i).catch(o),c.oncomplete=()=>n.close(),c.onerror=()=>o(c.error||new Error("IndexedDB transaction failed")),c.onabort=()=>o(c.error||new Error("IndexedDB transaction aborted"))}))}serializeRecord(e,t){let n=this.node.getCollection(e).get(t);return n?{key:this.recordKey(e,t),collection:e,id:t,ownerId:n.ownerId,collaboratorIds:Array.isArray(n.collaboratorIds)?[...n.collaboratorIds]:[],data:{...n.data},hash:n.hash||null,createdAt:n.createdAt,updatedAt:n.updatedAt,deletedAt:n.deletedAt,version:n.version}:null}async persistRecord(e,t){if(!this.node||!this.shouldPersist(e))return;let n=this.serializeRecord(e,t),i=this.recordKey(e,t);if(!n){await this.runTransaction("readwrite",o=>new Promise((c,h)=>{let l=o.delete(i);l.onsuccess=()=>c(),l.onerror=()=>h(l.error)}));return}await this.runTransaction("readwrite",o=>new Promise((c,h)=>{let l=o.put(n);l.onsuccess=()=>c(),l.onerror=()=>h(l.error)}))}persistChange(e){!e||!e.collection||!e.id||this.persistRecord(e.collection,e.id).catch(t=>{this.node.emit("warning",{type:"persistence-failed",collection:e.collection,id:e.id,error:t})})}async loadAllRecords(){return this.runTransaction("readonly",e=>new Promise((t,n)=>{let i=e.getAll();i.onsuccess=()=>t(i.result||[]),i.onerror=()=>n(i.error)}))}async hydrate(){if(!this.node)throw new Error("IndexedDBPersistence requires an attached node before hydrate");let e=await this.loadAllRecords();for(let t of e)this.shouldPersist(t.collection)&&this.node.restoreRecord(t.collection,{id:t.id,ownerId:t.ownerId,collaboratorIds:t.collaboratorIds,data:t.data,hash:t.hash||null,createdAt:t.createdAt,updatedAt:t.updatedAt,deletedAt:t.deletedAt,version:t.version})}async attach(e){if(!e)throw new Error("IndexedDBPersistence.attach requires a DignityP2P node");this.node=e,await this.hydrate(),this.changeHandler=t=>this.persistChange(t),e.on("change",this.changeHandler)}async detach(){this.node&&this.changeHandler&&this.node.off("change",this.changeHandler),this.changeHandler=null,this.node=null}async clear(){await this.runTransaction("readwrite",e=>new Promise((t,n)=>{let i=e.clear();i.onsuccess=()=>t(),i.onerror=()=>n(i.error)}))}};go.exports=Si});var Cf=N((Cd,bo)=>{var af=Zi(),cf=uo(),ff=Sn(),df=lr(),uf=bi(),{InMemoryNetworkHub:hf,InMemoryNetworkAdapter:lf}=lo(),{PeerJSNetworkAdapter:pf,createPeerJSNetworkAdapter:yf}=mo(),mf=xo(),{DEFAULT_CLOUDFLARE_SIGNALING_URLS:gf,DEFAULT_SIGNALING_FALLBACK_URLS:xf}=$r(),bf=pn(),vf=hn(),{MessageSecurityService:_f,DEFAULT_SECURITY_OPTIONS:Sf}=bn();bo.exports={DignityP2P:af,createDefaultSignalingPool:cf,SignalingPool:ff,WebSocketSignalingProvider:df,PeerJSSignalingProvider:uf,InMemoryNetworkHub:hf,InMemoryNetworkAdapter:lf,PeerJSNetworkAdapter:pf,createPeerJSNetworkAdapter:yf,IndexedDBPersistence:mf,DEFAULT_CLOUDFLARE_SIGNALING_URLS:gf,DEFAULT_SIGNALING_FALLBACK_URLS:xf,VDF:bf,SlothPermutation:vf,MessageSecurityService:_f,DEFAULT_SECURITY_OPTIONS:Sf}});return Cf();})();