dignity.js 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- var DignityJS=(()=>{var po=Object.defineProperty;var yo=r=>{throw TypeError(r)};var xo=(r,e,t)=>e in r?po(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var ki=(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 H=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Ri=(r,e,t)=>xo(r,typeof e!="symbol"?e+"":e,t);var Rt=(r,e,t)=>e.has(r)?yo("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var Ai=H((ef,Mi)=>{var tn=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)}};Mi.exports=tn});var Di=H(()=>{});var Ui=H((nf,or)=>{(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]),x=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 se(a,d,f,s,u){var m,g=0;for(m=0;m<u;m++)g|=a[d+m]^f[s+m];return(1&g-1>>>8)-1}function fe(a,d,f,s){return se(a,d,f,s,16)}function ue(a,d,f,s){return se(a,d,f,s,32)}function ge(a,d,f,s){for(var u=s[0]&255|(s[1]&255)<<8|(s[2]&255)<<16|(s[3]&255)<<24,m=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,g=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,M=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,N=d[12]&255|(d[13]&255)<<8|(d[14]&255)<<16|(d[15]&255)<<24,K=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,q=f[24]&255|(f[25]&255)<<8|(f[26]&255)<<16|(f[27]&255)<<24,V=f[28]&255|(f[29]&255)<<8|(f[30]&255)<<16|(f[31]&255)<<24,W=s[12]&255|(s[13]&255)<<8|(s[14]&255)<<16|(s[15]&255)<<24,U=u,F=m,A=g,O=C,L=I,R=j,b=M,v=oe,P=D,S=N,T=K,w=Y,z=G,J=q,Z=V,X=W,p,te=0;te<20;te+=2)p=U+z|0,L^=p<<7|p>>>25,p=L+U|0,P^=p<<9|p>>>23,p=P+L|0,z^=p<<13|p>>>19,p=z+P|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=T+b|0,Z^=p<<7|p>>>25,p=Z+T|0,A^=p<<9|p>>>23,p=A+Z|0,b^=p<<13|p>>>19,p=b+A|0,T^=p<<18|p>>>14,p=X+w|0,O^=p<<7|p>>>25,p=O+X|0,v^=p<<9|p>>>23,p=v+O|0,w^=p<<13|p>>>19,p=w+v|0,X^=p<<18|p>>>14,p=U+O|0,F^=p<<7|p>>>25,p=F+U|0,A^=p<<9|p>>>23,p=A+F|0,O^=p<<13|p>>>19,p=O+A|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=T+S|0,w^=p<<7|p>>>25,p=w+T|0,P^=p<<9|p>>>23,p=P+w|0,S^=p<<13|p>>>19,p=S+P|0,T^=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+m|0,A=A+g|0,O=O+C|0,L=L+I|0,R=R+j|0,b=b+M|0,v=v+oe|0,P=P+D|0,S=S+N|0,T=T+K|0,w=w+Y|0,z=z+G|0,J=J+q|0,Z=Z+V|0,X=X+W|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]=A>>>0&255,a[9]=A>>>8&255,a[10]=A>>>16&255,a[11]=A>>>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]=P>>>0&255,a[33]=P>>>8&255,a[34]=P>>>16&255,a[35]=P>>>24&255,a[36]=S>>>0&255,a[37]=S>>>8&255,a[38]=S>>>16&255,a[39]=S>>>24&255,a[40]=T>>>0&255,a[41]=T>>>8&255,a[42]=T>>>16&255,a[43]=T>>>24&255,a[44]=w>>>0&255,a[45]=w>>>8&255,a[46]=w>>>16&255,a[47]=w>>>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 mt(a,d,f,s){for(var u=s[0]&255|(s[1]&255)<<8|(s[2]&255)<<16|(s[3]&255)<<24,m=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,g=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,M=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,N=d[12]&255|(d[13]&255)<<8|(d[14]&255)<<16|(d[15]&255)<<24,K=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,q=f[24]&255|(f[25]&255)<<8|(f[26]&255)<<16|(f[27]&255)<<24,V=f[28]&255|(f[29]&255)<<8|(f[30]&255)<<16|(f[31]&255)<<24,W=s[12]&255|(s[13]&255)<<8|(s[14]&255)<<16|(s[15]&255)<<24,U=u,F=m,A=g,O=C,L=I,R=j,b=M,v=oe,P=D,S=N,T=K,w=Y,z=G,J=q,Z=V,X=W,p,te=0;te<20;te+=2)p=U+z|0,L^=p<<7|p>>>25,p=L+U|0,P^=p<<9|p>>>23,p=P+L|0,z^=p<<13|p>>>19,p=z+P|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=T+b|0,Z^=p<<7|p>>>25,p=Z+T|0,A^=p<<9|p>>>23,p=A+Z|0,b^=p<<13|p>>>19,p=b+A|0,T^=p<<18|p>>>14,p=X+w|0,O^=p<<7|p>>>25,p=O+X|0,v^=p<<9|p>>>23,p=v+O|0,w^=p<<13|p>>>19,p=w+v|0,X^=p<<18|p>>>14,p=U+O|0,F^=p<<7|p>>>25,p=F+U|0,A^=p<<9|p>>>23,p=A+F|0,O^=p<<13|p>>>19,p=O+A|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=T+S|0,w^=p<<7|p>>>25,p=w+T|0,P^=p<<9|p>>>23,p=P+w|0,S^=p<<13|p>>>19,p=S+P|0,T^=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]=T>>>0&255,a[9]=T>>>8&255,a[10]=T>>>16&255,a[11]=T>>>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]=P>>>0&255,a[25]=P>>>8&255,a[26]=P>>>16&255,a[27]=P>>>24&255,a[28]=S>>>0&255,a[29]=S>>>8&255,a[30]=S>>>16&255,a[31]=S>>>24&255}function Yt(a,d,f,s){ge(a,d,f,s)}function Jt(a,d,f,s){mt(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 hi(a,d,f,s,u,m,g){var C=new Uint8Array(16),I=new Uint8Array(64),j,M;for(M=0;M<16;M++)C[M]=0;for(M=0;M<8;M++)C[M]=m[M];for(;u>=64;){for(Yt(I,C,g,dt),M=0;M<64;M++)a[d+M]=f[s+M]^I[M];for(j=1,M=8;M<16;M++)j=j+(C[M]&255)|0,C[M]=j&255,j>>>=8;u-=64,d+=64,s+=64}if(u>0)for(Yt(I,C,g,dt),M=0;M<u;M++)a[d+M]=f[s+M]^I[M];return 0}function li(a,d,f,s,u){var m=new Uint8Array(16),g=new Uint8Array(64),C,I;for(I=0;I<16;I++)m[I]=0;for(I=0;I<8;I++)m[I]=s[I];for(;f>=64;){for(Yt(g,m,u,dt),I=0;I<64;I++)a[d+I]=g[I];for(C=1,I=8;I<16;I++)C=C+(m[I]&255)|0,m[I]=C&255,C>>>=8;f-=64,d+=64}if(f>0)for(Yt(g,m,u,dt),I=0;I<f;I++)a[d+I]=g[I];return 0}function pi(a,d,f,s,u){var m=new Uint8Array(32);Jt(m,s,u,dt);for(var g=new Uint8Array(8),C=0;C<8;C++)g[C]=s[C+16];return li(a,d,f,g,m)}function Fr(a,d,f,s,u,m,g){var C=new Uint8Array(32);Jt(C,m,g,dt);for(var I=new Uint8Array(8),j=0;j<8;j++)I[j]=m[j+16];return hi(a,d,f,s,u,I,C)}var Xt=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,m,g,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,m=a[8]&255|(a[9]&255)<<8,this.r[4]=(u>>>4|m<<12)&255,this.r[5]=m>>>1&8190,g=a[10]&255|(a[11]&255)<<8,this.r[6]=(m>>>14|g<<2)&8191,C=a[12]&255|(a[13]&255)<<8,this.r[7]=(g>>>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};Xt.prototype.blocks=function(a,d,f){for(var s=this.fin?0:2048,u,m,g,C,I,j,M,oe,D,N,K,Y,G,q,V,W,U,F,A,O=this.h[0],L=this.h[1],R=this.h[2],b=this.h[3],v=this.h[4],P=this.h[5],S=this.h[6],T=this.h[7],w=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],ne=this.r[8],ie=this.r[9];f>=16;)u=a[d+0]&255|(a[d+1]&255)<<8,O+=u&8191,m=a[d+2]&255|(a[d+3]&255)<<8,L+=(u>>>13|m<<3)&8191,g=a[d+4]&255|(a[d+5]&255)<<8,R+=(m>>>10|g<<6)&8191,C=a[d+6]&255|(a[d+7]&255)<<8,b+=(g>>>7|C<<9)&8191,I=a[d+8]&255|(a[d+9]&255)<<8,v+=(C>>>4|I<<12)&8191,P+=I>>>1&8191,j=a[d+10]&255|(a[d+11]&255)<<8,S+=(I>>>14|j<<2)&8191,M=a[d+12]&255|(a[d+13]&255)<<8,T+=(j>>>11|M<<5)&8191,oe=a[d+14]&255|(a[d+15]&255)<<8,w+=(M>>>8|oe<<8)&8191,z+=oe>>>5|s,D=0,N=D,N+=O*J,N+=L*(5*ie),N+=R*(5*ne),N+=b*(5*Q),N+=v*(5*ce),D=N>>>13,N&=8191,N+=P*(5*ae),N+=S*(5*te),N+=T*(5*p),N+=w*(5*X),N+=z*(5*Z),D+=N>>>13,N&=8191,K=D,K+=O*Z,K+=L*J,K+=R*(5*ie),K+=b*(5*ne),K+=v*(5*Q),D=K>>>13,K&=8191,K+=P*(5*ce),K+=S*(5*ae),K+=T*(5*te),K+=w*(5*p),K+=z*(5*X),D+=K>>>13,K&=8191,Y=D,Y+=O*X,Y+=L*Z,Y+=R*J,Y+=b*(5*ie),Y+=v*(5*ne),D=Y>>>13,Y&=8191,Y+=P*(5*Q),Y+=S*(5*ce),Y+=T*(5*ae),Y+=w*(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*ie),D=G>>>13,G&=8191,G+=P*(5*ne),G+=S*(5*Q),G+=T*(5*ce),G+=w*(5*ae),G+=z*(5*te),D+=G>>>13,G&=8191,q=D,q+=O*te,q+=L*p,q+=R*X,q+=b*Z,q+=v*J,D=q>>>13,q&=8191,q+=P*(5*ie),q+=S*(5*ne),q+=T*(5*Q),q+=w*(5*ce),q+=z*(5*ae),D+=q>>>13,q&=8191,V=D,V+=O*ae,V+=L*te,V+=R*p,V+=b*X,V+=v*Z,D=V>>>13,V&=8191,V+=P*J,V+=S*(5*ie),V+=T*(5*ne),V+=w*(5*Q),V+=z*(5*ce),D+=V>>>13,V&=8191,W=D,W+=O*ce,W+=L*ae,W+=R*te,W+=b*p,W+=v*X,D=W>>>13,W&=8191,W+=P*Z,W+=S*J,W+=T*(5*ie),W+=w*(5*ne),W+=z*(5*Q),D+=W>>>13,W&=8191,U=D,U+=O*Q,U+=L*ce,U+=R*ae,U+=b*te,U+=v*p,D=U>>>13,U&=8191,U+=P*X,U+=S*Z,U+=T*J,U+=w*(5*ie),U+=z*(5*ne),D+=U>>>13,U&=8191,F=D,F+=O*ne,F+=L*Q,F+=R*ce,F+=b*ae,F+=v*te,D=F>>>13,F&=8191,F+=P*p,F+=S*X,F+=T*Z,F+=w*J,F+=z*(5*ie),D+=F>>>13,F&=8191,A=D,A+=O*ie,A+=L*ne,A+=R*Q,A+=b*ce,A+=v*ae,D=A>>>13,A&=8191,A+=P*te,A+=S*p,A+=T*X,A+=w*Z,A+=z*J,D+=A>>>13,A&=8191,D=(D<<2)+D|0,D=D+N|0,N=D&8191,D=D>>>13,K+=D,O=N,L=K,R=Y,b=G,v=q,P=V,S=W,T=U,w=F,z=A,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]=P,this.h[6]=S,this.h[7]=T,this.h[8]=w,this.h[9]=z},Xt.prototype.finish=function(a,d){var f=new Uint16Array(10),s,u,m,g;if(this.leftover){for(g=this.leftover,this.buffer[g++]=1;g<16;g++)this.buffer[g]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(s=this.h[1]>>>13,this.h[1]&=8191,g=2;g<10;g++)this.h[g]+=s,s=this.h[g]>>>13,this.h[g]&=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,g=1;g<10;g++)f[g]=this.h[g]+s,s=f[g]>>>13,f[g]&=8191;for(f[9]-=8192,u=(s^1)-1,g=0;g<10;g++)f[g]&=u;for(u=~u,g=0;g<10;g++)this.h[g]=this.h[g]&u|f[g];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,m=this.h[0]+this.pad[0],this.h[0]=m&65535,g=1;g<8;g++)m=(this.h[g]+this.pad[g]|0)+(m>>>16)|0,this.h[g]=m&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},Xt.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 zr(a,d,f,s,u,m){var g=new Xt(m);return g.update(f,s,u),g.finish(a,d),0}function yi(a,d,f,s,u,m){var g=new Uint8Array(16);return zr(g,0,f,s,u,m),fe(a,d,g,0)}function Nr(a,d,f,s,u){var m;if(f<32)return-1;for(Fr(a,0,d,0,f,s,u),zr(a,16,a,32,f-32,a),m=0;m<16;m++)a[m]=0;return 0}function $r(a,d,f,s,u){var m,g=new Uint8Array(32);if(f<32||(pi(g,0,32,s,u),yi(d,16,d,32,f-32,g)!==0))return-1;for(Fr(a,0,d,0,f,s,u),m=0;m<32;m++)a[m]=0;return 0}function Ze(a,d){var f;for(f=0;f<16;f++)a[f]=d[f]|0}function Kr(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 gt(a,d,f){for(var s,u=~(f-1),m=0;m<16;m++)s=u&(a[m]^d[m]),a[m]^=s,d[m]^=s}function bt(a,d){var f,s,u,m=e(),g=e();for(f=0;f<16;f++)g[f]=d[f];for(Kr(g),Kr(g),Kr(g),s=0;s<2;s++){for(m[0]=g[0]-65517,f=1;f<15;f++)m[f]=g[f]-65535-(m[f-1]>>16&1),m[f-1]&=65535;m[15]=g[15]-32767-(m[14]>>16&1),u=m[15]>>16&1,m[14]&=65535,gt(g,m,1-u)}for(f=0;f<16;f++)a[2*f]=g[f]&255,a[2*f+1]=g[f]>>8}function xi(a,d){var f=new Uint8Array(32),s=new Uint8Array(32);return bt(f,a),bt(s,d),ue(f,0,s,0)}function mi(a){var d=new Uint8Array(32);return bt(d,a),d[0]&1}function qr(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 re(a,d,f){var s,u,m=0,g=0,C=0,I=0,j=0,M=0,oe=0,D=0,N=0,K=0,Y=0,G=0,q=0,V=0,W=0,U=0,F=0,A=0,O=0,L=0,R=0,b=0,v=0,P=0,S=0,T=0,w=0,z=0,J=0,Z=0,X=0,p=f[0],te=f[1],ae=f[2],ce=f[3],Q=f[4],ne=f[5],ie=f[6],me=f[7],de=f[8],he=f[9],le=f[10],pe=f[11],ve=f[12],Ce=f[13],Te=f[14],Pe=f[15];s=d[0],m+=s*p,g+=s*te,C+=s*ae,I+=s*ce,j+=s*Q,M+=s*ne,oe+=s*ie,D+=s*me,N+=s*de,K+=s*he,Y+=s*le,G+=s*pe,q+=s*ve,V+=s*Ce,W+=s*Te,U+=s*Pe,s=d[1],g+=s*p,C+=s*te,I+=s*ae,j+=s*ce,M+=s*Q,oe+=s*ne,D+=s*ie,N+=s*me,K+=s*de,Y+=s*he,G+=s*le,q+=s*pe,V+=s*ve,W+=s*Ce,U+=s*Te,F+=s*Pe,s=d[2],C+=s*p,I+=s*te,j+=s*ae,M+=s*ce,oe+=s*Q,D+=s*ne,N+=s*ie,K+=s*me,Y+=s*de,G+=s*he,q+=s*le,V+=s*pe,W+=s*ve,U+=s*Ce,F+=s*Te,A+=s*Pe,s=d[3],I+=s*p,j+=s*te,M+=s*ae,oe+=s*ce,D+=s*Q,N+=s*ne,K+=s*ie,Y+=s*me,G+=s*de,q+=s*he,V+=s*le,W+=s*pe,U+=s*ve,F+=s*Ce,A+=s*Te,O+=s*Pe,s=d[4],j+=s*p,M+=s*te,oe+=s*ae,D+=s*ce,N+=s*Q,K+=s*ne,Y+=s*ie,G+=s*me,q+=s*de,V+=s*he,W+=s*le,U+=s*pe,F+=s*ve,A+=s*Ce,O+=s*Te,L+=s*Pe,s=d[5],M+=s*p,oe+=s*te,D+=s*ae,N+=s*ce,K+=s*Q,Y+=s*ne,G+=s*ie,q+=s*me,V+=s*de,W+=s*he,U+=s*le,F+=s*pe,A+=s*ve,O+=s*Ce,L+=s*Te,R+=s*Pe,s=d[6],oe+=s*p,D+=s*te,N+=s*ae,K+=s*ce,Y+=s*Q,G+=s*ne,q+=s*ie,V+=s*me,W+=s*de,U+=s*he,F+=s*le,A+=s*pe,O+=s*ve,L+=s*Ce,R+=s*Te,b+=s*Pe,s=d[7],D+=s*p,N+=s*te,K+=s*ae,Y+=s*ce,G+=s*Q,q+=s*ne,V+=s*ie,W+=s*me,U+=s*de,F+=s*he,A+=s*le,O+=s*pe,L+=s*ve,R+=s*Ce,b+=s*Te,v+=s*Pe,s=d[8],N+=s*p,K+=s*te,Y+=s*ae,G+=s*ce,q+=s*Q,V+=s*ne,W+=s*ie,U+=s*me,F+=s*de,A+=s*he,O+=s*le,L+=s*pe,R+=s*ve,b+=s*Ce,v+=s*Te,P+=s*Pe,s=d[9],K+=s*p,Y+=s*te,G+=s*ae,q+=s*ce,V+=s*Q,W+=s*ne,U+=s*ie,F+=s*me,A+=s*de,O+=s*he,L+=s*le,R+=s*pe,b+=s*ve,v+=s*Ce,P+=s*Te,S+=s*Pe,s=d[10],Y+=s*p,G+=s*te,q+=s*ae,V+=s*ce,W+=s*Q,U+=s*ne,F+=s*ie,A+=s*me,O+=s*de,L+=s*he,R+=s*le,b+=s*pe,v+=s*ve,P+=s*Ce,S+=s*Te,T+=s*Pe,s=d[11],G+=s*p,q+=s*te,V+=s*ae,W+=s*ce,U+=s*Q,F+=s*ne,A+=s*ie,O+=s*me,L+=s*de,R+=s*he,b+=s*le,v+=s*pe,P+=s*ve,S+=s*Ce,T+=s*Te,w+=s*Pe,s=d[12],q+=s*p,V+=s*te,W+=s*ae,U+=s*ce,F+=s*Q,A+=s*ne,O+=s*ie,L+=s*me,R+=s*de,b+=s*he,v+=s*le,P+=s*pe,S+=s*ve,T+=s*Ce,w+=s*Te,z+=s*Pe,s=d[13],V+=s*p,W+=s*te,U+=s*ae,F+=s*ce,A+=s*Q,O+=s*ne,L+=s*ie,R+=s*me,b+=s*de,v+=s*he,P+=s*le,S+=s*pe,T+=s*ve,w+=s*Ce,z+=s*Te,J+=s*Pe,s=d[14],W+=s*p,U+=s*te,F+=s*ae,A+=s*ce,O+=s*Q,L+=s*ne,R+=s*ie,b+=s*me,v+=s*de,P+=s*he,S+=s*le,T+=s*pe,w+=s*ve,z+=s*Ce,J+=s*Te,Z+=s*Pe,s=d[15],U+=s*p,F+=s*te,A+=s*ae,O+=s*ce,L+=s*Q,R+=s*ne,b+=s*ie,v+=s*me,P+=s*de,S+=s*he,T+=s*le,w+=s*pe,z+=s*ve,J+=s*Ce,Z+=s*Te,X+=s*Pe,m+=38*F,g+=38*A,C+=38*O,I+=38*L,j+=38*R,M+=38*b,oe+=38*v,D+=38*P,N+=38*S,K+=38*T,Y+=38*w,G+=38*z,q+=38*J,V+=38*Z,W+=38*X,u=1,s=m+u+65535,u=Math.floor(s/65536),m=s-u*65536,s=g+u+65535,u=Math.floor(s/65536),g=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=M+u+65535,u=Math.floor(s/65536),M=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=N+u+65535,u=Math.floor(s/65536),N=s-u*65536,s=K+u+65535,u=Math.floor(s/65536),K=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=q+u+65535,u=Math.floor(s/65536),q=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=U+u+65535,u=Math.floor(s/65536),U=s-u*65536,m+=u-1+37*(u-1),u=1,s=m+u+65535,u=Math.floor(s/65536),m=s-u*65536,s=g+u+65535,u=Math.floor(s/65536),g=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=M+u+65535,u=Math.floor(s/65536),M=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=N+u+65535,u=Math.floor(s/65536),N=s-u*65536,s=K+u+65535,u=Math.floor(s/65536),K=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=q+u+65535,u=Math.floor(s/65536),q=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=U+u+65535,u=Math.floor(s/65536),U=s-u*65536,m+=u-1+37*(u-1),a[0]=m,a[1]=g,a[2]=C,a[3]=I,a[4]=j,a[5]=M,a[6]=oe,a[7]=D,a[8]=N,a[9]=K,a[10]=Y,a[11]=G,a[12]=q,a[13]=V,a[14]=W,a[15]=U}function Le(a,d){re(a,d,d)}function gi(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&&re(f,f,d);for(s=0;s<16;s++)a[s]=f[s]}function bi(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&&re(f,f,d);for(s=0;s<16;s++)a[s]=f[s]}function Zt(a,d,f){var s=new Uint8Array(32),u=new Float64Array(80),m,g,C=e(),I=e(),j=e(),M=e(),oe=e(),D=e();for(g=0;g<31;g++)s[g]=d[g];for(s[31]=d[31]&127|64,s[0]&=248,qr(u,f),g=0;g<16;g++)I[g]=u[g],M[g]=C[g]=j[g]=0;for(C[0]=M[0]=1,g=254;g>=0;--g)m=s[g>>>3]>>>(g&7)&1,gt(C,I,m),gt(j,M,m),ze(oe,C,j),Ne(C,C,j),ze(j,I,M),Ne(I,I,M),Le(M,oe),Le(D,C),re(C,j,C),re(j,I,oe),ze(oe,C,j),Ne(C,C,j),Le(I,C),Ne(j,M,D),re(C,j,h),ze(C,C,M),re(j,j,C),re(C,M,D),re(M,I,u),Le(I,oe),gt(C,I,m),gt(j,M,m);for(g=0;g<16;g++)u[g+16]=C[g],u[g+32]=j[g],u[g+48]=I[g],u[g+64]=M[g];var N=u.subarray(32),K=u.subarray(16);return gi(N,N),re(K,K,N),bt(a,K),0}function Qt(a,d){return Zt(a,d,i)}function vi(a,d){return t(d,32),Qt(a,d)}function er(a,d,f){var s=new Uint8Array(32);return Zt(s,f,d),Jt(a,n,s,dt)}var _i=Nr,oo=$r;function ao(a,d,f,s,u,m){var g=new Uint8Array(32);return er(g,u,m),_i(a,d,f,s,g)}function co(a,d,f,s,u,m){var g=new Uint8Array(32);return er(g,u,m),oo(a,d,f,s,g)}var Si=[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 Ci(a,d,f,s){for(var u=new Int32Array(16),m=new Int32Array(16),g,C,I,j,M,oe,D,N,K,Y,G,q,V,W,U,F,A,O,L,R,b,v,P,S,T,w,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],ne=d[1],ie=d[2],me=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],m[L]=f[R+4]<<24|f[R+5]<<16|f[R+6]<<8|f[R+7];for(L=0;L<80;L++)if(g=z,C=J,I=Z,j=X,M=p,oe=te,D=ae,N=ce,K=Q,Y=ne,G=ie,q=me,V=de,W=he,U=le,F=pe,b=ce,v=pe,P=v&65535,S=v>>>16,T=b&65535,w=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),P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,b=p&te^~p&ae,v=de&he^~de&le,P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,b=Si[L*2],v=Si[L*2+1],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,b=u[L%16],v=m[L%16],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,A=T&65535|w<<16,O=P&65535|S<<16,b=A,v=O,P=v&65535,S=v>>>16,T=b&65535,w=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),P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,b=z&J^z&Z^J&Z,v=Q&ne^Q&ie^ne&ie,P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,N=T&65535|w<<16,F=P&65535|S<<16,b=j,v=q,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=A,v=O,P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,j=T&65535|w<<16,q=P&65535|S<<16,J=g,Z=C,X=I,p=j,te=M,ae=oe,ce=D,z=N,ne=K,ie=Y,me=G,de=q,he=V,le=W,pe=U,Q=F,L%16===15)for(R=0;R<16;R++)b=u[R],v=m[R],P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=u[(R+9)%16],v=m[(R+9)%16],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,A=u[(R+1)%16],O=m[(R+1)%16],b=(A>>>1|O<<31)^(A>>>8|O<<24)^A>>>7,v=(O>>>1|A<<31)^(O>>>8|A<<24)^(O>>>7|A<<25),P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,A=u[(R+14)%16],O=m[(R+14)%16],b=(A>>>19|O<<13)^(O>>>29|A<<3)^A>>>6,v=(O>>>19|A<<13)^(A>>>29|O<<3)^(O>>>6|A<<26),P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,u[R]=T&65535|w<<16,m[R]=P&65535|S<<16;b=z,v=Q,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[0],v=d[0],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[0]=z=T&65535|w<<16,d[0]=Q=P&65535|S<<16,b=J,v=ne,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[1],v=d[1],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[1]=J=T&65535|w<<16,d[1]=ne=P&65535|S<<16,b=Z,v=ie,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[2],v=d[2],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[2]=Z=T&65535|w<<16,d[2]=ie=P&65535|S<<16,b=X,v=me,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[3],v=d[3],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[3]=X=T&65535|w<<16,d[3]=me=P&65535|S<<16,b=p,v=de,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[4],v=d[4],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[4]=p=T&65535|w<<16,d[4]=de=P&65535|S<<16,b=te,v=he,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[5],v=d[5],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[5]=te=T&65535|w<<16,d[5]=he=P&65535|S<<16,b=ae,v=le,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[6],v=d[6],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[6]=ae=T&65535|w<<16,d[6]=le=P&65535|S<<16,b=ce,v=pe,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[7],v=d[7],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[7]=ce=T&65535|w<<16,d[7]=pe=P&65535|S<<16,ve+=128,s-=128}return s}function ut(a,d,f){var s=new Int32Array(8),u=new Int32Array(8),m=new Uint8Array(256),g,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,Ci(s,u,d,f),f%=128,g=0;g<f;g++)m[g]=d[C-f+g];for(m[f]=128,f=256-128*(f<112?1:0),m[f-9]=0,$(m,f-8,C/536870912|0,C<<3),Ci(s,u,m,f),g=0;g<8;g++)$(a,8*g,s[g],u[g]);return 0}function tr(a,d){var f=e(),s=e(),u=e(),m=e(),g=e(),C=e(),I=e(),j=e(),M=e();Ne(f,a[1],a[0]),Ne(M,d[1],d[0]),re(f,f,M),ze(s,a[0],a[1]),ze(M,d[0],d[1]),re(s,s,M),re(u,a[3],d[3]),re(u,u,y),re(m,a[2],d[2]),ze(m,m,m),Ne(g,s,f),Ne(C,m,u),ze(I,m,u),ze(j,s,f),re(a[0],g,C),re(a[1],j,I),re(a[2],I,C),re(a[3],g,j)}function Ti(a,d,f){var s;for(s=0;s<4;s++)gt(a[s],d[s],f)}function Wr(a,d){var f=e(),s=e(),u=e();gi(u,d[2]),re(f,d[0],u),re(s,d[1],u),bt(a,s),a[31]^=mi(f)<<7}function Vr(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,Ti(a,d,s),tr(d,a),tr(a,a),Ti(a,d,s)}function rr(a,d){var f=[e(),e(),e(),e()];Ze(f[0],x),Ze(f[1],_),Ze(f[2],c),re(f[3],x,_),Vr(a,f,d)}function Hr(a,d,f){var s=new Uint8Array(64),u=[e(),e(),e(),e()],m;for(f||t(d,32),ut(s,d,32),s[0]&=248,s[31]&=127,s[31]|=64,rr(u,s),Wr(a,u),m=0;m<32;m++)d[m+32]=a[m];return 0}var nr=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 Gr(a,d){var f,s,u,m;for(s=63;s>=32;--s){for(f=0,u=s-32,m=s-12;u<m;++u)d[u]+=f-16*d[s]*nr[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)*nr[u],f=d[u]>>8,d[u]&=255;for(u=0;u<32;u++)d[u]-=f*nr[u];for(s=0;s<32;s++)d[s+1]+=d[s]>>8,a[s]=d[s]&255}function Yr(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;Gr(a,d)}function Pi(a,d,f,s){var u=new Uint8Array(64),m=new Uint8Array(64),g=new Uint8Array(64),C,I,j=new Float64Array(64),M=[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(g,a.subarray(32),f+32),Yr(g),rr(M,g),Wr(a,M),C=32;C<64;C++)a[C]=s[C];for(ut(m,a,f+64),Yr(m),C=0;C<64;C++)j[C]=0;for(C=0;C<32;C++)j[C]=g[C];for(C=0;C<32;C++)for(I=0;I<32;I++)j[C+I]+=m[C]*u[I];return Gr(a.subarray(32),j),oe}function fo(a,d){var f=e(),s=e(),u=e(),m=e(),g=e(),C=e(),I=e();return Ze(a[2],c),qr(a[1],d),Le(u,a[1]),re(m,u,l),Ne(u,u,a[2]),ze(m,a[2],m),Le(g,m),Le(C,g),re(I,C,g),re(f,I,u),re(f,f,m),bi(f,f),re(f,f,u),re(f,f,m),re(f,f,m),re(a[0],f,m),Le(s,a[0]),re(s,s,m),xi(s,u)&&re(a[0],a[0],k),Le(s,a[0]),re(s,s,m),xi(s,u)?-1:(mi(a[0])===d[31]>>7&&Ne(a[0],o,a[0]),re(a[3],a[0],a[1]),0)}function Jr(a,d,f,s){var u,m=new Uint8Array(32),g=new Uint8Array(64),C=[e(),e(),e(),e()],I=[e(),e(),e(),e()];if(f<64||fo(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(g,a,f),Yr(g),Vr(C,I,g),rr(I,d.subarray(32)),tr(C,I),Wr(m,C),f-=64,ue(d,0,m,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 Xr=32,ir=24,Et=32,vt=16,wt=32,sr=32,It=32,kt=32,Zr=32,Ei=ir,uo=Et,ho=vt,Qe=64,ht=32,_t=64,Qr=32,en=64;r.lowlevel={crypto_core_hsalsa20:Jt,crypto_stream_xor:Fr,crypto_stream:pi,crypto_stream_salsa20_xor:hi,crypto_stream_salsa20:li,crypto_onetimeauth:zr,crypto_onetimeauth_verify:yi,crypto_verify_16:fe,crypto_verify_32:ue,crypto_secretbox:Nr,crypto_secretbox_open:$r,crypto_scalarmult:Zt,crypto_scalarmult_base:Qt,crypto_box_beforenm:er,crypto_box_afternm:_i,crypto_box:ao,crypto_box_open:co,crypto_box_keypair:vi,crypto_hash:ut,crypto_sign:Pi,crypto_sign_keypair:Hr,crypto_sign_open:Jr,crypto_secretbox_KEYBYTES:Xr,crypto_secretbox_NONCEBYTES:ir,crypto_secretbox_ZEROBYTES:Et,crypto_secretbox_BOXZEROBYTES:vt,crypto_scalarmult_BYTES:wt,crypto_scalarmult_SCALARBYTES:sr,crypto_box_PUBLICKEYBYTES:It,crypto_box_SECRETKEYBYTES:kt,crypto_box_BEFORENMBYTES:Zr,crypto_box_NONCEBYTES:Ei,crypto_box_ZEROBYTES:uo,crypto_box_BOXZEROBYTES:ho,crypto_sign_BYTES:Qe,crypto_sign_PUBLICKEYBYTES:ht,crypto_sign_SECRETKEYBYTES:_t,crypto_sign_SEEDBYTES:Qr,crypto_hash_BYTES:en,gf:e,D:l,L:nr,pack25519:bt,unpack25519:qr,M:re,A:ze,S:Le,Z:Ne,pow2523:bi,add:tr,set25519:Ze,modL:Gr,scalarmult:Vr,scalarbase:rr};function wi(a,d){if(a.length!==Xr)throw new Error("bad key size");if(d.length!==ir)throw new Error("bad nonce size")}function lo(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 Ii(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),wi(f,d);for(var s=new Uint8Array(Et+a.length),u=new Uint8Array(s.length),m=0;m<a.length;m++)s[m+Et]=a[m];return Nr(u,s,s.length,d,f),u.subarray(vt)},r.secretbox.open=function(a,d,f){Be(a,d,f),wi(f,d);for(var s=new Uint8Array(vt+a.length),u=new Uint8Array(s.length),m=0;m<a.length;m++)s[m+vt]=a[m];return s.length<32||$r(u,s,s.length,d,f)!==0?null:u.subarray(Et)},r.secretbox.keyLength=Xr,r.secretbox.nonceLength=ir,r.secretbox.overheadLength=vt,r.scalarMult=function(a,d){if(Be(a,d),a.length!==sr)throw new Error("bad n size");if(d.length!==wt)throw new Error("bad p size");var f=new Uint8Array(wt);return Zt(f,a,d),f},r.scalarMult.base=function(a){if(Be(a),a.length!==sr)throw new Error("bad n size");var d=new Uint8Array(wt);return Qt(d,a),d},r.scalarMult.scalarLength=sr,r.scalarMult.groupElementLength=wt,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),lo(a,d);var f=new Uint8Array(Zr);return er(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 vi(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 Qt(d,a),{publicKey:d,secretKey:new Uint8Array(a)}},r.box.publicKeyLength=It,r.box.secretKeyLength=kt,r.box.sharedKeyLength=Zr,r.box.nonceLength=Ei,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 Pi(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=Jr(f,a,a.length,d);if(s<0)return null;for(var u=new Uint8Array(s),m=0;m<u.length;m++)u[m]=f[m];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),m;for(m=0;m<Qe;m++)s[m]=d[m];for(m=0;m<a.length;m++)s[m+Qe]=a[m];return Jr(u,s,s.length,f)>=0},r.sign.keyPair=function(){var a=new Uint8Array(ht),d=new Uint8Array(_t);return Hr(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!==Qr)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 Hr(d,f,!0),{publicKey:d,secretKey:f}},r.sign.publicKeyLength=ht,r.sign.secretKeyLength=_t,r.sign.seedLength=Qr,r.sign.signatureLength=Qe,r.hash=function(a){Be(a);var d=new Uint8Array(en);return ut(d,a,a.length),d},r.hash.hashLength=en,r.verify=function(a,d){return Be(a,d),a.length===0||d.length===0||a.length!==d.length?!1:se(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,m=new Uint8Array(s);for(u=0;u<s;u+=d)a.getRandomValues(m.subarray(u,u+Math.min(s-u,d)));for(u=0;u<s;u++)f[u]=m[u];Ii(m)})}else typeof ki<"u"&&(a=Di(),a&&a.randomBytes&&r.setPRNG(function(f,s){var u,m=a.randomBytes(s);for(u=0;u<s;u++)f[u]=m[u];Ii(m)}))})()})(typeof or<"u"&&or.exports?or.exports:self.nacl=self.nacl||{})});var Bi=H((Oi,ar)=>{(function(r,e){"use strict";typeof ar<"u"&&ar.exports?ar.exports=e():(r.nacl||(r.nacl={}),r.nacl.util=e())})(Oi,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 nn=H((of,Li)=>{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)}};Ri(_e,"p",BigInt("170082004324204494273811327264862981553264701145937538369570764779791492622392118654022654452947093285873855529044371650895045691292912712699015605832276411308653107069798639938826015099738961427172366594187783204437869906954750443653318078358839409699824714551430573905637228307966826784684174483831608534979"));var rn=_e;Li.exports=rn});var on=H((cf,Fi)=>{var ji=nn(),sn=class{static async compute(e,t){let n=new ji,i=BigInt(`0x${e}`);return n.generateProofVDF(t,i).toString(16)}static async verify(e,t,n){let i=new ji,o=BigInt(`0x${e}`),c=BigInt(`0x${n}`);return i.verifyProofVDF(t,o,c)}};Fi.exports=sn});var dn=H((ff,Ki)=>{var Ae=Ui(),ye=Bi(),an=on(),$i={enabled:!0,signingEnabled:!0,encryptionEnabled:!0,powEnabled:!0,powTargetMs:1e3,appPassword:"change-this-app-password",broadcastPasswords:{},resolveBroadcastPassword:null,powSteps:22,trustedPeerKeys:{}};function Mt(r){return r===null||typeof r!="object"?JSON.stringify(r):Array.isArray(r)?`[${r.map(t=>Mt(t)).join(",")}]`:`{${Object.keys(r).sort().map(t=>`${JSON.stringify(t)}:${Mt(r[t])}`).join(",")}}`}function zi(r,e){let t=new Uint8Array(r.length+e.length);return t.set(r,0),t.set(e,r.length),t}function cr(r){return Ae.hash(r).slice(0,32)}function Ni(r){return Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}function fr(r){return ye.decodeUTF8(r)}function cn(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 fn=class{constructor({nodeId:e,options:t={},now:n}={}){if(!e)throw new Error("MessageSecurityService requires nodeId");this.nodeId=e,this.options={...$i,...t},this.now=n||(()=>Date.now());let i=t.keyPair||{signing:Ae.sign.keyPair(),encryption:Ae.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,cn(c));this.calibratedPowSteps=this.options.powSteps}getPublicKey(){return{...this.publicKeyBundle}}registerPeerPublicKey(e,t){this.peerPublicKeys.set(e,cn(t))}resolvePeerPublicKey(e,t){let n=this.peerPublicKeys.get(e),i=t?cn(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=Ae.sign.detached(ye.decodeUTF8(h),this.signingSecretKey);o.security.signing={enabled:!0,algorithm:"ed25519",signature:ye.encodeBase64(l)}}return o}canonicalSigningInput(e){return Mt({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 Mt({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 Ni(cr(fr(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=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 _=this.resolvePeerPublicKey(t,null);if(!_)throw new Error(`Missing public key for target peer ${t}`);let k=Ae.randomBytes(Ae.box.nonceLength),$=Ae.box(i,k,ye.decodeBase64(_.encryptionPublicKey),this.encryptionSecretKey);return{payload:ye.encodeBase64($),security:{enabled:!0,mode:"direct",nonce:ye.encodeBase64(k),senderEncryptionPublicKey:this.publicKeyBundle.encryptionPublicKey}}}let o=n.broadcastScope||"default",c=Ae.randomBytes(Ae.secretbox.nonceLength),h=Ae.randomBytes(16),l=this.resolveBroadcastPassword(o),y=cr(zi(fr(l),h)),x=Ae.secretbox(i,c,y);return{payload:ye.encodeBase64(x),security:{enabled:!0,mode:"broadcast",scope:o,nonce:ye.encodeBase64(c),salt:ye.encodeBase64(h)}}}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=cr(zi(fr(o),c)),y=Ae.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=Ae.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(!Ae.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=Ni(cr(fr(`probe:${this.nodeId}:${this.now()}`))),n=BigInt(2),i=this.now();await an.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 an.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 an.verify(n.messageHash,BigInt(n.steps),n.proof)){let o=new Error("PoW verification failed");throw o.code="INVALID_POW",o}return!0}};Ki.exports={MessageSecurityService:fn,stableStringify:Mt,DEFAULT_SECURITY_OPTIONS:$i}});var Wi=H((df,qi)=>{var mo=Ai(),{MessageSecurityService:go}=dn(),un=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 go({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,createdAt:e.createdAt,updatedAt:e.updatedAt,version:e.version,data:{...e.data}}}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={opId:this.idGenerator(),kind:"create",collectionName:e,id:o,actorId:this.nodeId,ownerId:this.nodeId,timestamp:c,payload:{...t}};return this.applyOperation(h),await this.broadcastMessage("operation",h,{broadcastScope:n.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:h,collectionName:e})}),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(o.ownerId!==this.nodeId)throw new Error(`Only owner ${o.ownerId} can update object ${t}`);let c={opId:this.idGenerator(),kind:"update",collectionName:e,id:t,actorId:this.nodeId,timestamp:this.now(),baseVersion:o.version,payload:{...n}};return this.applyOperation(c),await this.broadcastMessage("operation",c,{broadcastScope:i.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:c,collectionName:e})}),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})})}registerPeerPublicKey(e,t){this.securityService.registerPeerPublicKey(e,t)}getPublicKey(){return this.securityService.getPublicKey()}async broadcastMessage(e,t,n={}){let i=await this.securityService.secureOutgoingMessage({messageType:e,payload:t,targetId:null,securityContext:n});await this.networkAdapter.broadcast(i)}async sendDirectMessage(e,t,n){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),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=t.metadata||{},h=this.discoveryRooms.get(n);h&&h.timer&&clearInterval(h.timer);let l=setInterval(()=>{this.announcePresence(n).catch(y=>{this.emit("warning",{type:"presence-heartbeat-failed",scope:n,error:y})})},i);this.discoveryRooms.set(n,{metadata:c,heartbeatIntervalMs:i,ttlMs:o,timer:l}),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}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==="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)&&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}applyOperation(e){if(!e||!e.opId||this.appliedOperations.has(e.opId))return!1;let t=this.getCollection(e.collectionName),n=t.get(e.id);return e.kind==="create"?n&&!n.deletedAt?!1:(t.set(e.id,{id:e.id,ownerId:e.ownerId,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):!n||n.deletedAt||e.actorId!==n.ownerId||typeof e.baseVersion=="number"&&e.baseVersion!==n.version?!1:e.kind==="update"?(n.data={...n.data,...e.payload},n.updatedAt=e.timestamp,n.version+=1,this.appliedOperations.add(e.opId),this.emit("change",{kind:"update",collection:e.collectionName,id:e.id}),!0):e.kind==="delete"?(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):!1}};qi.exports=un});var ln=H((uf,Vi)=>{var hn=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}};Vi.exports=hn});var dr=H((hf,Hi)=>{var pn=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)}};Hi.exports=pn});var Gi=H((lf,hr)=>{function mn(r,e,t,n){Object.defineProperty(r,e,{get:t,set:n,enumerable:!0,configurable:!0})}mn(hr.exports,"unpack",()=>vo);mn(hr.exports,"pack",()=>_o);mn(hr.exports,"Packer",()=>ur);var yn=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 vo(r){return new xn(r).unpack()}function _o(r){let e=new ur,t=e.pack(r);return t instanceof Promise?t.then(()=>e.getBuffer()):e.getBuffer()}var xn=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")}},ur=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 yn,this._textEncoder=new TextEncoder}}});var nt=H(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.compactObject=Zi;je.deprecated=ko;je.detectBrowser=Ro;je.disableLog=Eo;je.disableWarnings=wo;je.extractVersion=At;je.filterStats=Mo;je.log=Io;je.walkStats=lr;je.wrapPeerConnectionEvent=Po;function So(r,e,t){return(e=Co(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Co(r){var e=To(r,"string");return rt(e)=="symbol"?e:e+""}function To(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 Ji=!0,Xi=!0;function At(r,e,t){var n=r.match(e);return n&&n.length>=t&&parseFloat(n[t],10)}function Po(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(x){var _=t(x);_&&(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 Eo(r){return typeof r!="boolean"?new Error("Argument type: "+rt(r)+". Please use a boolean."):(Ji=r,r?"adapter.js logging disabled":"adapter.js logging enabled")}function wo(r){return typeof r!="boolean"?new Error("Argument type: "+rt(r)+". Please use a boolean."):(Xi=!r,"adapter.js deprecation warnings "+(r?"disabled":"enabled"))}function Io(){if((typeof window>"u"?"undefined":rt(window))==="object"){if(Ji)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function ko(r,e){Xi&&console.warn(r+" is deprecated, please use "+e+" instead.")}function Ro(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(At(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||r.isSecureContext===!1&&r.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(At(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2))||null;else if(r.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(At(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=r.RTCRtpTransceiver&&"currentDirection"in r.RTCRtpTransceiver.prototype,e._safariVersion=At(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function Yi(r){return Object.prototype.toString.call(r)==="[object Object]"}function Zi(r){return Yi(r)?Object.keys(r).reduce(function(e,t){var n=Yi(r[t]),i=n?Zi(r[t]):r[t],o=n&&!Object.keys(i).length;return i===void 0||o?e:Object.assign(e,So({},t,i))},{}):r}function lr(r,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(function(n){n.endsWith("Id")?lr(r,r.get(e[n]),t):n.endsWith("Ids")&&e[n].forEach(function(i){lr(r,r.get(i),t)})}))}function Mo(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&&lr(r,h,i)})}),i}});var ts=H(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.shimGetUserMedia=Do;var Ao=es(nt());function es(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(es=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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);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 Qi=Ao.log;function Do(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 x={};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,ge){return ue?ue+ge.charAt(0).toUpperCase()+ge.slice(1):ge==="deviceId"?"sourceId":ge};if(k.ideal!==void 0){x.optional=x.optional||[];var se={};typeof k.ideal=="number"?(se[$("min",_)]=k.ideal,x.optional.push(se),se={},se[$("max",_)]=k.ideal,x.optional.push(se)):(se[$("",_)]=k.ideal,x.optional.push(se))}k.exact!==void 0&&typeof k.exact!="number"?(x.mandatory=x.mandatory||{},x.mandatory[$("",_)]=k.exact):["min","max"].forEach(function(fe){k[fe]!==void 0&&(x.mandatory=x.mandatory||{},x.mandatory[$(fe,_)]=k[fe])})}}),y.advanced&&(x.optional=(x.optional||[]).concat(y.advanced)),x},i=function(y,x){if(e.version>=61)return x(y);if(y=JSON.parse(JSON.stringify(y)),y&&it(y.audio)==="object"){var _=function(ue,ge,mt){ge in ue&&!(mt in ue)&&(ue[mt]=ue[ge],delete ue[ge])};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 se;if(k.exact==="environment"||k.ideal==="environment"?se=["back","rear"]:(k.exact==="user"||k.ideal==="user")&&(se=["front"]),se)return t.mediaDevices.enumerateDevices().then(function(fe){fe=fe.filter(function(ge){return ge.kind==="videoinput"});var ue=fe.find(function(ge){return se.some(function(mt){return ge.label.toLowerCase().includes(mt)})});return!ue&&fe.length&&se.includes("back")&&(ue=fe[fe.length-1]),ue&&(y.video.deviceId=k.exact?{exact:ue.deviceId}:{ideal:ue.deviceId}),y.video=n(y.video),Qi("chrome: "+JSON.stringify(y)),x(y)})}y.video=n(y.video)}return Qi("chrome: "+JSON.stringify(y)),x(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,x,_){i(y,function(k){t.webkitGetUserMedia(k,x,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(x){if(y.audio&&!x.getAudioTracks().length||y.video&&!x.getVideoTracks().length)throw x.getTracks().forEach(function(_){_.stop()}),new DOMException("","NotFoundError");return x},function(x){return Promise.reject(o(x))})})}}}}});var ss=H($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.fixNegotiationNeeded=Ko;$e.shimAddTrackRemoveTrack=No;$e.shimAddTrackRemoveTrackWithNative=is;$e.shimGetSendersWithDtmf=Fo;Object.defineProperty($e,"shimGetUserMedia",{enumerable:!0,get:function(){return Uo.shimGetUserMedia}});$e.shimMediaStream=Lo;$e.shimOnTrack=jo;$e.shimPeerConnection=$o;$e.shimSenderReceiverGetStats=zo;var Dt=rs(nt()),Uo=ts();function rs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(rs=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||Ve(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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);return y})(r,e)}function ns(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 Ve(e)=="symbol"?e:e+""}function Bo(r,e){if(Ve(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(Ve(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function Ve(r){"@babel/helpers - typeof";return Ve=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},Ve(r)}function Lo(r){r.MediaStream=r.MediaStream||r.webkitMediaStream}function jo(r){if(Ve(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 Dt.wrapPeerConnectionEvent(r,"track",function(t){return t.transceiver||Object.defineProperty(t,"transceiver",{value:{receiver:t.receiver}}),t})}function Fo(r){if(Ve(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 x=t.apply(this,arguments);return x||(x=e(this,l),this._senders.push(x)),x};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(x){y._senders.push(e(y,x))})};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(x){var _=y._senders.find(function(k){return k.track===x});_&&y._senders.splice(y._senders.indexOf(_),1)})}}else if(Ve(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(x){return x._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(Ve(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 Dt.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}),Dt.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 Dt.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(x){x.track===c&&(h?y=!0:h=x)}),this.getReceivers().forEach(function(x){return x.track===c&&(l?y=!0:l=x),x.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 is(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(x){var _=h.getSenders().find(function(k){return k.track===x});if(_)throw new DOMException("Track already exists.","InvalidAccessError")});var l=this.getSenders();t.apply(this,arguments);var y=this.getSenders().filter(function(x){return l.indexOf(x)===-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 No(r,e){if(!r.RTCPeerConnection)return;if(r.RTCPeerConnection.prototype.addTrack&&e.version>=65)return is(r);var t=r.RTCPeerConnection.prototype.getLocalStreams;r.RTCPeerConnection.prototype.getLocalStreams=function(){var x=this,_=t.apply(this);return this._reverseStreams=this._reverseStreams||{},_.map(function(k){return x._reverseStreams[k.id]})};var n=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(x){var _=this;if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},x.getTracks().forEach(function($){var se=_.getSenders().find(function(fe){return fe.track===$});if(se)throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[x.id]){var k=new r.MediaStream(x.getTracks());this._streams[x.id]=k,this._reverseStreams[k.id]=x,x=k}n.apply(this,[x])};var i=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(x){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[x.id]||x]),delete this._reverseStreams[this._streams[x.id]?this._streams[x.id].id:x.id],delete this._streams[x.id]},r.RTCPeerConnection.prototype.addTrack=function(x,_){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(ge){return ge===x}))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");var se=this.getSenders().find(function(ge){return ge.track===x});if(se)throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};var fe=this._streams[_.id];if(fe)fe.addTrack(x),Promise.resolve().then(function(){k.dispatchEvent(new Event("negotiationneeded"))});else{var ue=new r.MediaStream([x]);this._streams[_.id]=ue,this._reverseStreams[ue.id]=_,this.addStream(ue)}return this.getSenders().find(function(ge){return ge.track===x})};function o(y,x){var _=x.sdp;return Object.keys(y._reverseStreams||[]).forEach(function(k){var $=y._reverseStreams[k],se=y._streams[$.id];_=_.replace(new RegExp(se.id,"g"),$.id)}),new RTCSessionDescription({type:x.type,sdp:_})}function c(y,x){var _=x.sdp;return Object.keys(y._reverseStreams||[]).forEach(function(k){var $=y._reverseStreams[k],se=y._streams[$.id];_=_.replace(new RegExp($.id,"g"),se.id)}),new RTCSessionDescription({type:x.type,sdp:_})}["createOffer","createAnswer"].forEach(function(y){var x=r.RTCPeerConnection.prototype[y],_=ns({},y,function(){var k=this,$=arguments,se=arguments.length&&typeof arguments[0]=="function";return se?x.apply(this,[function(fe){var ue=o(k,fe);$[0].apply(null,[ue])},function(fe){$[1]&&$[1].apply(null,fe)},arguments[2]]):x.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 x=l.get.apply(this);return x.type===""?x:o(this,x)}}),r.RTCPeerConnection.prototype.removeTrack=function(x){var _=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!x._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");var k=x._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(se){var fe=_._streams[se].getTracks().find(function(ue){return x.track===ue});fe&&($=_._streams[se])}),$&&($.getTracks().length===1?this.removeStream(this._reverseStreams[$.id]):$.removeTrack(x.track),this.dispatchEvent(new Event("negotiationneeded")))}}function $o(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=ns({},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 Ko(r,e){Dt.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 as=H(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.shimGetUserMedia=Wo;var qo=os(nt());function os(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(os=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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);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 Wo(r,e){var t=r&&r.navigator,n=r&&r.MediaStreamTrack;if(t.getUserMedia=function(l,y,x){qo.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(l).then(y,x)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){var i=function(y,x,_){x in y&&!(_ in y)&&(y[_]=y[x],delete y[x])},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 cs=H(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.shimGetDisplayMedia=Vo;function Vo(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 us=H(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.shimAddTransceiver=fa;Ue.shimCreateAnswer=ha;Ue.shimCreateOffer=ua;Object.defineProperty(Ue,"shimGetDisplayMedia",{enumerable:!0,get:function(){return Go.shimGetDisplayMedia}});Ue.shimGetParameters=da;Object.defineProperty(Ue,"shimGetUserMedia",{enumerable:!0,get:function(){return Ho.shimGetUserMedia}});Ue.shimOnTrack=na;Ue.shimPeerConnection=ia;Ue.shimRTCDataChannel=ca;Ue.shimReceiverGetStats=oa;Ue.shimRemoveStream=aa;Ue.shimSenderGetStats=sa;var fs=ds(nt()),Ho=as(),Go=cs();function ds(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(ds=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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);return y})(r,e)}function Yo(r){return Qo(r)||Zo(r)||Xo(r)||Jo()}function Jo(){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 Xo(r,e){if(r){if(typeof r=="string")return _n(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)?_n(r,e):void 0}}function Zo(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function Qo(r){if(Array.isArray(r))return _n(r)}function _n(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 ea(r,e,t){return(e=ta(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function ta(r){var e=ra(r,"string");return De(e)=="symbol"?e:e+""}function ra(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 na(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 ia(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=ea({},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(x){x.type=t[x.type]||x.type})}catch(x){if(x.name!=="TypeError")throw x;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 oa(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}),fs.wrapPeerConnectionEvent(r,"track",function(t){return t.receiver._pc=t.srcElement,t}),r.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}}function aa(r){!r.RTCPeerConnection||"removeStream"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.removeStream=function(t){var n=this;fs.deprecated("removeStream","removeTrack"),this.getSenders().forEach(function(i){i.track&&t.getTracks().includes(i.track)&&n.removeTrack(i)})})}function ca(r){r.DataChannel&&!r.RTCDataChannel&&(r.RTCDataChannel=r.DataChannel)}function fa(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=Yo(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 da(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 ua(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 ha(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 ys=H(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.shimAudioContext=va;Ke.shimCallbacksAPI=ya;Ke.shimConstraints=ps;Ke.shimCreateOfferLegacy=ba;Ke.shimGetUserMedia=xa;Ke.shimLocalStreamsAPI=la;Ke.shimRTCIceServerUrls=ma;Ke.shimRemoteStreamsAPI=pa;Ke.shimTrackEventTransceiver=ga;var hs=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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);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 la(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 pa(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 ya(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,x){var _=arguments.length>=2?arguments[2]:arguments[0],k=t.apply(this,[_]);return x?(k.then(y,x),Promise.resolve()):k},e.createAnswer=function(y,x){var _=arguments.length>=2?arguments[2]:arguments[0],k=n.apply(this,[_]);return x?(k.then(y,x),Promise.resolve()):k};var h=function(y,x,_){var k=i.apply(this,[y]);return _?(k.then(x,_),Promise.resolve()):k};e.setLocalDescription=h,h=function(y,x,_){var k=o.apply(this,[y]);return _?(k.then(x,_),Promise.resolve()):k},e.setRemoteDescription=h,h=function(y,x,_){var k=c.apply(this,[y]);return _?(k.then(x,_),Promise.resolve()):k},e.addIceCandidate=h}}function xa(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(ps(i))}}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=function(o,c,h){e.mediaDevices.getUserMedia(o).then(c,h)}.bind(e))}function ps(r){return r&&r.video!==void 0?Object.assign({},r,{video:hs.compactObject(r.video)}):r}function ma(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?(hs.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 ga(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 va(r){st(r)!=="object"||r.AudioContext||(r.AudioContext=r.webkitAudioContext)}});var Cn=H((_f,Sn)=>{"use strict";var E={};E.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)};E.localCName=E.generateIdentifier();E.splitLines=function(r){return r.trim().split(`
1
+ var DignityJS=(()=>{var xo=Object.defineProperty;var mo=r=>{throw TypeError(r)};var go=(r,e,t)=>e in r?xo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var rn=(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 H=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Ai=(r,e,t)=>go(r,typeof e!="symbol"?e+"":e,t);var Rt=(r,e,t)=>e.has(r)?mo("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var Ui=H((rf,Di)=>{var nn=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)}};Di.exports=nn});var Oi=H(()=>{});var Bi=H((of,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]),x=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 N(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 m,g=0;for(m=0;m<u;m++)g|=a[d+m]^f[s+m];return(1&g-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 ge(a,d,f,s){for(var u=s[0]&255|(s[1]&255)<<8|(s[2]&255)<<16|(s[3]&255)<<24,m=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,g=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,M=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,$=d[12]&255|(d[13]&255)<<8|(d[14]&255)<<16|(d[15]&255)<<24,K=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,q=f[24]&255|(f[25]&255)<<8|(f[26]&255)<<16|(f[27]&255)<<24,V=f[28]&255|(f[29]&255)<<8|(f[30]&255)<<16|(f[31]&255)<<24,W=s[12]&255|(s[13]&255)<<8|(s[14]&255)<<16|(s[15]&255)<<24,U=u,F=m,A=g,O=C,L=I,R=j,b=M,v=oe,P=D,S=$,T=K,w=Y,z=G,J=q,Z=V,X=W,p,te=0;te<20;te+=2)p=U+z|0,L^=p<<7|p>>>25,p=L+U|0,P^=p<<9|p>>>23,p=P+L|0,z^=p<<13|p>>>19,p=z+P|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=T+b|0,Z^=p<<7|p>>>25,p=Z+T|0,A^=p<<9|p>>>23,p=A+Z|0,b^=p<<13|p>>>19,p=b+A|0,T^=p<<18|p>>>14,p=X+w|0,O^=p<<7|p>>>25,p=O+X|0,v^=p<<9|p>>>23,p=v+O|0,w^=p<<13|p>>>19,p=w+v|0,X^=p<<18|p>>>14,p=U+O|0,F^=p<<7|p>>>25,p=F+U|0,A^=p<<9|p>>>23,p=A+F|0,O^=p<<13|p>>>19,p=O+A|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=T+S|0,w^=p<<7|p>>>25,p=w+T|0,P^=p<<9|p>>>23,p=P+w|0,S^=p<<13|p>>>19,p=S+P|0,T^=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+m|0,A=A+g|0,O=O+C|0,L=L+I|0,R=R+j|0,b=b+M|0,v=v+oe|0,P=P+D|0,S=S+$|0,T=T+K|0,w=w+Y|0,z=z+G|0,J=J+q|0,Z=Z+V|0,X=X+W|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]=A>>>0&255,a[9]=A>>>8&255,a[10]=A>>>16&255,a[11]=A>>>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]=P>>>0&255,a[33]=P>>>8&255,a[34]=P>>>16&255,a[35]=P>>>24&255,a[36]=S>>>0&255,a[37]=S>>>8&255,a[38]=S>>>16&255,a[39]=S>>>24&255,a[40]=T>>>0&255,a[41]=T>>>8&255,a[42]=T>>>16&255,a[43]=T>>>24&255,a[44]=w>>>0&255,a[45]=w>>>8&255,a[46]=w>>>16&255,a[47]=w>>>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 mt(a,d,f,s){for(var u=s[0]&255|(s[1]&255)<<8|(s[2]&255)<<16|(s[3]&255)<<24,m=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,g=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,M=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,$=d[12]&255|(d[13]&255)<<8|(d[14]&255)<<16|(d[15]&255)<<24,K=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,q=f[24]&255|(f[25]&255)<<8|(f[26]&255)<<16|(f[27]&255)<<24,V=f[28]&255|(f[29]&255)<<8|(f[30]&255)<<16|(f[31]&255)<<24,W=s[12]&255|(s[13]&255)<<8|(s[14]&255)<<16|(s[15]&255)<<24,U=u,F=m,A=g,O=C,L=I,R=j,b=M,v=oe,P=D,S=$,T=K,w=Y,z=G,J=q,Z=V,X=W,p,te=0;te<20;te+=2)p=U+z|0,L^=p<<7|p>>>25,p=L+U|0,P^=p<<9|p>>>23,p=P+L|0,z^=p<<13|p>>>19,p=z+P|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=T+b|0,Z^=p<<7|p>>>25,p=Z+T|0,A^=p<<9|p>>>23,p=A+Z|0,b^=p<<13|p>>>19,p=b+A|0,T^=p<<18|p>>>14,p=X+w|0,O^=p<<7|p>>>25,p=O+X|0,v^=p<<9|p>>>23,p=v+O|0,w^=p<<13|p>>>19,p=w+v|0,X^=p<<18|p>>>14,p=U+O|0,F^=p<<7|p>>>25,p=F+U|0,A^=p<<9|p>>>23,p=A+F|0,O^=p<<13|p>>>19,p=O+A|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=T+S|0,w^=p<<7|p>>>25,p=w+T|0,P^=p<<9|p>>>23,p=P+w|0,S^=p<<13|p>>>19,p=S+P|0,T^=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]=T>>>0&255,a[9]=T>>>8&255,a[10]=T>>>16&255,a[11]=T>>>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]=P>>>0&255,a[25]=P>>>8&255,a[26]=P>>>16&255,a[27]=P>>>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){ge(a,d,f,s)}function Xt(a,d,f,s){mt(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 yi(a,d,f,s,u,m,g){var C=new Uint8Array(16),I=new Uint8Array(64),j,M;for(M=0;M<16;M++)C[M]=0;for(M=0;M<8;M++)C[M]=m[M];for(;u>=64;){for(Jt(I,C,g,dt),M=0;M<64;M++)a[d+M]=f[s+M]^I[M];for(j=1,M=8;M<16;M++)j=j+(C[M]&255)|0,C[M]=j&255,j>>>=8;u-=64,d+=64,s+=64}if(u>0)for(Jt(I,C,g,dt),M=0;M<u;M++)a[d+M]=f[s+M]^I[M];return 0}function xi(a,d,f,s,u){var m=new Uint8Array(16),g=new Uint8Array(64),C,I;for(I=0;I<16;I++)m[I]=0;for(I=0;I<8;I++)m[I]=s[I];for(;f>=64;){for(Jt(g,m,u,dt),I=0;I<64;I++)a[d+I]=g[I];for(C=1,I=8;I<16;I++)C=C+(m[I]&255)|0,m[I]=C&255,C>>>=8;f-=64,d+=64}if(f>0)for(Jt(g,m,u,dt),I=0;I<f;I++)a[d+I]=g[I];return 0}function mi(a,d,f,s,u){var m=new Uint8Array(32);Xt(m,s,u,dt);for(var g=new Uint8Array(8),C=0;C<8;C++)g[C]=s[C+16];return xi(a,d,f,g,m)}function zr(a,d,f,s,u,m,g){var C=new Uint8Array(32);Xt(C,m,g,dt);for(var I=new Uint8Array(8),j=0;j<8;j++)I[j]=m[j+16];return yi(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,m,g,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,m=a[8]&255|(a[9]&255)<<8,this.r[4]=(u>>>4|m<<12)&255,this.r[5]=m>>>1&8190,g=a[10]&255|(a[11]&255)<<8,this.r[6]=(m>>>14|g<<2)&8191,C=a[12]&255|(a[13]&255)<<8,this.r[7]=(g>>>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,m,g,C,I,j,M,oe,D,$,K,Y,G,q,V,W,U,F,A,O=this.h[0],L=this.h[1],R=this.h[2],b=this.h[3],v=this.h[4],P=this.h[5],S=this.h[6],T=this.h[7],w=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,m=a[d+2]&255|(a[d+3]&255)<<8,L+=(u>>>13|m<<3)&8191,g=a[d+4]&255|(a[d+5]&255)<<8,R+=(m>>>10|g<<6)&8191,C=a[d+6]&255|(a[d+7]&255)<<8,b+=(g>>>7|C<<9)&8191,I=a[d+8]&255|(a[d+9]&255)<<8,v+=(C>>>4|I<<12)&8191,P+=I>>>1&8191,j=a[d+10]&255|(a[d+11]&255)<<8,S+=(I>>>14|j<<2)&8191,M=a[d+12]&255|(a[d+13]&255)<<8,T+=(j>>>11|M<<5)&8191,oe=a[d+14]&255|(a[d+15]&255)<<8,w+=(M>>>8|oe<<8)&8191,z+=oe>>>5|s,D=0,$=D,$+=O*J,$+=L*(5*se),$+=R*(5*ie),$+=b*(5*Q),$+=v*(5*ce),D=$>>>13,$&=8191,$+=P*(5*ae),$+=S*(5*te),$+=T*(5*p),$+=w*(5*X),$+=z*(5*Z),D+=$>>>13,$&=8191,K=D,K+=O*Z,K+=L*J,K+=R*(5*se),K+=b*(5*ie),K+=v*(5*Q),D=K>>>13,K&=8191,K+=P*(5*ce),K+=S*(5*ae),K+=T*(5*te),K+=w*(5*p),K+=z*(5*X),D+=K>>>13,K&=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+=P*(5*Q),Y+=S*(5*ce),Y+=T*(5*ae),Y+=w*(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+=P*(5*ie),G+=S*(5*Q),G+=T*(5*ce),G+=w*(5*ae),G+=z*(5*te),D+=G>>>13,G&=8191,q=D,q+=O*te,q+=L*p,q+=R*X,q+=b*Z,q+=v*J,D=q>>>13,q&=8191,q+=P*(5*se),q+=S*(5*ie),q+=T*(5*Q),q+=w*(5*ce),q+=z*(5*ae),D+=q>>>13,q&=8191,V=D,V+=O*ae,V+=L*te,V+=R*p,V+=b*X,V+=v*Z,D=V>>>13,V&=8191,V+=P*J,V+=S*(5*se),V+=T*(5*ie),V+=w*(5*Q),V+=z*(5*ce),D+=V>>>13,V&=8191,W=D,W+=O*ce,W+=L*ae,W+=R*te,W+=b*p,W+=v*X,D=W>>>13,W&=8191,W+=P*Z,W+=S*J,W+=T*(5*se),W+=w*(5*ie),W+=z*(5*Q),D+=W>>>13,W&=8191,U=D,U+=O*Q,U+=L*ce,U+=R*ae,U+=b*te,U+=v*p,D=U>>>13,U&=8191,U+=P*X,U+=S*Z,U+=T*J,U+=w*(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+=P*p,F+=S*X,F+=T*Z,F+=w*J,F+=z*(5*se),D+=F>>>13,F&=8191,A=D,A+=O*se,A+=L*ie,A+=R*Q,A+=b*ce,A+=v*ae,D=A>>>13,A&=8191,A+=P*te,A+=S*p,A+=T*X,A+=w*Z,A+=z*J,D+=A>>>13,A&=8191,D=(D<<2)+D|0,D=D+$|0,$=D&8191,D=D>>>13,K+=D,O=$,L=K,R=Y,b=G,v=q,P=V,S=W,T=U,w=F,z=A,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]=P,this.h[6]=S,this.h[7]=T,this.h[8]=w,this.h[9]=z},Zt.prototype.finish=function(a,d){var f=new Uint16Array(10),s,u,m,g;if(this.leftover){for(g=this.leftover,this.buffer[g++]=1;g<16;g++)this.buffer[g]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(s=this.h[1]>>>13,this.h[1]&=8191,g=2;g<10;g++)this.h[g]+=s,s=this.h[g]>>>13,this.h[g]&=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,g=1;g<10;g++)f[g]=this.h[g]+s,s=f[g]>>>13,f[g]&=8191;for(f[9]-=8192,u=(s^1)-1,g=0;g<10;g++)f[g]&=u;for(u=~u,g=0;g<10;g++)this.h[g]=this.h[g]&u|f[g];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,m=this.h[0]+this.pad[0],this.h[0]=m&65535,g=1;g<8;g++)m=(this.h[g]+this.pad[g]|0)+(m>>>16)|0,this.h[g]=m&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 Nr(a,d,f,s,u,m){var g=new Zt(m);return g.update(f,s,u),g.finish(a,d),0}function gi(a,d,f,s,u,m){var g=new Uint8Array(16);return Nr(g,0,f,s,u,m),fe(a,d,g,0)}function $r(a,d,f,s,u){var m;if(f<32)return-1;for(zr(a,0,d,0,f,s,u),Nr(a,16,a,32,f-32,a),m=0;m<16;m++)a[m]=0;return 0}function Kr(a,d,f,s,u){var m,g=new Uint8Array(32);if(f<32||(mi(g,0,32,s,u),gi(d,16,d,32,f-32,g)!==0))return-1;for(zr(a,0,d,0,f,s,u),m=0;m<32;m++)a[m]=0;return 0}function Ze(a,d){var f;for(f=0;f<16;f++)a[f]=d[f]|0}function qr(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 gt(a,d,f){for(var s,u=~(f-1),m=0;m<16;m++)s=u&(a[m]^d[m]),a[m]^=s,d[m]^=s}function bt(a,d){var f,s,u,m=e(),g=e();for(f=0;f<16;f++)g[f]=d[f];for(qr(g),qr(g),qr(g),s=0;s<2;s++){for(m[0]=g[0]-65517,f=1;f<15;f++)m[f]=g[f]-65535-(m[f-1]>>16&1),m[f-1]&=65535;m[15]=g[15]-32767-(m[14]>>16&1),u=m[15]>>16&1,m[14]&=65535,gt(g,m,1-u)}for(f=0;f<16;f++)a[2*f]=g[f]&255,a[2*f+1]=g[f]>>8}function bi(a,d){var f=new Uint8Array(32),s=new Uint8Array(32);return bt(f,a),bt(s,d),ue(f,0,s,0)}function vi(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,m=0,g=0,C=0,I=0,j=0,M=0,oe=0,D=0,$=0,K=0,Y=0,G=0,q=0,V=0,W=0,U=0,F=0,A=0,O=0,L=0,R=0,b=0,v=0,P=0,S=0,T=0,w=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],me=f[7],de=f[8],he=f[9],le=f[10],pe=f[11],ve=f[12],Ce=f[13],Te=f[14],Pe=f[15];s=d[0],m+=s*p,g+=s*te,C+=s*ae,I+=s*ce,j+=s*Q,M+=s*ie,oe+=s*se,D+=s*me,$+=s*de,K+=s*he,Y+=s*le,G+=s*pe,q+=s*ve,V+=s*Ce,W+=s*Te,U+=s*Pe,s=d[1],g+=s*p,C+=s*te,I+=s*ae,j+=s*ce,M+=s*Q,oe+=s*ie,D+=s*se,$+=s*me,K+=s*de,Y+=s*he,G+=s*le,q+=s*pe,V+=s*ve,W+=s*Ce,U+=s*Te,F+=s*Pe,s=d[2],C+=s*p,I+=s*te,j+=s*ae,M+=s*ce,oe+=s*Q,D+=s*ie,$+=s*se,K+=s*me,Y+=s*de,G+=s*he,q+=s*le,V+=s*pe,W+=s*ve,U+=s*Ce,F+=s*Te,A+=s*Pe,s=d[3],I+=s*p,j+=s*te,M+=s*ae,oe+=s*ce,D+=s*Q,$+=s*ie,K+=s*se,Y+=s*me,G+=s*de,q+=s*he,V+=s*le,W+=s*pe,U+=s*ve,F+=s*Ce,A+=s*Te,O+=s*Pe,s=d[4],j+=s*p,M+=s*te,oe+=s*ae,D+=s*ce,$+=s*Q,K+=s*ie,Y+=s*se,G+=s*me,q+=s*de,V+=s*he,W+=s*le,U+=s*pe,F+=s*ve,A+=s*Ce,O+=s*Te,L+=s*Pe,s=d[5],M+=s*p,oe+=s*te,D+=s*ae,$+=s*ce,K+=s*Q,Y+=s*ie,G+=s*se,q+=s*me,V+=s*de,W+=s*he,U+=s*le,F+=s*pe,A+=s*ve,O+=s*Ce,L+=s*Te,R+=s*Pe,s=d[6],oe+=s*p,D+=s*te,$+=s*ae,K+=s*ce,Y+=s*Q,G+=s*ie,q+=s*se,V+=s*me,W+=s*de,U+=s*he,F+=s*le,A+=s*pe,O+=s*ve,L+=s*Ce,R+=s*Te,b+=s*Pe,s=d[7],D+=s*p,$+=s*te,K+=s*ae,Y+=s*ce,G+=s*Q,q+=s*ie,V+=s*se,W+=s*me,U+=s*de,F+=s*he,A+=s*le,O+=s*pe,L+=s*ve,R+=s*Ce,b+=s*Te,v+=s*Pe,s=d[8],$+=s*p,K+=s*te,Y+=s*ae,G+=s*ce,q+=s*Q,V+=s*ie,W+=s*se,U+=s*me,F+=s*de,A+=s*he,O+=s*le,L+=s*pe,R+=s*ve,b+=s*Ce,v+=s*Te,P+=s*Pe,s=d[9],K+=s*p,Y+=s*te,G+=s*ae,q+=s*ce,V+=s*Q,W+=s*ie,U+=s*se,F+=s*me,A+=s*de,O+=s*he,L+=s*le,R+=s*pe,b+=s*ve,v+=s*Ce,P+=s*Te,S+=s*Pe,s=d[10],Y+=s*p,G+=s*te,q+=s*ae,V+=s*ce,W+=s*Q,U+=s*ie,F+=s*se,A+=s*me,O+=s*de,L+=s*he,R+=s*le,b+=s*pe,v+=s*ve,P+=s*Ce,S+=s*Te,T+=s*Pe,s=d[11],G+=s*p,q+=s*te,V+=s*ae,W+=s*ce,U+=s*Q,F+=s*ie,A+=s*se,O+=s*me,L+=s*de,R+=s*he,b+=s*le,v+=s*pe,P+=s*ve,S+=s*Ce,T+=s*Te,w+=s*Pe,s=d[12],q+=s*p,V+=s*te,W+=s*ae,U+=s*ce,F+=s*Q,A+=s*ie,O+=s*se,L+=s*me,R+=s*de,b+=s*he,v+=s*le,P+=s*pe,S+=s*ve,T+=s*Ce,w+=s*Te,z+=s*Pe,s=d[13],V+=s*p,W+=s*te,U+=s*ae,F+=s*ce,A+=s*Q,O+=s*ie,L+=s*se,R+=s*me,b+=s*de,v+=s*he,P+=s*le,S+=s*pe,T+=s*ve,w+=s*Ce,z+=s*Te,J+=s*Pe,s=d[14],W+=s*p,U+=s*te,F+=s*ae,A+=s*ce,O+=s*Q,L+=s*ie,R+=s*se,b+=s*me,v+=s*de,P+=s*he,S+=s*le,T+=s*pe,w+=s*ve,z+=s*Ce,J+=s*Te,Z+=s*Pe,s=d[15],U+=s*p,F+=s*te,A+=s*ae,O+=s*ce,L+=s*Q,R+=s*ie,b+=s*se,v+=s*me,P+=s*de,S+=s*he,T+=s*le,w+=s*pe,z+=s*ve,J+=s*Ce,Z+=s*Te,X+=s*Pe,m+=38*F,g+=38*A,C+=38*O,I+=38*L,j+=38*R,M+=38*b,oe+=38*v,D+=38*P,$+=38*S,K+=38*T,Y+=38*w,G+=38*z,q+=38*J,V+=38*Z,W+=38*X,u=1,s=m+u+65535,u=Math.floor(s/65536),m=s-u*65536,s=g+u+65535,u=Math.floor(s/65536),g=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=M+u+65535,u=Math.floor(s/65536),M=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=$+u+65535,u=Math.floor(s/65536),$=s-u*65536,s=K+u+65535,u=Math.floor(s/65536),K=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=q+u+65535,u=Math.floor(s/65536),q=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=U+u+65535,u=Math.floor(s/65536),U=s-u*65536,m+=u-1+37*(u-1),u=1,s=m+u+65535,u=Math.floor(s/65536),m=s-u*65536,s=g+u+65535,u=Math.floor(s/65536),g=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=M+u+65535,u=Math.floor(s/65536),M=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=$+u+65535,u=Math.floor(s/65536),$=s-u*65536,s=K+u+65535,u=Math.floor(s/65536),K=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=q+u+65535,u=Math.floor(s/65536),q=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=U+u+65535,u=Math.floor(s/65536),U=s-u*65536,m+=u-1+37*(u-1),a[0]=m,a[1]=g,a[2]=C,a[3]=I,a[4]=j,a[5]=M,a[6]=oe,a[7]=D,a[8]=$,a[9]=K,a[10]=Y,a[11]=G,a[12]=q,a[13]=V,a[14]=W,a[15]=U}function Le(a,d){ne(a,d,d)}function _i(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 Si(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),m,g,C=e(),I=e(),j=e(),M=e(),oe=e(),D=e();for(g=0;g<31;g++)s[g]=d[g];for(s[31]=d[31]&127|64,s[0]&=248,Wr(u,f),g=0;g<16;g++)I[g]=u[g],M[g]=C[g]=j[g]=0;for(C[0]=M[0]=1,g=254;g>=0;--g)m=s[g>>>3]>>>(g&7)&1,gt(C,I,m),gt(j,M,m),ze(oe,C,j),Ne(C,C,j),ze(j,I,M),Ne(I,I,M),Le(M,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,M,D),ne(C,j,h),ze(C,C,M),ne(j,j,C),ne(C,M,D),ne(M,I,u),Le(I,oe),gt(C,I,m),gt(j,M,m);for(g=0;g<16;g++)u[g+16]=C[g],u[g+32]=j[g],u[g+48]=I[g],u[g+64]=M[g];var $=u.subarray(32),K=u.subarray(16);return _i($,$),ne(K,K,$),bt(a,K),0}function er(a,d){return Qt(a,d,i)}function Ci(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 Ti=$r,co=Kr;function fo(a,d,f,s,u,m){var g=new Uint8Array(32);return tr(g,u,m),Ti(a,d,f,s,g)}function uo(a,d,f,s,u,m){var g=new Uint8Array(32);return tr(g,u,m),co(a,d,f,s,g)}var Pi=[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 Ei(a,d,f,s){for(var u=new Int32Array(16),m=new Int32Array(16),g,C,I,j,M,oe,D,$,K,Y,G,q,V,W,U,F,A,O,L,R,b,v,P,S,T,w,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],me=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],m[L]=f[R+4]<<24|f[R+5]<<16|f[R+6]<<8|f[R+7];for(L=0;L<80;L++)if(g=z,C=J,I=Z,j=X,M=p,oe=te,D=ae,$=ce,K=Q,Y=ie,G=se,q=me,V=de,W=he,U=le,F=pe,b=ce,v=pe,P=v&65535,S=v>>>16,T=b&65535,w=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),P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,b=p&te^~p&ae,v=de&he^~de&le,P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,b=Pi[L*2],v=Pi[L*2+1],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,b=u[L%16],v=m[L%16],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,A=T&65535|w<<16,O=P&65535|S<<16,b=A,v=O,P=v&65535,S=v>>>16,T=b&65535,w=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),P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,b=z&J^z&Z^J&Z,v=Q&ie^Q&se^ie&se,P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,$=T&65535|w<<16,F=P&65535|S<<16,b=j,v=q,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=A,v=O,P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,j=T&65535|w<<16,q=P&65535|S<<16,J=g,Z=C,X=I,p=j,te=M,ae=oe,ce=D,z=$,ie=K,se=Y,me=G,de=q,he=V,le=W,pe=U,Q=F,L%16===15)for(R=0;R<16;R++)b=u[R],v=m[R],P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=u[(R+9)%16],v=m[(R+9)%16],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,A=u[(R+1)%16],O=m[(R+1)%16],b=(A>>>1|O<<31)^(A>>>8|O<<24)^A>>>7,v=(O>>>1|A<<31)^(O>>>8|A<<24)^(O>>>7|A<<25),P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,A=u[(R+14)%16],O=m[(R+14)%16],b=(A>>>19|O<<13)^(O>>>29|A<<3)^A>>>6,v=(O>>>19|A<<13)^(A>>>29|O<<3)^(O>>>6|A<<26),P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,u[R]=T&65535|w<<16,m[R]=P&65535|S<<16;b=z,v=Q,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[0],v=d[0],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[0]=z=T&65535|w<<16,d[0]=Q=P&65535|S<<16,b=J,v=ie,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[1],v=d[1],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[1]=J=T&65535|w<<16,d[1]=ie=P&65535|S<<16,b=Z,v=se,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[2],v=d[2],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[2]=Z=T&65535|w<<16,d[2]=se=P&65535|S<<16,b=X,v=me,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[3],v=d[3],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[3]=X=T&65535|w<<16,d[3]=me=P&65535|S<<16,b=p,v=de,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[4],v=d[4],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[4]=p=T&65535|w<<16,d[4]=de=P&65535|S<<16,b=te,v=he,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[5],v=d[5],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[5]=te=T&65535|w<<16,d[5]=he=P&65535|S<<16,b=ae,v=le,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[6],v=d[6],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[6]=ae=T&65535|w<<16,d[6]=le=P&65535|S<<16,b=ce,v=pe,P=v&65535,S=v>>>16,T=b&65535,w=b>>>16,b=a[7],v=d[7],P+=v&65535,S+=v>>>16,T+=b&65535,w+=b>>>16,S+=P>>>16,T+=S>>>16,w+=T>>>16,a[7]=ce=T&65535|w<<16,d[7]=pe=P&65535|S<<16,ve+=128,s-=128}return s}function ut(a,d,f){var s=new Int32Array(8),u=new Int32Array(8),m=new Uint8Array(256),g,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,Ei(s,u,d,f),f%=128,g=0;g<f;g++)m[g]=d[C-f+g];for(m[f]=128,f=256-128*(f<112?1:0),m[f-9]=0,N(m,f-8,C/536870912|0,C<<3),Ei(s,u,m,f),g=0;g<8;g++)N(a,8*g,s[g],u[g]);return 0}function rr(a,d){var f=e(),s=e(),u=e(),m=e(),g=e(),C=e(),I=e(),j=e(),M=e();Ne(f,a[1],a[0]),Ne(M,d[1],d[0]),ne(f,f,M),ze(s,a[0],a[1]),ze(M,d[0],d[1]),ne(s,s,M),ne(u,a[3],d[3]),ne(u,u,y),ne(m,a[2],d[2]),ze(m,m,m),Ne(g,s,f),Ne(C,m,u),ze(I,m,u),ze(j,s,f),ne(a[0],g,C),ne(a[1],j,I),ne(a[2],I,C),ne(a[3],g,j)}function wi(a,d,f){var s;for(s=0;s<4;s++)gt(a[s],d[s],f)}function Vr(a,d){var f=e(),s=e(),u=e();_i(u,d[2]),ne(f,d[0],u),ne(s,d[1],u),bt(a,s),a[31]^=vi(f)<<7}function Hr(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,wi(a,d,s),rr(d,a),rr(a,a),wi(a,d,s)}function nr(a,d){var f=[e(),e(),e(),e()];Ze(f[0],x),Ze(f[1],_),Ze(f[2],c),ne(f[3],x,_),Hr(a,f,d)}function Gr(a,d,f){var s=new Uint8Array(64),u=[e(),e(),e(),e()],m;for(f||t(d,32),ut(s,d,32),s[0]&=248,s[31]&=127,s[31]|=64,nr(u,s),Vr(a,u),m=0;m<32;m++)d[m+32]=a[m];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 Yr(a,d){var f,s,u,m;for(s=63;s>=32;--s){for(f=0,u=s-32,m=s-12;u<m;++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 Jr(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;Yr(a,d)}function Ii(a,d,f,s){var u=new Uint8Array(64),m=new Uint8Array(64),g=new Uint8Array(64),C,I,j=new Float64Array(64),M=[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(g,a.subarray(32),f+32),Jr(g),nr(M,g),Vr(a,M),C=32;C<64;C++)a[C]=s[C];for(ut(m,a,f+64),Jr(m),C=0;C<64;C++)j[C]=0;for(C=0;C<32;C++)j[C]=g[C];for(C=0;C<32;C++)for(I=0;I<32;I++)j[C+I]+=m[C]*u[I];return Yr(a.subarray(32),j),oe}function ho(a,d){var f=e(),s=e(),u=e(),m=e(),g=e(),C=e(),I=e();return Ze(a[2],c),Wr(a[1],d),Le(u,a[1]),ne(m,u,l),Ne(u,u,a[2]),ze(m,a[2],m),Le(g,m),Le(C,g),ne(I,C,g),ne(f,I,u),ne(f,f,m),Si(f,f),ne(f,f,u),ne(f,f,m),ne(f,f,m),ne(a[0],f,m),Le(s,a[0]),ne(s,s,m),bi(s,u)&&ne(a[0],a[0],k),Le(s,a[0]),ne(s,s,m),bi(s,u)?-1:(vi(a[0])===d[31]>>7&&Ne(a[0],o,a[0]),ne(a[3],a[0],a[1]),0)}function Xr(a,d,f,s){var u,m=new Uint8Array(32),g=new Uint8Array(64),C=[e(),e(),e(),e()],I=[e(),e(),e(),e()];if(f<64||ho(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(g,a,f),Jr(g),Hr(C,I,g),nr(I,d.subarray(32)),rr(C,I),Vr(m,C),f-=64,ue(d,0,m,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 Zr=32,sr=24,Et=32,vt=16,wt=32,or=32,It=32,kt=32,Qr=32,ki=sr,lo=Et,po=vt,Qe=64,ht=32,_t=64,en=32,tn=64;r.lowlevel={crypto_core_hsalsa20:Xt,crypto_stream_xor:zr,crypto_stream:mi,crypto_stream_salsa20_xor:yi,crypto_stream_salsa20:xi,crypto_onetimeauth:Nr,crypto_onetimeauth_verify:gi,crypto_verify_16:fe,crypto_verify_32:ue,crypto_secretbox:$r,crypto_secretbox_open:Kr,crypto_scalarmult:Qt,crypto_scalarmult_base:er,crypto_box_beforenm:tr,crypto_box_afternm:Ti,crypto_box:fo,crypto_box_open:uo,crypto_box_keypair:Ci,crypto_hash:ut,crypto_sign:Ii,crypto_sign_keypair:Gr,crypto_sign_open:Xr,crypto_secretbox_KEYBYTES:Zr,crypto_secretbox_NONCEBYTES:sr,crypto_secretbox_ZEROBYTES:Et,crypto_secretbox_BOXZEROBYTES:vt,crypto_scalarmult_BYTES:wt,crypto_scalarmult_SCALARBYTES:or,crypto_box_PUBLICKEYBYTES:It,crypto_box_SECRETKEYBYTES:kt,crypto_box_BEFORENMBYTES:Qr,crypto_box_NONCEBYTES:ki,crypto_box_ZEROBYTES:lo,crypto_box_BOXZEROBYTES:po,crypto_sign_BYTES:Qe,crypto_sign_PUBLICKEYBYTES:ht,crypto_sign_SECRETKEYBYTES:_t,crypto_sign_SEEDBYTES:en,crypto_hash_BYTES:tn,gf:e,D:l,L:ir,pack25519:bt,unpack25519:Wr,M:ne,A:ze,S:Le,Z:Ne,pow2523:Si,add:rr,set25519:Ze,modL:Yr,scalarmult:Hr,scalarbase:nr};function Ri(a,d){if(a.length!==Zr)throw new Error("bad key size");if(d.length!==sr)throw new Error("bad nonce size")}function yo(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 Mi(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),Ri(f,d);for(var s=new Uint8Array(Et+a.length),u=new Uint8Array(s.length),m=0;m<a.length;m++)s[m+Et]=a[m];return $r(u,s,s.length,d,f),u.subarray(vt)},r.secretbox.open=function(a,d,f){Be(a,d,f),Ri(f,d);for(var s=new Uint8Array(vt+a.length),u=new Uint8Array(s.length),m=0;m<a.length;m++)s[m+vt]=a[m];return s.length<32||Kr(u,s,s.length,d,f)!==0?null:u.subarray(Et)},r.secretbox.keyLength=Zr,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!==wt)throw new Error("bad p size");var f=new Uint8Array(wt);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(wt);return er(d,a),d},r.scalarMult.scalarLength=or,r.scalarMult.groupElementLength=wt,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),yo(a,d);var f=new Uint8Array(Qr);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 Ci(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=Qr,r.box.nonceLength=ki,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 Ii(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=Xr(f,a,a.length,d);if(s<0)return null;for(var u=new Uint8Array(s),m=0;m<u.length;m++)u[m]=f[m];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),m;for(m=0;m<Qe;m++)s[m]=d[m];for(m=0;m<a.length;m++)s[m+Qe]=a[m];return Xr(u,s,s.length,f)>=0},r.sign.keyPair=function(){var a=new Uint8Array(ht),d=new Uint8Array(_t);return Gr(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!==en)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 Gr(d,f,!0),{publicKey:d,secretKey:f}},r.sign.publicKeyLength=ht,r.sign.secretKeyLength=_t,r.sign.seedLength=en,r.sign.signatureLength=Qe,r.hash=function(a){Be(a);var d=new Uint8Array(tn);return ut(d,a,a.length),d},r.hash.hashLength=tn,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,m=new Uint8Array(s);for(u=0;u<s;u+=d)a.getRandomValues(m.subarray(u,u+Math.min(s-u,d)));for(u=0;u<s;u++)f[u]=m[u];Mi(m)})}else typeof rn<"u"&&(a=Oi(),a&&a.randomBytes&&r.setPRNG(function(f,s){var u,m=a.randomBytes(s);for(u=0;u<s;u++)f[u]=m[u];Mi(m)}))})()})(typeof ar<"u"&&ar.exports?ar.exports:self.nacl=self.nacl||{})});var ji=H((Li,cr)=>{(function(r,e){"use strict";typeof cr<"u"&&cr.exports?cr.exports=e():(r.nacl||(r.nacl={}),r.nacl.util=e())})(Li,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 on=H((cf,Fi)=>{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)}};Ai(_e,"p",BigInt("170082004324204494273811327264862981553264701145937538369570764779791492622392118654022654452947093285873855529044371650895045691292912712699015605832276411308653107069798639938826015099738961427172366594187783204437869906954750443653318078358839409699824714551430573905637228307966826784684174483831608534979"));var sn=_e;Fi.exports=sn});var cn=H((df,Ni)=>{var zi=on(),an=class{static async compute(e,t){let n=new zi,i=BigInt(`0x${e}`);return n.generateProofVDF(t,i).toString(16)}static async verify(e,t,n){let i=new zi,o=BigInt(`0x${e}`),c=BigInt(`0x${n}`);return i.verifyProofVDF(t,o,c)}};Ni.exports=an});var ln=H((uf,Wi)=>{var Ae=Bi(),ye=ji(),fn=cn(),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 Mt(r){return r===null||typeof r!="object"?JSON.stringify(r):Array.isArray(r)?`[${r.map(t=>Mt(t)).join(",")}]`:`{${Object.keys(r).sort().map(t=>`${JSON.stringify(t)}:${Mt(r[t])}`).join(",")}}`}function Ki(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 Ae.hash(r).slice(0,32)}function $i(r){return Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}function At(r){return ye.decodeUTF8(r)}async function un(r,e,t){let n=globalThis.crypto&&globalThis.crypto.subtle;if(n){let i=await n.importKey("raw",At(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}=rn("crypto");return new Uint8Array(i(r,Buffer.from(e),t,32,"sha256"))}catch{return dr(Ki(At(r),e))}}function qi(r,e){return dr(Ki(At(r),e))}function dn(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 hn=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:Ae.sign.keyPair(),encryption:Ae.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,dn(c));this.calibratedPowSteps=this.options.powSteps}getPublicKey(){return{...this.publicKeyBundle}}registerPeerPublicKey(e,t){this.peerPublicKeys.set(e,dn(t))}resolvePeerPublicKey(e,t){let n=this.peerPublicKeys.get(e),i=t?dn(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=Ae.sign.detached(ye.decodeUTF8(h),this.signingSecretKey);o.security.signing={enabled:!0,algorithm:"ed25519",signature:ye.encodeBase64(l)}}return o}canonicalSigningInput(e){return Mt({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 Mt({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 $i(dr(At(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 N=Ae.randomBytes(Ae.box.nonceLength),re=Ae.box(i,N,ye.decodeBase64(k.encryptionPublicKey),this.encryptionSecretKey);return{payload:ye.encodeBase64(re),security:{enabled:!0,mode:"direct",nonce:ye.encodeBase64(N),senderEncryptionPublicKey:this.publicKeyBundle.encryptionPublicKey}}}let o=n.broadcastScope||"default",c=Ae.randomBytes(Ae.secretbox.nonceLength),h=Ae.randomBytes(16),l=this.resolveBroadcastPassword(o),y=this.options.kdfIterations||fr.kdfIterations,x=await un(l,h,y),_=Ae.secretbox(i,c,x);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 x=t.kdfIterations||fr.kdfIterations;l=await un(o,c,x)}else l=qi(o,c);let y=Ae.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=Ae.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(!Ae.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=$i(dr(At(`probe:${this.nodeId}:${this.now()}`))),n=BigInt(2),i=this.now();await fn.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 fn.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 fn.verify(n.messageHash,BigInt(n.steps),n.proof)){let o=new Error("PoW verification failed");throw o.code="INVALID_POW",o}return!0}};Wi.exports={MessageSecurityService:hn,stableStringify:Mt,deriveBroadcastKey:un,legacyBroadcastKey:qi,DEFAULT_SECURITY_OPTIONS:fr}});var Hi=H((hf,Vi)=>{var bo=Ui(),{MessageSecurityService:vo}=ln(),pn=class extends bo{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 vo({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,createdAt:e.createdAt,updatedAt:e.updatedAt,version:e.version,data:{...e.data}}}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={opId:this.idGenerator(),kind:"create",collectionName:e,id:o,actorId:this.nodeId,ownerId:this.nodeId,timestamp:c,payload:{...t}};return this.applyOperation(h),await this.broadcastMessage("operation",h,{broadcastScope:n.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:h,collectionName:e})}),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(o.ownerId!==this.nodeId)throw new Error(`Only owner ${o.ownerId} can update object ${t}`);let c={opId:this.idGenerator(),kind:"update",collectionName:e,id:t,actorId:this.nodeId,timestamp:this.now(),baseVersion:o.version,payload:{...n}};return this.applyOperation(c),await this.broadcastMessage("operation",c,{broadcastScope:i.broadcastScope||this.resolveBroadcastScope({messageType:"operation",operation:c,collectionName:e})}),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})})}registerPeerPublicKey(e,t){this.securityService.registerPeerPublicKey(e,t)}getPublicKey(){return this.securityService.getPublicKey()}async broadcastMessage(e,t,n={}){let i=await this.securityService.secureOutgoingMessage({messageType:e,payload:t,targetId:null,securityContext:n});await this.networkAdapter.broadcast(i)}async sendDirectMessage(e,t,n){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),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=t.metadata||{},h=this.discoveryRooms.get(n);h&&h.timer&&clearInterval(h.timer);let l=setInterval(()=>{this.announcePresence(n).catch(y=>{this.emit("warning",{type:"presence-heartbeat-failed",scope:n,error:y})})},i);this.discoveryRooms.set(n,{metadata:c,heartbeatIntervalMs:i,ttlMs:o,timer:l}),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}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==="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)&&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}applyOperation(e){if(!e||!e.opId||this.appliedOperations.has(e.opId))return!1;let t=this.getCollection(e.collectionName),n=t.get(e.id);return e.kind==="create"?n&&!n.deletedAt?!1:(t.set(e.id,{id:e.id,ownerId:e.ownerId,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):!n||n.deletedAt||e.actorId!==n.ownerId||typeof e.baseVersion=="number"&&e.baseVersion!==n.version?!1:e.kind==="update"?(n.data={...n.data,...e.payload},n.updatedAt=e.timestamp,n.version+=1,this.appliedOperations.add(e.opId),this.emit("change",{kind:"update",collection:e.collectionName,id:e.id}),!0):e.kind==="delete"?(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):!1}};Vi.exports=pn});var xn=H((lf,Gi)=>{var yn=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}};Gi.exports=yn});var ur=H((pf,Yi)=>{var mn=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)}};Yi.exports=mn});var Ji=H((yf,lr)=>{function vn(r,e,t,n){Object.defineProperty(r,e,{get:t,set:n,enumerable:!0,configurable:!0})}vn(lr.exports,"unpack",()=>So);vn(lr.exports,"pack",()=>Co);vn(lr.exports,"Packer",()=>hr);var gn=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 _o(e).buffer}};function _o(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 So(r){return new bn(r).unpack()}function Co(r){let e=new hr,t=e.pack(r);return t instanceof Promise?t.then(()=>e.getBuffer()):e.getBuffer()}var bn=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 gn,this._textEncoder=new TextEncoder}}});var nt=H(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.compactObject=es;je.deprecated=Mo;je.detectBrowser=Ao;je.disableLog=Io;je.disableWarnings=ko;je.extractVersion=Dt;je.filterStats=Do;je.log=Ro;je.walkStats=pr;je.wrapPeerConnectionEvent=wo;function To(r,e,t){return(e=Po(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Po(r){var e=Eo(r,"string");return rt(e)=="symbol"?e:e+""}function Eo(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 Zi=!0,Qi=!0;function Dt(r,e,t){var n=r.match(e);return n&&n.length>=t&&parseFloat(n[t],10)}function wo(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(x){var _=t(x);_&&(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 Io(r){return typeof r!="boolean"?new Error("Argument type: "+rt(r)+". Please use a boolean."):(Zi=r,r?"adapter.js logging disabled":"adapter.js logging enabled")}function ko(r){return typeof r!="boolean"?new Error("Argument type: "+rt(r)+". Please use a boolean."):(Qi=!r,"adapter.js deprecation warnings "+(r?"disabled":"enabled"))}function Ro(){if((typeof window>"u"?"undefined":rt(window))==="object"){if(Zi)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Mo(r,e){Qi&&console.warn(r+" is deprecated, please use "+e+" instead.")}function Ao(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 Xi(r){return Object.prototype.toString.call(r)==="[object Object]"}function es(r){return Xi(r)?Object.keys(r).reduce(function(e,t){var n=Xi(r[t]),i=n?es(r[t]):r[t],o=n&&!Object.keys(i).length;return i===void 0||o?e:Object.assign(e,To({},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 Do(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 ns=H(_n=>{"use strict";Object.defineProperty(_n,"__esModule",{value:!0});_n.shimGetUserMedia=Oo;var Uo=rs(nt());function rs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(rs=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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);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 ts=Uo.log;function Oo(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 x={};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 N=function(ue,ge){return ue?ue+ge.charAt(0).toUpperCase()+ge.slice(1):ge==="deviceId"?"sourceId":ge};if(k.ideal!==void 0){x.optional=x.optional||[];var re={};typeof k.ideal=="number"?(re[N("min",_)]=k.ideal,x.optional.push(re),re={},re[N("max",_)]=k.ideal,x.optional.push(re)):(re[N("",_)]=k.ideal,x.optional.push(re))}k.exact!==void 0&&typeof k.exact!="number"?(x.mandatory=x.mandatory||{},x.mandatory[N("",_)]=k.exact):["min","max"].forEach(function(fe){k[fe]!==void 0&&(x.mandatory=x.mandatory||{},x.mandatory[N(fe,_)]=k[fe])})}}),y.advanced&&(x.optional=(x.optional||[]).concat(y.advanced)),x},i=function(y,x){if(e.version>=61)return x(y);if(y=JSON.parse(JSON.stringify(y)),y&&it(y.audio)==="object"){var _=function(ue,ge,mt){ge in ue&&!(mt in ue)&&(ue[mt]=ue[ge],delete ue[ge])};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 N=e.version<66;if(k&&(k.exact==="user"||k.exact==="environment"||k.ideal==="user"||k.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!N)){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(ge){return ge.kind==="videoinput"});var ue=fe.find(function(ge){return re.some(function(mt){return ge.label.toLowerCase().includes(mt)})});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),ts("chrome: "+JSON.stringify(y)),x(y)})}y.video=n(y.video)}return ts("chrome: "+JSON.stringify(y)),x(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,x,_){i(y,function(k){t.webkitGetUserMedia(k,x,function(N){_&&_(o(N))})})};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(x){if(y.audio&&!x.getAudioTracks().length||y.video&&!x.getVideoTracks().length)throw x.getTracks().forEach(function(_){_.stop()}),new DOMException("","NotFoundError");return x},function(x){return Promise.reject(o(x))})})}}}}});var as=H($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.fixNegotiationNeeded=Wo;$e.shimAddTrackRemoveTrack=Ko;$e.shimAddTrackRemoveTrackWithNative=os;$e.shimGetSendersWithDtmf=No;Object.defineProperty($e,"shimGetUserMedia",{enumerable:!0,get:function(){return Bo.shimGetUserMedia}});$e.shimMediaStream=Fo;$e.shimOnTrack=zo;$e.shimPeerConnection=qo;$e.shimSenderReceiverGetStats=$o;var Ut=is(nt()),Bo=ns();function is(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(is=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||Ve(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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);return y})(r,e)}function ss(r,e,t){return(e=Lo(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Lo(r){var e=jo(r,"string");return Ve(e)=="symbol"?e:e+""}function jo(r,e){if(Ve(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(Ve(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function Ve(r){"@babel/helpers - typeof";return Ve=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},Ve(r)}function Fo(r){r.MediaStream=r.MediaStream||r.webkitMediaStream}function zo(r){if(Ve(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 No(r){if(Ve(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 x=t.apply(this,arguments);return x||(x=e(this,l),this._senders.push(x)),x};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(x){y._senders.push(e(y,x))})};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(x){var _=y._senders.find(function(k){return k.track===x});_&&y._senders.splice(y._senders.indexOf(_),1)})}}else if(Ve(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(x){return x._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 $o(r){if(Ve(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(x){x.track===c&&(h?y=!0:h=x)}),this.getReceivers().forEach(function(x){return x.track===c&&(l?y=!0:l=x),x.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 os(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(x){var _=h.getSenders().find(function(k){return k.track===x});if(_)throw new DOMException("Track already exists.","InvalidAccessError")});var l=this.getSenders();t.apply(this,arguments);var y=this.getSenders().filter(function(x){return l.indexOf(x)===-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 Ko(r,e){if(!r.RTCPeerConnection)return;if(r.RTCPeerConnection.prototype.addTrack&&e.version>=65)return os(r);var t=r.RTCPeerConnection.prototype.getLocalStreams;r.RTCPeerConnection.prototype.getLocalStreams=function(){var x=this,_=t.apply(this);return this._reverseStreams=this._reverseStreams||{},_.map(function(k){return x._reverseStreams[k.id]})};var n=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(x){var _=this;if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},x.getTracks().forEach(function(N){var re=_.getSenders().find(function(fe){return fe.track===N});if(re)throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[x.id]){var k=new r.MediaStream(x.getTracks());this._streams[x.id]=k,this._reverseStreams[k.id]=x,x=k}n.apply(this,[x])};var i=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(x){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[x.id]||x]),delete this._reverseStreams[this._streams[x.id]?this._streams[x.id].id:x.id],delete this._streams[x.id]},r.RTCPeerConnection.prototype.addTrack=function(x,_){var k=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");var N=[].slice.call(arguments,1);if(N.length!==1||!N[0].getTracks().find(function(ge){return ge===x}))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(ge){return ge.track===x});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(x),Promise.resolve().then(function(){k.dispatchEvent(new Event("negotiationneeded"))});else{var ue=new r.MediaStream([x]);this._streams[_.id]=ue,this._reverseStreams[ue.id]=_,this.addStream(ue)}return this.getSenders().find(function(ge){return ge.track===x})};function o(y,x){var _=x.sdp;return Object.keys(y._reverseStreams||[]).forEach(function(k){var N=y._reverseStreams[k],re=y._streams[N.id];_=_.replace(new RegExp(re.id,"g"),N.id)}),new RTCSessionDescription({type:x.type,sdp:_})}function c(y,x){var _=x.sdp;return Object.keys(y._reverseStreams||[]).forEach(function(k){var N=y._reverseStreams[k],re=y._streams[N.id];_=_.replace(new RegExp(N.id,"g"),re.id)}),new RTCSessionDescription({type:x.type,sdp:_})}["createOffer","createAnswer"].forEach(function(y){var x=r.RTCPeerConnection.prototype[y],_=ss({},y,function(){var k=this,N=arguments,re=arguments.length&&typeof arguments[0]=="function";return re?x.apply(this,[function(fe){var ue=o(k,fe);N[0].apply(null,[ue])},function(fe){N[1]&&N[1].apply(null,fe)},arguments[2]]):x.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 x=l.get.apply(this);return x.type===""?x:o(this,x)}}),r.RTCPeerConnection.prototype.removeTrack=function(x){var _=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!x._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");var k=x._pc===this;if(!k)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};var N;Object.keys(this._streams).forEach(function(re){var fe=_._streams[re].getTracks().find(function(ue){return x.track===ue});fe&&(N=_._streams[re])}),N&&(N.getTracks().length===1?this.removeStream(this._reverseStreams[N.id]):N.removeTrack(x.track),this.dispatchEvent(new Event("negotiationneeded")))}}function qo(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=ss({},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 Wo(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 fs=H(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.shimGetUserMedia=Ho;var Vo=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||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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);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 Ho(r,e){var t=r&&r.navigator,n=r&&r.MediaStreamTrack;if(t.getUserMedia=function(l,y,x){Vo.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(l).then(y,x)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){var i=function(y,x,_){x in y&&!(_ in y)&&(y[_]=y[x],delete y[x])},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 ds=H(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.shimGetDisplayMedia=Go;function Go(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 ls=H(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.shimAddTransceiver=ua;Ue.shimCreateAnswer=pa;Ue.shimCreateOffer=la;Object.defineProperty(Ue,"shimGetDisplayMedia",{enumerable:!0,get:function(){return Jo.shimGetDisplayMedia}});Ue.shimGetParameters=ha;Object.defineProperty(Ue,"shimGetUserMedia",{enumerable:!0,get:function(){return Yo.shimGetUserMedia}});Ue.shimOnTrack=sa;Ue.shimPeerConnection=oa;Ue.shimRTCDataChannel=da;Ue.shimReceiverGetStats=ca;Ue.shimRemoveStream=fa;Ue.shimSenderGetStats=aa;var us=hs(nt()),Yo=fs(),Jo=ds();function hs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(hs=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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);return y})(r,e)}function Xo(r){return ta(r)||ea(r)||Qo(r)||Zo()}function Zo(){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 Qo(r,e){if(r){if(typeof r=="string")return Tn(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)?Tn(r,e):void 0}}function ea(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function ta(r){if(Array.isArray(r))return Tn(r)}function Tn(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 ra(r,e,t){return(e=na(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function na(r){var e=ia(r,"string");return De(e)=="symbol"?e:e+""}function ia(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 sa(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 oa(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=ra({},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(x){x.type=t[x.type]||x.type})}catch(x){if(x.name!=="TypeError")throw x;y.forEach(function(_,k){y.set(k,Object.assign({},_,{type:t[_.type]||_.type}))})}return y}).then(h,l)}}}function aa(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}),us.wrapPeerConnectionEvent(r,"track",function(t){return t.receiver._pc=t.srcElement,t}),r.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}}function fa(r){!r.RTCPeerConnection||"removeStream"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.removeStream=function(t){var n=this;us.deprecated("removeStream","removeTrack"),this.getSenders().forEach(function(i){i.track&&t.getTracks().includes(i.track)&&n.removeTrack(i)})})}function da(r){r.DataChannel&&!r.RTCDataChannel&&(r.RTCDataChannel=r.DataChannel)}function ua(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=Xo(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 ha(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 la(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 ms=H(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.shimAudioContext=Sa;Ke.shimCallbacksAPI=ma;Ke.shimConstraints=xs;Ke.shimCreateOfferLegacy=_a;Ke.shimGetUserMedia=ga;Ke.shimLocalStreamsAPI=ya;Ke.shimRTCIceServerUrls=ba;Ke.shimRemoteStreamsAPI=xa;Ke.shimTrackEventTransceiver=va;var ps=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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);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 ya(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 xa(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,x){var _=arguments.length>=2?arguments[2]:arguments[0],k=t.apply(this,[_]);return x?(k.then(y,x),Promise.resolve()):k},e.createAnswer=function(y,x){var _=arguments.length>=2?arguments[2]:arguments[0],k=n.apply(this,[_]);return x?(k.then(y,x),Promise.resolve()):k};var h=function(y,x,_){var k=i.apply(this,[y]);return _?(k.then(x,_),Promise.resolve()):k};e.setLocalDescription=h,h=function(y,x,_){var k=o.apply(this,[y]);return _?(k.then(x,_),Promise.resolve()):k},e.setRemoteDescription=h,h=function(y,x,_){var k=c.apply(this,[y]);return _?(k.then(x,_),Promise.resolve()):k},e.addIceCandidate=h}}function ga(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(xs(i))}}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=function(o,c,h){e.mediaDevices.getUserMedia(o).then(c,h)}.bind(e))}function xs(r){return r&&r.video!==void 0?Object.assign({},r,{video:ps.compactObject(r.video)}):r}function ba(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?(ps.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 va(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 _a(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 Sa(r){st(r)!=="object"||r.AudioContext||(r.AudioContext=r.webkitAudioContext)}});var En=H((Cf,Pn)=>{"use strict";var E={};E.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)};E.localCName=E.generateIdentifier();E.splitLines=function(r){return r.trim().split(`
3
3
  `).map(e=>e.trim())};E.splitSections=function(r){return r.split(`
4
4
  m=`).map((t,n)=>(n>0?"m="+t:t).trim()+`\r
5
5
  `)};E.getDescription=function(r){let e=E.splitSections(r);return e&&e[0]};E.getMediaSections=function(r){let e=E.splitSections(r);return e.shift(),e};E.matchPrefix=function(r,e){return E.splitLines(r).filter(t=>t.indexOf(e)===0)};E.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};E.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(" ")};E.parseIceOptions=function(r){return r.substring(14).split(" ")};E.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};E.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
- `};E.getDirection=function(r,e){let t=E.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?E.getDirection(e):"sendrecv"};E.getKind=function(r){return E.splitLines(r)[0].split(" ")[0].substring(2)};E.isRejected=function(r){return r.split(" ",2)[1]==="0"};E.parseMLine=function(r){let t=E.splitLines(r)[0].substring(2).split(" ");return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(" ")}};E.parseOLine=function(r){let t=E.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]}};E.isValidSDP=function(r){if(typeof r!="string"||r.length===0)return!1;let e=E.splitLines(r);for(let t=0;t<e.length;t++)if(e[t].length<2||e[t].charAt(1)!=="=")return!1;return!0};typeof Sn=="object"&&(Sn.exports=E)});var ms=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.removeExtmapAllowMixed=wa;He.shimAddIceCandidateNullOrEmpty=Ia;He.shimConnectionState=Ea;He.shimMaxMessageSize=Ta;He.shimParameterlessSetLocalDescription=ka;He.shimRTCIceCandidate=Sa;He.shimRTCIceCandidateRelayProtocol=Ca;He.shimSendThrowTypeError=Pa;var Ut=_a(Cn()),Tn=xs(nt());function xs(r,e){if(typeof WeakMap=="function")var t=new WeakMap,n=new WeakMap;return(xs=function(o,c){if(!c&&o&&o.__esModule)return o;var h,l,y={__proto__:null,default:o};if(o===null||Ot(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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);return y})(r,e)}function _a(r){return r&&r.__esModule?r:{default:r}}function Ot(r){"@babel/helpers - typeof";return Ot=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},Ot(r)}function Sa(r){if(!(!r.RTCIceCandidate||r.RTCIceCandidate&&"foundation"in r.RTCIceCandidate.prototype)){var e=r.RTCIceCandidate;r.RTCIceCandidate=function(n){if(Ot(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=Ut.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,Tn.wrapPeerConnectionEvent(r,"icecandidate",function(t){return t.candidate&&Object.defineProperty(t,"candidate",{value:new r.RTCIceCandidate(t.candidate),writable:"false"}),t})}}function Ca(r){!r.RTCIceCandidate||r.RTCIceCandidate&&"relayProtocol"in r.RTCIceCandidate.prototype||Tn.wrapPeerConnectionEvent(r,"icecandidate",function(e){if(e.candidate){var t=Ut.default.parseCandidate(e.candidate.candidate);t.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e})}function Ta(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=Ut.default.splitSections(l.sdp);return y.shift(),y.some(function(x){var _=Ut.default.parseMLine(x);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 x=parseInt(y[1],10);return x!==x?-1:x},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 x=65536;e.browser==="firefox"&&e.version===57&&(x=65535);var _=Ut.default.matchPrefix(l.sdp,"a=max-message-size:");return _.length>0?x=parseInt(_[0].substring(19),10):e.browser==="firefox"&&y!==-1&&(x=2147483637),x},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 x=n(arguments[0]),_=i(x),k=o(arguments[0],x),$;_===0&&k===0?$=Number.POSITIVE_INFINITY:_===0||k===0?$=Math.max(_,k):$=Math.min(_,k);var se={};Object.defineProperty(se,"maxMessageSize",{get:function(){return $}}),this._sctp=se}return c.apply(this,arguments)}}}function Pa(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},Tn.wrapPeerConnectionEvent(r,"datachannel",function(n){return e(n.channel,n.target),n})}function Ea(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 wa(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
+ `};E.getDirection=function(r,e){let t=E.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?E.getDirection(e):"sendrecv"};E.getKind=function(r){return E.splitLines(r)[0].split(" ")[0].substring(2)};E.isRejected=function(r){return r.split(" ",2)[1]==="0"};E.parseMLine=function(r){let t=E.splitLines(r)[0].substring(2).split(" ");return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(" ")}};E.parseOLine=function(r){let t=E.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]}};E.isValidSDP=function(r){if(typeof r!="string"||r.length===0)return!1;let e=E.splitLines(r);for(let t=0;t<e.length;t++)if(e[t].length<2||e[t].charAt(1)!=="=")return!1;return!0};typeof Pn=="object"&&(Pn.exports=E)});var bs=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.removeExtmapAllowMixed=ka;He.shimAddIceCandidateNullOrEmpty=Ra;He.shimConnectionState=Ia;He.shimMaxMessageSize=Ea;He.shimParameterlessSetLocalDescription=Ma;He.shimRTCIceCandidate=Ta;He.shimRTCIceCandidateRelayProtocol=Pa;He.shimSendThrowTypeError=wa;var Ot=Ca(En()),wn=gs(nt());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||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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);return y})(r,e)}function Ca(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 Ta(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,wn.wrapPeerConnectionEvent(r,"icecandidate",function(t){return t.candidate&&Object.defineProperty(t,"candidate",{value:new r.RTCIceCandidate(t.candidate),writable:"false"}),t})}}function Pa(r){!r.RTCIceCandidate||r.RTCIceCandidate&&"relayProtocol"in r.RTCIceCandidate.prototype||wn.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 Ea(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(x){var _=Ot.default.parseMLine(x);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 x=parseInt(y[1],10);return x!==x?-1:x},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 x=65536;e.browser==="firefox"&&e.version===57&&(x=65535);var _=Ot.default.matchPrefix(l.sdp,"a=max-message-size:");return _.length>0?x=parseInt(_[0].substring(19),10):e.browser==="firefox"&&y!==-1&&(x=2147483637),x},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 x=n(arguments[0]),_=i(x),k=o(arguments[0],x),N;_===0&&k===0?N=Number.POSITIVE_INFINITY:_===0||k===0?N=Math.max(_,k):N=Math.min(_,k);var re={};Object.defineProperty(re,"maxMessageSize",{get:function(){return N}}),this._sctp=re}return c.apply(this,arguments)}}}function wa(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},wn.wrapPeerConnectionEvent(r,"datachannel",function(n){return e(n.channel,n.target),n})}function Ia(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 ka(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 Ia(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 ka(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(Ot(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 gs=H(En=>{"use strict";function Pn(r){"@babel/helpers - typeof";return Pn=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},Pn(r)}Object.defineProperty(En,"__esModule",{value:!0});En.adapterFactory=Ma;var Bt=lt(nt()),qe=lt(ss()),Oe=lt(us()),Ge=lt(ys()),xe=lt(ms()),Ra=lt(Cn());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||Pn(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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);return y})(r,e)}function Ma(){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=Bt.log,i=Bt.detectBrowser(e),o={browserDetails:i,commonShim:xe,extractVersion:Bt.extractVersion,disableLog:Bt.disableLog,disableWarnings:Bt.disableWarnings,sdp:Ra};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,xe.shimAddIceCandidateNullOrEmpty(e,i),xe.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),xe.shimRTCIceCandidate(e,i),xe.shimRTCIceCandidateRelayProtocol(e,i),xe.shimConnectionState(e,i),xe.shimMaxMessageSize(e,i),xe.shimSendThrowTypeError(e,i),xe.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,xe.shimAddIceCandidateNullOrEmpty(e,i),xe.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),xe.shimRTCIceCandidate(e,i),xe.shimConnectionState(e,i),xe.shimMaxMessageSize(e,i),xe.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,xe.shimAddIceCandidateNullOrEmpty(e,i),xe.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),xe.shimRTCIceCandidate(e,i),xe.shimRTCIceCandidateRelayProtocol(e,i),xe.shimMaxMessageSize(e,i),xe.shimSendThrowTypeError(e,i),xe.removeExtmapAllowMixed(e,i);break;default:n("Unsupported browser!");break}return o}});var bs=H(pr=>{"use strict";Object.defineProperty(pr,"__esModule",{value:!0});pr.default=void 0;var Aa=gs(),Da=(0,Aa.adapterFactory)({window:typeof window>"u"?void 0:window}),Tf=pr.default=Da});var _s=H((Ef,wn)=>{"use strict";var Ua=Object.prototype.hasOwnProperty,ke="~";function Lt(){}Object.create&&(Lt.prototype=Object.create(null),new Lt().__proto__||(ke=!1));function Oa(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function vs(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new Oa(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 yr(r,e){--r._eventsCount===0?r._events=new Lt:delete r._events[e]}function Ee(){this._events=new Lt,this._eventsCount=0}Ee.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Ua.call(t,n)&&e.push(ke?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ee.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};Ee.prototype.listenerCount=function(e){var t=ke?ke+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Ee.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,x,_;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,x=new Array(y-1);_<y;_++)x[_-1]=arguments[_];l.fn.apply(l.context,x)}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(!x)for($=1,x=new Array(y-1);$<y;$++)x[$-1]=arguments[$];l[_].fn.apply(l[_].context,x)}}return!0};Ee.prototype.on=function(e,t,n){return vs(this,e,t,n,!1)};Ee.prototype.once=function(e,t,n){return vs(this,e,t,n,!0)};Ee.prototype.removeListener=function(e,t,n,i){var o=ke?ke+e:e;if(!this._events[o])return this;if(!t)return yr(this,o),this;var c=this._events[o];if(c.fn)c.fn===t&&(!i||c.once)&&(!n||c.context===n)&&yr(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:yr(this,o)}return this};Ee.prototype.removeAllListeners=function(e){var t;return e?(t=ke?ke+e:e,this._events[t]&&yr(this,t)):(this._events=new Lt,this._eventsCount=0),this};Ee.prototype.off=Ee.prototype.removeListener;Ee.prototype.addListener=Ee.prototype.on;Ee.prefixed=ke;Ee.EventEmitter=Ee;typeof wn<"u"&&(wn.exports=Ee)});var jt=H(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 Ba(r,e,t){let n=t/4294967296,i=t;r.setUint32(e,n),r.setUint32(e+4,i)}Fe.setUint64=Ba;function La(r,e,t){let n=Math.floor(t/4294967296),i=t;r.setUint32(e,n),r.setUint32(e+4,i)}Fe.setInt64=La;function ja(r,e){let t=r.getInt32(e),n=r.getUint32(e+4);return t*4294967296+n}Fe.getInt64=ja;function Fa(r,e){let t=r.getUint32(e),n=r.getUint32(e+4);return t*4294967296+n}Fe.getUint64=Fa});var mr=H(we=>{"use strict";var In,kn,Rn;Object.defineProperty(we,"__esModule",{value:!0});we.utf8DecodeTD=we.TEXT_DECODER_THRESHOLD=we.utf8DecodeJs=we.utf8EncodeTE=we.TEXT_ENCODER_THRESHOLD=we.utf8EncodeJs=we.utf8Count=void 0;var Ss=jt(),xr=(typeof process>"u"||((In=process==null?void 0:process.env)===null||In===void 0?void 0:In.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}we.utf8Count=za;function Na(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}}we.utf8EncodeJs=Na;var Ft=xr?new TextEncoder:void 0;we.TEXT_ENCODER_THRESHOLD=xr?typeof process<"u"&&((kn=process==null?void 0:process.env)===null||kn===void 0?void 0:kn.TEXT_ENCODING)!=="force"?200:0:Ss.UINT32_MAX;function $a(r,e,t){e.set(Ft.encode(r),t)}function Ka(r,e,t){Ft.encodeInto(r,e.subarray(t))}we.utf8EncodeTE=Ft?.encodeInto?Ka:$a;var qa=4096;function Wa(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,x=r[n++]&63,_=(h&7)<<18|l<<12|y<<6|x;_>65535&&(_-=65536,o.push(_>>>10&1023|55296),_=56320|_&1023),o.push(_)}else o.push(h);o.length>=qa&&(c+=String.fromCharCode(...o),o.length=0)}return o.length>0&&(c+=String.fromCharCode(...o)),c}we.utf8DecodeJs=Wa;var Va=xr?new TextDecoder:null;we.TEXT_DECODER_THRESHOLD=xr?typeof process<"u"&&((Rn=process==null?void 0:process.env)===null||Rn===void 0?void 0:Rn.TEXT_DECODER)!=="force"?200:0:Ss.UINT32_MAX;function Ha(r,e,t){let n=r.subarray(e,e+t);return Va.decode(n)}we.utf8DecodeTD=Ha});var An=H(gr=>{"use strict";Object.defineProperty(gr,"__esModule",{value:!0});gr.ExtData=void 0;var Mn=class{constructor(e,t){this.type=e,this.data=t}};gr.ExtData=Mn});var vr=H(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.DecodeError=void 0;var Dn=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})}};br.DecodeError=Dn});var Un=H(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 Ga=vr(),Cs=jt();Se.EXT_TIMESTAMP=-1;var Ya=4294967296-1,Ja=17179869184-1;function Ts({sec:r,nsec:e}){if(r>=0&&e>=0&&r<=Ja)if(e===0&&r<=Ya){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,Cs.setInt64)(n,4,r),t}}Se.encodeTimeSpecToTimestamp=Ts;function Ps(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=Ps;function Es(r){if(r instanceof Date){let e=Ps(r);return Ts(e)}else return null}Se.encodeTimestampExtension=Es;function ws(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,Cs.getInt64)(e,4),n=e.getUint32(0);return{sec:t,nsec:n}}default:throw new Ga.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${r.length}`)}}Se.decodeTimestampToTimeSpec=ws;function Is(r){let e=ws(r);return new Date(e.sec*1e3+e.nsec/1e6)}Se.decodeTimestampExtension=Is;Se.timestampExtension={type:Se.EXT_TIMESTAMP,encode:Es,decode:Is}});var Cr=H(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.ExtensionCodec=void 0;var _r=An(),Xa=Un(),zt=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(Xa.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 _r.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 _r.ExtData(c,o)}}}return e instanceof _r.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 _r.ExtData(t,e)}};Sr.ExtensionCodec=zt;zt.defaultCodec=new zt});var On=H(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.createDataView=Ct.ensureUint8Array=void 0;function ks(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=ks;function Za(r){if(r instanceof ArrayBuffer)return new DataView(r);let e=ks(r);return new DataView(e.buffer,e.byteOffset,e.byteLength)}Ct.createDataView=Za});var Ln=H(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.Encoder=Ye.DEFAULT_INITIAL_BUFFER_SIZE=Ye.DEFAULT_MAX_DEPTH=void 0;var Nt=mr(),Qa=Cr(),Rs=jt(),ec=On();Ye.DEFAULT_MAX_DEPTH=100;Ye.DEFAULT_INITIAL_BUFFER_SIZE=2048;var Bn=class{constructor(e=Qa.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>Nt.TEXT_ENCODER_THRESHOLD){let i=(0,Nt.utf8Count)(e);this.ensureBufferSizeToWrite(5+i),this.writeStringHeader(i),(0,Nt.utf8EncodeTE)(e,this.bytes,this.pos),this.pos+=i}else{let i=(0,Nt.utf8Count)(e);this.ensureBufferSizeToWrite(5+i),this.writeStringHeader(i),(0,Nt.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,ec.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,Rs.setUint64)(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),(0,Rs.setInt64)(this.view,this.pos,e),this.pos+=8}};Ye.Encoder=Bn});var Ms=H(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.encode=void 0;var tc=Ln(),rc={};function nc(r,e=rc){return new tc.Encoder(e.extensionCodec,e.context,e.maxDepth,e.initialBufferSize,e.sortKeys,e.forceFloat32,e.ignoreUndefined,e.forceIntegerToFloat).encodeSharedRef(r)}Tr.encode=nc});var As=H(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.prettyByte=void 0;function ic(r){return`${r<0?"-":""}0x${Math.abs(r).toString(16).padStart(2,"0")}`}Pr.prettyByte=ic});var Ds=H(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.CachedKeyDecoder=void 0;var sc=mr(),oc=16,ac=16,jn=class{constructor(e=oc,t=ac){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}};Er.CachedKeyDecoder=jn});var wr=H(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.Decoder=tt.DataViewIndexOutOfBoundsError=void 0;var Fn=As(),cc=Cr(),pt=jt(),zn=mr(),Nn=On(),fc=Ds(),et=vr(),dc=r=>{let e=typeof r;return e==="string"||e==="number"},$t=-1,Kn=new DataView(new ArrayBuffer(0)),uc=new Uint8Array(Kn.buffer);tt.DataViewIndexOutOfBoundsError=(()=>{try{Kn.getInt8(0)}catch(r){return r.constructor}throw new Error("never reached")})();var Us=new tt.DataViewIndexOutOfBoundsError("Insufficient data"),hc=new fc.CachedKeyDecoder,$n=class{constructor(e=cc.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=hc){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=Kn,this.bytes=uc,this.headByte=$t,this.stack=[]}reinitializeState(){this.totalPos=0,this.headByte=$t,this.stack.length=0}setBuffer(e){this.bytes=(0,Nn.ensureUint8Array)(e),this.view=(0,Nn.createDataView)(this.bytes),this.pos=0}appendBuffer(e){if(this.headByte===$t&&!this.hasRemaining(1))this.setBuffer(e);else{let t=this.bytes.subarray(this.pos),n=(0,Nn.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,Fn.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,Fn.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(!dc(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===$t&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=$t}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,Fn.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 Us;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>zn.TEXT_DECODER_THRESHOLD?o=(0,zn.utf8DecodeTD)(this.bytes,i,e):o=(0,zn.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 Us;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=$n});var qn=H(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.decodeMulti=Je.decode=Je.defaultDecodeOptions=void 0;var Os=wr();Je.defaultDecodeOptions={};function lc(r,e=Je.defaultDecodeOptions){return new Os.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decode(r)}Je.decode=lc;function pc(r,e=Je.defaultDecodeOptions){return new Os.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeMulti(r)}Je.decodeMulti=pc});var js=H(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.ensureAsyncIterable=ot.asyncIterableFromStream=ot.isAsyncIterable=void 0;function Bs(r){return r[Symbol.asyncIterator]!=null}ot.isAsyncIterable=Bs;function yc(r){if(r==null)throw new Error("Assertion Failure: value must not be null nor undefined")}async function*Ls(r){let e=r.getReader();try{for(;;){let{done:t,value:n}=await e.read();if(t)return;yc(n),yield n}}finally{e.releaseLock()}}ot.asyncIterableFromStream=Ls;function xc(r){return Bs(r)?r:Ls(r)}ot.ensureAsyncIterable=xc});var zs=H(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.decodeStream=Xe.decodeMultiStream=Xe.decodeArrayStream=Xe.decodeAsync=void 0;var Wn=wr(),Vn=js(),Ir=qn();async function mc(r,e=Ir.defaultDecodeOptions){let t=(0,Vn.ensureAsyncIterable)(r);return new Wn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeAsync(t)}Xe.decodeAsync=mc;function gc(r,e=Ir.defaultDecodeOptions){let t=(0,Vn.ensureAsyncIterable)(r);return new Wn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeArrayStream(t)}Xe.decodeArrayStream=gc;function Fs(r,e=Ir.defaultDecodeOptions){let t=(0,Vn.ensureAsyncIterable)(r);return new Wn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeStream(t)}Xe.decodeMultiStream=Fs;function bc(r,e=Ir.defaultDecodeOptions){return Fs(r,e)}Xe.decodeStream=bc});var Ks=H(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 vc=Ms();Object.defineProperty(ee,"encode",{enumerable:!0,get:function(){return vc.encode}});var Ns=qn();Object.defineProperty(ee,"decode",{enumerable:!0,get:function(){return Ns.decode}});Object.defineProperty(ee,"decodeMulti",{enumerable:!0,get:function(){return Ns.decodeMulti}});var kr=zs();Object.defineProperty(ee,"decodeAsync",{enumerable:!0,get:function(){return kr.decodeAsync}});Object.defineProperty(ee,"decodeArrayStream",{enumerable:!0,get:function(){return kr.decodeArrayStream}});Object.defineProperty(ee,"decodeMultiStream",{enumerable:!0,get:function(){return kr.decodeMultiStream}});Object.defineProperty(ee,"decodeStream",{enumerable:!0,get:function(){return kr.decodeStream}});var $s=wr();Object.defineProperty(ee,"Decoder",{enumerable:!0,get:function(){return $s.Decoder}});Object.defineProperty(ee,"DataViewIndexOutOfBoundsError",{enumerable:!0,get:function(){return $s.DataViewIndexOutOfBoundsError}});var _c=vr();Object.defineProperty(ee,"DecodeError",{enumerable:!0,get:function(){return _c.DecodeError}});var Sc=Ln();Object.defineProperty(ee,"Encoder",{enumerable:!0,get:function(){return Sc.Encoder}});var Cc=Cr();Object.defineProperty(ee,"ExtensionCodec",{enumerable:!0,get:function(){return Cc.ExtensionCodec}});var Tc=An();Object.defineProperty(ee,"ExtData",{enumerable:!0,get:function(){return Tc.ExtData}});var Tt=Un();Object.defineProperty(ee,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return Tt.EXT_TIMESTAMP}});Object.defineProperty(ee,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return Tt.encodeDateToTimeSpec}});Object.defineProperty(ee,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return Tt.encodeTimeSpecToTimestamp}});Object.defineProperty(ee,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return Tt.decodeTimestampToTimeSpec}});Object.defineProperty(ee,"encodeTimestampExtension",{enumerable:!0,get:function(){return Tt.encodeTimestampExtension}});Object.defineProperty(ee,"decodeTimestampExtension",{enumerable:!0,get:function(){return Tt.decodeTimestampExtension}})});var Xs=H((Kf,We)=>{var Rr=Gi(),qs=bs(),Gs=_s(),Ws=Ks();function Pc(r){Object.defineProperty(r,"__esModule",{value:!0,configurable:!0})}function Ec(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 Me(r,e,t,n){Object.defineProperty(r,e,{get:t,set:n,enumerable:!0,configurable:!0})}function Vs(r){return r&&r.__esModule?r.default:r}Pc(We.exports);Me(We.exports,"default",()=>Rc);Me(We.exports,"util",()=>Re);Me(We.exports,"BufferedConnection",()=>Pt);Me(We.exports,"StreamConnection",()=>Lr);Me(We.exports,"MsgPack",()=>Gt);Me(We.exports,"Peer",()=>Ht);Me(We.exports,"MsgPackPeer",()=>ti);Me(We.exports,"PeerError",()=>Ur);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 wc(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 Hn=Vs(qs).default||Vs(qs),Kt=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 Hn.browserDetails.browser}getVersion(){return Hn.browserDetails.version||0}isUnifiedPlanSupported(){let r=this.getBrowser(),e=Hn.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 Ra(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 Ma(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 vs=H(kn=>{"use strict";function In(r){"@babel/helpers - typeof";return In=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},In(r)}Object.defineProperty(kn,"__esModule",{value:!0});kn.adapterFactory=Da;var Lt=lt(nt()),qe=lt(as()),Oe=lt(ls()),Ge=lt(ms()),xe=lt(bs()),Aa=lt(En());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||In(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 x in o)x!=="default"&&{}.hasOwnProperty.call(o,x)&&((l=(h=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,x))&&(l.get||l.set)?h(y,x,l):y[x]=o[x]);return y})(r,e)}function Da(){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:xe,extractVersion:Lt.extractVersion,disableLog:Lt.disableLog,disableWarnings:Lt.disableWarnings,sdp:Aa};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,xe.shimAddIceCandidateNullOrEmpty(e,i),xe.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),xe.shimRTCIceCandidate(e,i),xe.shimRTCIceCandidateRelayProtocol(e,i),xe.shimConnectionState(e,i),xe.shimMaxMessageSize(e,i),xe.shimSendThrowTypeError(e,i),xe.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,xe.shimAddIceCandidateNullOrEmpty(e,i),xe.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),xe.shimRTCIceCandidate(e,i),xe.shimConnectionState(e,i),xe.shimMaxMessageSize(e,i),xe.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,xe.shimAddIceCandidateNullOrEmpty(e,i),xe.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),xe.shimRTCIceCandidate(e,i),xe.shimRTCIceCandidateRelayProtocol(e,i),xe.shimMaxMessageSize(e,i),xe.shimSendThrowTypeError(e,i),xe.removeExtmapAllowMixed(e,i);break;default:n("Unsupported browser!");break}return o}});var _s=H(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.default=void 0;var Ua=vs(),Oa=(0,Ua.adapterFactory)({window:typeof window>"u"?void 0:window}),Ef=yr.default=Oa});var Cs=H((If,Rn)=>{"use strict";var Ba=Object.prototype.hasOwnProperty,ke="~";function jt(){}Object.create&&(jt.prototype=Object.create(null),new jt().__proto__||(ke=!1));function La(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Ss(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new La(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 jt:delete r._events[e]}function Ee(){this._events=new jt,this._eventsCount=0}Ee.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Ba.call(t,n)&&e.push(ke?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ee.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};Ee.prototype.listenerCount=function(e){var t=ke?ke+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Ee.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,x,_;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,x=new Array(y-1);_<y;_++)x[_-1]=arguments[_];l.fn.apply(l.context,x)}else{var k=l.length,N;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(!x)for(N=1,x=new Array(y-1);N<y;N++)x[N-1]=arguments[N];l[_].fn.apply(l[_].context,x)}}return!0};Ee.prototype.on=function(e,t,n){return Ss(this,e,t,n,!1)};Ee.prototype.once=function(e,t,n){return Ss(this,e,t,n,!0)};Ee.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};Ee.prototype.removeAllListeners=function(e){var t;return e?(t=ke?ke+e:e,this._events[t]&&xr(this,t)):(this._events=new jt,this._eventsCount=0),this};Ee.prototype.off=Ee.prototype.removeListener;Ee.prototype.addListener=Ee.prototype.on;Ee.prefixed=ke;Ee.EventEmitter=Ee;typeof Rn<"u"&&(Rn.exports=Ee)});var Ft=H(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 ja(r,e,t){let n=t/4294967296,i=t;r.setUint32(e,n),r.setUint32(e+4,i)}Fe.setUint64=ja;function Fa(r,e,t){let n=Math.floor(t/4294967296),i=t;r.setUint32(e,n),r.setUint32(e+4,i)}Fe.setInt64=Fa;function za(r,e){let t=r.getInt32(e),n=r.getUint32(e+4);return t*4294967296+n}Fe.getInt64=za;function Na(r,e){let t=r.getUint32(e),n=r.getUint32(e+4);return t*4294967296+n}Fe.getUint64=Na});var gr=H(we=>{"use strict";var Mn,An,Dn;Object.defineProperty(we,"__esModule",{value:!0});we.utf8DecodeTD=we.TEXT_DECODER_THRESHOLD=we.utf8DecodeJs=we.utf8EncodeTE=we.TEXT_ENCODER_THRESHOLD=we.utf8EncodeJs=we.utf8Count=void 0;var Ts=Ft(),mr=(typeof process>"u"||((Mn=process==null?void 0:process.env)===null||Mn===void 0?void 0:Mn.TEXT_ENCODING)!=="never")&&typeof TextEncoder<"u"&&typeof TextDecoder<"u";function $a(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}we.utf8Count=$a;function Ka(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}}we.utf8EncodeJs=Ka;var zt=mr?new TextEncoder:void 0;we.TEXT_ENCODER_THRESHOLD=mr?typeof process<"u"&&((An=process==null?void 0:process.env)===null||An===void 0?void 0:An.TEXT_ENCODING)!=="force"?200:0:Ts.UINT32_MAX;function qa(r,e,t){e.set(zt.encode(r),t)}function Wa(r,e,t){zt.encodeInto(r,e.subarray(t))}we.utf8EncodeTE=zt?.encodeInto?Wa:qa;var Va=4096;function Ha(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,x=r[n++]&63,_=(h&7)<<18|l<<12|y<<6|x;_>65535&&(_-=65536,o.push(_>>>10&1023|55296),_=56320|_&1023),o.push(_)}else o.push(h);o.length>=Va&&(c+=String.fromCharCode(...o),o.length=0)}return o.length>0&&(c+=String.fromCharCode(...o)),c}we.utf8DecodeJs=Ha;var Ga=mr?new TextDecoder:null;we.TEXT_DECODER_THRESHOLD=mr?typeof process<"u"&&((Dn=process==null?void 0:process.env)===null||Dn===void 0?void 0:Dn.TEXT_DECODER)!=="force"?200:0:Ts.UINT32_MAX;function Ya(r,e,t){let n=r.subarray(e,e+t);return Ga.decode(n)}we.utf8DecodeTD=Ya});var On=H(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.ExtData=void 0;var Un=class{constructor(e,t){this.type=e,this.data=t}};br.ExtData=Un});var _r=H(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.DecodeError=void 0;var Bn=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=Bn});var Ln=H(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 Ja=_r(),Ps=Ft();Se.EXT_TIMESTAMP=-1;var Xa=4294967296-1,Za=17179869184-1;function Es({sec:r,nsec:e}){if(r>=0&&e>=0&&r<=Za)if(e===0&&r<=Xa){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,Ps.setInt64)(n,4,r),t}}Se.encodeTimeSpecToTimestamp=Es;function ws(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=ws;function Is(r){if(r instanceof Date){let e=ws(r);return Es(e)}else return null}Se.encodeTimestampExtension=Is;function ks(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,Ps.getInt64)(e,4),n=e.getUint32(0);return{sec:t,nsec:n}}default:throw new Ja.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${r.length}`)}}Se.decodeTimestampToTimeSpec=ks;function Rs(r){let e=ks(r);return new Date(e.sec*1e3+e.nsec/1e6)}Se.decodeTimestampExtension=Rs;Se.timestampExtension={type:Se.EXT_TIMESTAMP,encode:Is,decode:Rs}});var Tr=H(Cr=>{"use strict";Object.defineProperty(Cr,"__esModule",{value:!0});Cr.ExtensionCodec=void 0;var Sr=On(),Qa=Ln(),Nt=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(Qa.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 jn=H(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.createDataView=Ct.ensureUint8Array=void 0;function Ms(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=Ms;function ec(r){if(r instanceof ArrayBuffer)return new DataView(r);let e=Ms(r);return new DataView(e.buffer,e.byteOffset,e.byteLength)}Ct.createDataView=ec});var zn=H(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.Encoder=Ye.DEFAULT_INITIAL_BUFFER_SIZE=Ye.DEFAULT_MAX_DEPTH=void 0;var $t=gr(),tc=Tr(),As=Ft(),rc=jn();Ye.DEFAULT_MAX_DEPTH=100;Ye.DEFAULT_INITIAL_BUFFER_SIZE=2048;var Fn=class{constructor(e=tc.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,rc.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,As.setUint64)(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),(0,As.setInt64)(this.view,this.pos,e),this.pos+=8}};Ye.Encoder=Fn});var Ds=H(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.encode=void 0;var nc=zn(),ic={};function sc(r,e=ic){return new nc.Encoder(e.extensionCodec,e.context,e.maxDepth,e.initialBufferSize,e.sortKeys,e.forceFloat32,e.ignoreUndefined,e.forceIntegerToFloat).encodeSharedRef(r)}Pr.encode=sc});var Us=H(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.prettyByte=void 0;function oc(r){return`${r<0?"-":""}0x${Math.abs(r).toString(16).padStart(2,"0")}`}Er.prettyByte=oc});var Os=H(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.CachedKeyDecoder=void 0;var ac=gr(),cc=16,fc=16,Nn=class{constructor(e=cc,t=fc){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,ac.utf8DecodeJs)(e,t,n),c=Uint8Array.prototype.slice.call(e,t,t+n);return this.store(c,o),o}};wr.CachedKeyDecoder=Nn});var Ir=H(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.Decoder=tt.DataViewIndexOutOfBoundsError=void 0;var $n=Us(),dc=Tr(),pt=Ft(),Kn=gr(),qn=jn(),uc=Os(),et=_r(),hc=r=>{let e=typeof r;return e==="string"||e==="number"},Kt=-1,Vn=new DataView(new ArrayBuffer(0)),lc=new Uint8Array(Vn.buffer);tt.DataViewIndexOutOfBoundsError=(()=>{try{Vn.getInt8(0)}catch(r){return r.constructor}throw new Error("never reached")})();var Bs=new tt.DataViewIndexOutOfBoundsError("Insufficient data"),pc=new uc.CachedKeyDecoder,Wn=class{constructor(e=dc.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=Vn,this.bytes=lc,this.headByte=Kt,this.stack=[]}reinitializeState(){this.totalPos=0,this.headByte=Kt,this.stack.length=0}setBuffer(e){this.bytes=(0,qn.ensureUint8Array)(e),this.view=(0,qn.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,qn.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,$n.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,$n.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(!hc(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,$n.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 Bs;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>Kn.TEXT_DECODER_THRESHOLD?o=(0,Kn.utf8DecodeTD)(this.bytes,i,e):o=(0,Kn.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 Bs;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=Wn});var Hn=H(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.decodeMulti=Je.decode=Je.defaultDecodeOptions=void 0;var Ls=Ir();Je.defaultDecodeOptions={};function yc(r,e=Je.defaultDecodeOptions){return new Ls.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decode(r)}Je.decode=yc;function xc(r,e=Je.defaultDecodeOptions){return new Ls.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeMulti(r)}Je.decodeMulti=xc});var zs=H(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.ensureAsyncIterable=ot.asyncIterableFromStream=ot.isAsyncIterable=void 0;function js(r){return r[Symbol.asyncIterator]!=null}ot.isAsyncIterable=js;function mc(r){if(r==null)throw new Error("Assertion Failure: value must not be null nor undefined")}async function*Fs(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=Fs;function gc(r){return js(r)?r:Fs(r)}ot.ensureAsyncIterable=gc});var $s=H(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.decodeStream=Xe.decodeMultiStream=Xe.decodeArrayStream=Xe.decodeAsync=void 0;var Gn=Ir(),Yn=zs(),kr=Hn();async function bc(r,e=kr.defaultDecodeOptions){let t=(0,Yn.ensureAsyncIterable)(r);return new Gn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeAsync(t)}Xe.decodeAsync=bc;function vc(r,e=kr.defaultDecodeOptions){let t=(0,Yn.ensureAsyncIterable)(r);return new Gn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeArrayStream(t)}Xe.decodeArrayStream=vc;function Ns(r,e=kr.defaultDecodeOptions){let t=(0,Yn.ensureAsyncIterable)(r);return new Gn.Decoder(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength).decodeStream(t)}Xe.decodeMultiStream=Ns;function _c(r,e=kr.defaultDecodeOptions){return Ns(r,e)}Xe.decodeStream=_c});var Ws=H(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 Sc=Ds();Object.defineProperty(ee,"encode",{enumerable:!0,get:function(){return Sc.encode}});var Ks=Hn();Object.defineProperty(ee,"decode",{enumerable:!0,get:function(){return Ks.decode}});Object.defineProperty(ee,"decodeMulti",{enumerable:!0,get:function(){return Ks.decodeMulti}});var Rr=$s();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 qs=Ir();Object.defineProperty(ee,"Decoder",{enumerable:!0,get:function(){return qs.Decoder}});Object.defineProperty(ee,"DataViewIndexOutOfBoundsError",{enumerable:!0,get:function(){return qs.DataViewIndexOutOfBoundsError}});var Cc=_r();Object.defineProperty(ee,"DecodeError",{enumerable:!0,get:function(){return Cc.DecodeError}});var Tc=zn();Object.defineProperty(ee,"Encoder",{enumerable:!0,get:function(){return Tc.Encoder}});var Pc=Tr();Object.defineProperty(ee,"ExtensionCodec",{enumerable:!0,get:function(){return Pc.ExtensionCodec}});var Ec=On();Object.defineProperty(ee,"ExtData",{enumerable:!0,get:function(){return Ec.ExtData}});var Tt=Ln();Object.defineProperty(ee,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return Tt.EXT_TIMESTAMP}});Object.defineProperty(ee,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return Tt.encodeDateToTimeSpec}});Object.defineProperty(ee,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return Tt.encodeTimeSpecToTimestamp}});Object.defineProperty(ee,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return Tt.decodeTimestampToTimeSpec}});Object.defineProperty(ee,"encodeTimestampExtension",{enumerable:!0,get:function(){return Tt.encodeTimestampExtension}});Object.defineProperty(ee,"decodeTimestampExtension",{enumerable:!0,get:function(){return Tt.decodeTimestampExtension}})});var Qs=H((Wf,We)=>{var Mr=Ji(),Vs=_s(),Js=Cs(),Hs=Ws();function wc(r){Object.defineProperty(r,"__esModule",{value:!0,configurable:!0})}function Ic(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 Me(r,e,t,n){Object.defineProperty(r,e,{get:t,set:n,enumerable:!0,configurable:!0})}function Gs(r){return r&&r.__esModule?r.default:r}wc(We.exports);Me(We.exports,"default",()=>Ac);Me(We.exports,"util",()=>Re);Me(We.exports,"BufferedConnection",()=>Pt);Me(We.exports,"StreamConnection",()=>jr);Me(We.exports,"MsgPack",()=>Yt);Me(We.exports,"Peer",()=>Gt);Me(We.exports,"MsgPackPeer",()=>ii);Me(We.exports,"PeerError",()=>Or);var Ar=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 kc(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 Jn=Gs(Vs).default||Gs(Vs),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 Jn.browserDetails.browser}getVersion(){return Jn.browserDetails.version||0}isUnifiedPlanSupported(){let r=this.getBrowser(),e=Jn.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}},Ic=r=>!r||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(r),Ys=()=>Math.random().toString(36).slice(2),Hs={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"},Gn=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=Hs,this.browser=Kt.getBrowser(),this.browserVersion=Kt.getVersion(),this.pack=Rr.pack,this.unpack=Rr.unpack,this.supports=(function(){let t={browser:Kt.isBrowserSupported(),webRTC:Kt.isWebRTCSupported(),audioVideo:!1,data:!1,binaryBlob:!1,reliable:!1};if(!t.webRTC)return t;let n;try{n=new RTCPeerConnection(Hs),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=!Kt.isIOS}catch{}}catch{}finally{i&&i.close()}}catch{}finally{n&&n.close()}return t})(),this.validateId=Ic,this.randomToken=Ys}},Re=new Gn,kc="PeerJS: ",Yn=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=[kc,...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 Yn,ft={};Me(ft,"ConnectionType",()=>ct);Me(ft,"PeerErrorType",()=>be);Me(ft,"BaseConnectionErrorType",()=>Jn);Me(ft,"DataConnectionErrorType",()=>oi);Me(ft,"SerializationType",()=>jr);Me(ft,"SocketEventType",()=>at);Me(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})({}),Jn=(function(r){return r.NegotiationFailed="negotiation-failed",r.ConnectionClosed="connection-closed",r})({}),oi=(function(r){return r.NotOpenYet="not-open-yet",r.MessageToBig="message-too-big",r})({}),jr=(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})({}),Js="1.5.5",Xn=class extends Gs.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="+Js),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)}},Ar=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(Jn.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(Jn.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)}},Dr=class extends Gs.EventEmitter{emitError(e,t){B.error("Error:",t),this.emit("error",new Ur(`${e}`,t))}},Ur=class extends Error{constructor(e,t){typeof t=="string"?super(t):(super(),Object.assign(this,t)),this.type=e}},Or=class extends Dr{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}},ri,Wt=class Wt extends Or{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 Ar(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"))}};ri=new WeakMap,Rt(Wt,ri,Wt.ID_PREFIX="mc_");var Br=Wt,Zn=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",Js),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)}}},ni,ii,yt=class yt extends Or{get type(){return ct.Data}constructor(e,t,n){super(e,t,n),this.connectionId=this.options.connectionId||yt.ID_PREFIX+Ys(),this.label=this.options.label||this.connectionId,this.reliable=!!this.options.reliable,this._negotiator=new Ar(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(oi.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}}};ni=new WeakMap,ii=new WeakMap,Rt(yt,ni,yt.ID_PREFIX="dc_"),Rt(yt,ii,yt.MAX_BUFFERED_AMOUNT=8388608);var xt=yt,Pt=class extends xt{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>xt.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}},qt=class extends Pt{close(e){super.close(e),this._chunkedData={}}constructor(e,t,n){super(e,t,n),this.chunker=new Mr,this.serialization=jr.Binary,this._chunkedData={}}_handleDataMessage({data:e}){let t=(0,Rr.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=wc(n.data);this._handleDataMessage({data:i})}}_send(e,t){let n=(0,Rr.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)}},Qn=class extends Pt{_handleDataMessage({data:e}){super.emit("data",e)}_send(e,t){this._bufferedSend(e)}constructor(...e){super(...e),this.serialization=jr.None}},ei=class extends Pt{_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(oi.MessageToBig,"Message too big for JSON channel");return}this._bufferedSend(n)}constructor(...e){super(...e),this.serialization=jr.JSON,this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.stringify=JSON.stringify,this.parse=JSON.parse}},si,Vt=class Vt extends Dr{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:Qn,json:ei,binary:qt,"binary-utf8":qt,default:qt},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:Vt.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 Zn(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 Xn(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 Br(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 Br(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))}};si=new WeakMap,Rt(Vt,si,Vt.DEFAULT_KEY="peerjs");var Ht=Vt,Lr=class extends xt{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<=xt.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=xt.MAX_BUFFERED_AMOUNT/2}},Gt=class extends Lr{constructor(e,t,n){super(e,t,n),this.serialization="MsgPack",this._encoder=new Ws.Encoder,(async()=>{for await(let i of(0,Ws.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))}},ti=class extends Ht{constructor(...e){super(...e),this._serializers={MsgPack:Gt,default:Gt}}},Rc=Ht;Ec(We.exports,ft)});var ci=H((Vf,Zs)=>{var Mc=dr(),ai=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=Xs();return e.Peer||e}catch{return null}}parsePeerJsServerUrl(){let e=new URL(this.url),t=e.protocol==="wss:",n=e.hostname,i=e.port?Number(e.port):t?443:80,o=e.pathname||"/",c=e.searchParams.get("key")||"peerjs";return{secure:t,host:n,port:i,path:o,key:c}}shouldUseWebSocketFallback(){return!this.isCustomPeerImpl&&typeof globalThis.RTCPeerConnection!="function"}useWebSocketFallback(){return this.fallbackProvider||(this.fallbackProvider=new Mc({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}};Zs.exports=ai});var fi=H((Hf,Qs)=>{var Ac=["wss://peerjs.92k.de/peerjs?key=peerjs","wss://0.peerjs.com/peerjs?key=peerjs"],Dc=["wss://relay.dignity.dev/signaling","wss://backup-relay.dignity.dev/signaling"];Qs.exports={DEFAULT_CLOUDFLARE_SIGNALING_URLS:Ac,DEFAULT_SIGNALING_FALLBACK_URLS:Dc}});var ro=H((Gf,to)=>{var Uc=ln(),eo=dr(),Oc=ci(),{DEFAULT_CLOUDFLARE_SIGNALING_URLS:Bc,DEFAULT_SIGNALING_FALLBACK_URLS:Lc}=fi();function jc(r={}){let e=r.cloudflareUrls||Bc,t=r.fallbackUrls||Lc,n=r.WebSocketImpl,i=[];return e.forEach((o,c)=>{let l=/^wss:\/\/(peerjs\.92k\.de|0\.peerjs\.com)(\/|$)/.test(o)?Oc:eo;i.push(new l({id:`cloudflare-${c+1}`,url:o,WebSocketImpl:n,priority:c}))}),t.forEach((o,c)=>{i.push(new eo({id:`fallback-${c+1}`,url:o,WebSocketImpl:n,priority:e.length+c}))}),Array.isArray(r.customProviders)&&i.push(...r.customProviders),new Uc(i)}to.exports=jc});var io=H((Yf,no)=>{var di=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)}},ui=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)}};no.exports={InMemoryNetworkHub:di,InMemoryNetworkAdapter:ui}});var Zc=H((Jf,so)=>{var Fc=Wi(),zc=ro(),Nc=ln(),$c=dr(),Kc=ci(),{InMemoryNetworkHub:qc,InMemoryNetworkAdapter:Wc}=io(),{DEFAULT_CLOUDFLARE_SIGNALING_URLS:Vc,DEFAULT_SIGNALING_FALLBACK_URLS:Hc}=fi(),Gc=on(),Yc=nn(),{MessageSecurityService:Jc,DEFAULT_SECURITY_OPTIONS:Xc}=dn();so.exports={DignityP2P:Fc,createDefaultSignalingPool:zc,SignalingPool:Nc,WebSocketSignalingProvider:$c,PeerJSSignalingProvider:Kc,InMemoryNetworkHub:qc,InMemoryNetworkAdapter:Wc,DEFAULT_CLOUDFLARE_SIGNALING_URLS:Vc,DEFAULT_SIGNALING_FALLBACK_URLS:Hc,VDF:Gc,SlothPermutation:Yc,MessageSecurityService:Jc,DEFAULT_SECURITY_OPTIONS:Xc}});return Zc();})();
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}},Rc=r=>!r||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(r),Xs=()=>Math.random().toString(36).slice(2),Ys={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"},Xn=class extends Ar{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=Ys,this.browser=qt.getBrowser(),this.browserVersion=qt.getVersion(),this.pack=Mr.pack,this.unpack=Mr.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(Ys),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=Rc,this.randomToken=Xs}},Re=new Xn,Mc="PeerJS: ",Zn=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=[Mc,...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 Zn,ft={};Me(ft,"ConnectionType",()=>ct);Me(ft,"PeerErrorType",()=>be);Me(ft,"BaseConnectionErrorType",()=>Qn);Me(ft,"DataConnectionErrorType",()=>fi);Me(ft,"SerializationType",()=>Fr);Me(ft,"SocketEventType",()=>at);Me(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})({}),Qn=(function(r){return r.NegotiationFailed="negotiation-failed",r.ConnectionClosed="connection-closed",r})({}),fi=(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})({}),Zs="1.5.5",ei=class extends Js.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="+Zs),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(Qn.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(Qn.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 Js.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}},si,Vt=class Vt 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||Vt.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"))}};si=new WeakMap,Rt(Vt,si,Vt.ID_PREFIX="mc_");var Lr=Vt,ti=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",Zs),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)}}},oi,ai,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+Xs(),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(fi.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}}};oi=new WeakMap,ai=new WeakMap,Rt(yt,oi,yt.ID_PREFIX="dc_"),Rt(yt,ai,yt.MAX_BUFFERED_AMOUNT=8388608);var xt=yt,Pt=class extends xt{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>xt.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}},Wt=class extends Pt{close(e){super.close(e),this._chunkedData={}}constructor(e,t,n){super(e,t,n),this.chunker=new Ar,this.serialization=Fr.Binary,this._chunkedData={}}_handleDataMessage({data:e}){let t=(0,Mr.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=kc(n.data);this._handleDataMessage({data:i})}}_send(e,t){let n=(0,Mr.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)}},ri=class extends Pt{_handleDataMessage({data:e}){super.emit("data",e)}_send(e,t){this._bufferedSend(e)}constructor(...e){super(...e),this.serialization=Fr.None}},ni=class extends Pt{_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(fi.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}},ci,Ht=class Ht 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:ri,json:ni,binary:Wt,"binary-utf8":Wt,default:Wt},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:Ht.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 ti(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 ei(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))}};ci=new WeakMap,Rt(Ht,ci,Ht.DEFAULT_KEY="peerjs");var Gt=Ht,jr=class extends xt{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<=xt.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=xt.MAX_BUFFERED_AMOUNT/2}},Yt=class extends jr{constructor(e,t,n){super(e,t,n),this.serialization="MsgPack",this._encoder=new Hs.Encoder,(async()=>{for await(let i of(0,Hs.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))}},ii=class extends Gt{constructor(...e){super(...e),this._serializers={MsgPack:Yt,default:Yt}}},Ac=Gt;Ic(We.exports,ft)});var ui=H((Gf,eo)=>{var Dc=ur(),di=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=Qs();return e.Peer||e}catch{return null}}parsePeerJsServerUrl(){let e=new URL(this.url),t=e.protocol==="wss:",n=e.hostname,i=e.port?Number(e.port):t?443:80,o=e.pathname||"/",c=e.searchParams.get("key")||"peerjs";return{secure:t,host:n,port:i,path:o,key:c}}shouldUseWebSocketFallback(){return!this.isCustomPeerImpl&&typeof globalThis.RTCPeerConnection!="function"}useWebSocketFallback(){return this.fallbackProvider||(this.fallbackProvider=new Dc({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}};eo.exports=di});var hi=H((Yf,to)=>{var Uc=["wss://peerjs.92k.de/peerjs?key=peerjs","wss://0.peerjs.com/peerjs?key=peerjs"],Oc=["wss://relay.dignity.dev/signaling","wss://backup-relay.dignity.dev/signaling"];to.exports={DEFAULT_CLOUDFLARE_SIGNALING_URLS:Uc,DEFAULT_SIGNALING_FALLBACK_URLS:Oc}});var io=H((Jf,no)=>{var Bc=xn(),ro=ur(),Lc=ui(),{DEFAULT_CLOUDFLARE_SIGNALING_URLS:jc,DEFAULT_SIGNALING_FALLBACK_URLS:Fc}=hi();function zc(r={}){let e=r.cloudflareUrls||jc,t=r.fallbackUrls||Fc,n=r.WebSocketImpl,i=[];return e.forEach((o,c)=>{let l=/^wss:\/\/(peerjs\.92k\.de|0\.peerjs\.com)(\/|$)/.test(o)?Lc:ro;i.push(new l({id:`cloudflare-${c+1}`,url:o,WebSocketImpl:n,priority:c}))}),t.forEach((o,c)=>{i.push(new ro({id:`fallback-${c+1}`,url:o,WebSocketImpl:n,priority:e.length+c}))}),Array.isArray(r.customProviders)&&i.push(...r.customProviders),new Bc(i)}no.exports=zc});var oo=H((Xf,so)=>{var li=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)}},pi=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)}};so.exports={InMemoryNetworkHub:li,InMemoryNetworkAdapter:pi}});var ef=H((Zf,ao)=>{var Nc=Hi(),$c=io(),Kc=xn(),qc=ur(),Wc=ui(),{InMemoryNetworkHub:Vc,InMemoryNetworkAdapter:Hc}=oo(),{DEFAULT_CLOUDFLARE_SIGNALING_URLS:Gc,DEFAULT_SIGNALING_FALLBACK_URLS:Yc}=hi(),Jc=cn(),Xc=on(),{MessageSecurityService:Zc,DEFAULT_SECURITY_OPTIONS:Qc}=ln();ao.exports={DignityP2P:Nc,createDefaultSignalingPool:$c,SignalingPool:Kc,WebSocketSignalingProvider:qc,PeerJSSignalingProvider:Wc,InMemoryNetworkHub:Vc,InMemoryNetworkAdapter:Hc,DEFAULT_CLOUDFLARE_SIGNALING_URLS:Gc,DEFAULT_SIGNALING_FALLBACK_URLS:Yc,VDF:Jc,SlothPermutation:Xc,MessageSecurityService:Zc,DEFAULT_SECURITY_OPTIONS:Qc}});return ef();})();