var Et=Object.create;var be=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var Lt=Object.getOwnPropertyNames;var Ot=Object.getPrototypeOf,xt=Object.prototype.hasOwnProperty;var Dt=(e,t,r)=>t in e?be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var bt=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Ue=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var kt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Lt(t))!xt.call(e,o)&&o!==r&&be(e,o,{get:()=>t[o],enumerable:!(n=At(t,o))||n.enumerable});return e};var je=(e,t,r)=>(r=e!=null?Et(Ot(e)):{},kt(t||!e||!e.__esModule?be(r,"default",{value:e,enumerable:!0}):r,e));var T=(e,t,r)=>Dt(e,typeof t!="symbol"?t+"":t,r);var Ze=Ue((jr,Se)=>{"use strict";var V=typeof Reflect=="object"?Reflect:null,ze=V&&typeof V.apply=="function"?V.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},ye;V&&typeof V.ownKeys=="function"?ye=V.ownKeys:Object.getOwnPropertySymbols?ye=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:ye=function(t){return Object.getOwnPropertyNames(t)};function Tt(e){console&&console.warn&&console.warn(e)}var Xe=Number.isNaN||function(t){return t!==t};function p(){p.init.call(this)}Se.exports=p;Se.exports.once=Nt;p.EventEmitter=p;p.prototype._events=void 0;p.prototype._eventsCount=0;p.prototype._maxListeners=void 0;var He=10;function ve(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(p,"defaultMaxListeners",{enumerable:!0,get:function(){return He},set:function(e){if(typeof e!="number"||e<0||Xe(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");He=e}});p.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};p.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Xe(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Ge(e){return e._maxListeners===void 0?p.defaultMaxListeners:e._maxListeners}p.prototype.getMaxListeners=function(){return Ge(this)};p.prototype.emit=function(t){for(var r=[],n=1;n0&&(s=r[0]),s instanceof Error)throw s;var c=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw c.context=s,c}var u=i[t];if(u===void 0)return!1;if(typeof u=="function")ze(u,this,r);else for(var f=u.length,h=qe(u,f),n=0;n0&&s.length>o&&!s.warned){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,Tt(c)}return e}p.prototype.addListener=function(t,r){return $e(this,t,r,!1)};p.prototype.on=p.prototype.addListener;p.prototype.prependListener=function(t,r){return $e(this,t,r,!0)};function It(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Ve(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=It.bind(n);return o.listener=r,n.wrapFn=o,o}p.prototype.once=function(t,r){return ve(r),this.on(t,Ve(this,t,r)),this};p.prototype.prependOnceListener=function(t,r){return ve(r),this.prependListener(t,Ve(this,t,r)),this};p.prototype.removeListener=function(t,r){var n,o,i,s,c;if(ve(r),o=this._events,o===void 0)return this;if(n=o[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete o[t],o.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(i=-1,s=n.length-1;s>=0;s--)if(n[s]===r||n[s].listener===r){c=n[s].listener,i=s;break}if(i<0)return this;i===0?n.shift():Ut(n,i),n.length===1&&(o[t]=n[0]),o.removeListener!==void 0&&this.emit("removeListener",t,c||r)}return this};p.prototype.off=p.prototype.removeListener;p.prototype.removeAllListeners=function(t){var r,n,o;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var i=Object.keys(n),s;for(o=0;o=0;o--)this.removeListener(t,r[o]);return this};function Ye(e,t,r){var n=e._events;if(n===void 0)return[];var o=n[t];return o===void 0?[]:typeof o=="function"?r?[o.listener||o]:[o]:r?jt(o):qe(o,o.length)}p.prototype.listeners=function(t){return Ye(this,t,!0)};p.prototype.rawListeners=function(t){return Ye(this,t,!1)};p.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Ke.call(e,t)};p.prototype.listenerCount=Ke;function Ke(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}p.prototype.eventNames=function(){return this._eventsCount>0?ye(this._events):[]};function qe(e,t){for(var r=new Array(t),n=0;n{"use strict";var a={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(e){this.toString=function(){return"CORRUPT: "+this.message},this.message=e},invalid:function(e){this.toString=function(){return"INVALID: "+this.message},this.message=e},bug:function(e){this.toString=function(){return"BUG: "+this.message},this.message=e},notReady:function(e){this.toString=function(){return"NOT READY: "+this.message},this.message=e}}};a.cipher.aes=function(e){this.w[0][0][0]||this.C();var t,r,n,o,i=this.w[0][4],s=this.w[1];t=e.length;var c=1;if(t!==4&&t!==6&&t!==8)throw new a.exception.invalid("invalid aes key size");for(this.b=[n=e.slice(0),o=[]],e=t;e<4*t+28;e++)r=n[e-1],(e%t===0||t===8&&e%t===4)&&(r=i[r>>>24]<<24^i[r>>16&255]<<16^i[r>>8&255]<<8^i[r&255],e%t===0&&(r=r<<8^r>>>24^c<<24,c=c<<1^283*(c>>7))),n[e]=n[e-t]^r;for(t=0;e;t++,e--)r=n[t&3?e:e-4],o[t]=4>=e||4>t?r:s[0][i[r>>>24]]^s[1][i[r>>16&255]]^s[2][i[r>>8&255]]^s[3][i[r&255]]};a.cipher.aes.prototype={encrypt:function(e){return it(this,e,0)},decrypt:function(e){return it(this,e,1)},w:[[[],[],[],[],[]],[[],[],[],[],[]]],C:function(){var e=this.w[0],t=this.w[1],r=e[4],n=t[4],o,i,s,c=[],u=[],f,h,l,y;for(o=0;256>o;o++)u[(c[o]=o<<1^283*(o>>7))^o]=o;for(i=s=0;!r[i];i^=f||1,s=u[s]||1)for(l=s^s<<1^s<<2^s<<3^s<<4,l=l>>8^l&255^99,r[i]=l,n[l]=i,h=c[o=c[f=c[i]]],y=16843009*h^65537*o^257*f^16843008*i,h=257*c[l]^16843008*l,o=0;4>o;o++)e[o][i]=h=h<<24^h>>>8,t[o][l]=y=y<<24^y>>>8;for(o=0;5>o;o++)e[o]=e[o].slice(0),t[o]=t[o].slice(0)}};function it(e,t,r){if(t.length!==4)throw new a.exception.invalid("invalid aes block size");var n=e.b[r],o=t[0]^n[0],i=t[r?3:1]^n[1],s=t[2]^n[2];t=t[r?1:3]^n[3];var c,u,f,h=n.length/4-2,l,y=4,d=[0,0,0,0];c=e.w[r],e=c[0];var g=c[1],k=c[2],C=c[3],N=c[4];for(l=0;l>>24]^g[i>>16&255]^k[s>>8&255]^C[t&255]^n[y],u=e[i>>>24]^g[s>>16&255]^k[t>>8&255]^C[o&255]^n[y+1],f=e[s>>>24]^g[t>>16&255]^k[o>>8&255]^C[i&255]^n[y+2],t=e[t>>>24]^g[o>>16&255]^k[i>>8&255]^C[s&255]^n[y+3],y+=4,o=c,i=u,s=f;for(l=0;4>l;l++)d[r?3&-l:l]=N[o>>>24]<<24^N[i>>16&255]<<16^N[s>>8&255]<<8^N[t&255]^n[y++],c=o,o=i,i=s,s=t,t=c;return d}a.bitArray={bitSlice:function(e,t,r){return e=a.bitArray.Y(e.slice(t/32),32-(t&31)).slice(1),r===void 0?e:a.bitArray.clamp(e,r-t)},extract:function(e,t,r){var n=Math.floor(-t-r&31);return((t+r-1^t)&-32?e[t/32|0]<<32-n^e[t/32+1|0]>>>n:e[t/32|0]>>>n)&(1<>t-1,1)),e},partial:function(e,t,r){return e===32?t:(r?t|0:t<<32-e)+1099511627776*e},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(e,t){if(a.bitArray.bitLength(e)!==a.bitArray.bitLength(t))return!1;var r=0,n;for(n=0;n>>t),r=e[o]<<32-t;return o=e.length?e[e.length-1]:0,e=a.bitArray.getPartial(o),n.push(a.bitArray.partial(t+e&31,32>>24|r>>>8&65280|(r&65280)<<8|r<<24;return e}};a.codec.utf8String={fromBits:function(e){var t="",r=a.bitArray.bitLength(e),n,o;for(n=0;n>>8>>>8>>>8),o<<=8;return decodeURIComponent(escape(t))},toBits:function(e){e=unescape(encodeURIComponent(e));var t=[],r,n=0;for(r=0;r>>o)>>>26),6>o?(s=e[r]<<6-o,o+=26,r++):(s<<=6,o-=6);for(;n.length&3&&!t;)n+="=";return n},toBits:function(e,t){e=e.replace(/\s|=/g,"");var r=[],n,o=0,i=a.codec.base64.S,s=0,c;for(t&&(i=i.substr(0,62)+"-_"),n=0;nc)throw new a.exception.invalid("this isn't base64!");26>>o),s=c<<32-o):(o+=6,s^=c<<32-o)}return o&56&&r.push(a.bitArray.partial(o&56,s,1)),r}};a.codec.base64url={fromBits:function(e){return a.codec.base64.fromBits(e,1,1)},toBits:function(e){return a.codec.base64.toBits(e,1)}};a.hash.sha256=function(e){this.b[0]||this.C(),e?(this.g=e.g.slice(0),this.f=e.f.slice(0),this.c=e.c):this.reset()};a.hash.sha256.hash=function(e){return new a.hash.sha256().update(e).finalize()};a.hash.sha256.prototype={blockSize:512,reset:function(){return this.g=this.o.slice(0),this.f=[],this.c=0,this},update:function(e){typeof e=="string"&&(e=a.codec.utf8String.toBits(e));var t,r=this.f=a.bitArray.concat(this.f,e);if(t=this.c,e=this.c=t+a.bitArray.bitLength(e),9007199254740991t;r++){for(o=!0,n=2;n*n<=r;n++)if(r%n===0){o=!1;break}o&&(8>t&&(this.o[t]=e(Math.pow(r,.5))),this.b[t]=e(Math.pow(r,1/3)),t++)}},l:function(e){var t,r,n,o=this.g,i=this.b,s=o[0],c=o[1],u=o[2],f=o[3],h=o[4],l=o[5],y=o[6],d=o[7];for(t=0;64>t;t++)16>t?r=e[t]:(r=e[t+1&15],n=e[t+14&15],r=e[t&15]=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+e[t&15]+e[t+9&15]|0),r=r+d+(h>>>6^h>>>11^h>>>25^h<<26^h<<21^h<<7)+(y^h&(l^y))+i[t],d=y,y=l,l=h,h=f+r|0,f=u,u=c,c=s,s=r+(c&u^f&(c^u))+(c>>>2^c>>>13^c>>>22^c<<30^c<<19^c<<10)|0;o[0]=o[0]+s|0,o[1]=o[1]+c|0,o[2]=o[2]+u|0,o[3]=o[3]+f|0,o[4]=o[4]+h|0,o[5]=o[5]+l|0,o[6]=o[6]+y|0,o[7]=o[7]+d|0}};a.hash.sha512=function(e){this.b[0]||this.C(),e?(this.g=e.g.slice(0),this.f=e.f.slice(0),this.c=e.c):this.reset()};a.hash.sha512.hash=function(e){return new a.hash.sha512().update(e).finalize()};a.hash.sha512.prototype={blockSize:1024,reset:function(){return this.g=this.o.slice(0),this.f=[],this.c=0,this},update:function(e){typeof e=="string"&&(e=a.codec.utf8String.toBits(e));var t,r=this.f=a.bitArray.concat(this.f,e);if(t=this.c,e=this.c=t+a.bitArray.bitLength(e),9007199254740991r;n++){for(i=!0,o=2;o*o<=n;o++)if(n%o===0){i=!1;break}i&&(8>r&&(this.o[2*r]=e(Math.pow(n,.5)),this.o[2*r+1]=t(Math.pow(n,.5))<<24|this.ia[r]),this.b[2*r]=e(Math.pow(n,1/3)),this.b[2*r+1]=t(Math.pow(n,1/3))<<24|this.ka[r],r++)}},l:function(e){var t,r,n=this.g,o=this.b,i=n[0],s=n[1],c=n[2],u=n[3],f=n[4],h=n[5],l=n[6],y=n[7],d=n[8],g=n[9],k=n[10],C=n[11],N=n[12],le=n[13],Me=n[14],de=n[15],L;if(typeof Uint32Array<"u"){L=Array(160);for(var E=0;32>E;E++)L[E]=e[E]}else L=e;var E=i,D=s,Z=c,H=u,ee=f,X=h,Le=l,te=y,R=d,b=g,pe=k,re=C,me=N,ne=le,Oe=Me,oe=de;for(e=0;80>e;e++){if(16>e)t=L[2*e],r=L[2*e+1];else{r=L[2*(e-15)];var v=L[2*(e-15)+1];t=(v<<31|r>>>1)^(v<<24|r>>>8)^r>>>7;var P=(r<<31|v>>>1)^(r<<24|v>>>8)^(r<<25|v>>>7);r=L[2*(e-2)];var M=L[2*(e-2)+1],v=(M<<13|r>>>19)^(r<<3|M>>>29)^r>>>6,M=(r<<13|M>>>19)^(M<<3|r>>>29)^(r<<26|M>>>6),xe=L[2*(e-7)],De=L[2*(e-16)],ie=L[2*(e-16)+1];r=P+L[2*(e-7)+1],t=t+xe+(r>>>0

>>0?1:0),r+=M,t+=v+(r>>>0>>0?1:0),r+=ie,t+=De+(r>>>0>>0?1:0)}L[2*e]=t|=0,L[2*e+1]=r|=0;var xe=R&pe^~R&me,Te=b&re^~b&ne,M=E&Z^E&ee^Z&ee,gt=D&H^D&X^H&X,De=(D<<4|E>>>28)^(E<<30|D>>>2)^(E<<25|D>>>7),ie=(E<<4|D>>>28)^(D<<30|E>>>2)^(D<<25|E>>>7),wt=o[2*e],Ie=o[2*e+1],v=oe+((R<<18|b>>>14)^(R<<14|b>>>18)^(b<<23|R>>>9)),P=Oe+((b<<18|R>>>14)^(b<<14|R>>>18)^(R<<23|b>>>9))+(v>>>0>>0?1:0),v=v+Te,P=P+(xe+(v>>>0>>0?1:0)),v=v+Ie,P=P+(wt+(v>>>0>>0?1:0)),v=v+r|0,P=P+(t+(v>>>0>>0?1:0));r=ie+gt,t=De+M+(r>>>0>>0?1:0),Oe=me,oe=ne,me=pe,ne=re,pe=R,re=b,b=te+v|0,R=Le+P+(b>>>0>>0?1:0)|0,Le=ee,te=X,ee=Z,X=H,Z=E,H=D,D=v+r|0,E=P+t+(D>>>0>>0?1:0)|0}s=n[1]=s+D|0,n[0]=i+E+(s>>>0>>0?1:0)|0,u=n[3]=u+H|0,n[2]=c+Z+(u>>>0>>0?1:0)|0,h=n[5]=h+X|0,n[4]=f+ee+(h>>>0>>0?1:0)|0,y=n[7]=y+te|0,n[6]=l+Le+(y>>>0>>0?1:0)|0,g=n[9]=g+b|0,n[8]=d+R+(g>>>0>>0?1:0)|0,C=n[11]=C+re|0,n[10]=k+pe+(C>>>0>>0?1:0)|0,le=n[13]=le+ne|0,n[12]=N+me+(le>>>0>>0?1:0)|0,de=n[15]=de+oe|0,n[14]=Me+Oe+(de>>>0>>0?1:0)|0}};a.mode.ccm={name:"ccm",F:[],listenProgress:function(e){a.mode.ccm.F.push(e)},unListenProgress:function(e){e=a.mode.ccm.F.indexOf(e),-1u)throw new a.exception.invalid("ccm: iv must be at least 7 bytes");for(i=2;4>i&&f>>>8*i;i++);return i<15-u&&(i=15-u),r=c.clamp(r,8*(15-i)),t=a.mode.ccm.U(e,t,r,n,o,i),s=a.mode.ccm.V(e,s,r,t,o,i),c.concat(s.data,s.tag)},decrypt:function(e,t,r,n,o){o=o||64,n=n||[];var i=a.bitArray,s=i.bitLength(r)/8,f=i.bitLength(t),c=i.clamp(t,f-o),u=i.bitSlice(t,f-o),f=(f-o)/8;if(7>s)throw new a.exception.invalid("ccm: iv must be at least 7 bytes");for(t=2;4>t&&f>>>8*t;t++);if(t<15-s&&(t=15-s),r=i.clamp(r,8*(15-t)),c=a.mode.ccm.V(e,c,r,u,o,t),e=a.mode.ccm.U(e,c.data,r,n,o,t),!i.equal(c.tag,e))throw new a.exception.corrupt("ccm: tag doesn't match");return c.data},ma:function(e,t,r,n,o,i){var s=[],c=a.bitArray,u=c.P;if(n=[c.partial(8,(t.length?64:0)|n-2<<2|i-1)],n=c.concat(n,r),n[3]|=o,n=e.encrypt(n),t.length)for(r=c.bitLength(t)/8,65279>=r?s=[c.partial(16,r)]:4294967295>=r&&(s=c.concat([c.partial(16,65534)],[r])),s=c.concat(s,t),t=0;to||16h&&(a.mode.ccm.da(s/u),h+=l),r[3]++,o=e.encrypt(r),t[s]^=o[0],t[s+1]^=o[1],t[s+2]^=o[2],t[s+3]^=o[3];return{tag:n,data:c.clamp(t,f)}}};a.misc.hmac=function(e,t){this.W=t=t||a.hash.sha256;var r=[[],[]],n,o=t.prototype.blockSize/32;for(this.B=[new t,new t],e.length>o&&(e=t.hash(e)),n=0;nn||0>r)throw new a.exception.invalid("invalid params to pbkdf2");typeof e=="string"&&(e=a.codec.utf8String.toBits(e)),typeof t=="string"&&(t=a.codec.utf8String.toBits(t)),o=o||a.misc.hmac,e=new o(e);var i,s,c,u,f=[],h=a.bitArray;for(u=1;32*f.length<(n||1);u++){for(o=i=e.encrypt(h.concat(t,[u])),s=1;ss;s++)o.push(4294967296*Math.random()|0);for(s=0;s=1<this.u&&(this.u=i),this.N++,this.b=a.hash.sha256.hash(this.b.concat(o)),this.K=new a.cipher.aes(this.b),n=0;4>n&&(this.m[n]=this.m[n]+1|0,!this.m[n]);n++);}for(n=0;n>>1;this.h[s].update([n,this.M++,2,t,i,e.length].concat(e))}break;case"string":t===void 0&&(t=e.length),this.h[s].update([n,this.M++,3,t,i,e.length]),this.h[s].update(e);break;default:u=1}if(u)throw new a.exception.bug("random: addEntropy only supports number, array of numbers or string");this.s[s]+=t,this.i+=t,c===this.A&&(this.isReady()!==this.A&&st("seeded",Math.max(this.u,this.i)),st("progress",this.getProgress()))},isReady:function(e){return e=this.R[e!==void 0?e:this.L],this.u&&this.u>=e?this.s[0]>this.$&&new Date().valueOf()>this.X?this.I|this.H:this.H:this.i>=e?this.I|this.A:this.A},getProgress:function(e){return e=this.R[e||this.L],this.u>=e||this.i>e?1:this.i/e},startCollectors:function(){if(!this.D){if(this.a={loadTimeCollector:ue(this,this.la),mouseCollector:ue(this,this.na),keyboardCollector:ue(this,this.ja),accelerometerCollector:ue(this,this.ca),touchCollector:ue(this,this.pa)},window.addEventListener)window.addEventListener("load",this.a.loadTimeCollector,!1),window.addEventListener("mousemove",this.a.mouseCollector,!1),window.addEventListener("keypress",this.a.keyboardCollector,!1),window.addEventListener("devicemotion",this.a.accelerometerCollector,!1),window.addEventListener("touchmove",this.a.touchCollector,!1);else if(document.attachEvent)document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector);else throw new a.exception.bug("can't attach event");this.D=!0}},stopCollectors:function(){this.D&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,!1),window.removeEventListener("mousemove",this.a.mouseCollector,!1),window.removeEventListener("keypress",this.a.keyboardCollector,!1),window.removeEventListener("devicemotion",this.a.accelerometerCollector,!1),window.removeEventListener("touchmove",this.a.touchCollector,!1)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.D=!1)},addEventListener:function(e,t){this.J[e][this.ea++]=t},removeEventListener:function(e,t){var r,n,o=this.J[e],i=[];for(n in o)o.hasOwnProperty(n)&&o[n]===t&&i.push(n);for(r=0;rt&&(e.m[t]=e.m[t]+1|0,!e.m[t]);t++);return e.K.encrypt(e.m)}function ue(e,t){return function(){t.apply(e,arguments)}}a.random=new a.prng(6);e:try{if(we=typeof q<"u"&&q.exports){try{Ee=bt("crypto")}catch{Ee=null}we=ge=Ee}if(we&&ge.randomBytes)fe=ge.randomBytes(128),fe=new Uint32Array(new Uint8Array(fe).buffer),a.random.addEntropy(fe,1024,"crypto['randomBytes']");else if(typeof window<"u"&&typeof Uint32Array<"u"){if(he=new Uint32Array(32),window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(he);else if(window.msCrypto&&window.msCrypto.getRandomValues)window.msCrypto.getRandomValues(he);else break e;a.random.addEntropy(he,1024,"crypto['getRandomValues']")}}catch(e){typeof window<"u"&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(e))}var fe,ge,he,we,Ee;a.json={defaults:{v:1,iter:1e4,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},ha:function(e,t,r,n){r=r||{},n=n||{};var o=a.json,i=o.j({iv:a.random.randomWords(4,0)},o.defaults),s;if(o.j(i,r),r=i.adata,typeof i.salt=="string"&&(i.salt=a.codec.base64.toBits(i.salt)),typeof i.iv=="string"&&(i.iv=a.codec.base64.toBits(i.iv)),!a.mode[i.mode]||!a.cipher[i.cipher]||typeof e=="string"&&100>=i.iter||i.ts!==64&&i.ts!==96&&i.ts!==128||i.ks!==128&&i.ks!==192&&i.ks!==256||2>i.iv.length||4=t.iter||t.ts!==64&&t.ts!==96&&t.ts!==128||t.ks!==128&&t.ks!==192&&t.ks!==256||!t.iv||2>t.iv.length||4{let n=t.isOk()?{type:"Ok",value:t.value}:{type:"Err",value:t.error},o=r.withStackTrace?new Error().stack:void 0;return{data:n,message:e,stack:o}};function G(e,t,r,n){function o(i){return i instanceof r?i:new r(function(s){s(i)})}return new(r||(r=Promise))(function(i,s){function c(h){try{f(n.next(h))}catch(l){s(l)}}function u(h){try{f(n.throw(h))}catch(l){s(l)}}function f(h){h.done?i(h.value):o(h.value).then(c,u)}f((n=n.apply(e,t||[])).next())})}function Ne(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function I(e){return this instanceof I?(this.v=e,this):new I(e)}function Be(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),c("next"),c("throw"),c("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(d){return function(g){return Promise.resolve(g).then(d,l)}}function c(d,g){n[d]&&(o[d]=function(k){return new Promise(function(C,N){i.push([d,k,C,N])>1||u(d,k)})},g&&(o[d]=g(o[d])))}function u(d,g){try{f(n[d](g))}catch(k){y(i[0][3],k)}}function f(d){d.value instanceof I?Promise.resolve(d.value.v).then(h,l):y(i[0][2],d)}function h(d){u("next",d)}function l(d){u("throw",d)}function y(d,g){d(g),i.shift(),i.length&&u(i[0][0],i[0][1])}}function _t(e){var t,r;return t={},n("next"),n("throw",function(o){throw o}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(o,i){t[o]=e[o]?function(s){return(r=!r)?{value:I(e[o](s)),done:!1}:i?i(s):s}:i}}function Ct(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Ne=="function"?Ne(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[i]=e[i]&&function(s){return new Promise(function(c,u){s=e[i](s),o(c,u,s.done,s.value)})}}function o(i,s,c,u){Promise.resolve(u).then(function(f){i({value:f,done:c})},s)}}var A=class e{constructor(t){this._promise=t}static fromSafePromise(t){let r=t.then(n=>new S(n));return new e(r)}static fromPromise(t,r){let n=t.then(o=>new S(o)).catch(o=>new _(r(o)));return new e(n)}static fromThrowable(t,r){return(...n)=>new e(G(this,void 0,void 0,function*(){try{return new S(yield t(...n))}catch(o){return new _(r?r(o):o)}}))}static combine(t){return Rt(t)}static combineWithAllErrors(t){return Pt(t)}map(t){return new e(this._promise.then(r=>G(this,void 0,void 0,function*(){return r.isErr()?new _(r.error):new S(yield t(r.value))})))}andThrough(t){return new e(this._promise.then(r=>G(this,void 0,void 0,function*(){if(r.isErr())return new _(r.error);let n=yield t(r.value);return n.isErr()?new _(n.error):new S(r.value)})))}andTee(t){return new e(this._promise.then(r=>G(this,void 0,void 0,function*(){if(r.isErr())return new _(r.error);try{yield t(r.value)}catch{}return new S(r.value)})))}mapErr(t){return new e(this._promise.then(r=>G(this,void 0,void 0,function*(){return r.isOk()?new S(r.value):new _(yield t(r.error))})))}andThen(t){return new e(this._promise.then(r=>{if(r.isErr())return new _(r.error);let n=t(r.value);return n instanceof e?n._promise:n}))}orElse(t){return new e(this._promise.then(r=>G(this,void 0,void 0,function*(){return r.isErr()?t(r.error):new S(r.value)})))}match(t,r){return this._promise.then(n=>n.match(t,r))}unwrapOr(t){return this._promise.then(r=>r.unwrapOr(t))}safeUnwrap(){return Be(this,arguments,function*(){return yield I(yield I(yield*_t(Ct(yield I(this._promise.then(r=>r.safeUnwrap()))))))})}then(t,r){return this._promise.then(t,r)}[Symbol.asyncIterator](){return Be(this,arguments,function*(){let r=yield I(this._promise);return r.isErr()&&(yield yield I(O(r.error))),yield I(r.value)})}},U=e=>new A(Promise.resolve(new S(e))),O=e=>new A(Promise.resolve(new _(e))),fr=A.fromPromise,hr=A.fromSafePromise,lr=A.fromThrowable,Fe=e=>{let t=J([]);for(let r of e)if(r.isErr()){t=B(r.error);break}else t.map(n=>n.push(r.value));return t},Rt=e=>A.fromSafePromise(Promise.all(e)).andThen(Fe),Je=e=>{let t=J([]);for(let r of e)r.isErr()&&t.isErr()?t.error.push(r.error):r.isErr()&&t.isOk()?t=B([r.error]):r.isOk()&&t.isOk()&&t.value.push(r.value);return t},Pt=e=>A.fromSafePromise(Promise.all(e)).andThen(Je),ke;(function(e){function t(o,i){return(...s)=>{try{let c=o(...s);return J(c)}catch(c){return B(i?i(c):c)}}}e.fromThrowable=t;function r(o){return Fe(o)}e.combine=r;function n(o){return Je(o)}e.combineWithAllErrors=n})(ke||(ke={}));var J=e=>new S(e);function B(e){return new _(e)}var S=class{constructor(t){this.value=t}isOk(){return!0}isErr(){return!this.isOk()}map(t){return J(t(this.value))}mapErr(t){return J(this.value)}andThen(t){return t(this.value)}andThrough(t){return t(this.value).map(r=>this.value)}andTee(t){try{t(this.value)}catch{}return J(this.value)}orElse(t){return J(this.value)}asyncAndThen(t){return t(this.value)}asyncAndThrough(t){return t(this.value).map(()=>this.value)}asyncMap(t){return A.fromSafePromise(t(this.value))}unwrapOr(t){return this.value}match(t,r){return t(this.value)}safeUnwrap(){let t=this.value;return function*(){return t}()}_unsafeUnwrap(t){return this.value}_unsafeUnwrapErr(t){throw We("Called `_unsafeUnwrapErr` on an Ok",this,t)}*[Symbol.iterator](){return this.value}},_=class{constructor(t){this.error=t}isOk(){return!1}isErr(){return!this.isOk()}map(t){return B(this.error)}mapErr(t){return B(t(this.error))}andThrough(t){return B(this.error)}andTee(t){return B(this.error)}andThen(t){return B(this.error)}orElse(t){return t(this.error)}asyncAndThen(t){return O(this.error)}asyncAndThrough(t){return O(this.error)}asyncMap(t){return O(this.error)}unwrapOr(t){return t}match(t,r){return r(this.error)}safeUnwrap(){let t=this.error;return function*(){throw yield B(t),new Error("Do not use this generator out of `safeTry`")}()}_unsafeUnwrap(t){throw We("Called `_unsafeUnwrap` on an Err",this,t)}_unsafeUnwrapErr(t){return this.error}*[Symbol.iterator](){let t=this;return yield t,t}},dr=ke.fromThrowable;var F=class extends Error{constructor(r,n={}){let{cause:o,context:i}=n;super(r,{cause:o});T(this,"context");this.name=this.constructor.name,this.context=i}};var j=class extends F{};var se=class extends j{constructor(){super(...arguments);T(this,"message","An error occured while trying to connect to WebSocket")}};var z=e=>{if(e instanceof Error)return e;let t="[Unable to stringify the thrown value]";try{t=JSON.stringify(e)}catch{}return new Error(t)};var Mt=()=>typeof Deno<"u";var $=e=>Mt()?new URL(`./worker/${e}.ts`,new URL(".",import.meta.url).href):new URL(import.meta.resolve(`./${e==="main"?`worker/${e}`:e}.js`));var rt=je(Ze());var m=new rt.default,w,et=!1;self.onmessage=e=>{Ft(e),et||(et=!0,m.once("OPERATION_FAILED",()=>{w&&w.terminate()}))};var Y=(e,t)=>(Object.assign(e,t),typeof WorkerGlobalScope<"u"&&self.postMessage({event:"FILE_UPDATED",lufiFile:e}),e);var Ft=(e,t)=>{let{action:r}=e.data;if(r===5||r===8)w.postMessage(e.data);else{switch(r){case 2:w=new Worker($("cancel"),{type:"module"}),w.postMessage(e.data);break;case 3:w=new Worker($("download"),{type:"module"}),w.postMessage(e.data);break;case 4:w=new Worker($("infos"),{type:"module"}),w.postMessage(e.data);break;case 7:w=w||new Worker($("remove"),{type:"module"}),w.postMessage(e.data);break;case 9:w=w||new Worker($("upload"),{type:"module"}),w.postMessage(e.data);break;default:console.error("Action not found")}w.onmessage=n=>{t&&t(n),self.postMessage(n.data)},w.onerror=n=>{console.error(`Error: ${n.message}`)}}},nt=()=>{m.once("SOCKET_OPENED",()=>{self.postMessage({event:"SOCKET_OPENED"})}),m.once("OPERATION_FAILED",e=>{self.postMessage({event:"OPERATION_FAILED",error:e})})};var K=class{constructor(t,r){if(!t||t.length!=64)throw Error("Charset must contain 64 characters");this._charset=t,this._noPadding=!!r,this._valid=new RegExp("^["+this._charset.replace("-","\\-")+"]+={0,2}$")}Encode(t){let r=t.byteLength;if(!r)return"";let n=new Uint8Array(t),o="";for(let i=0;i>2]+this._charset[(n[i]&3)<<4|n[i+1]>>4]+this._charset[(n[i+1]&15)<<2|n[i+2]>>6]+this._charset[n[i+2]&63];return r%3==2?(o=o.substring(0,o.length-1),this._noPadding||(o+="=")):r%3==1&&(o=o.substring(0,o.length-2),this._noPadding||(o+="==")),o}Decode(t){if(t=(t||"").replace(/[\s]/g,""),!t)return new ArrayBuffer(0);if(!this._valid.test(t))throw Error("Invalid base64 input sequence");let r=Math.floor(t.length*.75);t[t.length-2]=="="?r-=2:t[t.length-1]=="="&&r--;let n=new Uint8Array(r),o,i,s,c,u=0,f=0;for(;u>4,n[u++]=(i&15)<<4|s>>2,n[u++]=(s&3)<<6|c;return n.buffer}};var Jt=new K("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");function ae(e){return Jt.Decode(e)}var zt=new K("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",!0);function _e(e){return zt.Decode(e)}var ft=je(ct());var W=class extends F{};var Q=class extends W{constructor(){super(...arguments);T(this,"message","Unable to decrypt the provided data")}};var ht=(e,t)=>{try{let r=typeof t=="string"?t:t.data;return U(ae(ft.default.decrypt(e,r)))}catch(r){return O(new Q(void 0,{cause:z(r)}))}};var lt=(e,t)=>Vt(e).andThen(r=>A.fromPromise(crypto.subtle.decrypt({name:"AES-GCM",iv:t.iv},r,ae(t.data)),n=>new Q(void 0,{cause:z(n)})));var Vt=e=>A.fromPromise(crypto.subtle.importKey("raw",_e(e),{name:"AES-GCM"},!1,["encrypt","decrypt"]),t=>new W("Unable to import cryptography key",{cause:z(t)}));var dt=(e,t)=>t.algo===void 0||t.algo===0?ht(e,t):lt(e,t);var x={},pt=5,qt=e=>(m.emit("UPLOAD_CANCELLED",e.success),U(void 0)),Qt=(e,t)=>{let r=e.split("XXMOJOXX"),n=r.shift();if(n!==void 0){let o=JSON.parse(n);if(sr(o)){let i=r.shift();if(i){let s=JSON.parse(i);return s.iv&&(s.iv=new Uint8Array(Object.values(s.iv))),dt(t.keys.client,s).andThen(c=>{let u=typeof c=="string"?new TextEncoder().encode(c).buffer:c;return o.part===0?(Y(t,{chunksReady:t.chunksReady+1,delAtFirstView:o.del_at_first_view,delay:o.delay,name:o.name,size:o.size,totalChunks:o.total,type:o.type,zipped:o.zipped}),m.emit("DOWNLOAD_STARTED")):Y(t,{chunksReady:t.chunksReady+1}),m.emit("CHUNK_DOWNLOADED",u,o.part),++o.part===o.total?rr(t).andThen(()=>(m.emit("DOWNLOAD_COMPLETE"),m.emit("SOCKET_OPERATION_TERMINATED"),U(void 0))):U(void 0)})}else{let s=new j("Cannot retrieve metadata from data received by the server");return m.emit("OPERATION_FAILED",s),O(s)}}else{let i=new j(o.msg);return m.emit("OPERATION_FAILED",i),O(i)}}else{let o=new j("Cannot retrieve metadata from data received by the server");return m.emit("OPERATION_FAILED",o),O(o)}},Zt=(e,t)=>{if(e.success)return e.j===0&&(Y(t,{keys:{client:t.keys.client,server:e.short},actionToken:e.token,queueIndex:e.i}),m.emit("UPLOAD_STARTED")),Y(t,{chunksReady:t.chunksReady+1,createdAt:e.created_at}),m.emit("CHUNK_UPLOADED"),t.chunksReady===t.totalChunks&&(Y(t,{uploadStatus:1}),m.emit("UPLOAD_COMPLETE"),m.emit("SOCKET_OPERATION_TERMINATED")),U(void 0);{let r=new j(e.msg);return m.emit("OPERATION_FAILED",r),O(r)}},er=(e,t)=>{let r=ir(e.data),n;if(r)if(!r.action&&r.msg){let o=new j(r.msg);return m.emit("OPERATION_FAILED",o),O(o)}else"delay"in r?n=Zt(r,t):n=qt(r);else n=Qt(e.data,t);return n},tr=e=>x!==void 0&&x[e]!==void 0&&x[e].readyState===WebSocket.CONNECTING,Re=e=>x!==void 0&&x[e]!==void 0&&x[e].readyState===WebSocket.OPEN;var mt=(e,t)=>{let r;return e.password?r={part:t,file_pwd:e.password}:r={part:t},Pe(Ae(e),e,JSON.stringify(r))},rr=e=>{let t;return e.password?t={ended:!0,file_pwd:e.password}:t={ended:!0},Pe(Ae(e),e,JSON.stringify(t))};var Pe=(e,t,r)=>Re(e)?(x[e].onmessage=n=>er(n,t),x[e].send(r),U(void 0)):yt(e).andThen(()=>Pe(e,t,r)),yt=(e,t=0)=>(!Re(e)&&!tr(e)&&(x[e]=new WebSocket(e),m.once("SOCKET_OPERATION_TERMINATED",()=>{x[e].close()}),m.once("OPERATION_FAILED",()=>{m.emit("SOCKET_OPERATION_TERMINATED")}),x[e].onopen=()=>{m.emit("SOCKET_OPENED")},x[e].onclose=()=>{},x[e].onerror=()=>++t<=pt?(console.error(`An error happened while trying to connect to WebSocket ${e}. Trying again. ${t} / ${pt}`),yt(e,t)):(m.emit("SOCKET_ONERROR"),O(new se(`Unable to connect to WebSocket ${e}.`)))),nr(e).andThen(()=>U(e)).orElse(r=>O(r))),nr=e=>A.fromPromise(new Promise((t,r)=>{Re(e)?t(void 0):(m.once("SOCKET_OPENED",()=>{t(void 0)}),m.on("SOCKET_ONERROR",()=>{r(new se)}))}),t=>z(t));var or=(e,t)=>{let r=new URL(e);return r.protocol=r.protocol==="http:"?"ws:":"wss:",r.pathname+=t,new URL(r.origin+r.pathname)},Ae=e=>or(new URL(e.serverUrl),"download"+`/${e.keys.server}`).toString();var ir=e=>{try{let t=JSON.parse(e);if(t&&typeof t=="object")return t}catch{}return!1},sr=e=>typeof e=="object"&&e!==null&&!("msg"in e);var vt=!1;self.onmessage=e=>{vt||(nt(),vt=!0),m.on("DOWNLOAD_STARTED",()=>{x[Ae(e.data.args.lufiFile)].close(),self.postMessage({event:"INFOS_RETRIEVED"})}),cr(e.data).mapErr(t=>{self.postMessage({event:"OPERATION_FAILED",error:t})})};var cr=e=>mt(e.args.lufiFile,0);