@protontech/openpgp 5.3.1 → 5.5.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.
- package/dist/lightweight/bn.interface.min.mjs +1 -1
- package/dist/lightweight/bn.interface.mjs +1 -1
- package/dist/lightweight/bn.min.mjs +1 -1
- package/dist/lightweight/bn.mjs +1 -1
- package/dist/lightweight/elliptic.min.mjs +1 -1
- package/dist/lightweight/elliptic.mjs +1 -1
- package/dist/lightweight/openpgp.min.mjs +2 -2
- package/dist/lightweight/openpgp.min.mjs.map +1 -1
- package/dist/lightweight/openpgp.mjs +53 -42
- package/dist/lightweight/ponyfill.es6.min.mjs +1 -1
- package/dist/lightweight/ponyfill.es6.mjs +1 -1
- package/dist/lightweight/web-streams-adapter.min.mjs +1 -1
- package/dist/lightweight/web-streams-adapter.mjs +1 -1
- package/dist/node/openpgp.js +53 -42
- package/dist/node/openpgp.min.js +3 -3
- package/dist/node/openpgp.min.js.map +1 -1
- package/dist/node/openpgp.min.mjs +3 -3
- package/dist/node/openpgp.min.mjs.map +1 -1
- package/dist/node/openpgp.mjs +53 -42
- package/dist/openpgp.js +53 -42
- package/dist/openpgp.min.js +3 -3
- package/dist/openpgp.min.js.map +1 -1
- package/dist/openpgp.min.mjs +3 -3
- package/dist/openpgp.min.mjs.map +1 -1
- package/dist/openpgp.mjs +53 -42
- package/openpgp.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! OpenPGP.js v5.
|
|
2
|
-
const e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=Symbol("doneWritingPromise"),r=Symbol("doneWritingResolve"),n=Symbol("doneWritingReject"),i=Symbol("readingIndex");class a extends Array{constructor(){super(),this[t]=new Promise(((e,t)=>{this[r]=e,this[n]=t})),this[t].catch((()=>{}))}}function s(e){return e&&e.getReader&&Array.isArray(e)}function o(e){if(!s(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch((function(){})),r.call(t)},t}this.stream=e}a.prototype.getReader=function(){return void 0===this[i]&&(this[i]=0),{read:async()=>(await this[t],this[i]===this.length?{value:void 0,done:!0}:{value:this[this[i]++],done:!1})}},a.prototype.readToEnd=async function(e){await this[t];const r=e(this.slice(this[i]));return this.length=0,r},a.prototype.clone=function(){const e=new a;return e[t]=this[t].then((()=>{e.push(...this)})),e},o.prototype.write=async function(e){this.stream.push(e)},o.prototype.close=async function(){this.stream[r]()},o.prototype.abort=async function(e){return this.stream[n](e),e},o.prototype.releaseLock=function(){};const c="object"==typeof e.process&&"object"==typeof e.process.versions,h=c&&void 0;function u(t){return s(t)?"array":e.ReadableStream&&e.ReadableStream.prototype.isPrototypeOf(t)?"web":A&&A.prototype.isPrototypeOf(t)?"ponyfill":h&&h.prototype.isPrototypeOf(t)?"node":!(!t||!t.getReader)&&"web-like"}function l(e){return Uint8Array.prototype.isPrototypeOf(e)}function y(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!l(e[r]))throw Error("concatUint8Array: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((function(e){r.set(e,n),n+=e.length})),r}const p=c&&void 0,d=c&&void 0;let f,g;if(d){f=function(e){let t=!1;return new A({start(r){e.pause(),e.on("data",(n=>{t||(p.isBuffer(n)&&(n=new Uint8Array(n.buffer,n.byteOffset,n.byteLength)),r.enqueue(n),e.pause())})),e.on("end",(()=>{t||r.close()})),e.on("error",(e=>r.error(e)))},pull(){e.resume()},cancel(r){t=!0,e.destroy(r)}})};class e extends d{constructor(e,t){super(t),this._reader=D(e)}async _read(e){try{for(;;){const{done:e,value:t}=await this._reader.read();if(e){this.push(null);break}if(!this.push(t)||this._cancelling){this._reading=!1;break}}}catch(e){this.emit("error",e)}}_destroy(e){this._reader.cancel(e)}}g=function(t,r){return new e(t,r)}}const m=new WeakSet,w=Symbol("externalBuffer");function b(e){if(this.stream=e,e[w]&&(this[w]=e[w].slice()),s(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}let t=u(e);if("node"===t&&(e=f(e)),t){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch((function(){})),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let r=!1;this._read=async()=>r||m.has(e)?{value:void 0,done:!0}:(r=!0,{value:e,done:!1}),this._releaseLock=()=>{if(r)try{m.add(e)}catch(e){}}}b.prototype.read=async function(){if(this[w]&&this[w].length){return{done:!1,value:this[w].shift()}}return this._read()},b.prototype.releaseLock=function(){this[w]&&(this.stream[w]=this[w]),this._releaseLock()},b.prototype.cancel=function(e){return this._cancel(e)},b.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?U(t):void 0;const i=n.indexOf("\n")+1;i&&(e=U(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},b.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(F(t,1)),r},b.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?U(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=U(t);return this.unshift(F(r,e)),F(r,0,e)}}},b.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},b.prototype.unshift=function(...e){this[w]||(this[w]=[]),1===e.length&&l(e[0])&&this[w].length&&e[0].length&&this[w][0].byteOffset>=e[0].length?this[w][0]=new Uint8Array(this[w][0].buffer,this[w][0].byteOffset-e[0].length,this[w][0].byteLength+e[0].length):this[w].unshift(...e.filter((e=>e&&e.length)))},b.prototype.readToEnd=async function(e=U){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};let k,v,{ReadableStream:A,WritableStream:_,TransformStream:E}=e;async function S(){if(E)return;const[t,r]=await Promise.all([import("./ponyfill.es6.min.mjs"),import("./web-streams-adapter.min.mjs")]);({ReadableStream:A,WritableStream:_,TransformStream:E}=t);const{createReadableStreamWrapper:n}=r;e.ReadableStream&&A!==e.ReadableStream&&(k=n(A),v=n(e.ReadableStream))}const K=c&&void 0;function x(e){let t=u(e);return"node"===t?f(e):"web"===t&&k?k(e):t?e:new A({start(t){t.enqueue(e),t.close()}})}function P(e){if(u(e))return e;const t=new a;return(async()=>{const r=C(t);await r.write(e),await r.close()})(),t}function U(e){return e.some((e=>u(e)&&!s(e)))?function(e){e=e.map(x);const t=T((async function(e){await Promise.all(n.map((t=>H(t,e))))}));let r=Promise.resolve();const n=e.map(((n,i)=>R(n,((n,a)=>(r=r.then((()=>I(n,t.writable,{preventClose:i!==e.length-1}))),r)))));return t.readable}(e):e.some((e=>s(e)))?function(e){const t=new a;let r=Promise.resolve();return e.forEach(((n,i)=>(r=r.then((()=>I(n,t,{preventClose:i!==e.length-1}))),r))),t}(e):"string"==typeof e[0]?e.join(""):K&&K.isBuffer(e[0])?K.concat(e):y(e)}function D(e){return new b(e)}function C(e){return new o(e)}async function I(e,t,{preventClose:r=!1,preventAbort:n=!1,preventCancel:i=!1}={}){if(u(e)&&!s(e)){e=x(e);try{if(e[w]){const r=C(t);for(let t=0;t<e[w].length;t++)await r.ready,await r.write(e[w][t]);r.releaseLock()}await e.pipeTo(t,{preventClose:r,preventAbort:n,preventCancel:i})}catch(e){}return}const a=D(e=P(e)),o=C(t);try{for(;;){await o.ready;const{done:e,value:t}=await a.read();if(e){r||await o.close();break}await o.write(t)}}catch(e){n||await o.abort(e)}finally{a.releaseLock(),o.releaseLock()}}function B(e,t){const r=new E(t);return I(e,r.writable),r.readable}function T(e){let t,r,n=!1;return{readable:new A({start(e){r=e},pull(){t?t():n=!0},cancel:e},{highWaterMark:0}),writable:new _({write:async function(e){r.enqueue(e),n?n=!1:(await new Promise((e=>{t=e})),t=null)},close:r.close.bind(r),abort:r.error.bind(r)})}}function z(e,t=(()=>{}),r=(()=>{})){if(s(e)){const n=new a;return(async()=>{const i=C(n);try{const n=await j(e),a=t(n),s=r();let o;o=void 0!==a&&void 0!==s?U([a,s]):void 0!==a?a:s,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if(u(e))return B(e,{async transform(e,r){try{const n=await t(e);void 0!==n&&r.enqueue(n)}catch(e){r.error(e)}},async flush(e){try{const t=await r();void 0!==t&&e.enqueue(t)}catch(t){e.error(t)}}});const n=t(e),i=r();return void 0!==n&&void 0!==i?U([n,i]):void 0!==n?n:i}function R(e,t){if(u(e)&&!s(e)){let r;const n=new E({start(e){r=e}}),i=I(e,n.writable),a=T((async function(e){r.error(e),await i,await new Promise(setTimeout)}));return t(n.readable,a.writable),a.readable}e=P(e);const r=new a;return t(e,r),r}function M(e,t){let r;const n=R(e,((e,i)=>{const a=D(e);a.remainder=()=>(a.releaseLock(),I(e,i),n),r=t(a)}));return r}function N(e){if(s(e))return e.clone();if(u(e)){const t=function(e){if(s(e))throw Error("ArrayStream cannot be tee()d, use clone() instead");if(u(e)){const t=x(e).tee();return t[0][w]=t[1][w]=e[w],t}return[F(e),F(e)]}(e);return L(e,t[0]),t[1]}return F(e)}function O(e){return s(e)?N(e):u(e)?new A({start(t){const r=R(e,(async(e,r)=>{const n=D(e),i=C(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}}));L(e,r)}}):F(e)}function L(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach((([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))}))}function F(e,t=0,r=1/0){if(s(e))throw Error("Not implemented");if(u(e)){if(t>=0&&r>=0){let n=0;return B(e,{transform(e,i){n<r?(n+e.length>=t&&i.enqueue(F(e,Math.max(t-n,0),r-n)),n+=e.length):i.terminate()}})}if(t<0&&(r<0||r===1/0)){let n=[];return z(e,(e=>{e.length>=-t?n=[e]:n.push(e)}),(()=>F(U(n),t,r)))}if(0===t&&r<0){let n;return z(e,(e=>{const i=n?U([n,e]):e;if(i.length>=-r)return n=F(i,r),F(i,t,r);n=i}))}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),q((async()=>F(await j(e),t,r)))}return e[w]&&(e=U(e[w].concat([e]))),!l(e)||K&&K.isBuffer(e)?e.slice(t,r):(r===1/0&&(r=e.length),e.subarray(t,r))}async function j(e,t=U){return s(e)?e.readToEnd(t):u(e)?D(e).readToEnd(t):e}async function H(e,t){if(u(e)){if(e.cancel)return e.cancel(t);if(e.destroy)return e.destroy(t),await new Promise(setTimeout),t}}function q(e){const t=new a;return(async()=>{const r=C(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}class G{constructor(e){if(void 0===e)throw Error("Invalid BigInteger input");if(e instanceof Uint8Array){const t=e,r=Array(t.length);for(let e=0;e<t.length;e++){const n=t[e].toString(16);r[e]=t[e]<=15?"0"+n:n}this.value=BigInt("0x0"+r.join(""))}else this.value=BigInt(e)}clone(){return new G(this.value)}iinc(){return this.value++,this}inc(){return this.clone().iinc()}idec(){return this.value--,this}dec(){return this.clone().idec()}iadd(e){return this.value+=e.value,this}add(e){return this.clone().iadd(e)}isub(e){return this.value-=e.value,this}sub(e){return this.clone().isub(e)}imul(e){return this.value*=e.value,this}mul(e){return this.clone().imul(e)}imod(e){return this.value%=e.value,this.isNegative()&&this.iadd(e),this}mod(e){return this.clone().imod(e)}modExp(e,t){if(t.isZero())throw Error("Modulo cannot be zero");if(t.isOne())return new G(0);if(e.isNegative())throw Error("Unsopported negative exponent");let r=e.value,n=this.value;n%=t.value;let i=BigInt(1);for(;r>BigInt(0);){const e=r&BigInt(1);r>>=BigInt(1);const a=i*n%t.value;i=e?a:i,n=n*n%t.value}return new G(i)}modInv(e){const{gcd:t,x:r}=this._egcd(e);if(!t.isOne())throw Error("Inverse does not exist");return r.add(e).mod(e)}_egcd(e){let t=BigInt(0),r=BigInt(1),n=BigInt(1),i=BigInt(0),a=this.value;for(e=e.value;e!==BigInt(0);){const s=a/e;let o=t;t=n-s*t,n=o,o=r,r=i-s*r,i=o,o=e,e=a%e,a=o}return{x:new G(n),y:new G(i),gcd:new G(a)}}gcd(e){let t=this.value;for(e=e.value;e!==BigInt(0);){const r=e;e=t%e,t=r}return new G(t)}ileftShift(e){return this.value<<=e.value,this}leftShift(e){return this.clone().ileftShift(e)}irightShift(e){return this.value>>=e.value,this}rightShift(e){return this.clone().irightShift(e)}equal(e){return this.value===e.value}lt(e){return this.value<e.value}lte(e){return this.value<=e.value}gt(e){return this.value>e.value}gte(e){return this.value>=e.value}isZero(){return this.value===BigInt(0)}isOne(){return this.value===BigInt(1)}isNegative(){return this.value<BigInt(0)}isEven(){return!(this.value&BigInt(1))}abs(){const e=this.clone();return this.isNegative()&&(e.value=-e.value),e}toString(){return this.value.toString()}toNumber(){const e=Number(this.value);if(e>Number.MAX_SAFE_INTEGER)throw Error("Number can only safely store up to 53 bits");return e}getBit(e){return(this.value>>BigInt(e)&BigInt(1))===BigInt(0)?0:1}bitLength(){const e=new G(0),t=new G(1),r=new G(-1),n=this.isNegative()?r:e;let i=1;const a=this.clone();for(;!a.irightShift(t).equal(n);)i++;return i}byteLength(){const e=new G(0),t=new G(-1),r=this.isNegative()?t:e,n=new G(8);let i=1;const a=this.clone();for(;!a.irightShift(n).equal(r);)i++;return i}toUint8Array(e="be",t){let r=this.value.toString(16);r.length%2==1&&(r="0"+r);const n=r.length/2,i=new Uint8Array(t||n),a=t?t-n:0;let s=0;for(;s<n;)i[s+a]=parseInt(r.slice(2*s,2*s+2),16),s++;return"be"!==e&&i.reverse(),i}}const V=(()=>{try{return"development"===process.env.NODE_ENV}catch(e){}return!1})(),W={isString:function(e){return"string"==typeof e||String.prototype.isPrototypeOf(e)},isArray:function(e){return Array.prototype.isPrototypeOf(e)},isUint8Array:l,isStream:u,readNumber:function(e){let t=0;for(let r=0;r<e.length;r++)t+=256**r*e[e.length-1-r];return t},writeNumber:function(e,t){const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e>>8*(t-n-1)&255;return r},readDate:function(e){const t=W.readNumber(e);return new Date(1e3*t)},writeDate:function(e){const t=Math.floor(e.getTime()/1e3);return W.writeNumber(t,4)},normalizeDate:function(e=Date.now()){return null===e||e===1/0?e:new Date(1e3*Math.floor(+e/1e3))},readMPI:function(e){const t=(e[0]<<8|e[1])+7>>>3;return e.subarray(2,2+t)},leftPad(e,t){const r=new Uint8Array(t),n=t-e.length;return r.set(e,n),r},uint8ArrayToMPI:function(e){const t=W.uint8ArrayBitLength(e);if(0===t)throw Error("Zero MPI");const r=e.subarray(e.length-Math.ceil(t/8)),n=new Uint8Array([(65280&t)>>8,255&t]);return W.concatUint8Array([n,r])},uint8ArrayBitLength:function(e){let t;for(t=0;t<e.length&&0===e[t];t++);if(t===e.length)return 0;const r=e.subarray(t);return 8*(r.length-1)+W.nbits(r[0])},hexToUint8Array:function(e){const t=new Uint8Array(e.length>>1);for(let r=0;r<e.length>>1;r++)t[r]=parseInt(e.substr(r<<1,2),16);return t},uint8ArrayToHex:function(e){const t=[],r=e.length;let n,i=0;for(;i<r;){for(n=e[i++].toString(16);n.length<2;)n="0"+n;t.push(""+n)}return t.join("")},stringToUint8Array:function(e){return z(e,(e=>{if(!W.isString(e))throw Error("stringToUint8Array: Data must be in the form of a string");const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}))},uint8ArrayToString:function(e){const t=[],r=16384,n=(e=new Uint8Array(e)).length;for(let i=0;i<n;i+=r)t.push(String.fromCharCode.apply(String,e.subarray(i,i+r<n?i+r:n)));return t.join("")},encodeUTF8:function(e){const t=new TextEncoder("utf-8");function r(e,r=!1){return t.encode(e,{stream:!r})}return z(e,r,(()=>r("",!0)))},decodeUTF8:function(e){const t=new TextDecoder("utf-8");function r(e,r=!1){return t.decode(e,{stream:!r})}return z(e,r,(()=>r(new Uint8Array,!0)))},concat:U,concatUint8Array:y,equalsUint8Array:function(e,t){if(!W.isUint8Array(e)||!W.isUint8Array(t))throw Error("Data must be in the form of a Uint8Array");if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0},writeChecksum:function(e){let t=0;for(let r=0;r<e.length;r++)t=t+e[r]&65535;return W.writeNumber(t,2)},printDebug:function(e){V&&console.log(e)},printDebugError:function(e){V&&console.error(e)},nbits:function(e){let t=1,r=e>>>16;return 0!==r&&(e=r,t+=16),r=e>>8,0!==r&&(e=r,t+=8),r=e>>4,0!==r&&(e=r,t+=4),r=e>>2,0!==r&&(e=r,t+=2),r=e>>1,0!==r&&(e=r,t+=1),t},double:function(e){const t=new Uint8Array(e.length),r=e.length-1;for(let n=0;n<r;n++)t[n]=e[n]<<1^e[n+1]>>7;return t[r]=e[r]<<1^135*(e[0]>>7),t},shiftRight:function(e,t){if(t)for(let r=e.length-1;r>=0;r--)e[r]>>=t,r>0&&(e[r]|=e[r-1]<<8-t);return e},getWebCrypto:function(){return void 0!==e&&e.crypto&&e.crypto.subtle},detectBigInt:()=>"undefined"!=typeof BigInt,getBigInteger:async function(){if(W.detectBigInt())return G;{const{default:e}=await import("./bn.interface.min.mjs");return e}},getNodeCrypto:function(){},getNodeZlib:function(){},getNodeBuffer:function(){return{}.Buffer},getHardwareConcurrency:function(){if("undefined"!=typeof navigator)return navigator.hardwareConcurrency||1;return(void 0).cpus().length},isEmailAddress:function(e){if(!W.isString(e))return!1;return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}|xn--[a-zA-Z\-0-9]+)))$/.test(e)},canonicalizeEOL:function(e){let t=!1;return z(e,(e=>{let r;t&&(e=W.concatUint8Array([new Uint8Array([13]),e])),13===e[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;const n=[];for(let t=0;r=e.indexOf(10,t)+1,r;t=r)13!==e[r-2]&&n.push(r);if(!n.length)return e;const i=new Uint8Array(e.length+n.length);let a=0;for(let t=0;t<n.length;t++){const r=e.subarray(n[t-1]||0,n[t]);i.set(r,a),a+=r.length,i[a-1]=13,i[a]=10,a++}return i.set(e.subarray(n[n.length-1]||0),a),i}),(()=>t?new Uint8Array([13]):void 0))},nativeEOL:function(e){let t=!1;return z(e,(e=>{let r;13===(e=t&&10!==e[0]?W.concatUint8Array([new Uint8Array([13]),e]):new Uint8Array(e))[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;let n=0;for(let t=0;t!==e.length;t=r){r=e.indexOf(13,t)+1,r||(r=e.length);const i=r-(10===e[r]?1:0);t&&e.copyWithin(n,t,i),n+=i-t}return e.subarray(0,n)}),(()=>t?new Uint8Array([13]):void 0))},removeTrailingSpaces:function(e){return e.split("\n").map((e=>{let t=e.length-1;for(;t>=0&&(" "===e[t]||"\t"===e[t]);t--);return e.substr(0,t+1)})).join("\n")},wrapError:function(e,t){if(!t)return Error(e);try{t.message=e+": "+t.message}catch(e){}return t},constructAllowedPackets:function(e){const t={};return e.forEach((e=>{if(!e.tag)throw Error("Invalid input: expected a packet class");t[e.tag]=e})),t},anyPromise:function(e){return new Promise((async(t,r)=>{let n;await Promise.all(e.map((async e=>{try{t(await e)}catch(e){n=e}}))),r(n)}))},selectUint8Array:function(e,t,r){const n=Math.max(t.length,r.length),i=new Uint8Array(n);let a=0;for(let n=0;n<i.length;n++)i[n]=t[n]&256-e|r[n]&255+e,a+=e&n<t.length|1-e&n<r.length;return i.subarray(0,a)},selectUint8:function(e,t,r){return t&256-e|r&255+e}},$=W.getNodeBuffer();let Z,Q;function Y(e){let t=new Uint8Array;return z(e,(e=>{t=W.concatUint8Array([t,e]);const r=[],n=Math.floor(t.length/45),i=45*n,a=Z(t.subarray(0,i));for(let e=0;e<n;e++)r.push(a.substr(60*e,60)),r.push("\n");return t=t.subarray(i),r.join("")}),(()=>t.length?Z(t)+"\n":""))}function X(e){let t="";return z(e,(e=>{t+=e;let r=0;const n=[" ","\t","\r","\n"];for(let e=0;e<n.length;e++){const i=n[e];for(let e=t.indexOf(i);-1!==e;e=t.indexOf(i,e+1))r++}let i=t.length;for(;i>0&&(i-r)%4!=0;i--)n.includes(t[i])&&r--;const a=Q(t.substr(0,i));return t=t.substr(i),a}),(()=>Q(t)))}function J(e){return X(e.replace(/-/g,"+").replace(/_/g,"/"))}function ee(e,t){let r=Y(e).replace(/[\r\n]/g,"");return t&&(r=r.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,"")),r}$?(Z=e=>$.from(e).toString("base64"),Q=e=>{const t=$.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}):(Z=e=>btoa(W.uint8ArrayToString(e)),Q=e=>W.stringToUint8Array(atob(e)));const te=Symbol("byValue");var re={curve:{p256:"p256","P-256":"p256",secp256r1:"p256",prime256v1:"p256","1.2.840.10045.3.1.7":"p256","2a8648ce3d030107":"p256","2A8648CE3D030107":"p256",p384:"p384","P-384":"p384",secp384r1:"p384","1.3.132.0.34":"p384","2b81040022":"p384","2B81040022":"p384",p521:"p521","P-521":"p521",secp521r1:"p521","1.3.132.0.35":"p521","2b81040023":"p521","2B81040023":"p521",secp256k1:"secp256k1","1.3.132.0.10":"secp256k1","2b8104000a":"secp256k1","2B8104000A":"secp256k1",ED25519:"ed25519",ed25519:"ed25519",Ed25519:"ed25519","1.3.6.1.4.1.11591.15.1":"ed25519","2b06010401da470f01":"ed25519","2B06010401DA470F01":"ed25519",X25519:"curve25519",cv25519:"curve25519",curve25519:"curve25519",Curve25519:"curve25519","1.3.6.1.4.1.3029.1.5.1":"curve25519","2b060104019755010501":"curve25519","2B060104019755010501":"curve25519",brainpoolP256r1:"brainpoolP256r1","1.3.36.3.3.2.8.1.1.7":"brainpoolP256r1","2b2403030208010107":"brainpoolP256r1","2B2403030208010107":"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1","1.3.36.3.3.2.8.1.1.11":"brainpoolP384r1","2b240303020801010b":"brainpoolP384r1","2B240303020801010B":"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1","1.3.36.3.3.2.8.1.1.13":"brainpoolP512r1","2b240303020801010d":"brainpoolP512r1","2B240303020801010D":"brainpoolP512r1"},kdfFlags:{replace_fingerprint:1,replace_kdf_params:2},s2k:{simple:0,salted:1,iterated:3,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsa:22,aedh:23,aedsa:24,aead:100,hmac:101},symmetric:{plaintext:0,idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20},literal:{binary:98,text:116,utf8:117,mime:109},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuer:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4},write:function(e,t){if("number"==typeof t&&(t=this.read(e,t)),void 0!==e[t])return e[t];throw Error("Invalid enum value.")},read:function(e,t){if(e[te]||(e[te]=[],Object.entries(e).forEach((([t,r])=>{e[te][r]=t}))),void 0!==e[te][t])return e[te][t];throw Error("Invalid enum value.")}},ne={preferredHashAlgorithm:re.hash.sha256,preferredSymmetricAlgorithm:re.symmetric.aes256,preferredCompressionAlgorithm:re.compression.uncompressed,deflateLevel:6,aeadProtect:!1,preferredAEADAlgorithm:re.aead.eax,aeadChunkSizeByte:12,v5Keys:!1,s2kIterationCountByte:224,allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,checksumRequired:!1,minRSABits:2047,passwordCollisionCheck:!1,revocationsExpire:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([re.symmetric.aes128,re.symmetric.aes192,re.symmetric.aes256]),minBytesForWebCrypto:1e3,ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,showVersion:!1,showComment:!1,versionString:"OpenPGP.js 5.3.1",commentString:"https://openpgpjs.org",maxUserIDLength:5120,knownNotations:["preferred-email-encoding@pgp.com","pka-address@gnupg.org"],useIndutnyElliptic:!0,rejectHashAlgorithms:new Set([re.hash.md5,re.hash.ripemd]),rejectMessageHashAlgorithms:new Set([re.hash.md5,re.hash.ripemd,re.hash.sha1]),rejectPublicKeyAlgorithms:new Set([re.publicKey.elgamal,re.publicKey.dsa]),rejectCurves:new Set([re.curve.brainpoolP256r1,re.curve.brainpoolP384r1,re.curve.brainpoolP512r1,re.curve.secp256k1])};function ie(e){const t=e.match(/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m);if(!t)throw Error("Unknown ASCII armor type");return/MESSAGE, PART \d+\/\d+/.test(t[1])?re.armor.multipartSection:/MESSAGE, PART \d+/.test(t[1])?re.armor.multipartLast:/SIGNED MESSAGE/.test(t[1])?re.armor.signed:/MESSAGE/.test(t[1])?re.armor.message:/PUBLIC KEY BLOCK/.test(t[1])?re.armor.publicKey:/PRIVATE KEY BLOCK/.test(t[1])?re.armor.privateKey:/SIGNATURE/.test(t[1])?re.armor.signature:void 0}function ae(e,t){let r="";return t.showVersion&&(r+="Version: "+t.versionString+"\n"),t.showComment&&(r+="Comment: "+t.commentString+"\n"),e&&(r+="Comment: "+e+"\n"),r+="\n",r}function se(e){return Y(function(e){let t=13501623;return z(e,(e=>{const r=ce?Math.floor(e.length/4):0,n=new Uint32Array(e.buffer,e.byteOffset,r);for(let e=0;e<r;e++)t^=n[e],t=oe[0][t>>24&255]^oe[1][t>>16&255]^oe[2][t>>8&255]^oe[3][t>>0&255];for(let n=4*r;n<e.length;n++)t=t>>8^oe[0][255&t^e[n]]}),(()=>new Uint8Array([t,t>>8,t>>16])))}(e))}const oe=[Array(255),Array(255),Array(255),Array(255)];for(let e=0;e<=255;e++){let t=e<<16;for(let e=0;e<8;e++)t=t<<1^(0!=(8388608&t)?8801531:0);oe[0][e]=(16711680&t)>>16|65280&t|(255&t)<<16}for(let e=0;e<=255;e++)oe[1][e]=oe[0][e]>>8^oe[0][255&oe[0][e]];for(let e=0;e<=255;e++)oe[2][e]=oe[1][e]>>8^oe[0][255&oe[1][e]];for(let e=0;e<=255;e++)oe[3][e]=oe[2][e]>>8^oe[0][255&oe[2][e]];const ce=function(){const e=new ArrayBuffer(2);return new DataView(e).setInt16(0,255,!0),255===new Int16Array(e)[0]}();function he(e){for(let t=0;t<e.length;t++){if(!/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(e[t]))throw Error("Improperly formatted armor header: "+e[t]);/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(e[t])||W.printDebugError(Error("Unknown header: "+e[t]))}}function ue(e){let t=e,r="";const n=e.lastIndexOf("=");return n>=0&&n!==e.length-1&&(t=e.slice(0,n),r=e.slice(n+1).substr(0,4)),{body:t,checksum:r}}function le(e,t=ne){return new Promise((async(r,n)=>{try{const i=/^-----[^-]+-----$/m,a=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;let s;const o=[];let c,h,u,l=o,y=[],p=X(R(e,(async(e,t)=>{const d=D(e);try{for(;;){let e=await d.readLine();if(void 0===e)throw Error("Misformed armored text");if(e=W.removeTrailingSpaces(e.replace(/[\r\n]/g,"")),s)if(c)h||2!==s||(i.test(e)?(y=y.join("\r\n"),h=!0,he(l),l=[],c=!1):y.push(e.replace(/^- /,"")));else if(i.test(e)&&n(Error("Mandatory blank line missing between armor headers and armor data")),a.test(e)){if(he(l),c=!0,h||2!==s){r({text:y,data:p,headers:o,type:s});break}}else l.push(e);else i.test(e)&&(s=ie(e))}}catch(e){return void n(e)}const f=C(t);try{for(;;){await f.ready;const{done:e,value:t}=await d.read();if(e)throw Error("Misformed armored text");const r=t+"";if(-1!==r.indexOf("=")||-1!==r.indexOf("-")){let e=await d.readToEnd();e.length||(e=""),e=r+e,e=W.removeTrailingSpaces(e.replace(/\r/g,""));const t=e.split(i);if(1===t.length)throw Error("Misformed armored text");const n=ue(t[0].slice(0,-1));u=n.checksum,await f.write(n.body);break}await f.write(r)}await f.ready,await f.close()}catch(e){await f.abort(e)}})));p=R(p,(async(e,r)=>{const n=j(se(O(e)));n.catch((()=>{})),await I(e,r,{preventClose:!0});const i=C(r);try{const e=(await n).replace("\n","");if(u!==e&&(u||t.checksumRequired))throw Error("Ascii armor integrity check failed");await i.ready,await i.close()}catch(e){await i.abort(e)}}))}catch(e){n(e)}})).then((async e=>(s(e.data)&&(e.data=await j(e.data)),e)))}function ye(e,t,r,n,i,a=ne){let s,o;e===re.armor.signed&&(s=t.text,o=t.hash,t=t.data);const c=O(t),h=[];switch(e){case re.armor.multipartSection:h.push("-----BEGIN PGP MESSAGE, PART "+r+"/"+n+"-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP MESSAGE, PART "+r+"/"+n+"-----\n");break;case re.armor.multipartLast:h.push("-----BEGIN PGP MESSAGE, PART "+r+"-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP MESSAGE, PART "+r+"-----\n");break;case re.armor.signed:h.push("\n-----BEGIN PGP SIGNED MESSAGE-----\n"),h.push("Hash: "+o+"\n\n"),h.push(s.replace(/^-/gm,"- -")),h.push("\n-----BEGIN PGP SIGNATURE-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP SIGNATURE-----\n");break;case re.armor.message:h.push("-----BEGIN PGP MESSAGE-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP MESSAGE-----\n");break;case re.armor.publicKey:h.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP PUBLIC KEY BLOCK-----\n");break;case re.armor.privateKey:h.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP PRIVATE KEY BLOCK-----\n");break;case re.armor.signature:h.push("-----BEGIN PGP SIGNATURE-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP SIGNATURE-----\n")}return W.concat(h)}class pe{constructor(){this.bytes=""}read(e){this.bytes=W.uint8ArrayToString(e.subarray(0,8))}write(){return W.stringToUint8Array(this.bytes)}toHex(){return W.uint8ArrayToHex(W.stringToUint8Array(this.bytes))}equals(e,t=!1){return t&&(e.isWildcard()||this.isWildcard())||this.bytes===e.bytes}isNull(){return""===this.bytes}isWildcard(){return/^0+$/.test(this.toHex())}static mapToHex(e){return e.toHex()}static fromID(e){const t=new pe;return t.read(W.hexToUint8Array(e)),t}static wildcard(){const e=new pe;return e.read(new Uint8Array(8)),e}}var de=function(){var e,t,r=!1;function n(r,n){var i=e[(t[r]+t[n])%255];return 0!==r&&0!==n||(i=0),i}var i,a,s,o,c=!1;function h(){function h(r){var n,i,a;for(i=a=function(r){var n=e[255-t[r]];return 0===r&&(n=0),n}(r),n=0;n<4;n++)a^=i=255&(i<<1|i>>>7);return a^=99}r||function(){e=[],t=[];var n,i,a=1;for(n=0;n<255;n++)e[n]=a,i=128&a,a<<=1,a&=255,128===i&&(a^=27),a^=e[n],t[e[n]]=n;e[255]=e[0],t[0]=0,r=!0}(),i=[],a=[],s=[[],[],[],[]],o=[[],[],[],[]];for(var u=0;u<256;u++){var l=h(u);i[u]=l,a[l]=u,s[0][u]=n(2,l)<<24|l<<16|l<<8|n(3,l),o[0][l]=n(14,u)<<24|n(9,u)<<16|n(13,u)<<8|n(11,u);for(var y=1;y<4;y++)s[y][u]=s[y-1][u]>>>8|s[y-1][u]<<24,o[y][l]=o[y-1][l]>>>8|o[y-1][l]<<24}c=!0}var u=function(e,t){c||h();var r=new Uint32Array(t);r.set(i,512),r.set(a,768);for(var n=0;n<4;n++)r.set(s[n],4096+1024*n>>2),r.set(o[n],8192+1024*n>>2);var u=function(e,t,r){"use asm";var n=0,i=0,a=0,s=0,o=0,c=0,h=0,u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0;var E=new e.Uint32Array(r),S=new e.Uint8Array(r);function K(e,t,r,o,c,h,u,l){e=e|0;t=t|0;r=r|0;o=o|0;c=c|0;h=h|0;u=u|0;l=l|0;var y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0;y=r|0x400,p=r|0x800,d=r|0xc00;c=c^E[(e|0)>>2],h=h^E[(e|4)>>2],u=u^E[(e|8)>>2],l=l^E[(e|12)>>2];for(b=16;(b|0)<=o<<4;b=b+16|0){f=E[(r|c>>22&1020)>>2]^E[(y|h>>14&1020)>>2]^E[(p|u>>6&1020)>>2]^E[(d|l<<2&1020)>>2]^E[(e|b|0)>>2],g=E[(r|h>>22&1020)>>2]^E[(y|u>>14&1020)>>2]^E[(p|l>>6&1020)>>2]^E[(d|c<<2&1020)>>2]^E[(e|b|4)>>2],m=E[(r|u>>22&1020)>>2]^E[(y|l>>14&1020)>>2]^E[(p|c>>6&1020)>>2]^E[(d|h<<2&1020)>>2]^E[(e|b|8)>>2],w=E[(r|l>>22&1020)>>2]^E[(y|c>>14&1020)>>2]^E[(p|h>>6&1020)>>2]^E[(d|u<<2&1020)>>2]^E[(e|b|12)>>2];c=f,h=g,u=m,l=w}n=E[(t|c>>22&1020)>>2]<<24^E[(t|h>>14&1020)>>2]<<16^E[(t|u>>6&1020)>>2]<<8^E[(t|l<<2&1020)>>2]^E[(e|b|0)>>2],i=E[(t|h>>22&1020)>>2]<<24^E[(t|u>>14&1020)>>2]<<16^E[(t|l>>6&1020)>>2]<<8^E[(t|c<<2&1020)>>2]^E[(e|b|4)>>2],a=E[(t|u>>22&1020)>>2]<<24^E[(t|l>>14&1020)>>2]<<16^E[(t|c>>6&1020)>>2]<<8^E[(t|h<<2&1020)>>2]^E[(e|b|8)>>2],s=E[(t|l>>22&1020)>>2]<<24^E[(t|c>>14&1020)>>2]<<16^E[(t|h>>6&1020)>>2]<<8^E[(t|u<<2&1020)>>2]^E[(e|b|12)>>2]}function x(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;K(0x0000,0x0800,0x1000,_,e,t,r,n)}function P(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var a=0;K(0x0400,0x0c00,0x2000,_,e,n,r,t);a=i,i=s,s=a}function U(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;K(0x0000,0x0800,0x1000,_,o^e,c^t,h^r,u^l);o=n,c=i,h=a,u=s}function D(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;var y=0;K(0x0400,0x0c00,0x2000,_,e,l,r,t);y=i,i=s,s=y;n=n^o,i=i^c,a=a^h,s=s^u;o=e,c=t,h=r,u=l}function C(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;K(0x0000,0x0800,0x1000,_,o,c,h,u);o=n=n^e,c=i=i^t,h=a=a^r,u=s=s^l}function I(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;K(0x0000,0x0800,0x1000,_,o,c,h,u);n=n^e,i=i^t,a=a^r,s=s^l;o=e,c=t,h=r,u=l}function B(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;K(0x0000,0x0800,0x1000,_,o,c,h,u);o=n,c=i,h=a,u=s;n=n^e,i=i^t,a=a^r,s=s^l}function T(e,t,r,o){e=e|0;t=t|0;r=r|0;o=o|0;K(0x0000,0x0800,0x1000,_,l,y,p,d);d=~w&d|w&d+1;p=~m&p|m&p+((d|0)==0);y=~g&y|g&y+((p|0)==0);l=~f&l|f&l+((y|0)==0);n=n^e;i=i^t;a=a^r;s=s^o}function z(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,a=0,s=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0;e=e^o,t=t^c,r=r^h,n=n^u;i=b|0,a=k|0,s=v|0,l=A|0;for(;(g|0)<128;g=g+1|0){if(i>>>31){y=y^e,p=p^t,d=d^r,f=f^n}i=i<<1|a>>>31,a=a<<1|s>>>31,s=s<<1|l>>>31,l=l<<1;m=n&1;n=n>>>1|r<<31,r=r>>>1|t<<31,t=t>>>1|e<<31,e=e>>>1;if(m)e=e^0xe1000000}o=y,c=p,h=d,u=f}function R(e){e=e|0;_=e}function M(e,t,r,o){e=e|0;t=t|0;r=r|0;o=o|0;n=e,i=t,a=r,s=o}function N(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;o=e,c=t,h=r,u=n}function O(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;l=e,y=t,p=r,d=n}function L(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;f=e,g=t,m=r,w=n}function F(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;d=~w&d|w&n,p=~m&p|m&r,y=~g&y|g&t,l=~f&l|f&e}function j(e){e=e|0;if(e&15)return-1;S[e|0]=n>>>24,S[e|1]=n>>>16&255,S[e|2]=n>>>8&255,S[e|3]=n&255,S[e|4]=i>>>24,S[e|5]=i>>>16&255,S[e|6]=i>>>8&255,S[e|7]=i&255,S[e|8]=a>>>24,S[e|9]=a>>>16&255,S[e|10]=a>>>8&255,S[e|11]=a&255,S[e|12]=s>>>24,S[e|13]=s>>>16&255,S[e|14]=s>>>8&255,S[e|15]=s&255;return 16}function H(e){e=e|0;if(e&15)return-1;S[e|0]=o>>>24,S[e|1]=o>>>16&255,S[e|2]=o>>>8&255,S[e|3]=o&255,S[e|4]=c>>>24,S[e|5]=c>>>16&255,S[e|6]=c>>>8&255,S[e|7]=c&255,S[e|8]=h>>>24,S[e|9]=h>>>16&255,S[e|10]=h>>>8&255,S[e|11]=h&255,S[e|12]=u>>>24,S[e|13]=u>>>16&255,S[e|14]=u>>>8&255,S[e|15]=u&255;return 16}function q(){x(0,0,0,0);b=n,k=i,v=a,A=s}function G(e,t,r){e=e|0;t=t|0;r=r|0;var o=0;if(t&15)return-1;while((r|0)>=16){W[e&7](S[t|0]<<24|S[t|1]<<16|S[t|2]<<8|S[t|3],S[t|4]<<24|S[t|5]<<16|S[t|6]<<8|S[t|7],S[t|8]<<24|S[t|9]<<16|S[t|10]<<8|S[t|11],S[t|12]<<24|S[t|13]<<16|S[t|14]<<8|S[t|15]);S[t|0]=n>>>24,S[t|1]=n>>>16&255,S[t|2]=n>>>8&255,S[t|3]=n&255,S[t|4]=i>>>24,S[t|5]=i>>>16&255,S[t|6]=i>>>8&255,S[t|7]=i&255,S[t|8]=a>>>24,S[t|9]=a>>>16&255,S[t|10]=a>>>8&255,S[t|11]=a&255,S[t|12]=s>>>24,S[t|13]=s>>>16&255,S[t|14]=s>>>8&255,S[t|15]=s&255;o=o+16|0,t=t+16|0,r=r-16|0}return o|0}function V(e,t,r){e=e|0;t=t|0;r=r|0;var n=0;if(t&15)return-1;while((r|0)>=16){$[e&1](S[t|0]<<24|S[t|1]<<16|S[t|2]<<8|S[t|3],S[t|4]<<24|S[t|5]<<16|S[t|6]<<8|S[t|7],S[t|8]<<24|S[t|9]<<16|S[t|10]<<8|S[t|11],S[t|12]<<24|S[t|13]<<16|S[t|14]<<8|S[t|15]);n=n+16|0,t=t+16|0,r=r-16|0}return n|0}var W=[x,P,U,D,C,I,B,T];var $=[U,z];return{set_rounds:R,set_state:M,set_iv:N,set_nonce:O,set_mask:L,set_counter:F,get_state:j,get_iv:H,gcm_init:q,cipher:G,mac:V}}({Uint8Array,Uint32Array},e,t);return u.set_key=function(e,t,n,a,s,c,h,l,y){var p=r.subarray(0,60),d=r.subarray(256,316);p.set([t,n,a,s,c,h,l,y]);for(var f=e,g=1;f<4*e+28;f++){var m=p[f-1];(f%e==0||8===e&&f%e==4)&&(m=i[m>>>24]<<24^i[m>>>16&255]<<16^i[m>>>8&255]<<8^i[255&m]),f%e==0&&(m=m<<8^m>>>24^g<<24,g=g<<1^(128&g?27:0)),p[f]=p[f-e]^m}for(var w=0;w<f;w+=4)for(var b=0;b<4;b++){m=p[f-(4+w)+(4-b)%4];d[w+b]=w<4||w>=f-4?m:o[0][i[m>>>24]]^o[1][i[m>>>16&255]]^o[2][i[m>>>8&255]]^o[3][i[255&m]]}u.set_rounds(e+5)},u};return u.ENC={ECB:0,CBC:2,CFB:4,OFB:6,CTR:7},u.DEC={ECB:1,CBC:3,CFB:5,OFB:6,CTR:7},u.MAC={CBC:0,GCM:1},u.HEAP_DATA=16384,u}();function fe(e){return e instanceof Uint8Array}function ge(e,t){const r=e?e.byteLength:t||65536;if(4095&r||r<=0)throw Error("heap size must be a positive integer and a multiple of 4096");return e=e||new Uint8Array(new ArrayBuffer(r))}function me(e,t,r,n,i){const a=e.length-t,s=a<i?a:i;return e.set(r.subarray(n,n+s),t),s}function we(...e){const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);let n=0;for(let t=0;t<e.length;t++)r.set(e[t],n),n+=e[t].length;return r}class be extends Error{constructor(...e){super(...e)}}class ke extends Error{constructor(...e){super(...e)}}class ve extends Error{constructor(...e){super(...e)}}const Ae=[],_e=[];class Ee{constructor(e,t,r=!0,n,i,a){this.pos=0,this.len=0,this.mode=n,this.pos=0,this.len=0,this.key=e,this.iv=t,this.padding=r,this.acquire_asm(i,a)}acquire_asm(e,t){return void 0!==this.heap&&void 0!==this.asm||(this.heap=e||Ae.pop()||ge().subarray(de.HEAP_DATA),this.asm=t||_e.pop()||new de(null,this.heap.buffer),this.reset(this.key,this.iv)),{heap:this.heap,asm:this.asm}}release_asm(){void 0!==this.heap&&void 0!==this.asm&&(Ae.push(this.heap),_e.push(this.asm)),this.heap=void 0,this.asm=void 0}reset(e,t){const{asm:r}=this.acquire_asm(),n=e.length;if(16!==n&&24!==n&&32!==n)throw new ke("illegal key size");const i=new DataView(e.buffer,e.byteOffset,e.byteLength);if(r.set_key(n>>2,i.getUint32(0),i.getUint32(4),i.getUint32(8),i.getUint32(12),n>16?i.getUint32(16):0,n>16?i.getUint32(20):0,n>24?i.getUint32(24):0,n>24?i.getUint32(28):0),void 0!==t){if(16!==t.length)throw new ke("illegal iv size");let e=new DataView(t.buffer,t.byteOffset,t.byteLength);r.set_iv(e.getUint32(0),e.getUint32(4),e.getUint32(8),e.getUint32(12))}else r.set_iv(0,0,0,0)}AES_Encrypt_process(e){if(!fe(e))throw new TypeError("data isn't of expected type");let{heap:t,asm:r}=this.acquire_asm(),n=de.ENC[this.mode],i=de.HEAP_DATA,a=this.pos,s=this.len,o=0,c=e.length||0,h=0,u=0,l=new Uint8Array(s+c&-16);for(;c>0;)u=me(t,a+s,e,o,c),s+=u,o+=u,c-=u,u=r.cipher(n,i+a,s),u&&l.set(t.subarray(a,a+u),h),h+=u,u<s?(a+=u,s-=u):(a=0,s=0);return this.pos=a,this.len=s,l}AES_Encrypt_finish(){let{heap:e,asm:t}=this.acquire_asm(),r=de.ENC[this.mode],n=de.HEAP_DATA,i=this.pos,a=this.len,s=16-a%16,o=a;if(this.hasOwnProperty("padding")){if(this.padding){for(let t=0;t<s;++t)e[i+a+t]=s;a+=s,o=a}else if(a%16)throw new ke("data length must be a multiple of the block size")}else a+=s;const c=new Uint8Array(o);return a&&t.cipher(r,n+i,a),o&&c.set(e.subarray(i,i+o)),this.pos=0,this.len=0,this.release_asm(),c}AES_Decrypt_process(e){if(!fe(e))throw new TypeError("data isn't of expected type");let{heap:t,asm:r}=this.acquire_asm(),n=de.DEC[this.mode],i=de.HEAP_DATA,a=this.pos,s=this.len,o=0,c=e.length||0,h=0,u=s+c&-16,l=0,y=0;this.padding&&(l=s+c-u||16,u-=l);const p=new Uint8Array(u);for(;c>0;)y=me(t,a+s,e,o,c),s+=y,o+=y,c-=y,y=r.cipher(n,i+a,s-(c?0:l)),y&&p.set(t.subarray(a,a+y),h),h+=y,y<s?(a+=y,s-=y):(a=0,s=0);return this.pos=a,this.len=s,p}AES_Decrypt_finish(){let{heap:e,asm:t}=this.acquire_asm(),r=de.DEC[this.mode],n=de.HEAP_DATA,i=this.pos,a=this.len,s=a;if(a>0){if(a%16){if(this.hasOwnProperty("padding"))throw new ke("data length must be a multiple of the block size");a+=16-a%16}if(t.cipher(r,n+i,a),this.hasOwnProperty("padding")&&this.padding){let t=e[i+s-1];if(t<1||t>16||t>s)throw new ve("bad padding");let r=0;for(let n=t;n>1;n--)r|=t^e[i+s-n];if(r)throw new ve("bad padding");s-=t}}const o=new Uint8Array(s);return s>0&&o.set(e.subarray(i,i+s)),this.pos=0,this.len=0,this.release_asm(),o}}class Se{static encrypt(e,t,r=!1){return new Se(t,r).encrypt(e)}static decrypt(e,t,r=!1){return new Se(t,r).decrypt(e)}constructor(e,t=!1,r){this.aes=r||new Ee(e,void 0,t,"ECB")}encrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}decrypt(e){return we(this.aes.AES_Decrypt_process(e),this.aes.AES_Decrypt_finish())}}function Ke(e){const t=function(e){const t=new Se(e);this.encrypt=function(e){return t.encrypt(e)},this.decrypt=function(e){return t.decrypt(e)}};return t.blockSize=t.prototype.blockSize=16,t.keySize=t.prototype.keySize=e/8,t}function xe(e,t,r,n,i,a){const s=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],o=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],c=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],h=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],u=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],l=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],y=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],p=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];let d,f,g,m,w,b,k,v,A,_,E,S,K,x,P=0,U=t.length;const D=32===e.length?3:9;v=3===D?r?[0,32,2]:[30,-2,-2]:r?[0,32,2,62,30,-2,64,96,2]:[94,62,-2,32,64,2,30,-2,-2],r&&(U=(t=function(e,t){const r=8-e.length%8;let n;if(2===t&&r<8)n=32;else if(1===t)n=r;else{if(t||!(r<8)){if(8===r)return e;throw Error("des: invalid padding")}n=0}const i=new Uint8Array(e.length+r);for(let t=0;t<e.length;t++)i[t]=e[t];for(let t=0;t<r;t++)i[e.length+t]=n;return i}(t,a)).length);let C=new Uint8Array(U),I=0;for(1===n&&(A=i[P++]<<24|i[P++]<<16|i[P++]<<8|i[P++],E=i[P++]<<24|i[P++]<<16|i[P++]<<8|i[P++],P=0);P<U;){for(b=t[P++]<<24|t[P++]<<16|t[P++]<<8|t[P++],k=t[P++]<<24|t[P++]<<16|t[P++]<<8|t[P++],1===n&&(r?(b^=A,k^=E):(_=A,S=E,A=b,E=k)),g=252645135&(b>>>4^k),k^=g,b^=g<<4,g=65535&(b>>>16^k),k^=g,b^=g<<16,g=858993459&(k>>>2^b),b^=g,k^=g<<2,g=16711935&(k>>>8^b),b^=g,k^=g<<8,g=1431655765&(b>>>1^k),k^=g,b^=g<<1,b=b<<1|b>>>31,k=k<<1|k>>>31,f=0;f<D;f+=3){for(K=v[f+1],x=v[f+2],d=v[f];d!==K;d+=x)m=k^e[d],w=(k>>>4|k<<28)^e[d+1],g=b,b=k,k=g^(o[m>>>24&63]|h[m>>>16&63]|l[m>>>8&63]|p[63&m]|s[w>>>24&63]|c[w>>>16&63]|u[w>>>8&63]|y[63&w]);g=b,b=k,k=g}b=b>>>1|b<<31,k=k>>>1|k<<31,g=1431655765&(b>>>1^k),k^=g,b^=g<<1,g=16711935&(k>>>8^b),b^=g,k^=g<<8,g=858993459&(k>>>2^b),b^=g,k^=g<<2,g=65535&(b>>>16^k),k^=g,b^=g<<16,g=252645135&(b>>>4^k),k^=g,b^=g<<4,1===n&&(r?(A=b,E=k):(b^=_,k^=S)),C[I++]=b>>>24,C[I++]=b>>>16&255,C[I++]=b>>>8&255,C[I++]=255&b,C[I++]=k>>>24,C[I++]=k>>>16&255,C[I++]=k>>>8&255,C[I++]=255&k}return r||(C=function(e,t){let r,n=null;if(2===t)r=32;else if(1===t)n=e[e.length-1];else{if(t)throw Error("des: invalid padding");r=0}if(!n){for(n=1;e[e.length-n]===r;)n++;n--}return e.subarray(0,e.length-n)}(C,a)),C}function Pe(e){const t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],a=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],o=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],h=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],y=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],p=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],f=e.length>8?3:1,g=Array(32*f),m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0];let w,b,k,v=0,A=0;for(let _=0;_<f;_++){let f=e[v++]<<24|e[v++]<<16|e[v++]<<8|e[v++],_=e[v++]<<24|e[v++]<<16|e[v++]<<8|e[v++];k=252645135&(f>>>4^_),_^=k,f^=k<<4,k=65535&(_>>>-16^f),f^=k,_^=k<<-16,k=858993459&(f>>>2^_),_^=k,f^=k<<2,k=65535&(_>>>-16^f),f^=k,_^=k<<-16,k=1431655765&(f>>>1^_),_^=k,f^=k<<1,k=16711935&(_>>>8^f),f^=k,_^=k<<8,k=1431655765&(f>>>1^_),_^=k,f^=k<<1,k=f<<8|_>>>20&240,f=_<<24|_<<8&16711680|_>>>8&65280|_>>>24&240,_=k;for(let e=0;e<16;e++)m[e]?(f=f<<2|f>>>26,_=_<<2|_>>>26):(f=f<<1|f>>>27,_=_<<1|_>>>27),f&=-15,_&=-15,w=t[f>>>28]|r[f>>>24&15]|n[f>>>20&15]|i[f>>>16&15]|a[f>>>12&15]|s[f>>>8&15]|o[f>>>4&15],b=c[_>>>28]|h[_>>>24&15]|u[_>>>20&15]|l[_>>>16&15]|y[_>>>12&15]|p[_>>>8&15]|d[_>>>4&15],k=65535&(b>>>16^w),g[A++]=w^k,g[A++]=b^k<<16}return g}function Ue(e){this.key=[];for(let t=0;t<3;t++)this.key.push(new Uint8Array(e.subarray(8*t,8*t+8)));this.encrypt=function(e){return xe(Pe(this.key[2]),xe(Pe(this.key[1]),xe(Pe(this.key[0]),e,!0,0,null,null),!1,0,null,null),!0,0,null,null)}}function De(){this.BlockSize=8,this.KeySize=16,this.setKey=function(e){if(this.masking=Array(16),this.rotate=Array(16),this.reset(),e.length!==this.KeySize)throw Error("CAST-128: keys must be 16 bytes");return this.keySchedule(e),!0},this.reset=function(){for(let e=0;e<16;e++)this.masking[e]=0,this.rotate[e]=0},this.getBlockSize=function(){return this.BlockSize},this.encrypt=function(e){const t=Array(e.length);for(let a=0;a<e.length;a+=8){let s,o=e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3],c=e[a+4]<<24|e[a+5]<<16|e[a+6]<<8|e[a+7];s=c,c=o^r(c,this.masking[0],this.rotate[0]),o=s,s=c,c=o^n(c,this.masking[1],this.rotate[1]),o=s,s=c,c=o^i(c,this.masking[2],this.rotate[2]),o=s,s=c,c=o^r(c,this.masking[3],this.rotate[3]),o=s,s=c,c=o^n(c,this.masking[4],this.rotate[4]),o=s,s=c,c=o^i(c,this.masking[5],this.rotate[5]),o=s,s=c,c=o^r(c,this.masking[6],this.rotate[6]),o=s,s=c,c=o^n(c,this.masking[7],this.rotate[7]),o=s,s=c,c=o^i(c,this.masking[8],this.rotate[8]),o=s,s=c,c=o^r(c,this.masking[9],this.rotate[9]),o=s,s=c,c=o^n(c,this.masking[10],this.rotate[10]),o=s,s=c,c=o^i(c,this.masking[11],this.rotate[11]),o=s,s=c,c=o^r(c,this.masking[12],this.rotate[12]),o=s,s=c,c=o^n(c,this.masking[13],this.rotate[13]),o=s,s=c,c=o^i(c,this.masking[14],this.rotate[14]),o=s,s=c,c=o^r(c,this.masking[15],this.rotate[15]),o=s,t[a]=c>>>24&255,t[a+1]=c>>>16&255,t[a+2]=c>>>8&255,t[a+3]=255&c,t[a+4]=o>>>24&255,t[a+5]=o>>>16&255,t[a+6]=o>>>8&255,t[a+7]=255&o}return t},this.decrypt=function(e){const t=Array(e.length);for(let a=0;a<e.length;a+=8){let s,o=e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3],c=e[a+4]<<24|e[a+5]<<16|e[a+6]<<8|e[a+7];s=c,c=o^r(c,this.masking[15],this.rotate[15]),o=s,s=c,c=o^i(c,this.masking[14],this.rotate[14]),o=s,s=c,c=o^n(c,this.masking[13],this.rotate[13]),o=s,s=c,c=o^r(c,this.masking[12],this.rotate[12]),o=s,s=c,c=o^i(c,this.masking[11],this.rotate[11]),o=s,s=c,c=o^n(c,this.masking[10],this.rotate[10]),o=s,s=c,c=o^r(c,this.masking[9],this.rotate[9]),o=s,s=c,c=o^i(c,this.masking[8],this.rotate[8]),o=s,s=c,c=o^n(c,this.masking[7],this.rotate[7]),o=s,s=c,c=o^r(c,this.masking[6],this.rotate[6]),o=s,s=c,c=o^i(c,this.masking[5],this.rotate[5]),o=s,s=c,c=o^n(c,this.masking[4],this.rotate[4]),o=s,s=c,c=o^r(c,this.masking[3],this.rotate[3]),o=s,s=c,c=o^i(c,this.masking[2],this.rotate[2]),o=s,s=c,c=o^n(c,this.masking[1],this.rotate[1]),o=s,s=c,c=o^r(c,this.masking[0],this.rotate[0]),o=s,t[a]=c>>>24&255,t[a+1]=c>>>16&255,t[a+2]=c>>>8&255,t[a+3]=255&c,t[a+4]=o>>>24&255,t[a+5]=o>>16&255,t[a+6]=o>>8&255,t[a+7]=255&o}return t};const e=[,,,,];e[0]=[,,,,],e[0][0]=[4,0,13,15,12,14,8],e[0][1]=[5,2,16,18,17,19,10],e[0][2]=[6,3,23,22,21,20,9],e[0][3]=[7,1,26,25,27,24,11],e[1]=[,,,,],e[1][0]=[0,6,21,23,20,22,16],e[1][1]=[1,4,0,2,1,3,18],e[1][2]=[2,5,7,6,5,4,17],e[1][3]=[3,7,10,9,11,8,19],e[2]=[,,,,],e[2][0]=[4,0,13,15,12,14,8],e[2][1]=[5,2,16,18,17,19,10],e[2][2]=[6,3,23,22,21,20,9],e[2][3]=[7,1,26,25,27,24,11],e[3]=[,,,,],e[3][0]=[0,6,21,23,20,22,16],e[3][1]=[1,4,0,2,1,3,18],e[3][2]=[2,5,7,6,5,4,17],e[3][3]=[3,7,10,9,11,8,19];const t=[,,,,];function r(e,t,r){const n=t+e,i=n<<r|n>>>32-r;return(a[0][i>>>24]^a[1][i>>>16&255])-a[2][i>>>8&255]+a[3][255&i]}function n(e,t,r){const n=t^e,i=n<<r|n>>>32-r;return a[0][i>>>24]-a[1][i>>>16&255]+a[2][i>>>8&255]^a[3][255&i]}function i(e,t,r){const n=t-e,i=n<<r|n>>>32-r;return(a[0][i>>>24]+a[1][i>>>16&255]^a[2][i>>>8&255])-a[3][255&i]}t[0]=[,,,,],t[0][0]=[24,25,23,22,18],t[0][1]=[26,27,21,20,22],t[0][2]=[28,29,19,18,25],t[0][3]=[30,31,17,16,28],t[1]=[,,,,],t[1][0]=[3,2,12,13,8],t[1][1]=[1,0,14,15,13],t[1][2]=[7,6,8,9,3],t[1][3]=[5,4,10,11,7],t[2]=[,,,,],t[2][0]=[19,18,28,29,25],t[2][1]=[17,16,30,31,28],t[2][2]=[23,22,24,25,18],t[2][3]=[21,20,26,27,22],t[3]=[,,,,],t[3][0]=[8,9,7,6,3],t[3][1]=[10,11,5,4,7],t[3][2]=[12,13,3,2,8],t[3][3]=[14,15,1,0,13],this.keySchedule=function(r){const n=[,,,,,,,,],i=Array(32);let s;for(let e=0;e<4;e++)s=4*e,n[e]=r[s]<<24|r[s+1]<<16|r[s+2]<<8|r[s+3];const o=[6,7,4,5];let c,h=0;for(let r=0;r<2;r++)for(let r=0;r<4;r++){for(s=0;s<4;s++){const t=e[r][s];c=n[t[1]],c^=a[4][n[t[2]>>>2]>>>24-8*(3&t[2])&255],c^=a[5][n[t[3]>>>2]>>>24-8*(3&t[3])&255],c^=a[6][n[t[4]>>>2]>>>24-8*(3&t[4])&255],c^=a[7][n[t[5]>>>2]>>>24-8*(3&t[5])&255],c^=a[o[s]][n[t[6]>>>2]>>>24-8*(3&t[6])&255],n[t[0]]=c}for(s=0;s<4;s++){const e=t[r][s];c=a[4][n[e[0]>>>2]>>>24-8*(3&e[0])&255],c^=a[5][n[e[1]>>>2]>>>24-8*(3&e[1])&255],c^=a[6][n[e[2]>>>2]>>>24-8*(3&e[2])&255],c^=a[7][n[e[3]>>>2]>>>24-8*(3&e[3])&255],c^=a[4+s][n[e[4]>>>2]>>>24-8*(3&e[4])&255],i[h]=c,h++}}for(let e=0;e<16;e++)this.masking[e]=i[e],this.rotate[e]=31&i[16+e]};const a=[,,,,,,,,];a[0]=[821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063],a[1]=[522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321],a[2]=[2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027],a[3]=[2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730],a[4]=[2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860],a[5]=[4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975],a[6]=[2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875],a[7]=[3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]}function Ce(e){this.cast5=new De,this.cast5.setKey(e),this.encrypt=function(e){return this.cast5.encrypt(e)}}Ue.keySize=Ue.prototype.keySize=24,Ue.blockSize=Ue.prototype.blockSize=8,Ce.blockSize=Ce.prototype.blockSize=8,Ce.keySize=Ce.prototype.keySize=16;const Ie=4294967295;function Be(e,t){return(e<<t|e>>>32-t)&Ie}function Te(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function ze(e,t,r){e.splice(t,4,255&r,r>>>8&255,r>>>16&255,r>>>24&255)}function Re(e,t){return e>>>8*t&255}function Me(e){this.tf=function(){let e=null,t=null,r=-1,n=[],i=[[],[],[],[]];function a(e){return i[0][Re(e,0)]^i[1][Re(e,1)]^i[2][Re(e,2)]^i[3][Re(e,3)]}function s(e){return i[0][Re(e,3)]^i[1][Re(e,0)]^i[2][Re(e,1)]^i[3][Re(e,2)]}function o(e,t){let r=a(t[0]),i=s(t[1]);t[2]=Be(t[2]^r+i+n[4*e+8]&Ie,31),t[3]=Be(t[3],1)^r+2*i+n[4*e+9]&Ie,r=a(t[2]),i=s(t[3]),t[0]=Be(t[0]^r+i+n[4*e+10]&Ie,31),t[1]=Be(t[1],1)^r+2*i+n[4*e+11]&Ie}function c(e,t){let r=a(t[0]),i=s(t[1]);t[2]=Be(t[2],1)^r+i+n[4*e+10]&Ie,t[3]=Be(t[3]^r+2*i+n[4*e+11]&Ie,31),r=a(t[2]),i=s(t[3]),t[0]=Be(t[0],1)^r+i+n[4*e+8]&Ie,t[1]=Be(t[1]^r+2*i+n[4*e+9]&Ie,31)}return{name:"twofish",blocksize:16,open:function(t){let r,a,s,o,c;e=t;const h=[],u=[],l=[];let y;const p=[];let d,f,g;const m=[[8,1,7,13,6,15,3,2,0,11,5,9,14,12,10,4],[2,8,11,13,15,7,6,14,3,1,9,4,0,10,12,5]],w=[[14,12,11,8,1,2,3,5,15,4,10,6,7,0,9,13],[1,14,2,11,4,12,3,7,6,13,10,5,15,9,0,8]],b=[[11,10,5,14,6,13,9,0,12,8,15,3,2,4,7,1],[4,12,7,5,1,6,9,10,0,14,13,8,2,11,3,15]],k=[[13,7,15,4,1,2,6,14,9,11,3,0,8,5,12,10],[11,9,5,1,12,3,13,14,6,4,7,15,2,0,8,10]],v=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],A=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],_=[[],[]],E=[[],[],[],[]];function S(e){return e^e>>2^[0,90,180,238][3&e]}function K(e){return e^e>>1^e>>2^[0,238,180,90][3&e]}function x(e,t){let r,n,i;for(r=0;r<8;r++)n=t>>>24,t=t<<8&Ie|e>>>24,e=e<<8&Ie,i=n<<1,128&n&&(i^=333),t^=n^i<<16,i^=n>>>1,1&n&&(i^=166),t^=i<<24|i<<8;return t}function P(e,t){const r=t>>4,n=15&t,i=m[e][r^n],a=w[e][v[n]^A[r]];return k[e][v[a]^A[i]]<<4|b[e][i^a]}function U(e,t){let r=Re(e,0),n=Re(e,1),i=Re(e,2),a=Re(e,3);switch(y){case 4:r=_[1][r]^Re(t[3],0),n=_[0][n]^Re(t[3],1),i=_[0][i]^Re(t[3],2),a=_[1][a]^Re(t[3],3);case 3:r=_[1][r]^Re(t[2],0),n=_[1][n]^Re(t[2],1),i=_[0][i]^Re(t[2],2),a=_[0][a]^Re(t[2],3);case 2:r=_[0][_[0][r]^Re(t[1],0)]^Re(t[0],0),n=_[0][_[1][n]^Re(t[1],1)]^Re(t[0],1),i=_[1][_[0][i]^Re(t[1],2)]^Re(t[0],2),a=_[1][_[1][a]^Re(t[1],3)]^Re(t[0],3)}return E[0][r]^E[1][n]^E[2][i]^E[3][a]}for(e=e.slice(0,32),r=e.length;16!==r&&24!==r&&32!==r;)e[r++]=0;for(r=0;r<e.length;r+=4)l[r>>2]=Te(e,r);for(r=0;r<256;r++)_[0][r]=P(0,r),_[1][r]=P(1,r);for(r=0;r<256;r++)d=_[1][r],f=S(d),g=K(d),E[0][r]=d+(f<<8)+(g<<16)+(g<<24),E[2][r]=f+(g<<8)+(d<<16)+(g<<24),d=_[0][r],f=S(d),g=K(d),E[1][r]=g+(g<<8)+(f<<16)+(d<<24),E[3][r]=f+(d<<8)+(g<<16)+(f<<24);for(y=l.length/2,r=0;r<y;r++)a=l[r+r],h[r]=a,s=l[r+r+1],u[r]=s,p[y-r-1]=x(a,s);for(r=0;r<40;r+=2)a=16843009*r,s=a+16843009,a=U(a,h),s=Be(U(s,u),8),n[r]=a+s&Ie,n[r+1]=Be(a+2*s,9);for(r=0;r<256;r++)switch(a=s=o=c=r,y){case 4:a=_[1][a]^Re(p[3],0),s=_[0][s]^Re(p[3],1),o=_[0][o]^Re(p[3],2),c=_[1][c]^Re(p[3],3);case 3:a=_[1][a]^Re(p[2],0),s=_[1][s]^Re(p[2],1),o=_[0][o]^Re(p[2],2),c=_[0][c]^Re(p[2],3);case 2:i[0][r]=E[0][_[0][_[0][a]^Re(p[1],0)]^Re(p[0],0)],i[1][r]=E[1][_[0][_[1][s]^Re(p[1],1)]^Re(p[0],1)],i[2][r]=E[2][_[1][_[0][o]^Re(p[1],2)]^Re(p[0],2)],i[3][r]=E[3][_[1][_[1][c]^Re(p[1],3)]^Re(p[0],3)]}},close:function(){n=[],i=[[],[],[],[]]},encrypt:function(e,i){t=e,r=i;const a=[Te(t,r)^n[0],Te(t,r+4)^n[1],Te(t,r+8)^n[2],Te(t,r+12)^n[3]];for(let e=0;e<8;e++)o(e,a);return ze(t,r,a[2]^n[4]),ze(t,r+4,a[3]^n[5]),ze(t,r+8,a[0]^n[6]),ze(t,r+12,a[1]^n[7]),r+=16,t},decrypt:function(e,i){t=e,r=i;const a=[Te(t,r)^n[4],Te(t,r+4)^n[5],Te(t,r+8)^n[6],Te(t,r+12)^n[7]];for(let e=7;e>=0;e--)c(e,a);ze(t,r,a[2]^n[0]),ze(t,r+4,a[3]^n[1]),ze(t,r+8,a[0]^n[2]),ze(t,r+12,a[1]^n[3]),r+=16},finalize:function(){return t}}}(),this.tf.open(Array.from(e),0),this.encrypt=function(e){return this.tf.encrypt(Array.from(e),0)}}function Ne(){}function Oe(e){this.bf=new Ne,this.bf.init(e),this.encrypt=function(e){return this.bf.encryptBlock(e)}}Me.keySize=Me.prototype.keySize=32,Me.blockSize=Me.prototype.blockSize=16,Ne.prototype.BLOCKSIZE=8,Ne.prototype.SBOXES=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]],Ne.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],Ne.prototype.NN=16,Ne.prototype._clean=function(e){if(e<0){e=(2147483647&e)+2147483648}return e},Ne.prototype._F=function(e){let t;const r=255&e,n=255&(e>>>=8),i=255&(e>>>=8),a=255&(e>>>=8);return t=this.sboxes[0][a]+this.sboxes[1][i],t^=this.sboxes[2][n],t+=this.sboxes[3][r],t},Ne.prototype._encryptBlock=function(e){let t,r=e[0],n=e[1];for(t=0;t<this.NN;++t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[this.NN+0],n^=this.parray[this.NN+1],e[0]=this._clean(n),e[1]=this._clean(r)},Ne.prototype.encryptBlock=function(e){let t;const r=[0,0],n=this.BLOCKSIZE/2;for(t=0;t<this.BLOCKSIZE/2;++t)r[0]=r[0]<<8|255&e[t+0],r[1]=r[1]<<8|255&e[t+n];this._encryptBlock(r);const i=[];for(t=0;t<this.BLOCKSIZE/2;++t)i[t+0]=r[0]>>>24-8*t&255,i[t+n]=r[1]>>>24-8*t&255;return i},Ne.prototype._decryptBlock=function(e){let t,r=e[0],n=e[1];for(t=this.NN+1;t>1;--t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[1],n^=this.parray[0],e[0]=this._clean(n),e[1]=this._clean(r)},Ne.prototype.init=function(e){let t,r=0;for(this.parray=[],t=0;t<this.NN+2;++t){let n=0;for(let t=0;t<4;++t)n=n<<8|255&e[r],++r>=e.length&&(r=0);this.parray[t]=this.PARRAY[t]^n}for(this.sboxes=[],t=0;t<4;++t)for(this.sboxes[t]=[],r=0;r<256;++r)this.sboxes[t][r]=this.SBOXES[t][r];const n=[0,0];for(t=0;t<this.NN+2;t+=2)this._encryptBlock(n),this.parray[t+0]=n[0],this.parray[t+1]=n[1];for(t=0;t<4;++t)for(r=0;r<256;r+=2)this._encryptBlock(n),this.sboxes[t][r+0]=n[0],this.sboxes[t][r+1]=n[1]},Oe.keySize=Oe.prototype.keySize=16,Oe.blockSize=Oe.prototype.blockSize=8;const Le=Ke(128),Fe=Ke(192),je=Ke(256);var He=/*#__PURE__*/Object.freeze({__proto__:null,aes128:Le,aes192:Fe,aes256:je,des:function(e){this.key=e,this.encrypt=function(e,t){return xe(Pe(this.key),e,!0,0,null,t)},this.decrypt=function(e,t){return xe(Pe(this.key),e,!1,0,null,t)}},tripledes:Ue,cast5:Ce,twofish:Me,blowfish:Oe,idea:function(){throw Error("IDEA symmetric-key algorithm not implemented")}}),qe=function(e,t,r){"use asm";var n=0,i=0,a=0,s=0,o=0,c=0,h=0;var u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0;var k=new e.Uint8Array(r);function v(e,t,r,c,h,u,l,y,p,d,f,g,m,w,b,k){e=e|0;t=t|0;r=r|0;c=c|0;h=h|0;u=u|0;l=l|0;y=y|0;p=p|0;d=d|0;f=f|0;g=g|0;m=m|0;w=w|0;b=b|0;k=k|0;var v=0,A=0,_=0,E=0,S=0,K=0,x=0,P=0,U=0,D=0,C=0,I=0,B=0,T=0,z=0,R=0,M=0,N=0,O=0,L=0,F=0,j=0,H=0,q=0,G=0,V=0,W=0,$=0,Z=0,Q=0,Y=0,X=0,J=0,ee=0,te=0,re=0,ne=0,ie=0,ae=0,se=0,oe=0,ce=0,he=0,ue=0,le=0,ye=0,pe=0,de=0,fe=0,ge=0,me=0,we=0,be=0,ke=0,ve=0,Ae=0,_e=0,Ee=0,Se=0,Ke=0,xe=0,Pe=0,Ue=0,De=0,Ce=0,Ie=0,Be=0,Te=0,ze=0,Re=0,Me=0;v=n;A=i;_=a;E=s;S=o;x=e+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=t+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=r+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=c+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=h+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=u+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=l+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=y+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=p+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=d+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=f+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=g+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=m+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=w+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=b+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=k+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=w^p^r^e;P=K<<1|K>>>31;x=P+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=b^d^c^t;U=K<<1|K>>>31;x=U+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=k^f^h^r;D=K<<1|K>>>31;x=D+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=P^g^u^c;C=K<<1|K>>>31;x=C+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=U^m^l^h;I=K<<1|K>>>31;x=I+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=D^w^y^u;B=K<<1|K>>>31;x=B+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=C^b^p^l;T=K<<1|K>>>31;x=T+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=I^k^d^y;z=K<<1|K>>>31;x=z+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=B^P^f^p;R=K<<1|K>>>31;x=R+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=T^U^g^d;M=K<<1|K>>>31;x=M+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=z^D^m^f;N=K<<1|K>>>31;x=N+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=R^C^w^g;O=K<<1|K>>>31;x=O+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=M^I^b^m;L=K<<1|K>>>31;x=L+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=N^B^k^w;F=K<<1|K>>>31;x=F+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=O^T^P^b;j=K<<1|K>>>31;x=j+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=L^z^U^k;H=K<<1|K>>>31;x=H+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=F^R^D^P;q=K<<1|K>>>31;x=q+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=j^M^C^U;G=K<<1|K>>>31;x=G+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=H^N^I^D;V=K<<1|K>>>31;x=V+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=q^O^B^C;W=K<<1|K>>>31;x=W+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=G^L^T^I;$=K<<1|K>>>31;x=$+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=V^F^z^B;Z=K<<1|K>>>31;x=Z+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=W^j^R^T;Q=K<<1|K>>>31;x=Q+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=$^H^M^z;Y=K<<1|K>>>31;x=Y+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Z^q^N^R;X=K<<1|K>>>31;x=X+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Q^G^O^M;J=K<<1|K>>>31;x=J+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Y^V^L^N;ee=K<<1|K>>>31;x=ee+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=X^W^F^O;te=K<<1|K>>>31;x=te+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=J^$^j^L;re=K<<1|K>>>31;x=re+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ee^Z^H^F;ne=K<<1|K>>>31;x=ne+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=te^Q^q^j;ie=K<<1|K>>>31;x=ie+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=re^Y^G^H;ae=K<<1|K>>>31;x=ae+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ne^X^V^q;se=K<<1|K>>>31;x=se+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ie^J^W^G;oe=K<<1|K>>>31;x=oe+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ae^ee^$^V;ce=K<<1|K>>>31;x=ce+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=se^te^Z^W;he=K<<1|K>>>31;x=he+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=oe^re^Q^$;ue=K<<1|K>>>31;x=ue+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ce^ne^Y^Z;le=K<<1|K>>>31;x=le+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=he^ie^X^Q;ye=K<<1|K>>>31;x=ye+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ue^ae^J^Y;pe=K<<1|K>>>31;x=pe+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=le^se^ee^X;de=K<<1|K>>>31;x=de+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ye^oe^te^J;fe=K<<1|K>>>31;x=fe+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=pe^ce^re^ee;ge=K<<1|K>>>31;x=ge+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=de^he^ne^te;me=K<<1|K>>>31;x=me+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=fe^ue^ie^re;we=K<<1|K>>>31;x=we+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ge^le^ae^ne;be=K<<1|K>>>31;x=be+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=me^ye^se^ie;ke=K<<1|K>>>31;x=ke+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=we^pe^oe^ae;ve=K<<1|K>>>31;x=ve+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=be^de^ce^se;Ae=K<<1|K>>>31;x=Ae+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ke^fe^he^oe;_e=K<<1|K>>>31;x=_e+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ve^ge^ue^ce;Ee=K<<1|K>>>31;x=Ee+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ae^me^le^he;Se=K<<1|K>>>31;x=Se+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=_e^we^ye^ue;Ke=K<<1|K>>>31;x=Ke+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ee^be^pe^le;xe=K<<1|K>>>31;x=xe+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Se^ke^de^ye;Pe=K<<1|K>>>31;x=Pe+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ke^ve^fe^pe;Ue=K<<1|K>>>31;x=Ue+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=xe^Ae^ge^de;De=K<<1|K>>>31;x=De+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Pe^_e^me^fe;Ce=K<<1|K>>>31;x=Ce+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ue^Ee^we^ge;Ie=K<<1|K>>>31;x=Ie+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=De^Se^be^me;Be=K<<1|K>>>31;x=Be+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ce^Ke^ke^we;Te=K<<1|K>>>31;x=Te+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ie^xe^ve^be;ze=K<<1|K>>>31;x=ze+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Be^Pe^Ae^ke;Re=K<<1|K>>>31;x=Re+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Te^Ue^_e^ve;Me=K<<1|K>>>31;x=Me+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;n=n+v|0;i=i+A|0;a=a+_|0;s=s+E|0;o=o+S|0}function A(e){e=e|0;v(k[e|0]<<24|k[e|1]<<16|k[e|2]<<8|k[e|3],k[e|4]<<24|k[e|5]<<16|k[e|6]<<8|k[e|7],k[e|8]<<24|k[e|9]<<16|k[e|10]<<8|k[e|11],k[e|12]<<24|k[e|13]<<16|k[e|14]<<8|k[e|15],k[e|16]<<24|k[e|17]<<16|k[e|18]<<8|k[e|19],k[e|20]<<24|k[e|21]<<16|k[e|22]<<8|k[e|23],k[e|24]<<24|k[e|25]<<16|k[e|26]<<8|k[e|27],k[e|28]<<24|k[e|29]<<16|k[e|30]<<8|k[e|31],k[e|32]<<24|k[e|33]<<16|k[e|34]<<8|k[e|35],k[e|36]<<24|k[e|37]<<16|k[e|38]<<8|k[e|39],k[e|40]<<24|k[e|41]<<16|k[e|42]<<8|k[e|43],k[e|44]<<24|k[e|45]<<16|k[e|46]<<8|k[e|47],k[e|48]<<24|k[e|49]<<16|k[e|50]<<8|k[e|51],k[e|52]<<24|k[e|53]<<16|k[e|54]<<8|k[e|55],k[e|56]<<24|k[e|57]<<16|k[e|58]<<8|k[e|59],k[e|60]<<24|k[e|61]<<16|k[e|62]<<8|k[e|63])}function _(e){e=e|0;k[e|0]=n>>>24;k[e|1]=n>>>16&255;k[e|2]=n>>>8&255;k[e|3]=n&255;k[e|4]=i>>>24;k[e|5]=i>>>16&255;k[e|6]=i>>>8&255;k[e|7]=i&255;k[e|8]=a>>>24;k[e|9]=a>>>16&255;k[e|10]=a>>>8&255;k[e|11]=a&255;k[e|12]=s>>>24;k[e|13]=s>>>16&255;k[e|14]=s>>>8&255;k[e|15]=s&255;k[e|16]=o>>>24;k[e|17]=o>>>16&255;k[e|18]=o>>>8&255;k[e|19]=o&255}function E(){n=0x67452301;i=0xefcdab89;a=0x98badcfe;s=0x10325476;o=0xc3d2e1f0;c=h=0}function S(e,t,r,u,l,y,p){e=e|0;t=t|0;r=r|0;u=u|0;l=l|0;y=y|0;p=p|0;n=e;i=t;a=r;s=u;o=l;c=y;h=p}function K(e,t){e=e|0;t=t|0;var r=0;if(e&63)return-1;while((t|0)>=64){A(e);e=e+64|0;t=t-64|0;r=r+64|0}c=c+r|0;if(c>>>0<r>>>0)h=h+1|0;return r|0}function x(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0;if(e&63)return-1;if(~r)if(r&31)return-1;if((t|0)>=64){n=K(e,t)|0;if((n|0)==-1)return-1;e=e+n|0;t=t-n|0}n=n+t|0;c=c+t|0;if(c>>>0<t>>>0)h=h+1|0;k[e|t]=0x80;if((t|0)>=56){for(i=t+1|0;(i|0)<64;i=i+1|0)k[e|i]=0x00;A(e);t=0;k[e|0]=0}for(i=t+1|0;(i|0)<59;i=i+1|0)k[e|i]=0;k[e|56]=h>>>21&255;k[e|57]=h>>>13&255;k[e|58]=h>>>5&255;k[e|59]=h<<3&255|c>>>29;k[e|60]=c>>>21&255;k[e|61]=c>>>13&255;k[e|62]=c>>>5&255;k[e|63]=c<<3&255;A(e);if(~r)_(r);return n|0}function P(){n=u;i=l;a=y;s=p;o=d;c=64;h=0}function U(){n=f;i=g;a=m;s=w;o=b;c=64;h=0}function D(e,t,r,k,A,_,S,K,x,P,U,D,C,I,B,T){e=e|0;t=t|0;r=r|0;k=k|0;A=A|0;_=_|0;S=S|0;K=K|0;x=x|0;P=P|0;U=U|0;D=D|0;C=C|0;I=I|0;B=B|0;T=T|0;E();v(e^0x5c5c5c5c,t^0x5c5c5c5c,r^0x5c5c5c5c,k^0x5c5c5c5c,A^0x5c5c5c5c,_^0x5c5c5c5c,S^0x5c5c5c5c,K^0x5c5c5c5c,x^0x5c5c5c5c,P^0x5c5c5c5c,U^0x5c5c5c5c,D^0x5c5c5c5c,C^0x5c5c5c5c,I^0x5c5c5c5c,B^0x5c5c5c5c,T^0x5c5c5c5c);f=n;g=i;m=a;w=s;b=o;E();v(e^0x36363636,t^0x36363636,r^0x36363636,k^0x36363636,A^0x36363636,_^0x36363636,S^0x36363636,K^0x36363636,x^0x36363636,P^0x36363636,U^0x36363636,D^0x36363636,C^0x36363636,I^0x36363636,B^0x36363636,T^0x36363636);u=n;l=i;y=a;p=s;d=o;c=64;h=0}function C(e,t,r){e=e|0;t=t|0;r=r|0;var c=0,h=0,u=0,l=0,y=0,p=0;if(e&63)return-1;if(~r)if(r&31)return-1;p=x(e,t,-1)|0;c=n,h=i,u=a,l=s,y=o;U();v(c,h,u,l,y,0x80000000,0,0,0,0,0,0,0,0,0,672);if(~r)_(r);return p|0}function I(e,t,r,c,h){e=e|0;t=t|0;r=r|0;c=c|0;h=h|0;var u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0;if(e&63)return-1;if(~h)if(h&31)return-1;k[e+t|0]=r>>>24;k[e+t+1|0]=r>>>16&255;k[e+t+2|0]=r>>>8&255;k[e+t+3|0]=r&255;C(e,t+4|0,-1)|0;u=f=n,l=g=i,y=m=a,p=w=s,d=b=o;c=c-1|0;while((c|0)>0){P();v(f,g,m,w,b,0x80000000,0,0,0,0,0,0,0,0,0,672);f=n,g=i,m=a,w=s,b=o;U();v(f,g,m,w,b,0x80000000,0,0,0,0,0,0,0,0,0,672);f=n,g=i,m=a,w=s,b=o;u=u^n;l=l^i;y=y^a;p=p^s;d=d^o;c=c-1|0}n=u;i=l;a=y;s=p;o=d;if(~h)_(h);return 0}return{reset:E,init:S,process:K,finish:x,hmac_reset:P,hmac_init:D,hmac_finish:C,pbkdf2_generate_block:I}};class Ge{constructor(){this.pos=0,this.len=0}reset(){const{asm:e}=this.acquire_asm();return this.result=null,this.pos=0,this.len=0,e.reset(),this}process(e){if(null!==this.result)throw new be("state must be reset before processing new data");const{asm:t,heap:r}=this.acquire_asm();let n=this.pos,i=this.len,a=0,s=e.length,o=0;for(;s>0;)o=me(r,n+i,e,a,s),i+=o,a+=o,s-=o,o=t.process(n,i),n+=o,i-=o,i||(n=0);return this.pos=n,this.len=i,this}finish(){if(null!==this.result)throw new be("state must be reset before processing new data");const{asm:e,heap:t}=this.acquire_asm();return e.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(t.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this.release_asm(),this}}const Ve=[],We=[];class $e extends Ge{constructor(){super(),this.NAME="sha1",this.BLOCK_SIZE=64,this.HASH_SIZE=20,this.acquire_asm()}acquire_asm(){return void 0!==this.heap&&void 0!==this.asm||(this.heap=Ve.pop()||ge(),this.asm=We.pop()||qe({Uint8Array},null,this.heap.buffer),this.reset()),{heap:this.heap,asm:this.asm}}release_asm(){void 0!==this.heap&&void 0!==this.asm&&(Ve.push(this.heap),We.push(this.asm)),this.heap=void 0,this.asm=void 0}static bytes(e){return(new $e).process(e).finish().result}}$e.NAME="sha1",$e.heap_pool=[],$e.asm_pool=[],$e.asm_function=qe;const Ze=[],Qe=[];class Ye extends Ge{constructor(){super(),this.NAME="sha256",this.BLOCK_SIZE=64,this.HASH_SIZE=32,this.acquire_asm()}acquire_asm(){return void 0!==this.heap&&void 0!==this.asm||(this.heap=Ze.pop()||ge(),this.asm=Qe.pop()||function(e,t,r){"use asm";var n=0,i=0,a=0,s=0,o=0,c=0,h=0,u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0,E=0,S=0,K=0,x=0,P=0,U=new e.Uint8Array(r);function D(e,t,r,l,y,p,d,f,g,m,w,b,k,v,A,_){e=e|0;t=t|0;r=r|0;l=l|0;y=y|0;p=p|0;d=d|0;f=f|0;g=g|0;m=m|0;w=w|0;b=b|0;k=k|0;v=v|0;A=A|0;_=_|0;var E=0,S=0,K=0,x=0,P=0,U=0,D=0,C=0;E=n;S=i;K=a;x=s;P=o;U=c;D=h;C=u;C=e+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x428a2f98|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;D=t+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x71374491|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;U=r+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0xb5c0fbcf|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;P=l+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0xe9b5dba5|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;x=y+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x3956c25b|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;K=p+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x59f111f1|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;S=d+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x923f82a4|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;E=f+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0xab1c5ed5|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;C=g+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0xd807aa98|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;D=m+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x12835b01|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;U=w+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x243185be|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;P=b+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x550c7dc3|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;x=k+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x72be5d74|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;K=v+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x80deb1fe|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;S=A+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x9bdc06a7|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;E=_+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0xc19bf174|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;C=e+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0xe49b69c1|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+t+w|0;D=t+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0xefbe4786|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;r=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+b|0;U=r+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x0fc19dc6|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;l=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+l+k|0;P=l+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x240ca1cc|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;y=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+y+v|0;x=y+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x2de92c6f|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;p=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+A|0;K=p+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x4a7484aa|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;d=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+_|0;S=d+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x5cb0a9dc|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;f=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+f+e|0;E=f+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x76f988da|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+g+t|0;C=g+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x983e5152|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;m=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+m+r|0;D=m+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0xa831c66d|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;w=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+l|0;U=w+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0xb00327c8|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;b=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+b+y|0;P=b+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0xbf597fc7|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;k=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+k+p|0;x=k+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0xc6e00bf3|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;v=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+v+d|0;K=v+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0xd5a79147|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;A=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+A+f|0;S=A+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x06ca6351|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;_=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+g|0;E=_+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x14292967|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;C=e+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x27b70a85|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+t+w|0;D=t+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x2e1b2138|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;r=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+b|0;U=r+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x4d2c6dfc|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;l=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+l+k|0;P=l+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x53380d13|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;y=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+y+v|0;x=y+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x650a7354|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;p=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+A|0;K=p+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x766a0abb|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;d=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+_|0;S=d+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x81c2c92e|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;f=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+f+e|0;E=f+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x92722c85|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+g+t|0;C=g+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0xa2bfe8a1|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;m=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+m+r|0;D=m+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0xa81a664b|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;w=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+l|0;U=w+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0xc24b8b70|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;b=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+b+y|0;P=b+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0xc76c51a3|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;k=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+k+p|0;x=k+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0xd192e819|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;v=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+v+d|0;K=v+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0xd6990624|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;A=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+A+f|0;S=A+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0xf40e3585|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;_=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+g|0;E=_+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x106aa070|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;C=e+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x19a4c116|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+t+w|0;D=t+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x1e376c08|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;r=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+b|0;U=r+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x2748774c|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;l=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+l+k|0;P=l+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x34b0bcb5|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;y=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+y+v|0;x=y+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x391c0cb3|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;p=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+A|0;K=p+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x4ed8aa4a|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;d=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+_|0;S=d+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x5b9cca4f|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;f=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+f+e|0;E=f+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x682e6ff3|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+g+t|0;C=g+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x748f82ee|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;m=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+m+r|0;D=m+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x78a5636f|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;w=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+l|0;U=w+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x84c87814|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;b=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+b+y|0;P=b+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x8cc70208|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;k=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+k+p|0;x=k+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x90befffa|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;v=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+v+d|0;K=v+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0xa4506ceb|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;A=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+A+f|0;S=A+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0xbef9a3f7|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;_=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+g|0;E=_+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0xc67178f2|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;n=n+E|0;i=i+S|0;a=a+K|0;s=s+x|0;o=o+P|0;c=c+U|0;h=h+D|0;u=u+C|0}function C(e){e=e|0;D(U[e|0]<<24|U[e|1]<<16|U[e|2]<<8|U[e|3],U[e|4]<<24|U[e|5]<<16|U[e|6]<<8|U[e|7],U[e|8]<<24|U[e|9]<<16|U[e|10]<<8|U[e|11],U[e|12]<<24|U[e|13]<<16|U[e|14]<<8|U[e|15],U[e|16]<<24|U[e|17]<<16|U[e|18]<<8|U[e|19],U[e|20]<<24|U[e|21]<<16|U[e|22]<<8|U[e|23],U[e|24]<<24|U[e|25]<<16|U[e|26]<<8|U[e|27],U[e|28]<<24|U[e|29]<<16|U[e|30]<<8|U[e|31],U[e|32]<<24|U[e|33]<<16|U[e|34]<<8|U[e|35],U[e|36]<<24|U[e|37]<<16|U[e|38]<<8|U[e|39],U[e|40]<<24|U[e|41]<<16|U[e|42]<<8|U[e|43],U[e|44]<<24|U[e|45]<<16|U[e|46]<<8|U[e|47],U[e|48]<<24|U[e|49]<<16|U[e|50]<<8|U[e|51],U[e|52]<<24|U[e|53]<<16|U[e|54]<<8|U[e|55],U[e|56]<<24|U[e|57]<<16|U[e|58]<<8|U[e|59],U[e|60]<<24|U[e|61]<<16|U[e|62]<<8|U[e|63])}function I(e){e=e|0;U[e|0]=n>>>24;U[e|1]=n>>>16&255;U[e|2]=n>>>8&255;U[e|3]=n&255;U[e|4]=i>>>24;U[e|5]=i>>>16&255;U[e|6]=i>>>8&255;U[e|7]=i&255;U[e|8]=a>>>24;U[e|9]=a>>>16&255;U[e|10]=a>>>8&255;U[e|11]=a&255;U[e|12]=s>>>24;U[e|13]=s>>>16&255;U[e|14]=s>>>8&255;U[e|15]=s&255;U[e|16]=o>>>24;U[e|17]=o>>>16&255;U[e|18]=o>>>8&255;U[e|19]=o&255;U[e|20]=c>>>24;U[e|21]=c>>>16&255;U[e|22]=c>>>8&255;U[e|23]=c&255;U[e|24]=h>>>24;U[e|25]=h>>>16&255;U[e|26]=h>>>8&255;U[e|27]=h&255;U[e|28]=u>>>24;U[e|29]=u>>>16&255;U[e|30]=u>>>8&255;U[e|31]=u&255}function B(){n=0x6a09e667;i=0xbb67ae85;a=0x3c6ef372;s=0xa54ff53a;o=0x510e527f;c=0x9b05688c;h=0x1f83d9ab;u=0x5be0cd19;l=y=0}function T(e,t,r,p,d,f,g,m,w,b){e=e|0;t=t|0;r=r|0;p=p|0;d=d|0;f=f|0;g=g|0;m=m|0;w=w|0;b=b|0;n=e;i=t;a=r;s=p;o=d;c=f;h=g;u=m;l=w;y=b}function z(e,t){e=e|0;t=t|0;var r=0;if(e&63)return-1;while((t|0)>=64){C(e);e=e+64|0;t=t-64|0;r=r+64|0}l=l+r|0;if(l>>>0<r>>>0)y=y+1|0;return r|0}function R(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0;if(e&63)return-1;if(~r)if(r&31)return-1;if((t|0)>=64){n=z(e,t)|0;if((n|0)==-1)return-1;e=e+n|0;t=t-n|0}n=n+t|0;l=l+t|0;if(l>>>0<t>>>0)y=y+1|0;U[e|t]=0x80;if((t|0)>=56){for(i=t+1|0;(i|0)<64;i=i+1|0)U[e|i]=0x00;C(e);t=0;U[e|0]=0}for(i=t+1|0;(i|0)<59;i=i+1|0)U[e|i]=0;U[e|56]=y>>>21&255;U[e|57]=y>>>13&255;U[e|58]=y>>>5&255;U[e|59]=y<<3&255|l>>>29;U[e|60]=l>>>21&255;U[e|61]=l>>>13&255;U[e|62]=l>>>5&255;U[e|63]=l<<3&255;C(e);if(~r)I(r);return n|0}function M(){n=p;i=d;a=f;s=g;o=m;c=w;h=b;u=k;l=64;y=0}function N(){n=v;i=A;a=_;s=E;o=S;c=K;h=x;u=P;l=64;y=0}function O(e,t,r,U,C,I,T,z,R,M,N,O,L,F,j,H){e=e|0;t=t|0;r=r|0;U=U|0;C=C|0;I=I|0;T=T|0;z=z|0;R=R|0;M=M|0;N=N|0;O=O|0;L=L|0;F=F|0;j=j|0;H=H|0;B();D(e^0x5c5c5c5c,t^0x5c5c5c5c,r^0x5c5c5c5c,U^0x5c5c5c5c,C^0x5c5c5c5c,I^0x5c5c5c5c,T^0x5c5c5c5c,z^0x5c5c5c5c,R^0x5c5c5c5c,M^0x5c5c5c5c,N^0x5c5c5c5c,O^0x5c5c5c5c,L^0x5c5c5c5c,F^0x5c5c5c5c,j^0x5c5c5c5c,H^0x5c5c5c5c);v=n;A=i;_=a;E=s;S=o;K=c;x=h;P=u;B();D(e^0x36363636,t^0x36363636,r^0x36363636,U^0x36363636,C^0x36363636,I^0x36363636,T^0x36363636,z^0x36363636,R^0x36363636,M^0x36363636,N^0x36363636,O^0x36363636,L^0x36363636,F^0x36363636,j^0x36363636,H^0x36363636);p=n;d=i;f=a;g=s;m=o;w=c;b=h;k=u;l=64;y=0}function L(e,t,r){e=e|0;t=t|0;r=r|0;var l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0;if(e&63)return-1;if(~r)if(r&31)return-1;b=R(e,t,-1)|0;l=n,y=i,p=a,d=s,f=o,g=c,m=h,w=u;N();D(l,y,p,d,f,g,m,w,0x80000000,0,0,0,0,0,0,768);if(~r)I(r);return b|0}function F(e,t,r,l,y){e=e|0;t=t|0;r=r|0;l=l|0;y=y|0;var p=0,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0,E=0,S=0,K=0,x=0,P=0;if(e&63)return-1;if(~y)if(y&31)return-1;U[e+t|0]=r>>>24;U[e+t+1|0]=r>>>16&255;U[e+t+2|0]=r>>>8&255;U[e+t+3|0]=r&255;L(e,t+4|0,-1)|0;p=v=n,d=A=i,f=_=a,g=E=s,m=S=o,w=K=c,b=x=h,k=P=u;l=l-1|0;while((l|0)>0){M();D(v,A,_,E,S,K,x,P,0x80000000,0,0,0,0,0,0,768);v=n,A=i,_=a,E=s,S=o,K=c,x=h,P=u;N();D(v,A,_,E,S,K,x,P,0x80000000,0,0,0,0,0,0,768);v=n,A=i,_=a,E=s,S=o,K=c,x=h,P=u;p=p^n;d=d^i;f=f^a;g=g^s;m=m^o;w=w^c;b=b^h;k=k^u;l=l-1|0}n=p;i=d;a=f;s=g;o=m;c=w;h=b;u=k;if(~y)I(y);return 0}return{reset:B,init:T,process:z,finish:R,hmac_reset:M,hmac_init:O,hmac_finish:L,pbkdf2_generate_block:F}}({Uint8Array},null,this.heap.buffer),this.reset()),{heap:this.heap,asm:this.asm}}release_asm(){void 0!==this.heap&&void 0!==this.asm&&(Ze.push(this.heap),Qe.push(this.asm)),this.heap=void 0,this.asm=void 0}static bytes(e){return(new Ye).process(e).finish().result}}Ye.NAME="sha256";var Xe=Je;function Je(e,t){if(!e)throw Error(t||"Assertion failed")}Je.equal=function(e,t,r){if(e!=t)throw Error(r||"Assertion failed: "+e+" != "+t)};var et=void 0!==e?e:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function tt(e,t){return e(t={exports:{}},t.exports),t.exports}var rt=tt((function(e){e.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}));function nt(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function it(e){return 1===e.length?"0"+e:e}function at(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}var st={inherits:rt,toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16))}else for(var n=0;n<e.length;n++){var i=e.charCodeAt(n),a=i>>8,s=255&i;a?r.push(a,s):r.push(s)}else for(n=0;n<e.length;n++)r[n]=0|e[n];return r},toHex:function(e){for(var t="",r=0;r<e.length;r++)t+=it(e[r].toString(16));return t},htonl:nt,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=nt(i)),r+=at(i.toString(16))}return r},zero2:it,zero8:at,join32:function(e,t,r,n){var i=r-t;Xe(i%4==0);for(var a=Array(i/4),s=0,o=t;s<a.length;s++,o+=4){var c;c="big"===n?e[o]<<24|e[o+1]<<16|e[o+2]<<8|e[o+3]:e[o+3]<<24|e[o+2]<<16|e[o+1]<<8|e[o],a[s]=c>>>0}return a},split32:function(e,t){for(var r=Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var a=e[n];"big"===t?(r[i]=a>>>24,r[i+1]=a>>>16&255,r[i+2]=a>>>8&255,r[i+3]=255&a):(r[i+3]=a>>>24,r[i+2]=a>>>16&255,r[i+1]=a>>>8&255,r[i]=255&a)}return r},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,r){return e+t+r>>>0},sum32_4:function(e,t,r,n){return e+t+r+n>>>0},sum32_5:function(e,t,r,n,i){return e+t+r+n+i>>>0},sum64:function(e,t,r,n){var i=e[t],a=n+e[t+1]>>>0,s=(a<n?1:0)+r+i;e[t]=s>>>0,e[t+1]=a},sum64_hi:function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},sum64_lo:function(e,t,r,n){return t+n>>>0},sum64_4_hi:function(e,t,r,n,i,a,s,o){var c=0,h=t;return c+=(h=h+n>>>0)<t?1:0,c+=(h=h+a>>>0)<a?1:0,e+r+i+s+(c+=(h=h+o>>>0)<o?1:0)>>>0},sum64_4_lo:function(e,t,r,n,i,a,s,o){return t+n+a+o>>>0},sum64_5_hi:function(e,t,r,n,i,a,s,o,c,h){var u=0,l=t;return u+=(l=l+n>>>0)<t?1:0,u+=(l=l+a>>>0)<a?1:0,u+=(l=l+o>>>0)<o?1:0,e+r+i+s+c+(u+=(l=l+h>>>0)<h?1:0)>>>0},sum64_5_lo:function(e,t,r,n,i,a,s,o,c,h){return t+n+a+o+h>>>0},rotr64_hi:function(e,t,r){return(t<<32-r|e>>>r)>>>0},rotr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0},shr64_hi:function(e,t,r){return e>>>r},shr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0}};function ot(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var ct=ot;ot.prototype.update=function(e,t){if(e=st.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=st.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},ot.prototype.digest=function(e){return this.update(this._pad()),Xe(null===this.pending),this._digest(e)},ot.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,a=8;a<this.padLength;a++)n[i++]=0;return n};var ht={BlockHash:ct},ut=st.rotr32;function lt(e,t,r){return e&t^~e&r}function yt(e,t,r){return e&t^e&r^t&r}function pt(e,t,r){return e^t^r}var dt={ft_1:function(e,t,r,n){return 0===e?lt(t,r,n):1===e||3===e?pt(t,r,n):2===e?yt(t,r,n):void 0},ch32:lt,maj32:yt,p32:pt,s0_256:function(e){return ut(e,2)^ut(e,13)^ut(e,22)},s1_256:function(e){return ut(e,6)^ut(e,11)^ut(e,25)},g0_256:function(e){return ut(e,7)^ut(e,18)^e>>>3},g1_256:function(e){return ut(e,17)^ut(e,19)^e>>>10}},ft=st.sum32,gt=st.sum32_4,mt=st.sum32_5,wt=dt.ch32,bt=dt.maj32,kt=dt.s0_256,vt=dt.s1_256,At=dt.g0_256,_t=dt.g1_256,Et=ht.BlockHash,St=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Kt(){if(!(this instanceof Kt))return new Kt;Et.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=St,this.W=Array(64)}st.inherits(Kt,Et);var xt=Kt;function Pt(){if(!(this instanceof Pt))return new Pt;xt.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Kt.blockSize=512,Kt.outSize=256,Kt.hmacStrength=192,Kt.padLength=64,Kt.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=gt(_t(r[n-2]),r[n-7],At(r[n-15]),r[n-16]);var i=this.h[0],a=this.h[1],s=this.h[2],o=this.h[3],c=this.h[4],h=this.h[5],u=this.h[6],l=this.h[7];for(Xe(this.k.length===r.length),n=0;n<r.length;n++){var y=mt(l,vt(c),wt(c,h,u),this.k[n],r[n]),p=ft(kt(i),bt(i,a,s));l=u,u=h,h=c,c=ft(o,y),o=s,s=a,a=i,i=ft(y,p)}this.h[0]=ft(this.h[0],i),this.h[1]=ft(this.h[1],a),this.h[2]=ft(this.h[2],s),this.h[3]=ft(this.h[3],o),this.h[4]=ft(this.h[4],c),this.h[5]=ft(this.h[5],h),this.h[6]=ft(this.h[6],u),this.h[7]=ft(this.h[7],l)},Kt.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h,"big"):st.split32(this.h,"big")},st.inherits(Pt,xt);var Ut=Pt;Pt.blockSize=512,Pt.outSize=224,Pt.hmacStrength=192,Pt.padLength=64,Pt.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h.slice(0,7),"big"):st.split32(this.h.slice(0,7),"big")};var Dt=st.rotr64_hi,Ct=st.rotr64_lo,It=st.shr64_hi,Bt=st.shr64_lo,Tt=st.sum64,zt=st.sum64_hi,Rt=st.sum64_lo,Mt=st.sum64_4_hi,Nt=st.sum64_4_lo,Ot=st.sum64_5_hi,Lt=st.sum64_5_lo,Ft=ht.BlockHash,jt=[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 Ht(){if(!(this instanceof Ht))return new Ht;Ft.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=jt,this.W=Array(160)}st.inherits(Ht,Ft);var qt=Ht;function Gt(e,t,r,n,i){var a=e&r^~e&i;return a<0&&(a+=4294967296),a}function Vt(e,t,r,n,i,a){var s=t&n^~t&a;return s<0&&(s+=4294967296),s}function Wt(e,t,r,n,i){var a=e&r^e&i^r&i;return a<0&&(a+=4294967296),a}function $t(e,t,r,n,i,a){var s=t&n^t&a^n&a;return s<0&&(s+=4294967296),s}function Zt(e,t){var r=Dt(e,t,28)^Dt(t,e,2)^Dt(t,e,7);return r<0&&(r+=4294967296),r}function Qt(e,t){var r=Ct(e,t,28)^Ct(t,e,2)^Ct(t,e,7);return r<0&&(r+=4294967296),r}function Yt(e,t){var r=Dt(e,t,14)^Dt(e,t,18)^Dt(t,e,9);return r<0&&(r+=4294967296),r}function Xt(e,t){var r=Ct(e,t,14)^Ct(e,t,18)^Ct(t,e,9);return r<0&&(r+=4294967296),r}function Jt(e,t){var r=Dt(e,t,1)^Dt(e,t,8)^It(e,t,7);return r<0&&(r+=4294967296),r}function er(e,t){var r=Ct(e,t,1)^Ct(e,t,8)^Bt(e,t,7);return r<0&&(r+=4294967296),r}function tr(e,t){var r=Dt(e,t,19)^Dt(t,e,29)^It(e,t,6);return r<0&&(r+=4294967296),r}function rr(e,t){var r=Ct(e,t,19)^Ct(t,e,29)^Bt(e,t,6);return r<0&&(r+=4294967296),r}function nr(){if(!(this instanceof nr))return new nr;qt.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Ht.blockSize=1024,Ht.outSize=512,Ht.hmacStrength=192,Ht.padLength=128,Ht.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=tr(r[n-4],r[n-3]),a=rr(r[n-4],r[n-3]),s=r[n-14],o=r[n-13],c=Jt(r[n-30],r[n-29]),h=er(r[n-30],r[n-29]),u=r[n-32],l=r[n-31];r[n]=Mt(i,a,s,o,c,h,u,l),r[n+1]=Nt(i,a,s,o,c,h,u,l)}},Ht.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],a=this.h[2],s=this.h[3],o=this.h[4],c=this.h[5],h=this.h[6],u=this.h[7],l=this.h[8],y=this.h[9],p=this.h[10],d=this.h[11],f=this.h[12],g=this.h[13],m=this.h[14],w=this.h[15];Xe(this.k.length===r.length);for(var b=0;b<r.length;b+=2){var k=m,v=w,A=Yt(l,y),_=Xt(l,y),E=Gt(l,y,p,d,f),S=Vt(l,y,p,d,f,g),K=this.k[b],x=this.k[b+1],P=r[b],U=r[b+1],D=Ot(k,v,A,_,E,S,K,x,P,U),C=Lt(k,v,A,_,E,S,K,x,P,U);k=Zt(n,i),v=Qt(n,i),A=Wt(n,i,a,s,o),_=$t(n,i,a,s,o,c);var I=zt(k,v,A,_),B=Rt(k,v,A,_);m=f,w=g,f=p,g=d,p=l,d=y,l=zt(h,u,D,C),y=Rt(u,u,D,C),h=o,u=c,o=a,c=s,a=n,s=i,n=zt(D,C,I,B),i=Rt(D,C,I,B)}Tt(this.h,0,n,i),Tt(this.h,2,a,s),Tt(this.h,4,o,c),Tt(this.h,6,h,u),Tt(this.h,8,l,y),Tt(this.h,10,p,d),Tt(this.h,12,f,g),Tt(this.h,14,m,w)},Ht.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h,"big"):st.split32(this.h,"big")},st.inherits(nr,qt);var ir=nr;nr.blockSize=1024,nr.outSize=384,nr.hmacStrength=192,nr.padLength=128,nr.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h.slice(0,12),"big"):st.split32(this.h.slice(0,12),"big")};var ar=st.rotl32,sr=st.sum32,or=st.sum32_3,cr=st.sum32_4,hr=ht.BlockHash;function ur(){if(!(this instanceof ur))return new ur;hr.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}st.inherits(ur,hr);var lr=ur;function yr(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function pr(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function dr(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ur.blockSize=512,ur.outSize=160,ur.hmacStrength=192,ur.padLength=64,ur.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],a=this.h[3],s=this.h[4],o=r,c=n,h=i,u=a,l=s,y=0;y<80;y++){var p=sr(ar(cr(r,yr(y,n,i,a),e[fr[y]+t],pr(y)),mr[y]),s);r=s,s=a,a=ar(i,10),i=n,n=p,p=sr(ar(cr(o,yr(79-y,c,h,u),e[gr[y]+t],dr(y)),wr[y]),l),o=l,l=u,u=ar(h,10),h=c,c=p}p=or(this.h[1],i,u),this.h[1]=or(this.h[2],a,l),this.h[2]=or(this.h[3],s,o),this.h[3]=or(this.h[4],r,c),this.h[4]=or(this.h[0],n,h),this.h[0]=p},ur.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h,"little"):st.split32(this.h,"little")};var fr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],gr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],mr=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],wr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],br={ripemd160:lr};function kr(e,t){let r=e[0],n=e[1],i=e[2],a=e[3];r=Ar(r,n,i,a,t[0],7,-680876936),a=Ar(a,r,n,i,t[1],12,-389564586),i=Ar(i,a,r,n,t[2],17,606105819),n=Ar(n,i,a,r,t[3],22,-1044525330),r=Ar(r,n,i,a,t[4],7,-176418897),a=Ar(a,r,n,i,t[5],12,1200080426),i=Ar(i,a,r,n,t[6],17,-1473231341),n=Ar(n,i,a,r,t[7],22,-45705983),r=Ar(r,n,i,a,t[8],7,1770035416),a=Ar(a,r,n,i,t[9],12,-1958414417),i=Ar(i,a,r,n,t[10],17,-42063),n=Ar(n,i,a,r,t[11],22,-1990404162),r=Ar(r,n,i,a,t[12],7,1804603682),a=Ar(a,r,n,i,t[13],12,-40341101),i=Ar(i,a,r,n,t[14],17,-1502002290),n=Ar(n,i,a,r,t[15],22,1236535329),r=_r(r,n,i,a,t[1],5,-165796510),a=_r(a,r,n,i,t[6],9,-1069501632),i=_r(i,a,r,n,t[11],14,643717713),n=_r(n,i,a,r,t[0],20,-373897302),r=_r(r,n,i,a,t[5],5,-701558691),a=_r(a,r,n,i,t[10],9,38016083),i=_r(i,a,r,n,t[15],14,-660478335),n=_r(n,i,a,r,t[4],20,-405537848),r=_r(r,n,i,a,t[9],5,568446438),a=_r(a,r,n,i,t[14],9,-1019803690),i=_r(i,a,r,n,t[3],14,-187363961),n=_r(n,i,a,r,t[8],20,1163531501),r=_r(r,n,i,a,t[13],5,-1444681467),a=_r(a,r,n,i,t[2],9,-51403784),i=_r(i,a,r,n,t[7],14,1735328473),n=_r(n,i,a,r,t[12],20,-1926607734),r=Er(r,n,i,a,t[5],4,-378558),a=Er(a,r,n,i,t[8],11,-2022574463),i=Er(i,a,r,n,t[11],16,1839030562),n=Er(n,i,a,r,t[14],23,-35309556),r=Er(r,n,i,a,t[1],4,-1530992060),a=Er(a,r,n,i,t[4],11,1272893353),i=Er(i,a,r,n,t[7],16,-155497632),n=Er(n,i,a,r,t[10],23,-1094730640),r=Er(r,n,i,a,t[13],4,681279174),a=Er(a,r,n,i,t[0],11,-358537222),i=Er(i,a,r,n,t[3],16,-722521979),n=Er(n,i,a,r,t[6],23,76029189),r=Er(r,n,i,a,t[9],4,-640364487),a=Er(a,r,n,i,t[12],11,-421815835),i=Er(i,a,r,n,t[15],16,530742520),n=Er(n,i,a,r,t[2],23,-995338651),r=Sr(r,n,i,a,t[0],6,-198630844),a=Sr(a,r,n,i,t[7],10,1126891415),i=Sr(i,a,r,n,t[14],15,-1416354905),n=Sr(n,i,a,r,t[5],21,-57434055),r=Sr(r,n,i,a,t[12],6,1700485571),a=Sr(a,r,n,i,t[3],10,-1894986606),i=Sr(i,a,r,n,t[10],15,-1051523),n=Sr(n,i,a,r,t[1],21,-2054922799),r=Sr(r,n,i,a,t[8],6,1873313359),a=Sr(a,r,n,i,t[15],10,-30611744),i=Sr(i,a,r,n,t[6],15,-1560198380),n=Sr(n,i,a,r,t[13],21,1309151649),r=Sr(r,n,i,a,t[4],6,-145523070),a=Sr(a,r,n,i,t[11],10,-1120210379),i=Sr(i,a,r,n,t[2],15,718787259),n=Sr(n,i,a,r,t[9],21,-343485551),e[0]=Ur(r,e[0]),e[1]=Ur(n,e[1]),e[2]=Ur(i,e[2]),e[3]=Ur(a,e[3])}function vr(e,t,r,n,i,a){return t=Ur(Ur(t,e),Ur(n,a)),Ur(t<<i|t>>>32-i,r)}function Ar(e,t,r,n,i,a,s){return vr(t&r|~t&n,e,t,i,a,s)}function _r(e,t,r,n,i,a,s){return vr(t&n|r&~n,e,t,i,a,s)}function Er(e,t,r,n,i,a,s){return vr(t^r^n,e,t,i,a,s)}function Sr(e,t,r,n,i,a,s){return vr(r^(t|~n),e,t,i,a,s)}function Kr(e){const t=[];let r;for(r=0;r<64;r+=4)t[r>>2]=e.charCodeAt(r)+(e.charCodeAt(r+1)<<8)+(e.charCodeAt(r+2)<<16)+(e.charCodeAt(r+3)<<24);return t}const xr="0123456789abcdef".split("");function Pr(e){let t="",r=0;for(;r<4;r++)t+=xr[e>>8*r+4&15]+xr[e>>8*r&15];return t}function Ur(e,t){return e+t&4294967295}const Dr=W.getWebCrypto(),Cr=W.getNodeCrypto(),Ir=Cr&&Cr.getHashes();function Br(e){if(Cr&&Ir.includes(e))return async function(t){const r=Cr.createHash(e);return z(t,(e=>{r.update(e)}),(()=>new Uint8Array(r.digest())))}}function Tr(e,t){return async function(r,n=ne){if(s(r)&&(r=await j(r)),!W.isStream(r)&&Dr&&t&&r.length>=n.minBytesForWebCrypto)return new Uint8Array(await Dr.digest(t,r));const i=e();return z(r,(e=>{i.update(e)}),(()=>new Uint8Array(i.digest())))}}function zr(e,t){return async function(r,n=ne){if(s(r)&&(r=await j(r)),W.isStream(r)){const t=new e;return z(r,(e=>{t.process(e)}),(()=>t.finish().result))}return Dr&&t&&r.length>=n.minBytesForWebCrypto?new Uint8Array(await Dr.digest(t,r)):e.bytes(r)}}const Rr={md5:Br("md5")||async function(e){const t=function(e){const t=e.length,r=[1732584193,-271733879,-1732584194,271733878];let n;for(n=64;n<=e.length;n+=64)kr(r,Kr(e.substring(n-64,n)));e=e.substring(n-64);const i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(n=0;n<e.length;n++)i[n>>2]|=e.charCodeAt(n)<<(n%4<<3);if(i[n>>2]|=128<<(n%4<<3),n>55)for(kr(r,i),n=0;n<16;n++)i[n]=0;return i[14]=8*t,kr(r,i),r}(W.uint8ArrayToString(e));return W.hexToUint8Array(function(e){for(let t=0;t<e.length;t++)e[t]=Pr(e[t]);return e.join("")}(t))},sha1:Br("sha1")||zr($e,"SHA-1"),sha224:Br("sha224")||Tr(Ut),sha256:Br("sha256")||zr(Ye,"SHA-256"),sha384:Br("sha384")||Tr(ir,"SHA-384"),sha512:Br("sha512")||Tr(qt,"SHA-512"),ripemd:Br("ripemd160")||Tr(lr)};var Mr={md5:Rr.md5,sha1:Rr.sha1,sha224:Rr.sha224,sha256:Rr.sha256,sha384:Rr.sha384,sha512:Rr.sha512,ripemd:Rr.ripemd,digest:function(e,t){switch(e){case re.hash.md5:return this.md5(t);case re.hash.sha1:return this.sha1(t);case re.hash.ripemd:return this.ripemd(t);case re.hash.sha256:return this.sha256(t);case re.hash.sha384:return this.sha384(t);case re.hash.sha512:return this.sha512(t);case re.hash.sha224:return this.sha224(t);default:throw Error("Invalid hash function.")}},getHashByteLength:function(e){switch(e){case re.hash.md5:return 16;case re.hash.sha1:case re.hash.ripemd:return 20;case re.hash.sha256:return 32;case re.hash.sha384:return 48;case re.hash.sha512:return 64;case re.hash.sha224:return 28;default:throw Error("Invalid hash algorithm.")}},getBlockSize:function(e){switch(e){case re.hash.md5:case re.hash.sha1:case re.hash.ripemd:case re.hash.sha224:case re.hash.sha256:return 64;case re.hash.sha384:case re.hash.sha512:return 128;default:throw Error("Invalid hash algorithm.")}}};class Nr{static encrypt(e,t,r){return new Nr(t,r).encrypt(e)}static decrypt(e,t,r){return new Nr(t,r).decrypt(e)}constructor(e,t,r){this.aes=r||new Ee(e,t,!0,"CFB"),delete this.aes.padding}encrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}decrypt(e){return we(this.aes.AES_Decrypt_process(e),this.aes.AES_Decrypt_finish())}}var Or=tt((function(e){!function(e){var t=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t<e.length;t++)r[t]=e[t];return r},r=function(){throw Error("no PRNG")},n=new Uint8Array(32);n[0]=9;var i=t(),a=t([1]),s=t([56129,1]),o=t([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),c=t([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),h=t([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),u=t([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),l=t([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function y(e,t,r,n){return function(e,t,r,n,i){var a,s=0;for(a=0;a<i;a++)s|=e[t+a]^r[n+a];return(1&s-1>>>8)-1}(e,t,r,n,32)}function p(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function d(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function f(e,t,r){for(var n,i=~(r-1),a=0;a<16;a++)n=i&(e[a]^t[a]),e[a]^=n,t[a]^=n}function g(e,r){var n,i,a,s=t(),o=t();for(n=0;n<16;n++)o[n]=r[n];for(d(o),d(o),d(o),i=0;i<2;i++){for(s[0]=o[0]-65517,n=1;n<15;n++)s[n]=o[n]-65535-(s[n-1]>>16&1),s[n-1]&=65535;s[15]=o[15]-32767-(s[14]>>16&1),a=s[15]>>16&1,s[14]&=65535,f(o,s,1-a)}for(n=0;n<16;n++)e[2*n]=255&o[n],e[2*n+1]=o[n]>>8}function m(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return g(r,e),g(n,t),y(r,0,n,0)}function w(e){var t=new Uint8Array(32);return g(t,e),1&t[0]}function b(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function k(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function v(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function A(e,t,r){var n,i,a=0,s=0,o=0,c=0,h=0,u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0,E=0,S=0,K=0,x=0,P=0,U=0,D=0,C=0,I=0,B=0,T=0,z=0,R=r[0],M=r[1],N=r[2],O=r[3],L=r[4],F=r[5],j=r[6],H=r[7],q=r[8],G=r[9],V=r[10],W=r[11],$=r[12],Z=r[13],Q=r[14],Y=r[15];a+=(n=t[0])*R,s+=n*M,o+=n*N,c+=n*O,h+=n*L,u+=n*F,l+=n*j,y+=n*H,p+=n*q,d+=n*G,f+=n*V,g+=n*W,m+=n*$,w+=n*Z,b+=n*Q,k+=n*Y,s+=(n=t[1])*R,o+=n*M,c+=n*N,h+=n*O,u+=n*L,l+=n*F,y+=n*j,p+=n*H,d+=n*q,f+=n*G,g+=n*V,m+=n*W,w+=n*$,b+=n*Z,k+=n*Q,v+=n*Y,o+=(n=t[2])*R,c+=n*M,h+=n*N,u+=n*O,l+=n*L,y+=n*F,p+=n*j,d+=n*H,f+=n*q,g+=n*G,m+=n*V,w+=n*W,b+=n*$,k+=n*Z,v+=n*Q,A+=n*Y,c+=(n=t[3])*R,h+=n*M,u+=n*N,l+=n*O,y+=n*L,p+=n*F,d+=n*j,f+=n*H,g+=n*q,m+=n*G,w+=n*V,b+=n*W,k+=n*$,v+=n*Z,A+=n*Q,_+=n*Y,h+=(n=t[4])*R,u+=n*M,l+=n*N,y+=n*O,p+=n*L,d+=n*F,f+=n*j,g+=n*H,m+=n*q,w+=n*G,b+=n*V,k+=n*W,v+=n*$,A+=n*Z,_+=n*Q,E+=n*Y,u+=(n=t[5])*R,l+=n*M,y+=n*N,p+=n*O,d+=n*L,f+=n*F,g+=n*j,m+=n*H,w+=n*q,b+=n*G,k+=n*V,v+=n*W,A+=n*$,_+=n*Z,E+=n*Q,S+=n*Y,l+=(n=t[6])*R,y+=n*M,p+=n*N,d+=n*O,f+=n*L,g+=n*F,m+=n*j,w+=n*H,b+=n*q,k+=n*G,v+=n*V,A+=n*W,_+=n*$,E+=n*Z,S+=n*Q,K+=n*Y,y+=(n=t[7])*R,p+=n*M,d+=n*N,f+=n*O,g+=n*L,m+=n*F,w+=n*j,b+=n*H,k+=n*q,v+=n*G,A+=n*V,_+=n*W,E+=n*$,S+=n*Z,K+=n*Q,x+=n*Y,p+=(n=t[8])*R,d+=n*M,f+=n*N,g+=n*O,m+=n*L,w+=n*F,b+=n*j,k+=n*H,v+=n*q,A+=n*G,_+=n*V,E+=n*W,S+=n*$,K+=n*Z,x+=n*Q,P+=n*Y,d+=(n=t[9])*R,f+=n*M,g+=n*N,m+=n*O,w+=n*L,b+=n*F,k+=n*j,v+=n*H,A+=n*q,_+=n*G,E+=n*V,S+=n*W,K+=n*$,x+=n*Z,P+=n*Q,U+=n*Y,f+=(n=t[10])*R,g+=n*M,m+=n*N,w+=n*O,b+=n*L,k+=n*F,v+=n*j,A+=n*H,_+=n*q,E+=n*G,S+=n*V,K+=n*W,x+=n*$,P+=n*Z,U+=n*Q,D+=n*Y,g+=(n=t[11])*R,m+=n*M,w+=n*N,b+=n*O,k+=n*L,v+=n*F,A+=n*j,_+=n*H,E+=n*q,S+=n*G,K+=n*V,x+=n*W,P+=n*$,U+=n*Z,D+=n*Q,C+=n*Y,m+=(n=t[12])*R,w+=n*M,b+=n*N,k+=n*O,v+=n*L,A+=n*F,_+=n*j,E+=n*H,S+=n*q,K+=n*G,x+=n*V,P+=n*W,U+=n*$,D+=n*Z,C+=n*Q,I+=n*Y,w+=(n=t[13])*R,b+=n*M,k+=n*N,v+=n*O,A+=n*L,_+=n*F,E+=n*j,S+=n*H,K+=n*q,x+=n*G,P+=n*V,U+=n*W,D+=n*$,C+=n*Z,I+=n*Q,B+=n*Y,b+=(n=t[14])*R,k+=n*M,v+=n*N,A+=n*O,_+=n*L,E+=n*F,S+=n*j,K+=n*H,x+=n*q,P+=n*G,U+=n*V,D+=n*W,C+=n*$,I+=n*Z,B+=n*Q,T+=n*Y,k+=(n=t[15])*R,s+=38*(A+=n*N),o+=38*(_+=n*O),c+=38*(E+=n*L),h+=38*(S+=n*F),u+=38*(K+=n*j),l+=38*(x+=n*H),y+=38*(P+=n*q),p+=38*(U+=n*G),d+=38*(D+=n*V),f+=38*(C+=n*W),g+=38*(I+=n*$),m+=38*(B+=n*Z),w+=38*(T+=n*Q),b+=38*(z+=n*Y),a=(n=(a+=38*(v+=n*M))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),s=(n=s+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),k=(n=k+i+65535)-65536*(i=Math.floor(n/65536)),a=(n=(a+=i-1+37*(i-1))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),s=(n=s+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),k=(n=k+i+65535)-65536*(i=Math.floor(n/65536)),a+=i-1+37*(i-1),e[0]=a,e[1]=s,e[2]=o,e[3]=c,e[4]=h,e[5]=u,e[6]=l,e[7]=y,e[8]=p,e[9]=d,e[10]=f,e[11]=g,e[12]=m,e[13]=w,e[14]=b,e[15]=k}function _(e,t){A(e,t,t)}function E(e,r){var n,i=t();for(n=0;n<16;n++)i[n]=r[n];for(n=253;n>=0;n--)_(i,i),2!==n&&4!==n&&A(i,i,r);for(n=0;n<16;n++)e[n]=i[n]}function S(e,r,n){var i,a,o=new Uint8Array(32),c=new Float64Array(80),h=t(),u=t(),l=t(),y=t(),p=t(),d=t();for(a=0;a<31;a++)o[a]=r[a];for(o[31]=127&r[31]|64,o[0]&=248,b(c,n),a=0;a<16;a++)u[a]=c[a],y[a]=h[a]=l[a]=0;for(h[0]=y[0]=1,a=254;a>=0;--a)f(h,u,i=o[a>>>3]>>>(7&a)&1),f(l,y,i),k(p,h,l),v(h,h,l),k(l,u,y),v(u,u,y),_(y,p),_(d,h),A(h,l,h),A(l,u,p),k(p,h,l),v(h,h,l),_(u,h),v(l,y,d),A(h,l,s),k(h,h,y),A(l,l,h),A(h,y,d),A(y,u,c),_(u,p),f(h,u,i),f(l,y,i);for(a=0;a<16;a++)c[a+16]=h[a],c[a+32]=l[a],c[a+48]=u[a],c[a+64]=y[a];var m=c.subarray(32),w=c.subarray(16);return E(m,m),A(w,w,m),g(e,w),0}function K(e,t){return S(e,t,n)}function x(e,r){var n=t(),i=t(),a=t(),s=t(),o=t(),h=t(),u=t(),l=t(),y=t();v(n,e[1],e[0]),v(y,r[1],r[0]),A(n,n,y),k(i,e[0],e[1]),k(y,r[0],r[1]),A(i,i,y),A(a,e[3],r[3]),A(a,a,c),A(s,e[2],r[2]),k(s,s,s),v(o,i,n),v(h,s,a),k(u,s,a),k(l,i,n),A(e[0],o,h),A(e[1],l,u),A(e[2],u,h),A(e[3],o,l)}function P(e,t,r){var n;for(n=0;n<4;n++)f(e[n],t[n],r)}function U(e,r){var n=t(),i=t(),a=t();E(a,r[2]),A(n,r[0],a),A(i,r[1],a),g(e,i),e[31]^=w(n)<<7}function D(e,t,r){var n,s;for(p(e[0],i),p(e[1],a),p(e[2],a),p(e[3],i),s=255;s>=0;--s)P(e,t,n=r[s/8|0]>>(7&s)&1),x(t,e),x(e,e),P(e,t,n)}function C(e,r){var n=[t(),t(),t(),t()];p(n[0],h),p(n[1],u),p(n[2],a),A(n[3],h,u),D(e,n,r)}function I(n,i,a){var s,o,c=[t(),t(),t(),t()];for(a||r(i,32),(s=e.hash(i.subarray(0,32)))[0]&=248,s[31]&=127,s[31]|=64,C(c,s),U(n,c),o=0;o<32;o++)i[o+32]=n[o];return 0}var B=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 T(e,t){var r,n,i,a;for(n=63;n>=32;--n){for(r=0,i=n-32,a=n-12;i<a;++i)t[i]+=r-16*t[n]*B[i-(n-32)],r=Math.floor((t[i]+128)/256),t[i]-=256*r;t[i]+=r,t[n]=0}for(r=0,i=0;i<32;i++)t[i]+=r-(t[31]>>4)*B[i],r=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=r*B[i];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function z(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;T(e,r)}function R(e,r){var n=t(),s=t(),c=t(),h=t(),u=t(),y=t(),d=t();return p(e[2],a),b(e[1],r),_(c,e[1]),A(h,c,o),v(c,c,e[2]),k(h,e[2],h),_(u,h),_(y,u),A(d,y,u),A(n,d,c),A(n,n,h),function(e,r){var n,i=t();for(n=0;n<16;n++)i[n]=r[n];for(n=250;n>=0;n--)_(i,i),1!==n&&A(i,i,r);for(n=0;n<16;n++)e[n]=i[n]}(n,n),A(n,n,c),A(n,n,h),A(n,n,h),A(e[0],n,h),_(s,e[0]),A(s,s,h),m(s,c)&&A(e[0],e[0],l),_(s,e[0]),A(s,s,h),m(s,c)?-1:(w(e[0])===r[31]>>7&&v(e[0],i,e[0]),A(e[3],e[0],e[1]),0)}var M=64;function N(){for(var e=0;e<arguments.length;e++)if(!(arguments[e]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function O(e){for(var t=0;t<e.length;t++)e[t]=0}e.scalarMult=function(e,t){if(N(e,t),32!==e.length)throw Error("bad n size");if(32!==t.length)throw Error("bad p size");var r=new Uint8Array(32);return S(r,e,t),r},e.box={},e.box.keyPair=function(){var e,t,n=new Uint8Array(32),i=new Uint8Array(32);return e=n,r(t=i,32),K(e,t),{publicKey:n,secretKey:i}},e.box.keyPair.fromSecretKey=function(e){if(N(e),32!==e.length)throw Error("bad secret key size");var t=new Uint8Array(32);return K(t,e),{publicKey:t,secretKey:new Uint8Array(e)}},e.sign=function(r,n){if(N(r,n),64!==n.length)throw Error("bad secret key size");var i=new Uint8Array(M+r.length);return function(r,n,i,a){var s,o,c,h,u,l=new Float64Array(64),y=[t(),t(),t(),t()];(s=e.hash(a.subarray(0,32)))[0]&=248,s[31]&=127,s[31]|=64;var p=i+64;for(h=0;h<i;h++)r[64+h]=n[h];for(h=0;h<32;h++)r[32+h]=s[32+h];for(z(c=e.hash(r.subarray(32,p))),C(y,c),U(r,y),h=32;h<64;h++)r[h]=a[h];for(z(o=e.hash(r.subarray(0,p))),h=0;h<64;h++)l[h]=0;for(h=0;h<32;h++)l[h]=c[h];for(h=0;h<32;h++)for(u=0;u<32;u++)l[h+u]+=o[h]*s[u];T(r.subarray(32),l)}(i,r,r.length,n),i},e.sign.detached=function(t,r){for(var n=e.sign(t,r),i=new Uint8Array(M),a=0;a<i.length;a++)i[a]=n[a];return i},e.sign.detached.verify=function(r,n,i){if(N(r,n,i),n.length!==M)throw Error("bad signature size");if(32!==i.length)throw Error("bad public key size");var a,s=new Uint8Array(M+r.length),o=new Uint8Array(M+r.length);for(a=0;a<M;a++)s[a]=n[a];for(a=0;a<r.length;a++)s[a+M]=r[a];return function(r,n,i,a){var s,o,c=new Uint8Array(32),h=[t(),t(),t(),t()],u=[t(),t(),t(),t()];if(i<64)return-1;if(R(u,a))return-1;for(s=0;s<i;s++)r[s]=n[s];for(s=0;s<32;s++)r[s+32]=a[s];if(z(o=e.hash(r.subarray(0,i))),D(h,u,o),C(u,n.subarray(32)),x(h,u),U(c,h),i-=64,y(n,0,c,0)){for(s=0;s<i;s++)r[s]=0;return-1}for(s=0;s<i;s++)r[s]=n[s+64];return i}(o,s,s.length,i)>=0},e.sign.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(64);return I(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(N(e),64!==e.length)throw Error("bad secret key size");for(var t=new Uint8Array(32),r=0;r<t.length;r++)t[r]=e[32+r];return{publicKey:t,secretKey:new Uint8Array(e)}},e.sign.keyPair.fromSeed=function(e){if(N(e),32!==e.length)throw Error("bad seed size");for(var t=new Uint8Array(32),r=new Uint8Array(64),n=0;n<32;n++)r[n]=e[n];return I(t,r,!0),{publicKey:t,secretKey:r}},e.setPRNG=function(e){r=e},function(){var t="undefined"!=typeof self?self.crypto||self.msCrypto:null;if(t&&t.getRandomValues){e.setPRNG((function(e,r){var n,i=new Uint8Array(r);for(n=0;n<r;n+=65536)t.getRandomValues(i.subarray(n,n+Math.min(r-n,65536)));for(n=0;n<r;n++)e[n]=i[n];O(i)}))}else(t=void 0)&&t.randomBytes&&e.setPRNG((function(e,r){var n,i=t.randomBytes(r);for(n=0;n<r;n++)e[n]=i[n];O(i)}))}()}(e.exports?e.exports:self.nacl=self.nacl||{})}));const Lr=W.getNodeCrypto();async function Fr(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto&&crypto.getRandomValues)crypto.getRandomValues(t);else if(Lr){const e=Lr.randomBytes(t.length);t.set(e)}else{if(!Hr.buffer)throw Error("No secure random number generator available.");await Hr.get(t)}return t}async function jr(e,t){const r=await W.getBigInteger();if(t.lt(e))throw Error("Illegal parameter value: max <= min");const n=t.sub(e),i=n.byteLength();return new r(await Fr(i+8)).mod(n).add(e)}const Hr=new class{constructor(){this.buffer=null,this.size=null,this.callback=null}init(e,t){this.buffer=new Uint8Array(e),this.size=0,this.callback=t}set(e){if(!this.buffer)throw Error("RandomBuffer is not initialized");if(!(e instanceof Uint8Array))throw Error("Invalid type: buf not an Uint8Array");const t=this.buffer.length-this.size;e.length>t&&(e=e.subarray(0,t)),this.buffer.set(e,this.size),this.size+=e.length}async get(e){if(!this.buffer)throw Error("RandomBuffer is not initialized");if(!(e instanceof Uint8Array))throw Error("Invalid type: buf not an Uint8Array");if(this.size<e.length){if(!this.callback)throw Error("Random number buffer depleted");return await this.callback(),this.get(e)}for(let t=0;t<e.length;t++)e[t]=this.buffer[--this.size],this.buffer[this.size]=0}};var qr=/*#__PURE__*/Object.freeze({__proto__:null,getRandomBytes:Fr,getRandomBigInteger:jr,randomBuffer:Hr});async function Gr(e,t,r){const n=await W.getBigInteger(),i=new n(1),a=i.leftShift(new n(e-1)),s=new n(30),o=[1,6,5,4,3,2,1,4,3,2,1,2,1,4,3,2,1,2,1,4,3,2,1,6,5,4,3,2,1,2],c=await jr(a,a.leftShift(i));let h=c.mod(s).toNumber();do{c.iadd(new n(o[h])),h=(h+o[h])%o.length,c.bitLength()>e&&(c.imod(a.leftShift(i)).iadd(a),h=c.mod(s).toNumber())}while(!await Vr(c,t,r));return c}async function Vr(e,t,r){return!(t&&!e.dec().gcd(t).isOne())&&(!!await async function(e){const t=await W.getBigInteger();return Wr.every((r=>0!==e.mod(new t(r))))}(e)&&(!!await async function(e,t){const r=await W.getBigInteger();return(t=t||new r(2)).modExp(e.dec(),e).isOne()}(e)&&!!await async function(e,t,r){const n=await W.getBigInteger(),i=e.bitLength();t||(t=Math.max(1,i/48|0));const a=e.dec();let s=0;for(;!a.getBit(s);)s++;const o=e.rightShift(new n(s));for(;t>0;t--){let t,i=(r?r():await jr(new n(2),a)).modExp(o,e);if(!i.isOne()&&!i.equal(a)){for(t=1;t<s;t++){if(i=i.mul(i).mod(e),i.isOne())return!1;if(i.equal(a))break}if(t===s)return!1}}return!0}(e,r)))}const Wr=[7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999];const $r=[];async function Zr(e,t){const r=e.length;if(r>t-11)throw Error("Message too long");const n=await async function(e){const t=new Uint8Array(e);let r=0;for(;r<e;){const n=await Fr(e-r);for(let e=0;e<n.length;e++)0!==n[e]&&(t[r++]=n[e])}return t}(t-r-3),i=new Uint8Array(t);return i[1]=2,i.set(n,2),i.set(e,t-r),i}function Qr(e,t){let r=2,n=1;for(let t=r;t<e.length;t++)n&=0!==e[t],r+=n;const i=r-2,a=e.subarray(r+1),s=0===e[0]&2===e[1]&i>=8&!n;if(t)return W.selectUint8Array(s,a,t);if(s)return a;throw Error("Decryption error")}async function Yr(e,t,r){let n;if(t.length!==Mr.getHashByteLength(e))throw Error("Invalid hash length");const i=new Uint8Array($r[e].length);for(n=0;n<$r[e].length;n++)i[n]=$r[e][n];const a=i.length+t.length;if(r<a+11)throw Error("Intended encoded message length too short");const s=new Uint8Array(r-a-3).fill(255),o=new Uint8Array(r);return o[1]=1,o.set(s,2),o.set(i,r-a),o.set(t,r-t.length),o}$r[1]=[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],$r[2]=[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],$r[3]=[48,33,48,9,6,5,43,36,3,2,1,5,0,4,20],$r[8]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],$r[9]=[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],$r[10]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64],$r[11]=[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28];var Xr=/*#__PURE__*/Object.freeze({__proto__:null,emeEncode:Zr,emeDecode:Qr,emsaEncode:Yr});const Jr=W.getWebCrypto(),en=W.getNodeCrypto(),tn=void 0,rn=en?tn.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())})):void 0,nn=en?tn.define("RSAPubliceKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())})):void 0;var an=/*#__PURE__*/Object.freeze({__proto__:null,sign:async function(e,t,r,n,i,a,s,o,c){if(t&&!W.isStream(t))if(W.getWebCrypto())try{return await async function(e,t,r,n,i,a,s,o){const c=await async function(e,t,r,n,i,a){const s=await W.getBigInteger(),o=new s(n),c=new s(i),h=new s(r);let u=h.mod(c.dec()),l=h.mod(o.dec());return l=l.toUint8Array(),u=u.toUint8Array(),{kty:"RSA",n:ee(e,!0),e:ee(t,!0),d:ee(r,!0),p:ee(i,!0),q:ee(n,!0),dp:ee(u,!0),dq:ee(l,!0),qi:ee(a,!0),ext:!0}}(r,n,i,a,s,o),h={name:"RSASSA-PKCS1-v1_5",hash:{name:e}},u=await Jr.importKey("jwk",c,h,!1,["sign"]);return new Uint8Array(await Jr.sign("RSASSA-PKCS1-v1_5",u,t))}(re.read(re.webHash,e),t,r,n,i,a,s,o)}catch(e){W.printDebugError(e)}else if(W.getNodeCrypto())return async function(e,t,r,n,i,a,s,o){const{default:c}=await import("./bn.min.mjs"),h=new c(a),u=new c(s),l=new c(i),y=l.mod(u.subn(1)),p=l.mod(h.subn(1)),d=en.createSign(re.read(re.hash,e));d.write(t),d.end();const f={version:0,modulus:new c(r),publicExponent:new c(n),privateExponent:new c(i),prime1:new c(s),prime2:new c(a),exponent1:y,exponent2:p,coefficient:new c(o)};if(void 0!==en.createPrivateKey){const e=rn.encode(f,"der");return new Uint8Array(d.sign({key:e,format:"der",type:"pkcs1"}))}const g=rn.encode(f,"pem",{label:"RSA PRIVATE KEY"});return new Uint8Array(d.sign(g))}(e,t,r,n,i,a,s,o);return async function(e,t,r,n){const i=await W.getBigInteger();t=new i(t);const a=new i(await Yr(e,n,t.byteLength()));if(r=new i(r),a.gte(t))throw Error("Message size cannot exceed modulus size");return a.modExp(r,t).toUint8Array("be",t.byteLength())}(e,r,i,c)},verify:async function(e,t,r,n,i,a){if(t&&!W.isStream(t))if(W.getWebCrypto())try{return await async function(e,t,r,n,i){const a=function(e,t){return{kty:"RSA",n:ee(e,!0),e:ee(t,!0),ext:!0}}(n,i),s=await Jr.importKey("jwk",a,{name:"RSASSA-PKCS1-v1_5",hash:{name:e}},!1,["verify"]);return Jr.verify("RSASSA-PKCS1-v1_5",s,r,t)}(re.read(re.webHash,e),t,r,n,i)}catch(e){W.printDebugError(e)}else if(W.getNodeCrypto())return async function(e,t,r,n,i){const{default:a}=await import("./bn.min.mjs"),s=en.createVerify(re.read(re.hash,e));s.write(t),s.end();const o={modulus:new a(n),publicExponent:new a(i)};let c;if(void 0!==en.createPrivateKey){c={key:nn.encode(o,"der"),format:"der",type:"pkcs1"}}else c=nn.encode(o,"pem",{label:"RSA PUBLIC KEY"});try{return await s.verify(c,r)}catch(e){return!1}}(e,t,r,n,i);return async function(e,t,r,n,i){const a=await W.getBigInteger();if(r=new a(r),t=new a(t),n=new a(n),t.gte(r))throw Error("Signature size cannot exceed modulus size");const s=t.modExp(n,r).toUint8Array("be",r.byteLength()),o=await Yr(e,i,r.byteLength());return W.equalsUint8Array(s,o)}(e,r,n,i,a)},encrypt:async function(e,t,r){return W.getNodeCrypto()?async function(e,t,r){const{default:n}=await import("./bn.min.mjs"),i={modulus:new n(t),publicExponent:new n(r)};let a;if(void 0!==en.createPrivateKey){a={key:nn.encode(i,"der"),format:"der",type:"pkcs1",padding:en.constants.RSA_PKCS1_PADDING}}else{a={key:nn.encode(i,"pem",{label:"RSA PUBLIC KEY"}),padding:en.constants.RSA_PKCS1_PADDING}}return new Uint8Array(en.publicEncrypt(a,e))}(e,t,r):async function(e,t,r){const n=await W.getBigInteger();if(t=new n(t),e=new n(await Zr(e,t.byteLength())),r=new n(r),e.gte(t))throw Error("Message size cannot exceed modulus size");return e.modExp(r,t).toUint8Array("be",t.byteLength())}(e,t,r)},decrypt:async function(e,t,r,n,i,a,s,o){return W.getNodeCrypto()?async function(e,t,r,n,i,a,s,o){const{default:c}=await import("./bn.min.mjs"),h=new c(i),u=new c(a),l=new c(n),y=l.mod(u.subn(1)),p=l.mod(h.subn(1)),d={version:0,modulus:new c(t),publicExponent:new c(r),privateExponent:new c(n),prime1:new c(a),prime2:new c(i),exponent1:y,exponent2:p,coefficient:new c(s)};let f;if(void 0!==en.createPrivateKey){f={key:rn.encode(d,"der"),format:"der",type:"pkcs1",padding:en.constants.RSA_PKCS1_PADDING}}else{f={key:rn.encode(d,"pem",{label:"RSA PRIVATE KEY"}),padding:en.constants.RSA_PKCS1_PADDING}}try{return new Uint8Array(en.privateDecrypt(f,e))}catch(e){if(o)return o;throw Error("Decryption error")}}(e,t,r,n,i,a,s,o):async function(e,t,r,n,i,a,s,o){const c=await W.getBigInteger();if(e=new c(e),t=new c(t),r=new c(r),n=new c(n),i=new c(i),a=new c(a),s=new c(s),e.gte(t))throw Error("Data too large.");const h=n.mod(a.dec()),u=n.mod(i.dec()),l=(await jr(new c(2),t)).mod(t),y=l.modInv(t).modExp(r,t),p=(e=e.mul(y).mod(t)).modExp(u,i),d=e.modExp(h,a);let f=s.mul(d.sub(p)).mod(a).mul(i).add(p);return f=f.mul(l).mod(t),Qr(f.toUint8Array("be",t.byteLength()),o)}(e,t,r,n,i,a,s,o)},generate:async function(e,t){if(t=new(await W.getBigInteger())(t),W.getWebCrypto()){const r={name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:t.toUint8Array(),hash:{name:"SHA-1"}},n=await Jr.generateKey(r,!0,["sign","verify"]),i=await Jr.exportKey("jwk",n.privateKey);return{n:J(i.n),e:t.toUint8Array(),d:J(i.d),p:J(i.q),q:J(i.p),u:J(i.qi)}}if(W.getNodeCrypto()&&en.generateKeyPair&&rn){const r={modulusLength:e,publicExponent:t.toNumber(),publicKeyEncoding:{type:"pkcs1",format:"der"},privateKeyEncoding:{type:"pkcs1",format:"der"}},n=await new Promise(((e,t)=>en.generateKeyPair("rsa",r,((r,n,i)=>{r?t(r):e(rn.decode(i,"der"))}))));return{n:n.modulus.toArrayLike(Uint8Array),e:n.publicExponent.toArrayLike(Uint8Array),d:n.privateExponent.toArrayLike(Uint8Array),p:n.prime2.toArrayLike(Uint8Array),q:n.prime1.toArrayLike(Uint8Array),u:n.coefficient.toArrayLike(Uint8Array)}}let r,n,i;do{n=await Gr(e-(e>>1),t,40),r=await Gr(e>>1,t,40),i=r.mul(n)}while(i.bitLength()!==e);const a=r.dec().imul(n.dec());return n.lt(r)&&([r,n]=[n,r]),{n:i.toUint8Array(),e:t.toUint8Array(),d:t.modInv(a).toUint8Array(),p:r.toUint8Array(),q:n.toUint8Array(),u:r.modInv(n).toUint8Array()}},validateParams:async function(e,t,r,n,i,a){const s=await W.getBigInteger();if(e=new s(e),n=new s(n),i=new s(i),!n.mul(i).equal(e))return!1;const o=new s(2);if(a=new s(a),!n.mul(a).mod(i).isOne())return!1;t=new s(t),r=new s(r);const c=new s(Math.floor(e.bitLength()/3)),h=await jr(o,o.leftShift(c)),u=h.mul(r).mul(t);return!(!u.mod(n.dec()).equal(h)||!u.mod(i.dec()).equal(h))}});var sn=/*#__PURE__*/Object.freeze({__proto__:null,encrypt:async function(e,t,r,n){const i=await W.getBigInteger();t=new i(t),r=new i(r),n=new i(n);const a=new i(await Zr(e,t.byteLength())),s=await jr(new i(1),t.dec());return{c1:r.modExp(s,t).toUint8Array(),c2:n.modExp(s,t).imul(a).imod(t).toUint8Array()}},decrypt:async function(e,t,r,n,i){const a=await W.getBigInteger();return e=new a(e),t=new a(t),r=new a(r),n=new a(n),Qr(e.modExp(n,r).modInv(r).imul(t).imod(r).toUint8Array("be",r.byteLength()),i)},validateParams:async function(e,t,r,n){const i=await W.getBigInteger();e=new i(e),t=new i(t),r=new i(r);const a=new i(1);if(t.lte(a)||t.gte(e))return!1;const s=new i(e.bitLength()),o=new i(1023);if(s.lt(o))return!1;if(!t.modExp(e.dec(),e).isOne())return!1;let c=t;const h=new i(1),u=new i(2).leftShift(new i(17));for(;h.lt(u);){if(c=c.mul(t).imod(e),c.isOne())return!1;h.iinc()}n=new i(n);const l=new i(2),y=await jr(l.leftShift(s.dec()),l.leftShift(s)),p=e.dec().imul(y).iadd(n);return!!r.equal(t.modExp(p,e))}});class on{constructor(e){if(e instanceof on)this.oid=e.oid;else if(W.isArray(e)||W.isUint8Array(e)){if(6===(e=new Uint8Array(e))[0]){if(e[1]!==e.length-2)throw Error("Length mismatch in DER encoded oid");e=e.subarray(2)}this.oid=e}else this.oid=""}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.oid=e.subarray(1,1+t),1+this.oid.length}throw Error("Invalid oid")}write(){return W.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return W.uint8ArrayToHex(this.oid)}getName(){const e=this.toHex();if(re.curve[e])return re.write(re.curve,e);throw Error("Unknown curve object identifier.")}}function cn(e,t){return e.keyPair({priv:t})}function hn(e,t){const r=e.keyPair({pub:t});if(!0!==r.validate().result)throw Error("Invalid elliptic public key");return r}async function un(e){if(!ne.useIndutnyElliptic)throw Error("This curve is only supported in the full build of OpenPGP.js");const{default:t}=await import("./elliptic.min.mjs");return new t.ec(e)}function ln(e){let t,r=0;const n=e[0];return n<192?([r]=e,t=1):n<255?(r=(e[0]-192<<8)+e[1]+192,t=2):255===n&&(r=W.readNumber(e.subarray(1,5)),t=5),{len:r,offset:t}}function yn(e){return e<192?new Uint8Array([e]):e>191&&e<8384?new Uint8Array([192+(e-192>>8),e-192&255]):W.concatUint8Array([new Uint8Array([255]),W.writeNumber(e,4)])}function pn(e){if(e<0||e>30)throw Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+e])}function dn(e){return new Uint8Array([192|e])}function fn(e,t){return W.concatUint8Array([dn(e),yn(t)])}function gn(e){return[re.packet.literalData,re.packet.compressedData,re.packet.symmetricallyEncryptedData,re.packet.symEncryptedIntegrityProtectedData,re.packet.aeadEncryptedData].includes(e)}async function mn(e,t){const r=D(e);let n,i;try{const s=await r.peekBytes(2);if(!s||s.length<2||0==(128&s[0]))throw Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");const o=await r.readByte();let c,h,u=-1,l=-1;l=0,0!=(64&o)&&(l=1),l?u=63&o:(u=(63&o)>>2,h=3&o);const y=gn(u);let p,d=null;if(y){if("array"===W.isStream(e)){const e=new a;n=C(e),d=e}else{const e=new E;n=C(e.writable),d=e.readable}i=t({tag:u,packet:d})}else d=[];do{if(l){const e=await r.readByte();if(p=!1,e<192)c=e;else if(e>=192&&e<224)c=(e-192<<8)+await r.readByte()+192;else if(e>223&&e<255){if(c=1<<(31&e),p=!0,!y)throw new TypeError("This packet type does not support partial lengths.")}else c=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte()}else switch(h){case 0:c=await r.readByte();break;case 1:c=await r.readByte()<<8|await r.readByte();break;case 2:c=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte();break;default:c=1/0}if(c>0){let e=0;for(;;){n&&await n.ready;const{done:t,value:i}=await r.read();if(t){if(c===1/0)break;throw Error("Unexpected end of packet")}const a=c===1/0?i:i.subarray(0,c-e);if(n?await n.write(a):d.push(a),e+=i.length,e>=c){r.unshift(i.subarray(c-e+i.length));break}}}}while(p);const f=await r.peekBytes(y?1/0:2);return n?(await n.ready,await n.close()):(d=W.concatUint8Array(d),await t({tag:u,packet:d})),!f||!f.length}catch(e){if(n)return await n.abort(e),!0;throw e}finally{n&&await i,r.releaseLock()}}class wn extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,wn),this.name="UnsupportedError"}}class bn{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}}const kn=W.getWebCrypto(),vn=W.getNodeCrypto(),An={p256:"P-256",p384:"P-384",p521:"P-521"},_n=vn?vn.getCurves():[],En=vn?{secp256k1:_n.includes("secp256k1")?"secp256k1":void 0,p256:_n.includes("prime256v1")?"prime256v1":void 0,p384:_n.includes("secp384r1")?"secp384r1":void 0,p521:_n.includes("secp521r1")?"secp521r1":void 0,ed25519:_n.includes("ED25519")?"ED25519":void 0,curve25519:_n.includes("X25519")?"X25519":void 0,brainpoolP256r1:_n.includes("brainpoolP256r1")?"brainpoolP256r1":void 0,brainpoolP384r1:_n.includes("brainpoolP384r1")?"brainpoolP384r1":void 0,brainpoolP512r1:_n.includes("brainpoolP512r1")?"brainpoolP512r1":void 0}:{},Sn={p256:{oid:[6,8,42,134,72,206,61,3,1,7],keyType:re.publicKey.ecdsa,hash:re.hash.sha256,cipher:re.symmetric.aes128,node:En.p256,web:An.p256,payloadSize:32,sharedSize:256},p384:{oid:[6,5,43,129,4,0,34],keyType:re.publicKey.ecdsa,hash:re.hash.sha384,cipher:re.symmetric.aes192,node:En.p384,web:An.p384,payloadSize:48,sharedSize:384},p521:{oid:[6,5,43,129,4,0,35],keyType:re.publicKey.ecdsa,hash:re.hash.sha512,cipher:re.symmetric.aes256,node:En.p521,web:An.p521,payloadSize:66,sharedSize:528},secp256k1:{oid:[6,5,43,129,4,0,10],keyType:re.publicKey.ecdsa,hash:re.hash.sha256,cipher:re.symmetric.aes128,node:En.secp256k1,payloadSize:32},ed25519:{oid:[6,9,43,6,1,4,1,218,71,15,1],keyType:re.publicKey.eddsa,hash:re.hash.sha512,node:!1,payloadSize:32},curve25519:{oid:[6,10,43,6,1,4,1,151,85,1,5,1],keyType:re.publicKey.ecdh,hash:re.hash.sha256,cipher:re.symmetric.aes128,node:!1,payloadSize:32},brainpoolP256r1:{oid:[6,9,43,36,3,3,2,8,1,1,7],keyType:re.publicKey.ecdsa,hash:re.hash.sha256,cipher:re.symmetric.aes128,node:En.brainpoolP256r1,payloadSize:32},brainpoolP384r1:{oid:[6,9,43,36,3,3,2,8,1,1,11],keyType:re.publicKey.ecdsa,hash:re.hash.sha384,cipher:re.symmetric.aes192,node:En.brainpoolP384r1,payloadSize:48},brainpoolP512r1:{oid:[6,9,43,36,3,3,2,8,1,1,13],keyType:re.publicKey.ecdsa,hash:re.hash.sha512,cipher:re.symmetric.aes256,node:En.brainpoolP512r1,payloadSize:64}};class Kn{constructor(e,t){try{(W.isArray(e)||W.isUint8Array(e))&&(e=new on(e)),e instanceof on&&(e=e.getName()),this.name=re.write(re.curve,e)}catch(e){throw new wn("Unknown curve")}t=t||Sn[this.name],this.keyType=t.keyType,this.oid=t.oid,this.hash=t.hash,this.cipher=t.cipher,this.node=t.node&&Sn[this.name],this.web=t.web&&Sn[this.name],this.payloadSize=t.payloadSize,this.web&&W.getWebCrypto()?this.type="web":this.node&&W.getNodeCrypto()?this.type="node":"curve25519"===this.name?this.type="curve25519":"ed25519"===this.name&&(this.type="ed25519")}async genKeyPair(){let e;switch(this.type){case"web":try{return await async function(e){const t=await kn.generateKey({name:"ECDSA",namedCurve:An[e]},!0,["sign","verify"]),r=await kn.exportKey("jwk",t.privateKey);return{publicKey:Pn(await kn.exportKey("jwk",t.publicKey)),privateKey:J(r.d)}}(this.name)}catch(e){W.printDebugError("Browser did not support generating ec key "+e.message);break}case"node":return async function(e){const t=vn.createECDH(En[e]);return await t.generateKeys(),{publicKey:new Uint8Array(t.getPublicKey()),privateKey:new Uint8Array(t.getPrivateKey())}}(this.name);case"curve25519":{const t=await Fr(32);t[0]=127&t[0]|64,t[31]&=248;const r=t.slice().reverse();e=Or.box.keyPair.fromSecretKey(r);return{publicKey:W.concatUint8Array([new Uint8Array([64]),e.publicKey]),privateKey:t}}case"ed25519":{const e=await Fr(32),t=Or.sign.keyPair.fromSeed(e);return{publicKey:W.concatUint8Array([new Uint8Array([64]),t.publicKey]),privateKey:e}}}const t=await un(this.name);return e=await t.genKeyPair({entropy:W.uint8ArrayToString(await Fr(32))}),{publicKey:new Uint8Array(e.getPublic("array",!1)),privateKey:e.getPrivate().toArrayLike(Uint8Array)}}}async function xn(e,t,r,n){const i={p256:!0,p384:!0,p521:!0,secp256k1:!0,curve25519:e===re.publicKey.ecdh,brainpoolP256r1:!0,brainpoolP384r1:!0,brainpoolP512r1:!0},a=t.getName();if(!i[a])return!1;if("curve25519"===a){n=n.slice().reverse();const{publicKey:e}=Or.box.keyPair.fromSecretKey(n);r=new Uint8Array(r);const t=new Uint8Array([64,...e]);return!!W.equalsUint8Array(t,r)}const s=await un(a);try{r=hn(s,r).getPublic()}catch(e){return!1}return!!cn(s,n).getPublic().eq(r)}function Pn(e){const t=J(e.x),r=J(e.y),n=new Uint8Array(t.length+r.length+1);return n[0]=4,n.set(t,1),n.set(r,t.length+1),n}function Un(e,t,r){const n=e,i=r.slice(1,n+1),a=r.slice(n+1,2*n+1);return{kty:"EC",crv:t,x:ee(i,!0),y:ee(a,!0),ext:!0}}function Dn(e,t,r,n){const i=Un(e,t,r);return i.d=ee(n,!0),i}const Cn=W.getWebCrypto(),In=W.getNodeCrypto();async function Bn(e,t,r,n,i,a){const s=new Kn(e);if(r&&!W.isStream(r)){const e={publicKey:n,privateKey:i};switch(s.type){case"web":try{return await async function(e,t,r,n){const i=e.payloadSize,a=Dn(e.payloadSize,An[e.name],n.publicKey,n.privateKey),s=await Cn.importKey("jwk",a,{name:"ECDSA",namedCurve:An[e.name],hash:{name:re.read(re.webHash,e.hash)}},!1,["sign"]),o=new Uint8Array(await Cn.sign({name:"ECDSA",namedCurve:An[e.name],hash:{name:re.read(re.webHash,t)}},s,r));return{r:o.slice(0,i),s:o.slice(i,i<<1)}}(s,t,r,e)}catch(e){if("p521"!==s.name&&("DataError"===e.name||"OperationError"===e.name))throw e;W.printDebugError("Browser did not support signing: "+e.message)}break;case"node":{const n=await async function(e,t,r,n){const i=In.createSign(re.read(re.hash,t));i.write(r),i.end();const a=Mn.encode({version:1,parameters:e.oid,privateKey:Array.from(n.privateKey),publicKey:{unused:0,data:Array.from(n.publicKey)}},"pem",{label:"EC PRIVATE KEY"});return Rn.decode(i.sign(a),"der")}(s,t,r,e);return{r:n.r.toArrayLike(Uint8Array),s:n.s.toArrayLike(Uint8Array)}}}}return async function(e,t,r){const n=await un(e.name),i=cn(n,r).sign(t);return{r:i.r.toArrayLike(Uint8Array),s:i.s.toArrayLike(Uint8Array)}}(s,a,i)}async function Tn(e,t,r,n,i,a){const s=new Kn(e);if(n&&!W.isStream(n))switch(s.type){case"web":try{return await async function(e,t,{r,s:n},i,a){const s=Un(e.payloadSize,An[e.name],a),o=await Cn.importKey("jwk",s,{name:"ECDSA",namedCurve:An[e.name],hash:{name:re.read(re.webHash,e.hash)}},!1,["verify"]),c=W.concatUint8Array([r,n]).buffer;return Cn.verify({name:"ECDSA",namedCurve:An[e.name],hash:{name:re.read(re.webHash,t)}},o,c,i)}(s,t,r,n,i)}catch(e){if("p521"!==s.name&&("DataError"===e.name||"OperationError"===e.name))throw e;W.printDebugError("Browser did not support verifying: "+e.message)}break;case"node":return async function(e,t,{r,s:n},i,a){const{default:s}=await import("./bn.min.mjs"),o=In.createVerify(re.read(re.hash,t));o.write(i),o.end();const c=On.encode({algorithm:{algorithm:[1,2,840,10045,2,1],parameters:e.oid},subjectPublicKey:{unused:0,data:Array.from(a)}},"pem",{label:"PUBLIC KEY"}),h=Rn.encode({r:new s(r),s:new s(n)},"der");try{return o.verify(c,h)}catch(e){return!1}}(s,t,r,n,i)}return async function(e,t,r,n){const i=await un(e.name);return hn(i,n).verify(r,t)}(s,r,void 0===t?n:a,i)}const zn=void 0,Rn=In?zn.define("ECDSASignature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())})):void 0,Mn=In?zn.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").explicit(0).optional().any(),this.key("publicKey").explicit(1).optional().bitstr())})):void 0,Nn=In?zn.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional().any())})):void 0,On=In?zn.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(Nn),this.key("subjectPublicKey").bitstr())})):void 0;var Ln=/*#__PURE__*/Object.freeze({__proto__:null,sign:Bn,verify:Tn,validateParams:async function(e,t,r){const n=new Kn(e);if(n.keyType!==re.publicKey.ecdsa)return!1;switch(n.type){case"web":case"node":{const n=await Fr(8),i=re.hash.sha256,a=await Mr.digest(i,n);try{const s=await Bn(e,i,n,t,r,a);return await Tn(e,i,s,n,t,a)}catch(e){return!1}}default:return xn(re.publicKey.ecdsa,e,t,r)}}});Or.hash=e=>new Uint8Array(qt().update(e).digest());var Fn=/*#__PURE__*/Object.freeze({__proto__:null,sign:async function(e,t,r,n,i,a){if(Mr.getHashByteLength(t)<Mr.getHashByteLength(re.hash.sha256))throw Error("Hash algorithm too weak: sha256 or stronger is required for EdDSA.");const s=W.concatUint8Array([i,n.subarray(1)]),o=Or.sign.detached(a,s);return{r:o.subarray(0,32),s:o.subarray(32)}},verify:async function(e,t,{r,s:n},i,a,s){const o=W.concatUint8Array([r,n]);return Or.sign.detached.verify(s,o,a.subarray(1))},validateParams:async function(e,t,r){if("ed25519"!==e.getName())return!1;const{publicKey:n}=Or.sign.keyPair.fromSeed(r),i=new Uint8Array([64,...n]);return W.equalsUint8Array(t,i)}});function jn(e,t){const r=new He["aes"+8*e.length](e),n=new Uint32Array([2795939494,2795939494]),i=qn(t);let a=n;const s=i,o=i.length/2,c=new Uint32Array([0,0]);let h=new Uint32Array(4);for(let e=0;e<=5;++e)for(let t=0;t<o;++t)c[1]=o*e+(1+t),h[0]=a[0],h[1]=a[1],h[2]=s[2*t],h[3]=s[2*t+1],h=qn(r.encrypt(Gn(h))),a=h.subarray(0,2),a[0]^=c[0],a[1]^=c[1],s[2*t]=h[2],s[2*t+1]=h[3];return Gn(a,s)}function Hn(e,t){const r=new He["aes"+8*e.length](e),n=new Uint32Array([2795939494,2795939494]),i=qn(t);let a=i.subarray(0,2);const s=i.subarray(2),o=i.length/2-1,c=new Uint32Array([0,0]);let h=new Uint32Array(4);for(let e=5;e>=0;--e)for(let t=o-1;t>=0;--t)c[1]=o*e+(t+1),h[0]=a[0]^c[0],h[1]=a[1]^c[1],h[2]=s[2*t],h[3]=s[2*t+1],h=qn(r.decrypt(Gn(h))),a=h.subarray(0,2),s[2*t]=h[2],s[2*t+1]=h[3];if(a[0]===n[0]&&a[1]===n[1])return Gn(s);throw Error("Key Data Integrity failed")}function qn(e){const{length:t}=e,r=function(e){if(W.isString(e)){const{length:t}=e,r=new ArrayBuffer(t),n=new Uint8Array(r);for(let r=0;r<t;++r)n[r]=e.charCodeAt(r);return r}return new Uint8Array(e).buffer}(e),n=new DataView(r),i=new Uint32Array(t/4);for(let e=0;e<t/4;++e)i[e]=n.getUint32(4*e);return i}function Gn(){let e=0;for(let t=0;t<arguments.length;++t)e+=4*arguments[t].length;const t=new ArrayBuffer(e),r=new DataView(t);let n=0;for(let e=0;e<arguments.length;++e){for(let t=0;t<arguments[e].length;++t)r.setUint32(n+4*t,arguments[e][t]);n+=4*arguments[e].length}return new Uint8Array(t)}var Vn=/*#__PURE__*/Object.freeze({__proto__:null,wrap:jn,unwrap:Hn});function Wn(e){const t=8-e.length%8,r=new Uint8Array(e.length+t).fill(t);return r.set(e),r}function $n(e){const t=e.length;if(t>0){const r=e[t-1];if(r>=1){const n=e.subarray(t-r),i=new Uint8Array(r).fill(r);if(W.equalsUint8Array(n,i))return e.subarray(0,t-r)}}throw Error("Invalid padding")}var Zn=/*#__PURE__*/Object.freeze({__proto__:null,encode:Wn,decode:$n});const Qn=W.getWebCrypto(),Yn=W.getNodeCrypto();function Xn(e,t,r,n){return W.concatUint8Array([t.write(),new Uint8Array([e]),r.replacementKDFParams||r.write(),W.stringToUint8Array("Anonymous Sender "),r.replacementFingerprint||n.subarray(0,20)])}async function Jn(e,t,r,n,i=!1,a=!1){let s;if(i){for(s=0;s<t.length&&0===t[s];s++);t=t.subarray(s)}if(a){for(s=t.length-1;s>=0&&0===t[s];s--);t=t.subarray(0,s+1)}return(await Mr.digest(e,W.concatUint8Array([new Uint8Array([0,0,0,1]),t,n]))).subarray(0,r)}async function ei(e,t){switch(e.type){case"curve25519":{const r=await Fr(32),{secretKey:n,sharedKey:i}=await ti(e,t,null,r);let{publicKey:a}=Or.box.keyPair.fromSecretKey(n);return a=W.concatUint8Array([new Uint8Array([64]),a]),{publicKey:a,sharedKey:i}}case"web":if(e.web&&W.getWebCrypto())try{return await async function(e,t){const r=Un(e.payloadSize,e.web.web,t);let n=Qn.generateKey({name:"ECDH",namedCurve:e.web.web},!0,["deriveKey","deriveBits"]),i=Qn.importKey("jwk",r,{name:"ECDH",namedCurve:e.web.web},!1,[]);[n,i]=await Promise.all([n,i]);let a=Qn.deriveBits({name:"ECDH",namedCurve:e.web.web,public:i},n.privateKey,e.web.sharedSize),s=Qn.exportKey("jwk",n.publicKey);[a,s]=await Promise.all([a,s]);const o=new Uint8Array(a);return{publicKey:new Uint8Array(Pn(s)),sharedKey:o}}(e,t)}catch(e){W.printDebugError(e)}break;case"node":return async function(e,t){const r=Yn.createECDH(e.node.node);r.generateKeys();const n=new Uint8Array(r.computeSecret(t));return{publicKey:new Uint8Array(r.getPublicKey()),sharedKey:n}}(e,t)}return async function(e,t){const r=await un(e.name),n=await e.genKeyPair();t=hn(r,t);const i=cn(r,n.privateKey),a=n.publicKey,s=i.derive(t.getPublic()),o=r.curve.p.byteLength(),c=s.toArrayLike(Uint8Array,"be",o);return{publicKey:a,sharedKey:c}}(e,t)}async function ti(e,t,r,n){if(n.length!==e.payloadSize){const t=new Uint8Array(e.payloadSize);t.set(n,e.payloadSize-n.length),n=t}switch(e.type){case"curve25519":{const e=n.slice().reverse();return{secretKey:e,sharedKey:Or.scalarMult(e,t.subarray(1))}}case"web":if(e.web&&W.getWebCrypto())try{return await async function(e,t,r,n){const i=Dn(e.payloadSize,e.web.web,r,n);let a=Qn.importKey("jwk",i,{name:"ECDH",namedCurve:e.web.web},!0,["deriveKey","deriveBits"]);const s=Un(e.payloadSize,e.web.web,t);let o=Qn.importKey("jwk",s,{name:"ECDH",namedCurve:e.web.web},!0,[]);[a,o]=await Promise.all([a,o]);let c=Qn.deriveBits({name:"ECDH",namedCurve:e.web.web,public:o},a,e.web.sharedSize),h=Qn.exportKey("jwk",a);[c,h]=await Promise.all([c,h]);const u=new Uint8Array(c);return{secretKey:J(h.d),sharedKey:u}}(e,t,r,n)}catch(e){W.printDebugError(e)}break;case"node":return async function(e,t,r){const n=Yn.createECDH(e.node.node);n.setPrivateKey(r);const i=new Uint8Array(n.computeSecret(t));return{secretKey:new Uint8Array(n.getPrivateKey()),sharedKey:i}}(e,t,n)}return async function(e,t,r){const n=await un(e.name);t=hn(n,t),r=cn(n,r);const i=new Uint8Array(r.getPrivate()),a=r.derive(t.getPublic()),s=n.curve.p.byteLength(),o=a.toArrayLike(Uint8Array,"be",s);return{secretKey:i,sharedKey:o}}(e,t,n)}var ri=/*#__PURE__*/Object.freeze({__proto__:null,validateParams:async function(e,t,r){return xn(re.publicKey.ecdh,e,t,r)},encrypt:async function(e,t,r,n,i){const a=Wn(r),s=new Kn(e),{publicKey:o,sharedKey:c}=await ei(s,n),h=Xn(re.publicKey.ecdh,e,t,i),{keySize:u}=di(t.cipher);return{publicKey:o,wrappedKey:jn(await Jn(t.hash,c,u,h),a)}},decrypt:async function(e,t,r,n,i,a,s){const o=new Kn(e),{sharedKey:c}=await ti(o,r,i,a),h=Xn(re.publicKey.ecdh,e,t,s),{keySize:u}=di(t.cipher);let l;for(let e=0;e<3;e++)try{return $n(Hn(await Jn(t.hash,c,u,h,1===e,2===e),n))}catch(e){l=e}throw l}});var ni={rsa:an,elgamal:sn,elliptic:/*#__PURE__*/Object.freeze({__proto__:null,Curve:Kn,ecdh:ri,ecdsa:Ln,eddsa:Fn,generate:async function(e){const t=await W.getBigInteger();e=new Kn(e);const r=await e.genKeyPair(),n=new t(r.publicKey).toUint8Array(),i=new t(r.privateKey).toUint8Array("be",e.payloadSize);return{oid:e.oid,Q:n,secret:i,hash:e.hash,cipher:e.cipher}},getPreferredHashAlgo:function(e){return Sn[re.write(re.curve,e.toHex())].hash}}),dsa:/*#__PURE__*/Object.freeze({__proto__:null,sign:async function(e,t,r,n,i,a){const s=await W.getBigInteger(),o=new s(1);let c,h,u,l;n=new s(n),i=new s(i),r=new s(r),a=new s(a),r=r.mod(n),a=a.mod(i);const y=new s(t.subarray(0,i.byteLength())).mod(i);for(;;){if(c=await jr(o,i),h=r.modExp(c,n).imod(i),h.isZero())continue;const e=a.mul(h).imod(i);if(l=y.add(e).imod(i),u=c.modInv(i).imul(l).imod(i),!u.isZero())break}return{r:h.toUint8Array("be",i.byteLength()),s:u.toUint8Array("be",i.byteLength())}},verify:async function(e,t,r,n,i,a,s,o){const c=await W.getBigInteger(),h=new c(0);if(t=new c(t),r=new c(r),a=new c(a),s=new c(s),i=new c(i),o=new c(o),t.lte(h)||t.gte(s)||r.lte(h)||r.gte(s))return W.printDebug("invalid DSA Signature"),!1;const u=new c(n.subarray(0,s.byteLength())).imod(s),l=r.modInv(s);if(l.isZero())return W.printDebug("invalid DSA Signature"),!1;i=i.mod(a),o=o.mod(a);const y=u.mul(l).imod(s),p=t.mul(l).imod(s),d=i.modExp(y,a),f=o.modExp(p,a);return d.mul(f).imod(a).imod(s).equal(t)},validateParams:async function(e,t,r,n,i){const a=await W.getBigInteger();e=new a(e),t=new a(t),r=new a(r),n=new a(n);const s=new a(1);if(r.lte(s)||r.gte(e))return!1;if(!e.dec().mod(t).isZero())return!1;if(!r.modExp(t,e).isOne())return!1;const o=new a(t.bitLength()),c=new a(150);if(o.lt(c)||!await Vr(t,null,32))return!1;i=new a(i);const h=new a(2),u=await jr(h.leftShift(o.dec()),h.leftShift(o)),l=t.mul(u).add(i);return!!n.equal(r.modExp(l,e))}}),nacl:Or};class ii{constructor(e){e=void 0===e?new Uint8Array([]):W.isString(e)?W.stringToUint8Array(e):new Uint8Array(e),this.data=e}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.data=e.subarray(1,1+t),1+this.data.length}throw Error("Invalid symmetric key")}write(){return W.concatUint8Array([new Uint8Array([this.data.length]),this.data])}}class ai{constructor(e){if(void 0===e&&(e=new Uint8Array([])),!W.isUint8Array(e))throw Error("data must be in the form of a Uint8Array");this.data=e,this.length=this.data.byteLength}write(){return W.concatUint8Array([new Uint8Array([this.length]),this.data])}read(e){if(e.length>=1){const t=e[0];if(e.length>=t+1)return this.data=e.subarray(1,1+t),this.length=t,1+t}throw Error("Invalid octet string")}}class si{constructor(e){if(e){const{version:t,hash:r,cipher:n,flags:i,replacementFingerprint:a,replacementKDFParams:s}=e;this.version=t||1,this.hash=r,this.cipher=n,this.flags=i,this.replacementFingerprint=a,this.replacementKDFParams=s}else this.version=null,this.hash=null,this.cipher=null,this.flags=null,this.replacementFingerprint=null,this.replacementKDFParams=null}read(e){this.version=e[1],this.hash=e[2],this.cipher=e[3];let t=4;if(2===this.version&&(this.flags=e[t++],this.flags&re.kdfFlags.replace_fingerprint&&(this.replacementFingerprint=e.slice(t,t+20),t+=20),this.flags&re.kdfFlags.replace_kdf_params)){const r=e[t]+1;this.replacementKDFParams=e.slice(t,t+r),t+=r}return t}write(){if(!this.version||1===this.version)return new Uint8Array([3,1,this.hash,this.cipher]);const e=W.concatUint8Array([new Uint8Array([4,2,this.hash,this.cipher,this.flags]),this.replacementFingerprint||new Uint8Array,this.replacementKDFParams||new Uint8Array]);return e[0]=e.length-1,new Uint8Array(e)}}const oi=e=>class{constructor(e){this.data=void 0===e?null:e}read(t){const r=t[0];return this.data=re.write(e,r),1}write(){return new Uint8Array([this.data])}getName(){return re.read(e,this.data)}getValue(){return this.data}},ci=oi(re.aead),hi=oi(re.symmetric),ui=oi(re.hash);async function li(e,t){const r=await Fr(32);return{privateParams:{keyMaterial:e,hashSeed:r},publicParams:{cipher:t,digest:await Mr.sha256(r)}}}function yi(e){const{keySize:t}=di(e);return Fr(t)}function pi(e){const t=re.read(re.aead,e);return Zi[t]}function di(e){const t=re.read(re.symmetric,e);return He[t]}function fi(e){try{e.getName()}catch(e){throw new wn("Unknown curve OID")}}var gi=/*#__PURE__*/Object.freeze({__proto__:null,publicKeyEncrypt:async function(e,t,r,n,i){switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:{const{n:e,e:r}=t;return{c:await ni.rsa.encrypt(n,e,r)}}case re.publicKey.elgamal:{const{p:e,g:r,y:i}=t;return ni.elgamal.encrypt(n,e,r,i)}case re.publicKey.ecdh:{const{oid:e,Q:r,kdfParams:a}=t,{publicKey:s,wrappedKey:o}=await ni.elliptic.ecdh.encrypt(e,a,n,r,i);return{V:s,C:new ii(o)}}case re.publicKey.aead:{if(!r)throw Error("Cannot encrypt with symmetric key missing private parameters");const{cipher:e}=t,i=e.getValue(),{keyMaterial:a}=r,s=ne.preferredAEADAlgorithm,o=pi(ne.preferredAEADAlgorithm),{ivLength:c}=o,h=await Fr(c),u=await o(i,a),l=await u.encrypt(n,h,new Uint8Array);return{aeadMode:new ci(s),iv:h,c:new ai(l)}}default:return[]}},publicKeyDecrypt:async function(e,t,r,n,i,a){switch(e){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaEncrypt:{const{c:e}=n,{n:i,e:s}=t,{d:o,p:c,q:h,u}=r;return ni.rsa.decrypt(e,i,s,o,c,h,u,a)}case re.publicKey.elgamal:{const{c1:e,c2:i}=n,s=t.p,o=r.x;return ni.elgamal.decrypt(e,i,s,o,a)}case re.publicKey.ecdh:{const{oid:e,Q:a,kdfParams:s}=t,{d:o}=r,{V:c,C:h}=n;return ni.elliptic.ecdh.decrypt(e,s,c,h.data,a,o,i)}case re.publicKey.aead:{const{cipher:e}=t,i=e.getValue(),{keyMaterial:a}=r,{aeadMode:s,iv:o,c}=n,h=pi(s.getValue());return(await h(i,a)).decrypt(c.data,o,new Uint8Array)}default:throw Error("Unknown public key encryption algorithm.")}},parsePublicKeyParams:function(e,t){let r=0;switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:{const e=W.readMPI(t.subarray(r));r+=e.length+2;const n=W.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{n:e,e:n}}}case re.publicKey.dsa:{const e=W.readMPI(t.subarray(r));r+=e.length+2;const n=W.readMPI(t.subarray(r));r+=n.length+2;const i=W.readMPI(t.subarray(r));r+=i.length+2;const a=W.readMPI(t.subarray(r));return r+=a.length+2,{read:r,publicParams:{p:e,q:n,g:i,y:a}}}case re.publicKey.elgamal:{const e=W.readMPI(t.subarray(r));r+=e.length+2;const n=W.readMPI(t.subarray(r));r+=n.length+2;const i=W.readMPI(t.subarray(r));return r+=i.length+2,{read:r,publicParams:{p:e,g:n,y:i}}}case re.publicKey.ecdsa:{const e=new on;r+=e.read(t),fi(e);const n=W.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{oid:e,Q:n}}}case re.publicKey.eddsa:{const e=new on;r+=e.read(t),fi(e);let n=W.readMPI(t.subarray(r));return r+=n.length+2,n=W.leftPad(n,33),{read:r,publicParams:{oid:e,Q:n}}}case re.publicKey.ecdh:{const e=new on;r+=e.read(t),fi(e);const n=W.readMPI(t.subarray(r));r+=n.length+2;const i=new si;return r+=i.read(t.subarray(r)),{read:r,publicParams:{oid:e,Q:n,kdfParams:i}}}case re.publicKey.hmac:case re.publicKey.aead:{const e=new hi;r+=e.read(t);const n=Mr.getHashByteLength(re.hash.sha256),i=t.subarray(r,r+n);return r+=n,{read:r,publicParams:{cipher:e,digest:i}}}default:throw new wn("Unknown public key encryption algorithm.")}},parsePrivateKeyParams:function(e,t,r){let n=0;switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:{const e=W.readMPI(t.subarray(n));n+=e.length+2;const r=W.readMPI(t.subarray(n));n+=r.length+2;const i=W.readMPI(t.subarray(n));n+=i.length+2;const a=W.readMPI(t.subarray(n));return n+=a.length+2,{read:n,privateParams:{d:e,p:r,q:i,u:a}}}case re.publicKey.dsa:case re.publicKey.elgamal:{const e=W.readMPI(t.subarray(n));return n+=e.length+2,{read:n,privateParams:{x:e}}}case re.publicKey.ecdsa:case re.publicKey.ecdh:{const e=new Kn(r.oid);let i=W.readMPI(t.subarray(n));return n+=i.length+2,i=W.leftPad(i,e.payloadSize),{read:n,privateParams:{d:i}}}case re.publicKey.eddsa:{const e=new Kn(r.oid);let i=W.readMPI(t.subarray(n));return n+=i.length+2,i=W.leftPad(i,e.payloadSize),{read:n,privateParams:{seed:i}}}case re.publicKey.hmac:{const{cipher:e}=r,i=Mr.getHashByteLength(e),a=t.subarray(n,n+32);n+=32;const s=t.subarray(n,n+i);return n+=i,{read:n,privateParams:{key:s,hashSeed:a}}}case re.publicKey.aead:{const{cipher:e}=r,{keySize:i}=di(e.getValue()),a=t.subarray(n,n+i);return n+=i,{read:n,privateParams:{keyMaterial:a}}}default:throw new wn("Unknown public key encryption algorithm.")}},parseEncSessionKeyParams:function(e,t){let r=0;switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:return{c:W.readMPI(t.subarray(r))};case re.publicKey.elgamal:{const e=W.readMPI(t.subarray(r));r+=e.length+2;return{c1:e,c2:W.readMPI(t.subarray(r))}}case re.publicKey.ecdh:{const e=W.readMPI(t.subarray(r));r+=e.length+2;const n=new ii;return n.read(t.subarray(r)),{V:e,C:n}}case re.publicKey.aead:{const e=new ci;r+=e.read(t.subarray(r));const{tagLength:n,ivLength:i}=pi(e.getValue()),a=t.subarray(r,r+i);r+=i;const s=new ai;r+=s.read(t.subarray(r));return{aeadMode:e,iv:a,c:s,t:t.subarray(r,r+n)}}default:throw new wn("Unknown public key encryption algorithm.")}},serializeParams:function(e,t){let r;switch(e){case re.publicKey.hmac:case re.publicKey.aead:r=Object.keys(t).map((e=>{const r=t[e];return W.isUint8Array(r)?r:r.write()}));break;default:r=Object.keys(t).map((e=>{const r=t[e];return W.isUint8Array(r)?W.uint8ArrayToMPI(r):r.write()}))}return W.concatUint8Array(r)},generateParams:async function(e,t,r,n){switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:return ni.rsa.generate(t,65537).then((({n:e,e:t,d:r,p:n,q:i,u:a})=>({privateParams:{d:r,p:n,q:i,u:a},publicParams:{n:e,e:t}})));case re.publicKey.ecdsa:return ni.elliptic.generate(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{d:r},publicParams:{oid:new on(e),Q:t}})));case re.publicKey.eddsa:return ni.elliptic.generate(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{seed:r},publicParams:{oid:new on(e),Q:t}})));case re.publicKey.ecdh:return ni.elliptic.generate(r).then((({oid:e,Q:t,secret:r,hash:n,cipher:i})=>({privateParams:{d:r},publicParams:{oid:new on(e),Q:t,kdfParams:new si({hash:n,cipher:i})}})));case re.publicKey.hmac:{const e=re.write(re.hash,n);return li(await Fr(Mr.getHashByteLength(e)),new ui(e))}case re.publicKey.aead:{const e=re.write(re.symmetric,n);return li(await yi(e),new hi(e))}case re.publicKey.dsa:case re.publicKey.elgamal:throw Error("Unsupported algorithm for key generation.");default:throw Error("Unknown public key algorithm.")}},validateParams:async function(e,t,r){if(!t||!r)throw Error("Missing key parameters");switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:{const{n:e,e:n}=t,{d:i,p:a,q:s,u:o}=r;return ni.rsa.validateParams(e,n,i,a,s,o)}case re.publicKey.dsa:{const{p:e,q:n,g:i,y:a}=t,{x:s}=r;return ni.dsa.validateParams(e,n,i,a,s)}case re.publicKey.elgamal:{const{p:e,g:n,y:i}=t,{x:a}=r;return ni.elgamal.validateParams(e,n,i,a)}case re.publicKey.ecdsa:case re.publicKey.ecdh:{const n=ni.elliptic[re.read(re.publicKey,e)],{oid:i,Q:a}=t,{d:s}=r;return n.validateParams(i,a,s)}case re.publicKey.eddsa:{const{oid:e,Q:n}=t,{seed:i}=r;return ni.elliptic.eddsa.validateParams(e,n,i)}case re.publicKey.hmac:{const{cipher:e,digest:n}=t,{keyMaterial:i,hashSeed:a}=r;return Mr.getHashByteLength(e)===i.length&&W.equalsUint8Array(n,await Mr.sha256(a))}case re.publicKey.aead:{const{cipher:e,digest:n}=t,{keyMaterial:i,hashSeed:a}=r,{keySize:s}=di(e.getValue());return s===i.length&&W.equalsUint8Array(n,await Mr.sha256(a))}default:throw Error("Unknown public key algorithm.")}},getPrefixRandom:async function(e){const{blockSize:t}=di(e),r=await Fr(t),n=new Uint8Array([r[r.length-2],r[r.length-1]]);return W.concat([r,n])},generateSessionKey:yi,getAEADMode:pi,getCipher:di});const mi=W.getWebCrypto(),wi=W.getNodeCrypto(),bi=wi?wi.getCiphers():[],ki={idea:bi.includes("idea-cfb")?"idea-cfb":void 0,tripledes:bi.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:bi.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:bi.includes("bf-cfb")?"bf-cfb":void 0,aes128:bi.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:bi.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:bi.includes("aes-256-cfb")?"aes-256-cfb":void 0};var vi=/*#__PURE__*/Object.freeze({__proto__:null,encrypt:async function(e,t,r,n,i){const a=re.read(re.symmetric,e);if(W.getNodeCrypto()&&ki[a])return function(e,t,r,n){const i=re.read(re.symmetric,e),a=new wi.createCipheriv(ki[i],t,n);return z(r,(e=>new Uint8Array(a.update(e))))}(e,t,r,n);if("aes"===a.substr(0,3))return function(e,t,r,n,i){if(W.getWebCrypto()&&24!==t.length&&!W.isStream(r)&&r.length>=3e3*i.minBytesForWebCrypto)return async function(e,t,r,n){const i="AES-CBC",a=await mi.importKey("raw",t,{name:i},!1,["encrypt"]),{blockSize:s}=di(e),o=W.concatUint8Array([new Uint8Array(s),r]),c=new Uint8Array(await mi.encrypt({name:i,iv:n},a,o)).subarray(0,r.length);return function(e,t){for(let r=0;r<e.length;r++)e[r]=e[r]^t[r]}(c,r),c}(e,t,r,n);const a=new Nr(t,n);return z(r,(e=>a.aes.AES_Encrypt_process(e)),(()=>a.aes.AES_Encrypt_finish()))}(e,t,r,n,i);const s=new He[a](t),o=s.blockSize,c=n.slice();let h=new Uint8Array;const u=e=>{e&&(h=W.concatUint8Array([h,e]));const t=new Uint8Array(h.length);let r,n=0;for(;e?h.length>=o:h.length;){const e=s.encrypt(c);for(r=0;r<o;r++)c[r]=h[r]^e[r],t[n++]=c[r];h=h.subarray(o)}return t.subarray(0,n)};return z(r,u,u)},decrypt:async function(e,t,r,n){const i=re.read(re.symmetric,e);if(W.getNodeCrypto()&&ki[i])return function(e,t,r,n){const i=re.read(re.symmetric,e),a=new wi.createDecipheriv(ki[i],t,n);return z(r,(e=>new Uint8Array(a.update(e))))}(e,t,r,n);if("aes"===i.substr(0,3))return function(e,t,r,n){if(W.isStream(r)){const e=new Nr(t,n);return z(r,(t=>e.aes.AES_Decrypt_process(t)),(()=>e.aes.AES_Decrypt_finish()))}return Nr.decrypt(r,t,n)}(0,t,r,n);const a=new He[i](t),s=a.blockSize;let o=n,c=new Uint8Array;const h=e=>{e&&(c=W.concatUint8Array([c,e]));const t=new Uint8Array(c.length);let r,n=0;for(;e?c.length>=s:c.length;){const e=a.encrypt(o);for(o=c,r=0;r<s;r++)t[n++]=o[r]^e[r];c=c.subarray(s)}return t.subarray(0,n)};return z(r,h,h)}});class Ai{static encrypt(e,t,r){return new Ai(t,r).encrypt(e)}static decrypt(e,t,r){return new Ai(t,r).encrypt(e)}constructor(e,t,r){this.aes=r||new Ee(e,void 0,!1,"CTR"),delete this.aes.padding,this.AES_CTR_set_options(t)}encrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}decrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}AES_CTR_set_options(e,t,r){let{asm:n}=this.aes.acquire_asm();if(void 0!==r){if(r<8||r>48)throw new ke("illegal counter size");let e=Math.pow(2,r)-1;n.set_mask(0,0,e/4294967296|0,0|e)}else r=48,n.set_mask(0,0,65535,4294967295);if(void 0===e)throw Error("nonce is required");{let t=e.length;if(!t||t>16)throw new ke("illegal nonce size");let r=new DataView(new ArrayBuffer(16));new Uint8Array(r.buffer).set(e),n.set_nonce(r.getUint32(0),r.getUint32(4),r.getUint32(8),r.getUint32(12))}if(void 0!==t){if(t<0||t>=Math.pow(2,r))throw new ke("illegal counter value");n.set_counter(0,0,t/4294967296|0,0|t)}}}class _i{static encrypt(e,t,r=!0,n){return new _i(t,n,r).encrypt(e)}static decrypt(e,t,r=!0,n){return new _i(t,n,r).decrypt(e)}constructor(e,t,r=!0,n){this.aes=n||new Ee(e,t,r,"CBC")}encrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}decrypt(e){return we(this.aes.AES_Decrypt_process(e),this.aes.AES_Decrypt_finish())}}const Ei=W.getWebCrypto(),Si=W.getNodeCrypto();function Ki(e,t){const r=e.length-16;for(let n=0;n<16;n++)e[n+r]^=t[n];return e}const xi=new Uint8Array(16);async function Pi(e){const t=await async function(e){if(W.getWebCrypto()&&24!==e.length)return e=await Ei.importKey("raw",e,{name:"AES-CBC",length:8*e.length},!1,["encrypt"]),async function(t){const r=await Ei.encrypt({name:"AES-CBC",iv:xi,length:128},e,t);return new Uint8Array(r).subarray(0,r.byteLength-16)};if(W.getNodeCrypto())return async function(t){const r=new Si.createCipheriv("aes-"+8*e.length+"-cbc",e,xi).update(t);return new Uint8Array(r)};return async function(t){return _i.encrypt(t,e,!1,xi)}}(e),r=W.double(await t(xi)),n=W.double(r);return async function(e){return(await t(function(e,t,r){if(e.length&&e.length%16==0)return Ki(e,t);const n=new Uint8Array(e.length+(16-e.length%16));return n.set(e),n[e.length]=128,Ki(n,r)}(e,r,n))).subarray(-16)}}const Ui=W.getWebCrypto(),Di=W.getNodeCrypto(),Ci=W.getNodeBuffer(),Ii=new Uint8Array(16),Bi=new Uint8Array(16);Bi[15]=1;const Ti=new Uint8Array(16);async function zi(e){const t=await Pi(e);return function(e,r){return t(W.concatUint8Array([e,r]))}}async function Ri(e){return W.getWebCrypto()&&24!==e.length?(e=await Ui.importKey("raw",e,{name:"AES-CTR",length:8*e.length},!1,["encrypt"]),async function(t,r){const n=await Ui.encrypt({name:"AES-CTR",counter:r,length:128},e,t);return new Uint8Array(n)}):W.getNodeCrypto()?async function(t,r){const n=new Di.createCipheriv("aes-"+8*e.length+"-ctr",e,r),i=Ci.concat([n.update(t),n.final()]);return new Uint8Array(i)}:async function(t,r){return Ai.encrypt(t,e,r)}}async function Mi(e,t){if(e!==re.symmetric.aes128&&e!==re.symmetric.aes192&&e!==re.symmetric.aes256)throw Error("EAX mode supports only AES cipher");const[r,n]=await Promise.all([zi(t),Ri(t)]);return{encrypt:async function(e,t,i){const[a,s]=await Promise.all([r(Ii,t),r(Bi,i)]),o=await n(e,a),c=await r(Ti,o);for(let e=0;e<16;e++)c[e]^=s[e]^a[e];return W.concatUint8Array([o,c])},decrypt:async function(e,t,i){if(e.length<16)throw Error("Invalid EAX ciphertext");const a=e.subarray(0,-16),s=e.subarray(-16),[o,c,h]=await Promise.all([r(Ii,t),r(Bi,i),r(Ti,a)]),u=h;for(let e=0;e<16;e++)u[e]^=c[e]^o[e];if(!W.equalsUint8Array(s,u))throw Error("Authentication tag mismatch");return await n(a,o)}}}Ti[15]=2,Mi.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[8+e]^=t[e];return r},Mi.blockLength=16,Mi.ivLength=16,Mi.tagLength=16;function Ni(e){let t=0;for(let r=1;0==(e&r);r<<=1)t++;return t}function Oi(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r];return e}function Li(e,t){return Oi(e.slice(),t)}const Fi=new Uint8Array(16),ji=new Uint8Array([1]);async function Hi(e,t){let r,n,i,a=0;function s(e,t,n,s){const o=t.length/16|0;!function(e,t){const r=W.nbits(Math.max(e.length,t.length)/16|0)-1;for(let e=a+1;e<=r;e++)i[e]=W.double(i[e-1]);a=r}(t,s);const c=W.concatUint8Array([Fi.subarray(0,15-n.length),ji,n]),h=63&c[15];c[15]&=192;const u=r(c),l=W.concatUint8Array([u,Li(u.subarray(0,8),u.subarray(1,9))]),y=W.shiftRight(l.subarray(0+(h>>3),17+(h>>3)),8-(7&h)).subarray(1),p=new Uint8Array(16),d=new Uint8Array(t.length+16);let f,g=0;for(f=0;f<o;f++)Oi(y,i[Ni(f+1)]),d.set(Oi(e(Li(y,t)),y),g),Oi(p,e===r?t:d.subarray(g)),t=t.subarray(16),g+=16;if(t.length){Oi(y,i.x);const n=r(y);d.set(Li(t,n),g);const a=new Uint8Array(16);a.set(e===r?t:d.subarray(g,-16),0),a[t.length]=128,Oi(p,a),g+=t.length}const m=Oi(r(Oi(Oi(p,y),i.$)),function(e){if(!e.length)return Fi;const t=e.length/16|0,n=new Uint8Array(16),a=new Uint8Array(16);for(let s=0;s<t;s++)Oi(n,i[Ni(s+1)]),Oi(a,r(Li(n,e))),e=e.subarray(16);if(e.length){Oi(n,i.x);const t=new Uint8Array(16);t.set(e,0),t[e.length]=128,Oi(t,n),Oi(a,r(t))}return a}(s));return d.set(m,g),d}return function(e,t){const a=re.read(re.symmetric,e),s=new He[a](t);r=s.encrypt.bind(s),n=s.decrypt.bind(s);const o=r(Fi),c=W.double(o);i=[],i[0]=W.double(c),i.x=o,i.$=c}(e,t),{encrypt:async function(e,t,n){return s(r,e,t,n)},decrypt:async function(e,t,r){if(e.length<16)throw Error("Invalid OCB ciphertext");const i=e.subarray(-16);e=e.subarray(0,-16);const a=s(n,e,t,r);if(W.equalsUint8Array(i,a.subarray(-16)))return a.subarray(0,-16);throw Error("Authentication tag mismatch")}}}Hi.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[7+e]^=t[e];return r},Hi.blockLength=16,Hi.ivLength=15,Hi.tagLength=16;class qi{constructor(e,t,r,n=16,i){this.tagSize=n,this.gamma0=0,this.counter=1,this.aes=i||new Ee(e,void 0,!1,"CTR");let{asm:a,heap:s}=this.aes.acquire_asm();if(a.gcm_init(),this.tagSize<4||this.tagSize>16)throw new ke("illegal tagSize value");const o=t.length||0,c=new Uint8Array(16);12!==o?(this._gcm_mac_process(t),s[0]=0,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=0,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=0,s[11]=o>>>29,s[12]=o>>>21&255,s[13]=o>>>13&255,s[14]=o>>>5&255,s[15]=o<<3&255,a.mac(de.MAC.GCM,de.HEAP_DATA,16),a.get_iv(de.HEAP_DATA),a.set_iv(0,0,0,0),c.set(s.subarray(0,16))):(c.set(t),c[15]=1);const h=new DataView(c.buffer);if(this.gamma0=h.getUint32(12),a.set_nonce(h.getUint32(0),h.getUint32(4),h.getUint32(8),0),a.set_mask(0,0,0,4294967295),void 0!==r){if(r.length>68719476704)throw new ke("illegal adata length");r.length?(this.adata=r,this._gcm_mac_process(r)):this.adata=void 0}else this.adata=void 0;if(this.counter<1||this.counter>4294967295)throw new RangeError("counter must be a positive 32-bit integer");a.set_counter(0,0,0,this.gamma0+this.counter|0)}static encrypt(e,t,r,n,i){return new qi(t,r,n,i).encrypt(e)}static decrypt(e,t,r,n,i){return new qi(t,r,n,i).decrypt(e)}encrypt(e){return this.AES_GCM_encrypt(e)}decrypt(e){return this.AES_GCM_decrypt(e)}AES_GCM_Encrypt_process(e){let t=0,r=e.length||0,{asm:n,heap:i}=this.aes.acquire_asm(),a=this.counter,s=this.aes.pos,o=this.aes.len,c=0,h=o+r&-16,u=0;if((a-1<<4)+o+r>68719476704)throw new RangeError("counter overflow");const l=new Uint8Array(h);for(;r>0;)u=me(i,s+o,e,t,r),o+=u,t+=u,r-=u,u=n.cipher(de.ENC.CTR,de.HEAP_DATA+s,o),u=n.mac(de.MAC.GCM,de.HEAP_DATA+s,u),u&&l.set(i.subarray(s,s+u),c),a+=u>>>4,c+=u,u<o?(s+=u,o-=u):(s=0,o=0);return this.counter=a,this.aes.pos=s,this.aes.len=o,l}AES_GCM_Encrypt_finish(){let{asm:e,heap:t}=this.aes.acquire_asm(),r=this.counter,n=this.tagSize,i=this.adata,a=this.aes.pos,s=this.aes.len;const o=new Uint8Array(s+n);e.cipher(de.ENC.CTR,de.HEAP_DATA+a,s+15&-16),s&&o.set(t.subarray(a,a+s));let c=s;for(;15&c;c++)t[a+c]=0;e.mac(de.MAC.GCM,de.HEAP_DATA+a,c);const h=void 0!==i?i.length:0,u=(r-1<<4)+s;return t[0]=0,t[1]=0,t[2]=0,t[3]=h>>>29,t[4]=h>>>21,t[5]=h>>>13&255,t[6]=h>>>5&255,t[7]=h<<3&255,t[8]=t[9]=t[10]=0,t[11]=u>>>29,t[12]=u>>>21&255,t[13]=u>>>13&255,t[14]=u>>>5&255,t[15]=u<<3&255,e.mac(de.MAC.GCM,de.HEAP_DATA,16),e.get_iv(de.HEAP_DATA),e.set_counter(0,0,0,this.gamma0),e.cipher(de.ENC.CTR,de.HEAP_DATA,16),o.set(t.subarray(0,n),s),this.counter=1,this.aes.pos=0,this.aes.len=0,o}AES_GCM_Decrypt_process(e){let t=0,r=e.length||0,{asm:n,heap:i}=this.aes.acquire_asm(),a=this.counter,s=this.tagSize,o=this.aes.pos,c=this.aes.len,h=0,u=c+r>s?c+r-s&-16:0,l=c+r-u,y=0;if((a-1<<4)+c+r>68719476704)throw new RangeError("counter overflow");const p=new Uint8Array(u);for(;r>l;)y=me(i,o+c,e,t,r-l),c+=y,t+=y,r-=y,y=n.mac(de.MAC.GCM,de.HEAP_DATA+o,y),y=n.cipher(de.DEC.CTR,de.HEAP_DATA+o,y),y&&p.set(i.subarray(o,o+y),h),a+=y>>>4,h+=y,o=0,c=0;return r>0&&(c+=me(i,0,e,t,r)),this.counter=a,this.aes.pos=o,this.aes.len=c,p}AES_GCM_Decrypt_finish(){let{asm:e,heap:t}=this.aes.acquire_asm(),r=this.tagSize,n=this.adata,i=this.counter,a=this.aes.pos,s=this.aes.len,o=s-r;if(s<r)throw new be("authentication tag not found");const c=new Uint8Array(o),h=new Uint8Array(t.subarray(a+o,a+s));let u=o;for(;15&u;u++)t[a+u]=0;e.mac(de.MAC.GCM,de.HEAP_DATA+a,u),e.cipher(de.DEC.CTR,de.HEAP_DATA+a,u),o&&c.set(t.subarray(a,a+o));const l=void 0!==n?n.length:0,y=(i-1<<4)+s-r;t[0]=0,t[1]=0,t[2]=0,t[3]=l>>>29,t[4]=l>>>21,t[5]=l>>>13&255,t[6]=l>>>5&255,t[7]=l<<3&255,t[8]=t[9]=t[10]=0,t[11]=y>>>29,t[12]=y>>>21&255,t[13]=y>>>13&255,t[14]=y>>>5&255,t[15]=y<<3&255,e.mac(de.MAC.GCM,de.HEAP_DATA,16),e.get_iv(de.HEAP_DATA),e.set_counter(0,0,0,this.gamma0),e.cipher(de.ENC.CTR,de.HEAP_DATA,16);let p=0;for(let e=0;e<r;++e)p|=h[e]^t[e];if(p)throw new ve("data integrity check failed");return this.counter=1,this.aes.pos=0,this.aes.len=0,c}AES_GCM_decrypt(e){const t=this.AES_GCM_Decrypt_process(e),r=this.AES_GCM_Decrypt_finish(),n=new Uint8Array(t.length+r.length);return t.length&&n.set(t),r.length&&n.set(r,t.length),n}AES_GCM_encrypt(e){const t=this.AES_GCM_Encrypt_process(e),r=this.AES_GCM_Encrypt_finish(),n=new Uint8Array(t.length+r.length);return t.length&&n.set(t),r.length&&n.set(r,t.length),n}_gcm_mac_process(e){let{asm:t,heap:r}=this.aes.acquire_asm(),n=0,i=e.length||0,a=0;for(;i>0;){for(a=me(r,0,e,n,i),n+=a,i-=a;15&a;)r[a++]=0;t.mac(de.MAC.GCM,de.HEAP_DATA,a)}}}const Gi=W.getWebCrypto(),Vi=W.getNodeCrypto(),Wi=W.getNodeBuffer();async function $i(e,t){if(e!==re.symmetric.aes128&&e!==re.symmetric.aes192&&e!==re.symmetric.aes256)throw Error("GCM mode supports only AES cipher");if(W.getWebCrypto()&&24!==t.length){const e=await Gi.importKey("raw",t,{name:"AES-GCM"},!1,["encrypt","decrypt"]);return{encrypt:async function(r,n,i=new Uint8Array){if(!r.length)return qi.encrypt(r,t,n,i);const a=await Gi.encrypt({name:"AES-GCM",iv:n,additionalData:i,tagLength:128},e,r);return new Uint8Array(a)},decrypt:async function(r,n,i=new Uint8Array){if(16===r.length)return qi.decrypt(r,t,n,i);const a=await Gi.decrypt({name:"AES-GCM",iv:n,additionalData:i,tagLength:128},e,r);return new Uint8Array(a)}}}return W.getNodeCrypto()?{encrypt:async function(e,r,n=new Uint8Array){const i=new Vi.createCipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n);const a=Wi.concat([i.update(e),i.final(),i.getAuthTag()]);return new Uint8Array(a)},decrypt:async function(e,r,n=new Uint8Array){const i=new Vi.createDecipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n),i.setAuthTag(e.slice(e.length-16,e.length));const a=Wi.concat([i.update(e.slice(0,e.length-16)),i.final()]);return new Uint8Array(a)}}:{encrypt:async function(e,r,n){return qi.encrypt(e,t,r,n)},decrypt:async function(e,r,n){return qi.decrypt(e,t,r,n)}}}$i.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[4+e]^=t[e];return r},$i.blockLength=16,$i.ivLength=12,$i.tagLength=16;var Zi={cfb:vi,gcm:$i,experimentalGCM:$i,eax:Mi,ocb:Hi};function Qi(e,t,r){switch(e){case re.hash.sha1:case re.hash.sha256:case re.hash.sha512:return async function(e,t,r){const n=Mr.getBlockSize(e),i=new Uint8Array(n);i.fill(92),Yi(i,t);const a=new Uint8Array(n);a.fill(54),Yi(a,t);const s=W.concatUint8Array([a,r]),o=await Mr.digest(e,s),c=W.concatUint8Array([i,o]);return Mr.digest(e,c)}(e,t,r);default:throw Error("Unsupported hash algorithm.")}}function Yi(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r]||0}var Xi=/*#__PURE__*/Object.freeze({__proto__:null,parseSignatureParams:function(e,t){let r=0;switch(e){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaEncrypt:case re.publicKey.rsaSign:return{s:W.readMPI(t.subarray(r))};case re.publicKey.dsa:case re.publicKey.ecdsa:{const e=W.readMPI(t.subarray(r));r+=e.length+2;return{r:e,s:W.readMPI(t.subarray(r))}}case re.publicKey.eddsa:{let e=W.readMPI(t.subarray(r));r+=e.length+2,e=W.leftPad(e,32);let n=W.readMPI(t.subarray(r));return n=W.leftPad(n,32),{r:e,s:n}}case re.publicKey.hmac:{const e=new ai;return e.read(t.subarray(r)),{mac:e}}default:throw new wn("Unknown signature algorithm.")}},verify:async function(e,t,r,n,i,a,s){switch(e){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaEncrypt:case re.publicKey.rsaSign:{const{n:e,e:i}=n,o=W.leftPad(r.s,e.length);return ni.rsa.verify(t,a,o,e,i,s)}case re.publicKey.dsa:{const{g:e,p:i,q:a,y:o}=n,{r:c,s:h}=r;return ni.dsa.verify(t,c,h,s,e,i,a,o)}case re.publicKey.ecdsa:{const{oid:e,Q:i}=n,o=new ni.elliptic.Curve(e).payloadSize,c=W.leftPad(r.r,o),h=W.leftPad(r.s,o);return ni.elliptic.ecdsa.verify(e,t,{r:c,s:h},a,i,s)}case re.publicKey.eddsa:{const{oid:e,Q:i}=n;return ni.elliptic.eddsa.verify(e,t,r,a,i,s)}case re.publicKey.hmac:{if(!i)throw Error("Cannot verify HMAC signature with symmetric key missing private parameters");const{cipher:e}=n,{keyMaterial:t}=i,a=await Qi(e.getValue(),t,s);return W.equalsUint8Array(a,r.mac.data)}default:throw Error("Unknown signature algorithm.")}},sign:async function(e,t,r,n,i,a){if(!r||!n)throw Error("Missing key parameters");switch(e){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaEncrypt:case re.publicKey.rsaSign:{const{n:e,e:s}=r,{d:o,p:c,q:h,u}=n;return{s:await ni.rsa.sign(t,i,e,s,o,c,h,u,a)}}case re.publicKey.dsa:{const{g:e,p:i,q:s}=r,{x:o}=n;return ni.dsa.sign(t,a,e,i,s,o)}case re.publicKey.elgamal:throw Error("Signing with Elgamal is not defined in the OpenPGP standard.");case re.publicKey.ecdsa:{const{oid:e,Q:s}=r,{d:o}=n;return ni.elliptic.ecdsa.sign(e,t,i,s,o,a)}case re.publicKey.eddsa:{const{oid:e,Q:s}=r,{seed:o}=n;return ni.elliptic.eddsa.sign(e,t,i,s,o,a)}case re.publicKey.hmac:{const{cipher:e}=r,{keyMaterial:t}=n,i=await Qi(e.getValue(),t,a);return{mac:new ai(i)}}default:throw Error("Unknown signature algorithm.")}}});const Ji={cipher:He,hash:Mr,mode:Zi,publicKey:ni,signature:Xi,random:qr,pkcs1:Xr,pkcs5:Zn,aesKW:Vn};Object.assign(Ji,gi);var ea="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function ta(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)}const ra={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(let a=0;a<n;a++)e[i+a]=t[r+a]},flattenChunks:function(e){let t,r,n,i,a;for(n=0,t=0,r=e.length;t<r;t++)n+=e[t].length;const s=new Uint8Array(n);for(i=0,t=0,r=e.length;t<r;t++)a=e[t],s.set(a,i),i+=a.length;return s}},na={arraySet:function(e,t,r,n,i){for(let a=0;a<n;a++)e[i+a]=t[r+a]},flattenChunks:function(e){return[].concat.apply([],e)}};let ia=ea?Uint8Array:Array,aa=ea?Uint16Array:Array,sa=ea?Int32Array:Array,oa=ea?ra.flattenChunks:na.flattenChunks,ca=ea?ra.arraySet:na.arraySet;function ha(e){let t=e.length;for(;--t>=0;)e[t]=0}const ua=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],la=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ya=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],pa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],da=Array(576);ha(da);const fa=Array(60);ha(fa);const ga=Array(512);ha(ga);const ma=Array(256);ha(ma);const wa=Array(29);ha(wa);const ba=Array(30);function ka(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}let va,Aa,_a;function Ea(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Sa(e){return e<256?ga[e]:ga[256+(e>>>7)]}function Ka(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function xa(e,t,r){e.bi_valid>16-r?(e.bi_buf|=t<<e.bi_valid&65535,Ka(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function Pa(e,t,r){xa(e,r[2*t],r[2*t+1])}function Ua(e,t){let r=0;do{r|=1&e,e>>>=1,r<<=1}while(--t>0);return r>>>1}function Da(e,t,r){const n=Array(16);let i,a,s=0;for(i=1;i<=15;i++)n[i]=s=s+r[i-1]<<1;for(a=0;a<=t;a++){const t=e[2*a+1];0!==t&&(e[2*a]=Ua(n[t]++,t))}}function Ca(e){let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Ia(e){e.bi_valid>8?Ka(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Ba(e,t,r,n){const i=2*t,a=2*r;return e[i]<e[a]||e[i]===e[a]&&n[t]<=n[r]}function Ta(e,t,r){const n=e.heap[r];let i=r<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Ba(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Ba(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function za(e,t,r){let n,i,a,s,o=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?Pa(e,i,t):(a=ma[i],Pa(e,a+256+1,t),s=ua[a],0!==s&&(i-=wa[a],xa(e,i,s)),n--,a=Sa(n),Pa(e,a,r),s=la[a],0!==s&&(n-=ba[a],xa(e,n,s)))}while(o<e.last_lit);Pa(e,256,t)}function Ra(e,t){const r=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let s,o,c,h=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<a;s++)0!==r[2*s]?(e.heap[++e.heap_len]=h=s,e.depth[s]=0):r[2*s+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=h<2?++h:0,r[2*c]=1,e.depth[c]=0,e.opt_len--,i&&(e.static_len-=n[2*c+1]);for(t.max_code=h,s=e.heap_len>>1;s>=1;s--)Ta(e,r,s);c=a;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ta(e,r,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,r[2*c]=r[2*s]+r[2*o],e.depth[c]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,r[2*s+1]=r[2*o+1]=c,e.heap[1]=c++,Ta(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){const r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length;let h,u,l,y,p,d,f=0;for(y=0;y<=15;y++)e.bl_count[y]=0;for(r[2*e.heap[e.heap_max]+1]=0,h=e.heap_max+1;h<573;h++)u=e.heap[h],y=r[2*r[2*u+1]+1]+1,y>c&&(y=c,f++),r[2*u+1]=y,u>n||(e.bl_count[y]++,p=0,u>=o&&(p=s[u-o]),d=r[2*u],e.opt_len+=d*(y+p),a&&(e.static_len+=d*(i[2*u+1]+p)));if(0!==f){do{for(y=c-1;0===e.bl_count[y];)y--;e.bl_count[y]--,e.bl_count[y+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(y=c;0!==y;y--)for(u=e.bl_count[y];0!==u;)l=e.heap[--h],l>n||(r[2*l+1]!==y&&(e.opt_len+=(y-r[2*l+1])*r[2*l],r[2*l+1]=y),u--)}}(e,t),Da(r,h,e.bl_count)}function Ma(e,t,r){let n,i,a=-1,s=t[1],o=0,c=7,h=4;for(0===s&&(c=138,h=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=s,s=t[2*(n+1)+1],++o<c&&i===s||(o<h?e.bl_tree[2*i]+=o:0!==i?(i!==a&&e.bl_tree[2*i]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,o=0,a=i,0===s?(c=138,h=3):i===s?(c=6,h=3):(c=7,h=4))}function Na(e,t,r){let n,i,a=-1,s=t[1],o=0,c=7,h=4;for(0===s&&(c=138,h=3),n=0;n<=r;n++)if(i=s,s=t[2*(n+1)+1],!(++o<c&&i===s)){if(o<h)do{Pa(e,i,e.bl_tree)}while(0!=--o);else 0!==i?(i!==a&&(Pa(e,i,e.bl_tree),o--),Pa(e,16,e.bl_tree),xa(e,o-3,2)):o<=10?(Pa(e,17,e.bl_tree),xa(e,o-3,3)):(Pa(e,18,e.bl_tree),xa(e,o-11,7));o=0,a=i,0===s?(c=138,h=3):i===s?(c=6,h=3):(c=7,h=4)}}ha(ba);let Oa=!1;function La(e){Oa||(!function(){let e,t,r,n,i;const a=Array(16);for(r=0,n=0;n<28;n++)for(wa[n]=r,e=0;e<1<<ua[n];e++)ma[r++]=n;for(ma[r-1]=n,i=0,n=0;n<16;n++)for(ba[n]=i,e=0;e<1<<la[n];e++)ga[i++]=n;for(i>>=7;n<30;n++)for(ba[n]=i<<7,e=0;e<1<<la[n]-7;e++)ga[256+i++]=n;for(t=0;t<=15;t++)a[t]=0;for(e=0;e<=143;)da[2*e+1]=8,e++,a[8]++;for(;e<=255;)da[2*e+1]=9,e++,a[9]++;for(;e<=279;)da[2*e+1]=7,e++,a[7]++;for(;e<=287;)da[2*e+1]=8,e++,a[8]++;for(Da(da,287,a),e=0;e<30;e++)fa[2*e+1]=5,fa[2*e]=Ua(e,5);va=new ka(da,ua,257,286,15),Aa=new ka(fa,la,0,30,15),_a=new ka([],ya,0,19,7)}(),Oa=!0),e.l_desc=new Ea(e.dyn_ltree,va),e.d_desc=new Ea(e.dyn_dtree,Aa),e.bl_desc=new Ea(e.bl_tree,_a),e.bi_buf=0,e.bi_valid=0,Ca(e)}function Fa(e,t,r,n){xa(e,0+(n?1:0),3),function(e,t,r,n){Ia(e),n&&(Ka(e,r),Ka(e,~r)),ca(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}function ja(e){xa(e,2,3),Pa(e,256,da),function(e){16===e.bi_valid?(Ka(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}function Ha(e,t,r,n){let i,a,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){let t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),Ra(e,e.l_desc),Ra(e,e.d_desc),s=function(e){let t;for(Ma(e,e.dyn_ltree,e.l_desc.max_code),Ma(e,e.dyn_dtree,e.d_desc.max_code),Ra(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*pa[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==t?Fa(e,t,r,n):4===e.strategy||a===i?(xa(e,2+(n?1:0),3),za(e,da,fa)):(xa(e,4+(n?1:0),3),function(e,t,r,n){let i;for(xa(e,t-257,5),xa(e,r-1,5),xa(e,n-4,4),i=0;i<n;i++)xa(e,e.bl_tree[2*pa[i]+1],3);Na(e,e.dyn_ltree,t-1),Na(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),za(e,e.dyn_ltree,e.dyn_dtree)),Ca(e),n&&Ia(e)}function qa(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(ma[r]+256+1)]++,e.dyn_dtree[2*Sa(t)]++),e.last_lit===e.lit_bufsize-1}function Ga(e,t,r,n){let i=65535&e|0,a=e>>>16&65535|0,s=0;for(;0!==r;){s=r>2e3?2e3:r,r-=s;do{i=i+t[n++]|0,a=a+i|0}while(--s);i%=65521,a%=65521}return i|a<<16|0}const Va=function(){let e;const t=[];for(let r=0;r<256;r++){e=r;for(let t=0;t<8;t++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();function Wa(e,t,r,n){const i=Va,a=n+r;e^=-1;for(let r=n;r<a;r++)e=e>>>8^i[255&(e^t[r])];return-1^e}var $a={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function Za(e,t){return e.msg=$a[t],t}function Qa(e){return(e<<1)-(e>4?9:0)}function Ya(e){let t=e.length;for(;--t>=0;)e[t]=0}function Xa(e){const t=e.state;let r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(ca(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function Ja(e,t){Ha(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xa(e.strm)}function es(e,t){e.pending_buf[e.pending++]=t}function ts(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function rs(e,t,r,n){let i=e.avail_in;return i>n&&(i=n),0===i?0:(e.avail_in-=i,ca(t,e.input,e.next_in,i,r),1===e.state.wrap?e.adler=Ga(e.adler,t,i,r):2===e.state.wrap&&(e.adler=Wa(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)}function ns(e,t){let r,n,i=e.max_chain_length,a=e.strstart,s=e.prev_length,o=e.nice_match;const c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,h=e.window,u=e.w_mask,l=e.prev,y=e.strstart+258;let p=h[a+s-1],d=h[a+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(r=t,h[r+s]===d&&h[r+s-1]===p&&h[r]===h[a]&&h[++r]===h[a+1]){a+=2,r++;do{}while(h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&a<y);if(n=258-(y-a),a=y-258,n>s){if(e.match_start=t,s=n,n>=o)break;p=h[a+s-1],d=h[a+s]}}}while((t=l[t&u])>c&&0!=--i);return s<=e.lookahead?s:e.lookahead}function is(e){const t=e.w_size;let r,n,i,a,s;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){ca(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,r=n;do{i=e.head[--r],e.head[r]=i>=t?i-t:0}while(--n);n=t,r=n;do{i=e.prev[--r],e.prev[r]=i>=t?i-t:0}while(--n);a+=t}if(0===e.strm.avail_in)break;if(n=rs(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=3)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+3-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)}function as(e,t){let r,n;for(;;){if(e.lookahead<262){if(is(e),e.lookahead<262&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-262&&(e.match_length=ns(e,r)),e.match_length>=3)if(n=qa(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=qa(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Ja(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Ja(e,!1),0===e.strm.avail_out)?1:2}function ss(e,t){let r,n,i;for(;;){if(e.lookahead<262){if(is(e),e.lookahead<262&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-262&&(e.match_length=ns(e,r),e.match_length<=5&&(1===e.strategy||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,n=qa(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(Ja(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=qa(e,0,e.window[e.strstart-1]),n&&Ja(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=qa(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Ja(e,!1),0===e.strm.avail_out)?1:2}class os{constructor(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}}const cs=[new os(0,0,0,0,(function(e,t){let r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(is(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,Ja(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Ja(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Ja(e,!1),e.strm.avail_out),1)})),new os(4,4,8,4,as),new os(4,5,16,8,as),new os(4,6,32,32,as),new os(4,4,16,16,ss),new os(8,16,32,32,ss),new os(8,16,128,128,ss),new os(8,32,128,256,ss),new os(32,128,258,1024,ss),new os(32,258,258,4096,ss)];class hs{constructor(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new aa(1146),this.dyn_dtree=new aa(122),this.bl_tree=new aa(78),Ya(this.dyn_ltree),Ya(this.dyn_dtree),Ya(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new aa(16),this.heap=new aa(573),Ya(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new aa(573),Ya(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}}function us(e){const t=function(e){let t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=2,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=0,La(t),0):Za(e,-2)}(e);return 0===t&&function(e){e.window_size=2*e.w_size,Ya(e.head),e.max_lazy_match=cs[e.level].max_lazy,e.good_match=cs[e.level].good_length,e.nice_match=cs[e.level].nice_length,e.max_chain_length=cs[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0}(e.state),t}function ls(e,t){let r,n,i,a;if(!e||!e.state||t>5||t<0)return e?Za(e,-2):-2;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&4!==t)return Za(e,0===e.avail_out?-5:-2);if(n.strm=e,r=n.last_flush,n.last_flush=t,42===n.status)if(2===n.wrap)e.adler=0,es(n,31),es(n,139),es(n,8),n.gzhead?(es(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),es(n,255&n.gzhead.time),es(n,n.gzhead.time>>8&255),es(n,n.gzhead.time>>16&255),es(n,n.gzhead.time>>24&255),es(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),es(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(es(n,255&n.gzhead.extra.length),es(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Wa(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(es(n,0),es(n,0),es(n,0),es(n,0),es(n,0),es(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),es(n,3),n.status=113);else{let t=8+(n.w_bits-8<<4)<<8,r=-1;r=n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3,t|=r<<6,0!==n.strstart&&(t|=32),t+=31-t%31,n.status=113,ts(n,t),0!==n.strstart&&(ts(n,e.adler>>>16),ts(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),Xa(e),i=n.pending,n.pending!==n.pending_buf_size));)es(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),Xa(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,es(n,a)}while(0!==a);n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),Xa(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,es(n,a)}while(0!==a);n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Xa(e),n.pending+2<=n.pending_buf_size&&(es(n,255&e.adler),es(n,e.adler>>8&255),e.adler=0,n.status=113)):n.status=113),0!==n.pending){if(Xa(e),0===e.avail_out)return n.last_flush=-1,0}else if(0===e.avail_in&&Qa(t)<=Qa(r)&&4!==t)return Za(e,-5);if(666===n.status&&0!==e.avail_in)return Za(e,-5);if(0!==e.avail_in||0!==n.lookahead||0!==t&&666!==n.status){var s=2===n.strategy?function(e,t){let r;for(;;){if(0===e.lookahead&&(is(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=qa(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Ja(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Ja(e,!1),0===e.strm.avail_out)?1:2}(n,t):3===n.strategy?function(e,t){let r,n,i,a;const s=e.window;for(;;){if(e.lookahead<=258){if(is(e),e.lookahead<=258&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,n=s[i],n===s[++i]&&n===s[++i]&&n===s[++i])){a=e.strstart+258;do{}while(n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&i<a);e.match_length=258-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=qa(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=qa(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Ja(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Ja(e,!1),0===e.strm.avail_out)?1:2}(n,t):cs[n.level].func(n,t);if(3!==s&&4!==s||(n.status=666),1===s||3===s)return 0===e.avail_out&&(n.last_flush=-1),0;if(2===s&&(1===t?ja(n):5!==t&&(Fa(n,0,0,!1),3===t&&(Ya(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Xa(e),0===e.avail_out))return n.last_flush=-1,0}return 4!==t?0:n.wrap<=0?1:(2===n.wrap?(es(n,255&e.adler),es(n,e.adler>>8&255),es(n,e.adler>>16&255),es(n,e.adler>>24&255),es(n,255&e.total_in),es(n,e.total_in>>8&255),es(n,e.total_in>>16&255),es(n,e.total_in>>24&255)):(ts(n,e.adler>>>16),ts(n,65535&e.adler)),Xa(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)}try{String.fromCharCode.call(null,0)}catch(e){}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){}const ys=new ia(256);for(let e=0;e<256;e++)ys[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;function ps(e){let t,r,n,i,a=0;const s=e.length;for(n=0;n<s;n++)t=e.charCodeAt(n),55296==(64512&t)&&n+1<s&&(r=e.charCodeAt(n+1),56320==(64512&r)&&(t=65536+(t-55296<<10)+(r-56320),n++)),a+=t<128?1:t<2048?2:t<65536?3:4;const o=new ia(a);for(i=0,n=0;i<a;n++)t=e.charCodeAt(n),55296==(64512&t)&&n+1<s&&(r=e.charCodeAt(n+1),56320==(64512&r)&&(t=65536+(t-55296<<10)+(r-56320),n++)),t<128?o[i++]=t:t<2048?(o[i++]=192|t>>>6,o[i++]=128|63&t):t<65536?(o[i++]=224|t>>>12,o[i++]=128|t>>>6&63,o[i++]=128|63&t):(o[i++]=240|t>>>18,o[i++]=128|t>>>12&63,o[i++]=128|t>>>6&63,o[i++]=128|63&t);return o}ys[254]=ys[254]=1;class ds{constructor(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}}class fs{constructor(e){this.options={level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,...e||{}};const t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ds,this.strm.avail_out=0;var r,n,i=function(e,t,r,n,i,a){if(!e)return-2;let s=1;if(-1===t&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),i<1||i>9||8!==r||n<8||n>15||t<0||t>9||a<0||a>4)return Za(e,-2);8===n&&(n=9);const o=new hs;return e.state=o,o.strm=e,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new ia(2*o.w_size),o.head=new aa(o.hash_size),o.prev=new aa(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new ia(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=a,o.method=r,us(e)}(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==i)throw Error($a[i]);if(t.header&&(r=this.strm,n=t.header,r&&r.state&&(2!==r.state.wrap||(r.state.gzhead=n))),t.dictionary){let e;if(e="string"==typeof t.dictionary?ps(t.dictionary):t.dictionary instanceof ArrayBuffer?new Uint8Array(t.dictionary):t.dictionary,0!==(i=function(e,t){let r,n,i,a,s,o,c,h,u=t.length;if(!e||!e.state)return-2;if(r=e.state,a=r.wrap,2===a||1===a&&42!==r.status||r.lookahead)return-2;for(1===a&&(e.adler=Ga(e.adler,t,u,0)),r.wrap=0,u>=r.w_size&&(0===a&&(Ya(r.head),r.strstart=0,r.block_start=0,r.insert=0),h=new ia(r.w_size),ca(h,t,u-r.w_size,r.w_size,0),t=h,u=r.w_size),s=e.avail_in,o=e.next_in,c=e.input,e.avail_in=u,e.next_in=0,e.input=t,is(r);r.lookahead>=3;){n=r.strstart,i=r.lookahead-2;do{r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+3-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++}while(--i);r.strstart=n,r.lookahead=2,is(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=o,e.input=c,e.avail_in=s,r.wrap=a,0}(this.strm,e)))throw Error($a[i]);this._dict_set=!0}}push(e,t){const{strm:r,options:{chunkSize:n}}=this;var i,a;if(this.ended)return!1;a=t===~~t?t:!0===t?4:0,"string"==typeof e?r.input=ps(e):e instanceof ArrayBuffer?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;do{if(0===r.avail_out&&(r.output=new ia(n),r.next_out=0,r.avail_out=n),1!==(i=ls(r,a))&&0!==i)return this.onEnd(i),this.ended=!0,!1;0!==r.avail_out&&(0!==r.avail_in||4!==a&&2!==a)||this.onData(ta(r.output,r.next_out))}while((r.avail_in>0||0===r.avail_out)&&1!==i);return 4===a?(i=function(e){let t;return e&&e.state?(t=e.state.status,42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Za(e,-2):(e.state=null,113===t?Za(e,-3):0)):-2}(this.strm),this.onEnd(i),this.ended=!0,0===i):2!==a||(this.onEnd(0),r.avail_out=0,!0)}onData(e){this.chunks.push(e)}onEnd(e){0===e&&(this.result=oa(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}}function gs(e,t){let r,n,i,a,s,o,c,h,u,l;const y=e.state;r=e.next_in;const p=e.input,d=r+(e.avail_in-5);n=e.next_out;const f=e.output,g=n-(t-e.avail_out),m=n+(e.avail_out-257),w=y.dmax,b=y.wsize,k=y.whave,v=y.wnext,A=y.window;i=y.hold,a=y.bits;const _=y.lencode,E=y.distcode,S=(1<<y.lenbits)-1,K=(1<<y.distbits)-1;e:do{a<15&&(i+=p[r++]<<a,a+=8,i+=p[r++]<<a,a+=8),s=_[i&S];t:for(;;){if(o=s>>>24,i>>>=o,a-=o,o=s>>>16&255,0===o)f[n++]=65535&s;else{if(!(16&o)){if(0==(64&o)){s=_[(65535&s)+(i&(1<<o)-1)];continue t}if(32&o){y.mode=12;break e}e.msg="invalid literal/length code",y.mode=30;break e}c=65535&s,o&=15,o&&(a<o&&(i+=p[r++]<<a,a+=8),c+=i&(1<<o)-1,i>>>=o,a-=o),a<15&&(i+=p[r++]<<a,a+=8,i+=p[r++]<<a,a+=8),s=E[i&K];r:for(;;){if(o=s>>>24,i>>>=o,a-=o,o=s>>>16&255,!(16&o)){if(0==(64&o)){s=E[(65535&s)+(i&(1<<o)-1)];continue r}e.msg="invalid distance code",y.mode=30;break e}if(h=65535&s,o&=15,a<o&&(i+=p[r++]<<a,a+=8,a<o&&(i+=p[r++]<<a,a+=8)),h+=i&(1<<o)-1,h>w){e.msg="invalid distance too far back",y.mode=30;break e}if(i>>>=o,a-=o,o=n-g,h>o){if(o=h-o,o>k&&y.sane){e.msg="invalid distance too far back",y.mode=30;break e}if(u=0,l=A,0===v){if(u+=b-o,o<c){c-=o;do{f[n++]=A[u++]}while(--o);u=n-h,l=f}}else if(v<o){if(u+=b+v-o,o-=v,o<c){c-=o;do{f[n++]=A[u++]}while(--o);if(u=0,v<c){o=v,c-=o;do{f[n++]=A[u++]}while(--o);u=n-h,l=f}}}else if(u+=v-o,o<c){c-=o;do{f[n++]=A[u++]}while(--o);u=n-h,l=f}for(;c>2;)f[n++]=l[u++],f[n++]=l[u++],f[n++]=l[u++],c-=3;c&&(f[n++]=l[u++],c>1&&(f[n++]=l[u++]))}else{u=n-h;do{f[n++]=f[u++],f[n++]=f[u++],f[n++]=f[u++],c-=3}while(c>2);c&&(f[n++]=f[u++],c>1&&(f[n++]=f[u++]))}break}}break}}while(r<d&&n<m);c=a>>3,r-=c,a-=c<<3,i&=(1<<a)-1,e.next_in=r,e.next_out=n,e.avail_in=r<d?d-r+5:5-(r-d),e.avail_out=n<m?m-n+257:257-(n-m),y.hold=i,y.bits=a}const ms=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],ws=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],bs=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],ks=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function vs(e,t,r,n,i,a,s,o){const c=o.bits;let h,u,l,y,p,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0,E=null,S=0;const K=new aa(16),x=new aa(16);let P,U,D,C=null,I=0;for(d=0;d<=15;d++)K[d]=0;for(f=0;f<n;f++)K[t[r+f]]++;for(w=c,m=15;m>=1&&0===K[m];m--);if(w>m&&(w=m),0===m)return i[a++]=20971520,i[a++]=20971520,o.bits=1,0;for(g=1;g<m&&0===K[g];g++);for(w<g&&(w=g),v=1,d=1;d<=15;d++)if(v<<=1,v-=K[d],v<0)return-1;if(v>0&&(0===e||1!==m))return-1;for(x[1]=0,d=1;d<15;d++)x[d+1]=x[d]+K[d];for(f=0;f<n;f++)0!==t[r+f]&&(s[x[t[r+f]]++]=f);0===e?(E=C=s,p=19):1===e?(E=ms,S-=257,C=ws,I-=257,p=256):(E=bs,C=ks,p=-1),_=0,f=0,d=g,y=a,b=w,k=0,l=-1,A=1<<w;const B=A-1;if(1===e&&A>852||2===e&&A>592)return 1;for(;;){P=d-k,s[f]<p?(U=0,D=s[f]):s[f]>p?(U=C[I+s[f]],D=E[S+s[f]]):(U=96,D=0),h=1<<d-k,u=1<<b,g=u;do{u-=h,i[y+(_>>k)+u]=P<<24|U<<16|D|0}while(0!==u);for(h=1<<d-1;_&h;)h>>=1;if(0!==h?(_&=h-1,_+=h):_=0,f++,0==--K[d]){if(d===m)break;d=t[r+s[f]]}if(d>w&&(_&B)!==l){for(0===k&&(k=w),y+=g,b=d-k,v=1<<b;b+k<m&&(v-=K[b+k],!(v<=0));)b++,v<<=1;if(A+=1<<b,1===e&&A>852||2===e&&A>592)return 1;l=_&B,i[l]=w<<24|b<<16|y-a|0}}return 0!==_&&(i[y+_]=d-k<<24|64<<16|0),o.bits=w,0}function As(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}class _s{constructor(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new aa(320),this.work=new aa(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}}function Es(e){let t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,function(e){let t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new sa(852),t.distcode=t.distdyn=new sa(592),t.sane=1,t.back=-1,0):-2}(e)):-2}function Ss(e,t){let r,n;return e?(n=new _s,e.state=n,n.window=null,r=function(e,t){let r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?-2:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,Es(e))):-2}(e,t),0!==r&&(e.state=null),r):-2}let Ks,xs,Ps=!0;function Us(e){if(Ps){let t;for(Ks=new sa(512),xs=new sa(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(vs(1,e.lens,0,288,Ks,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;vs(2,e.lens,0,32,xs,0,e.work,{bits:5}),Ps=!1}e.lencode=Ks,e.lenbits=9,e.distcode=xs,e.distbits=5}function Ds(e,t,r,n){let i;const a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new ia(a.wsize)),n>=a.wsize?(ca(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),ca(a.window,t,r-n,i,a.wnext),(n-=i)?(ca(a.window,t,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function Cs(e,t){let r,n,i,a,s,o,c,h,u,l,y,p,d,f,g,m,w,b,k,v,A,_,E,S,K=0,x=new ia(4);const P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return-2;r=e.state,12===r.mode&&(r.mode=13),s=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,h=r.hold,u=r.bits,l=o,y=c,_=0;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(2&r.wrap&&35615===h){r.check=0,x[0]=255&h,x[1]=h>>>8&255,r.check=Wa(r.check,x,2,0),h=0,u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&h)<<8)+(h>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&h)){e.msg="unknown compression method",r.mode=30;break}if(h>>>=4,u-=4,A=8+(15&h),0===r.wbits)r.wbits=A;else if(A>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<A,e.adler=r.check=1,r.mode=512&h?10:12,h=0,u=0;break;case 2:for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(r.flags=h,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=30;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=30;break}r.head&&(r.head.text=h>>8&1),512&r.flags&&(x[0]=255&h,x[1]=h>>>8&255,r.check=Wa(r.check,x,2,0)),h=0,u=0,r.mode=3;case 3:for(;u<32;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.head&&(r.head.time=h),512&r.flags&&(x[0]=255&h,x[1]=h>>>8&255,x[2]=h>>>16&255,x[3]=h>>>24&255,r.check=Wa(r.check,x,4,0)),h=0,u=0,r.mode=4;case 4:for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.head&&(r.head.xflags=255&h,r.head.os=h>>8),512&r.flags&&(x[0]=255&h,x[1]=h>>>8&255,r.check=Wa(r.check,x,2,0)),h=0,u=0,r.mode=5;case 5:if(1024&r.flags){for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.length=h,r.head&&(r.head.extra_len=h),512&r.flags&&(x[0]=255&h,x[1]=h>>>8&255,r.check=Wa(r.check,x,2,0)),h=0,u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p=r.length,p>o&&(p=o),p&&(r.head&&(A=r.head.extra_len-r.length,r.head.extra||(r.head.extra=Array(r.head.extra_len)),ca(r.head.extra,n,a,p,A)),512&r.flags&&(r.check=Wa(r.check,n,p,a)),o-=p,a+=p,r.length-=p),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;p=0;do{A=n[a+p++],r.head&&A&&r.length<65536&&(r.head.name+=String.fromCharCode(A))}while(A&&p<o);if(512&r.flags&&(r.check=Wa(r.check,n,p,a)),o-=p,a+=p,A)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;p=0;do{A=n[a+p++],r.head&&A&&r.length<65536&&(r.head.comment+=String.fromCharCode(A))}while(A&&p<o);if(512&r.flags&&(r.check=Wa(r.check,n,p,a)),o-=p,a+=p,A)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(h!==(65535&r.check)){e.msg="header crc mismatch",r.mode=30;break}h=0,u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;u<32;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}e.adler=r.check=As(h),h=0,u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,r.hold=h,r.bits=u,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){h>>>=7&u,u-=7&u,r.mode=27;break}for(;u<3;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}switch(r.last=1&h,h>>>=1,u-=1,3&h){case 0:r.mode=14;break;case 1:if(Us(r),r.mode=20,6===t){h>>>=2,u-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}h>>>=2,u-=2;break;case 14:for(h>>>=7&u,u-=7&u;u<32;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if((65535&h)!=(h>>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&h,h=0,u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(p=r.length,p){if(p>o&&(p=o),p>c&&(p=c),0===p)break e;ca(i,n,a,p,s),o-=p,a+=p,c-=p,s+=p,r.length-=p;break}r.mode=12;break;case 17:for(;u<14;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(r.nlen=257+(31&h),h>>>=5,u-=5,r.ndist=1+(31&h),h>>>=5,u-=5,r.ncode=4+(15&h),h>>>=4,u-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;u<3;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.lens[P[r.have++]]=7&h,h>>>=3,u-=3}for(;r.have<19;)r.lens[P[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,E={bits:r.lenbits},_=vs(0,r.lens,0,19,r.lencode,0,r.work,E),r.lenbits=E.bits,_){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;K=r.lencode[h&(1<<r.lenbits)-1],g=K>>>24,m=K>>>16&255,w=65535&K,!(g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(w<16)h>>>=g,u-=g,r.lens[r.have++]=w;else{if(16===w){for(S=g+2;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(h>>>=g,u-=g,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}A=r.lens[r.have-1],p=3+(3&h),h>>>=2,u-=2}else if(17===w){for(S=g+3;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}h>>>=g,u-=g,A=0,p=3+(7&h),h>>>=3,u-=3}else{for(S=g+7;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}h>>>=g,u-=g,A=0,p=11+(127&h),h>>>=7,u-=7}if(r.have+p>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;p--;)r.lens[r.have++]=A}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,E={bits:r.lenbits},_=vs(1,r.lens,0,r.nlen,r.lencode,0,r.work,E),r.lenbits=E.bits,_){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,E={bits:r.distbits},_=vs(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,E),r.distbits=E.bits,_){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(o>=6&&c>=258){e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,r.hold=h,r.bits=u,gs(e,y),s=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,h=r.hold,u=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;K=r.lencode[h&(1<<r.lenbits)-1],g=K>>>24,m=K>>>16&255,w=65535&K,!(g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(m&&0==(240&m)){for(b=g,k=m,v=w;K=r.lencode[v+((h&(1<<b+k)-1)>>b)],g=K>>>24,m=K>>>16&255,w=65535&K,!(b+g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}h>>>=b,u-=b,r.back+=b}if(h>>>=g,u-=g,r.back+=g,r.length=w,0===m){r.mode=26;break}if(32&m){r.back=-1,r.mode=12;break}if(64&m){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&m,r.mode=22;case 22:if(r.extra){for(S=r.extra;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.length+=h&(1<<r.extra)-1,h>>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;K=r.distcode[h&(1<<r.distbits)-1],g=K>>>24,m=K>>>16&255,w=65535&K,!(g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(0==(240&m)){for(b=g,k=m,v=w;K=r.distcode[v+((h&(1<<b+k)-1)>>b)],g=K>>>24,m=K>>>16&255,w=65535&K,!(b+g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}h>>>=b,u-=b,r.back+=b}if(h>>>=g,u-=g,r.back+=g,64&m){e.msg="invalid distance code",r.mode=30;break}r.offset=w,r.extra=15&m,r.mode=24;case 24:if(r.extra){for(S=r.extra;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.offset+=h&(1<<r.extra)-1,h>>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===c)break e;if(p=y-c,r.offset>p){if(p=r.offset-p,p>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p>r.wnext?(p-=r.wnext,d=r.wsize-p):d=r.wnext-p,p>r.length&&(p=r.length),f=r.window}else f=i,d=s-r.offset,p=r.length;p>c&&(p=c),c-=p,r.length-=p;do{i[s++]=f[d++]}while(--p);0===r.length&&(r.mode=21);break;case 26:if(0===c)break e;i[s++]=r.length,c--,r.mode=21;break;case 27:if(r.wrap){for(;u<32;){if(0===o)break e;o--,h|=n[a++]<<u,u+=8}if(y-=c,e.total_out+=y,r.total+=y,y&&(e.adler=r.check=r.flags?Wa(r.check,i,y,s-y):Ga(r.check,i,y,s-y)),y=c,(r.flags?h:As(h))!==r.check){e.msg="incorrect data check",r.mode=30;break}h=0,u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;u<32;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(h!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=30;break}h=0,u=0}r.mode=29;case 29:_=1;break e;case 30:_=-3;break e;case 32:default:return-2}return e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,r.hold=h,r.bits=u,(r.wsize||y!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Ds(e,e.output,e.next_out,y-e.avail_out),l-=e.avail_in,y-=e.avail_out,e.total_in+=l,e.total_out+=y,r.total+=y,r.wrap&&y&&(e.adler=r.check=r.flags?Wa(r.check,i,y,e.next_out-y):Ga(r.check,i,y,e.next_out-y)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0===l&&0===y||4===t)&&0===_&&(_=-5),_}function Is(e,t){const r=t.length;let n,i;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?-2:11===n.mode&&(i=1,i=Ga(i,t,r,0),i!==n.check)?-3:(Ds(e,t,r,r),n.havedict=1,0)):-2}class Bs{constructor(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}}class Ts{constructor(e){this.options={chunkSize:16384,windowBits:0,...e||{}};const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ds,this.strm.avail_out=0;let r=Ss(this.strm,t.windowBits);if(0!==r)throw Error($a[r]);if(this.header=new Bs,function(e,t){let r;e&&e.state&&(r=e.state,0==(2&r.wrap)||(r.head=t,t.done=!1))}(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=ps(t.dictionary):t.dictionary instanceof ArrayBuffer&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=Is(this.strm,t.dictionary),0!==r)))throw Error($a[r])}push(e,t){const{strm:r,options:{chunkSize:n,dictionary:i}}=this;let a,s,o=!1;if(this.ended)return!1;s=t===~~t?t:!0===t?4:0,"string"==typeof e?r.input=function(e){const t=new ia(e.length);for(let r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(e):e instanceof ArrayBuffer?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;do{if(0===r.avail_out&&(r.output=new ia(n),r.next_out=0,r.avail_out=n),a=Cs(r,0),2===a&&i&&(a=Is(this.strm,i)),-5===a&&!0===o&&(a=0,o=!1),1!==a&&0!==a)return this.onEnd(a),this.ended=!0,!1;r.next_out&&(0!==r.avail_out&&1!==a&&(0!==r.avail_in||4!==s&&2!==s)||this.onData(ta(r.output,r.next_out))),0===r.avail_in&&0===r.avail_out&&(o=!0)}while((r.avail_in>0||0===r.avail_out)&&1!==a);return 1===a&&(s=4),4===s?(a=function(e){if(!e||!e.state)return-2;const t=e.state;return t.window&&(t.window=null),e.state=null,0}(this.strm),this.onEnd(a),this.ended=!0,0===a):2!==s||(this.onEnd(0),r.avail_out=0,!0)}onData(e){this.chunks.push(e)}onEnd(e){0===e&&(this.result=oa(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}}var zs=[0,1,3,7,15,31,63,127,255],Rs=function(e){this.stream=e,this.bitOffset=0,this.curByte=0,this.hasByte=!1};Rs.prototype._ensureByte=function(){this.hasByte||(this.curByte=this.stream.readByte(),this.hasByte=!0)},Rs.prototype.read=function(e){for(var t=0;e>0;){this._ensureByte();var r=8-this.bitOffset;if(e>=r)t<<=r,t|=zs[r]&this.curByte,this.hasByte=!1,this.bitOffset=0,e-=r;else{t<<=e;var n=r-e;t|=(this.curByte&zs[e]<<n)>>n,this.bitOffset+=e,e=0}}return t},Rs.prototype.seek=function(e){var t=e%8,r=(e-t)/8;this.bitOffset=t,this.stream.seek(r),this.hasByte=!1},Rs.prototype.pi=function(){var e,t=new Uint8Array(6);for(e=0;e<t.length;e++)t[e]=this.read(8);return function(e){return Array.prototype.map.call(e,(e=>("00"+e.toString(16)).slice(-2))).join("")}(t)};var Ms=Rs,Ns=function(){};Ns.prototype.readByte=function(){throw Error("abstract method readByte() not implemented")},Ns.prototype.read=function(e,t,r){for(var n=0;n<r;){var i=this.readByte();if(i<0)return 0===n?-1:n;e[t++]=i,n++}return n},Ns.prototype.seek=function(e){throw Error("abstract method seek() not implemented")},Ns.prototype.writeByte=function(e){throw Error("abstract method readByte() not implemented")},Ns.prototype.write=function(e,t,r){var n;for(n=0;n<r;n++)this.writeByte(e[t++]);return r},Ns.prototype.flush=function(){};var Os,Ls=Ns,Fs=(Os=new Uint32Array([0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]),function(){var e=4294967295;this.getCRC=function(){return~e>>>0},this.updateCRC=function(t){e=e<<8^Os[255&(e>>>24^t)]},this.updateCRCRun=function(t,r){for(;r-- >0;)e=e<<8^Os[255&(e>>>24^t)]}}),js=function(e,t){var r,n=e[t];for(r=t;r>0;r--)e[r]=e[r-1];return e[0]=n,n},Hs={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},qs={};qs[Hs.LAST_BLOCK]="Bad file checksum",qs[Hs.NOT_BZIP_DATA]="Not bzip data",qs[Hs.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",qs[Hs.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",qs[Hs.DATA_ERROR]="Data error",qs[Hs.OUT_OF_MEMORY]="Out of memory",qs[Hs.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";var Gs=function(e,t){var r=qs[e]||"unknown error";t&&(r+=": "+t);var n=new TypeError(r);throw n.errorCode=e,n},Vs=function(e,t){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(e,t)};Vs.prototype._init_block=function(){return this._get_next_block()?(this.blockCRC=new Fs,!0):(this.writeCount=-1,!1)},Vs.prototype._start_bunzip=function(e,t){var r=new Uint8Array(4);4===e.read(r,0,4)&&"BZh"===String.fromCharCode(r[0],r[1],r[2])||Gs(Hs.NOT_BZIP_DATA,"bad magic");var n=r[3]-48;(n<1||n>9)&&Gs(Hs.NOT_BZIP_DATA,"level out of range"),this.reader=new Ms(e),this.dbufSize=1e5*n,this.nextoutput=0,this.outputStream=t,this.streamCRC=0},Vs.prototype._get_next_block=function(){var e,t,r,n=this.reader,i=n.pi();if("177245385090"===i)return!1;"314159265359"!==i&&Gs(Hs.NOT_BZIP_DATA),this.targetBlockCRC=n.read(32)>>>0,this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,n.read(1)&&Gs(Hs.OBSOLETE_INPUT);var a=n.read(24);a>this.dbufSize&&Gs(Hs.DATA_ERROR,"initial position out of bounds");var s=n.read(16),o=new Uint8Array(256),c=0;for(e=0;e<16;e++)if(s&1<<15-e){var h=16*e;for(r=n.read(16),t=0;t<16;t++)r&1<<15-t&&(o[c++]=h+t)}var u=n.read(3);(u<2||u>6)&&Gs(Hs.DATA_ERROR);var l=n.read(15);0===l&&Gs(Hs.DATA_ERROR);var y=new Uint8Array(256);for(e=0;e<u;e++)y[e]=e;var p=new Uint8Array(l);for(e=0;e<l;e++){for(t=0;n.read(1);t++)t>=u&&Gs(Hs.DATA_ERROR);p[e]=js(y,t)}var d,f=c+2,g=[];for(t=0;t<u;t++){var m,w,b=new Uint8Array(f),k=new Uint16Array(21);for(s=n.read(5),e=0;e<f;e++){for(;(s<1||s>20)&&Gs(Hs.DATA_ERROR),n.read(1);)n.read(1)?s--:s++;b[e]=s}for(m=w=b[0],e=1;e<f;e++)b[e]>w?w=b[e]:b[e]<m&&(m=b[e]);d={},g.push(d),d.permute=new Uint16Array(258),d.limit=new Uint32Array(22),d.base=new Uint32Array(21),d.minLen=m,d.maxLen=w;var v=0;for(e=m;e<=w;e++)for(k[e]=d.limit[e]=0,s=0;s<f;s++)b[s]===e&&(d.permute[v++]=s);for(e=0;e<f;e++)k[b[e]]++;for(v=s=0,e=m;e<w;e++)v+=k[e],d.limit[e]=v-1,v<<=1,s+=k[e],d.base[e+1]=v-s;d.limit[w+1]=Number.MAX_VALUE,d.limit[w]=v+k[w]-1,d.base[m]=0}var A=new Uint32Array(256);for(e=0;e<256;e++)y[e]=e;var _,E=0,S=0,K=0,x=this.dbuf=new Uint32Array(this.dbufSize);for(f=0;;){for(f--||(f=49,K>=l&&Gs(Hs.DATA_ERROR),d=g[p[K++]]),e=d.minLen,t=n.read(e);e>d.maxLen&&Gs(Hs.DATA_ERROR),!(t<=d.limit[e]);e++)t=t<<1|n.read(1);((t-=d.base[e])<0||t>=258)&&Gs(Hs.DATA_ERROR);var P=d.permute[t];if(0!==P&&1!==P){if(E)for(E=0,S+s>this.dbufSize&&Gs(Hs.DATA_ERROR),A[_=o[y[0]]]+=s;s--;)x[S++]=_;if(P>c)break;S>=this.dbufSize&&Gs(Hs.DATA_ERROR),A[_=o[_=js(y,e=P-1)]]++,x[S++]=_}else E||(E=1,s=0),s+=0===P?E:2*E,E<<=1}for((a<0||a>=S)&&Gs(Hs.DATA_ERROR),t=0,e=0;e<256;e++)r=t+A[e],A[e]=t,t=r;for(e=0;e<S;e++)x[A[_=255&x[e]]]|=e<<8,A[_]++;var U=0,D=0,C=0;return S&&(D=255&(U=x[a]),U>>=8,C=-1),this.writePos=U,this.writeCurrent=D,this.writeCount=S,this.writeRun=C,!0},Vs.prototype._read_bunzip=function(e,t){var r,n,i;if(this.writeCount<0)return 0;var a=this.dbuf,s=this.writePos,o=this.writeCurrent,c=this.writeCount;this.outputsize;for(var h=this.writeRun;c;){for(c--,n=o,o=255&(s=a[s]),s>>=8,3==h++?(r=o,i=n,o=-1):(r=1,i=o),this.blockCRC.updateCRCRun(i,r);r--;)this.outputStream.writeByte(i),this.nextoutput++;o!=n&&(h=0)}return this.writeCount=c,this.blockCRC.getCRC()!==this.targetBlockCRC&&Gs(Hs.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput};var Ws=function(e){if("readByte"in e)return e;var t=new Ls;return t.pos=0,t.readByte=function(){return e[this.pos++]},t.seek=function(e){this.pos=e},t.eof=function(){return this.pos>=e.length},t},$s=function(e){var t=new Ls,r=!0;if(e)if("number"==typeof e)t.buffer=new Uint8Array(e),r=!1;else{if("writeByte"in e)return e;t.buffer=e,r=!1}else t.buffer=new Uint8Array(16384);return t.pos=0,t.writeByte=function(e){if(r&&this.pos>=this.buffer.length){var t=new Uint8Array(2*this.buffer.length);t.set(this.buffer),this.buffer=t}this.buffer[this.pos++]=e},t.getBuffer=function(){if(this.pos!==this.buffer.length){if(!r)throw new TypeError("outputsize does not match decoded input");var e=new Uint8Array(this.pos);e.set(this.buffer.subarray(0,this.pos)),this.buffer=e}return this.buffer},t._coerced=!0,t};var Zs=function(e,t,r){for(var n=Ws(e),i=$s(t),a=new Vs(n,i);!("eof"in n)||!n.eof();)if(a._init_block())a._read_bunzip();else{var s=a.reader.read(32)>>>0;if(s!==a.streamCRC&&Gs(Hs.DATA_ERROR,"Bad stream CRC (got "+a.streamCRC.toString(16)+" expected "+s.toString(16)+")"),!r||!("eof"in n)||n.eof())break;a._start_bunzip(n,i)}if("getBuffer"in i)return i.getBuffer()};class Qs{static get tag(){return re.packet.literalData}constructor(e=new Date){this.format=re.literal.utf8,this.date=W.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=re.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(null===this.text||W.isStream(this.text))&&(this.text=W.decodeUTF8(W.nativeEOL(this.getBytes(e)))),this.text}setBytes(e,t){this.format=t,this.data=e,this.text=null}getBytes(e=!1){return null===this.data&&(this.data=W.canonicalizeEOL(W.encodeUTF8(this.text))),e?O(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await M(e,(async e=>{const t=await e.readByte(),r=await e.readByte();this.filename=W.decodeUTF8(await e.readBytes(r)),this.date=W.readDate(await e.readBytes(4));let n=e.remainder();s(n)&&(n=await j(n)),this.setBytes(n,t)}))}writeHeader(){const e=W.encodeUTF8(this.filename),t=new Uint8Array([e.length]),r=new Uint8Array([this.format]),n=W.writeDate(this.date);return W.concatUint8Array([r,t,e,n])}write(){const e=this.writeHeader(),t=this.getBytes();return W.concat([e,t])}}const Ys=Symbol("verified"),Xs=new Set([re.signatureSubpacket.issuer,re.signatureSubpacket.issuerFingerprint,re.signatureSubpacket.embeddedSignature]);class Js{static get tag(){return re.packet.signature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.signatureData=null,this.unhashedSubpackets=[],this.signedHashValue=null,this.created=null,this.signatureExpirationTime=null,this.signatureNeverExpires=!0,this.exportable=null,this.trustLevel=null,this.trustAmount=null,this.regularExpression=null,this.revocable=null,this.keyExpirationTime=null,this.keyNeverExpires=null,this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyID=new pe,this.rawNotations=[],this.notations={},this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserID=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.issuerKeyVersion=null,this.issuerFingerprint=null,this.preferredAEADAlgorithms=null,this.revoked=null,this[Ys]=null}read(e){let t=0;if(this.version=e[t++],4!==this.version&&5!==this.version)throw new wn(`Version ${this.version} of the signature packet is unsupported.`);if(this.signatureType=e[t++],this.publicKeyAlgorithm=e[t++],this.hashAlgorithm=e[t++],t+=this.readSubPackets(e.subarray(t,e.length),!0),!this.created)throw Error("Missing signature creation time subpacket.");this.signatureData=e.subarray(0,t),t+=this.readSubPackets(e.subarray(t,e.length),!1),this.signedHashValue=e.subarray(t,t+2),t+=2,this.params=Ji.signature.parseSignatureParams(this.publicKeyAlgorithm,e.subarray(t,e.length))}writeParams(){return this.params instanceof Promise?q((async()=>Ji.serializeParams(this.publicKeyAlgorithm,await this.params))):Ji.serializeParams(this.publicKeyAlgorithm,this.params)}write(){const e=[];return e.push(this.signatureData),e.push(this.writeUnhashedSubPackets()),e.push(this.signedHashValue),e.push(this.writeParams()),W.concat(e)}async sign(e,t,r=new Date,n=!1){5===e.version?this.version=5:this.version=4;const i=[new Uint8Array([this.version,this.signatureType,this.publicKeyAlgorithm,this.hashAlgorithm])];this.created=W.normalizeDate(r),this.issuerKeyVersion=e.version,this.issuerFingerprint=e.getFingerprintBytes(),this.issuerKeyID=e.getKeyID(),i.push(this.writeHashedSubPackets()),this.signatureData=W.concat(i);const a=this.toHash(this.signatureType,t,n),s=await this.hash(this.signatureType,t,a,n);this.signedHashValue=F(N(s),0,2);const o=async()=>Ji.signature.sign(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await j(s));W.isStream(s)?this.params=o():(this.params=await o(),this[Ys]=!0)}writeHashedSubPackets(){const e=re.signatureSubpacket,t=[];let r;if(null===this.created)throw Error("Missing signature creation time");t.push(eo(e.signatureCreationTime,W.writeDate(this.created))),null!==this.signatureExpirationTime&&t.push(eo(e.signatureExpirationTime,W.writeNumber(this.signatureExpirationTime,4))),null!==this.exportable&&t.push(eo(e.exportableCertification,new Uint8Array([this.exportable?1:0]))),null!==this.trustLevel&&(r=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(eo(e.trustSignature,r))),null!==this.regularExpression&&t.push(eo(e.regularExpression,this.regularExpression)),null!==this.revocable&&t.push(eo(e.revocable,new Uint8Array([this.revocable?1:0]))),null!==this.keyExpirationTime&&t.push(eo(e.keyExpirationTime,W.writeNumber(this.keyExpirationTime,4))),null!==this.preferredSymmetricAlgorithms&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(eo(e.preferredSymmetricAlgorithms,r))),null!==this.revocationKeyClass&&(r=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),r=W.concat([r,this.revocationKeyFingerprint]),t.push(eo(e.revocationKey,r))),this.rawNotations.forEach((([{name:n,value:i,humanReadable:a}])=>{r=[new Uint8Array([a?128:0,0,0,0])],r.push(W.writeNumber(n.length,2)),r.push(W.writeNumber(i.length,2)),r.push(W.stringToUint8Array(n)),r.push(i),r=W.concat(r),t.push(eo(e.notationData,r))})),null!==this.preferredHashAlgorithms&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(eo(e.preferredHashAlgorithms,r))),null!==this.preferredCompressionAlgorithms&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(eo(e.preferredCompressionAlgorithms,r))),null!==this.keyServerPreferences&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.keyServerPreferences)),t.push(eo(e.keyServerPreferences,r))),null!==this.preferredKeyServer&&t.push(eo(e.preferredKeyServer,W.stringToUint8Array(this.preferredKeyServer))),null!==this.isPrimaryUserID&&t.push(eo(e.primaryUserID,new Uint8Array([this.isPrimaryUserID?1:0]))),null!==this.policyURI&&t.push(eo(e.policyURI,W.stringToUint8Array(this.policyURI))),null!==this.keyFlags&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.keyFlags)),t.push(eo(e.keyFlags,r))),null!==this.signersUserID&&t.push(eo(e.signersUserID,W.stringToUint8Array(this.signersUserID))),null!==this.reasonForRevocationFlag&&(r=W.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(eo(e.reasonForRevocation,r))),null!==this.features&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.features)),t.push(eo(e.features,r))),null!==this.signatureTargetPublicKeyAlgorithm&&(r=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],r.push(W.stringToUint8Array(this.signatureTargetHash)),r=W.concat(r),t.push(eo(e.signatureTarget,r))),null!==this.preferredAEADAlgorithms&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(eo(e.preferredAEADAlgorithms,r)));const n=W.concat(t),i=W.writeNumber(n.length,2);return W.concat([i,n])}writeUnhashedSubPackets(){const e=re.signatureSubpacket,t=[];let r;this.issuerKeyID.isNull()||5===this.issuerKeyVersion||t.push(eo(e.issuer,this.issuerKeyID.write())),null!==this.embeddedSignature&&t.push(eo(e.embeddedSignature,this.embeddedSignature.write())),null!==this.issuerFingerprint&&(r=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],r=W.concat(r),t.push(eo(e.issuerFingerprint,r))),this.unhashedSubpackets.forEach((e=>{t.push(yn(e.length)),t.push(e)}));const n=W.concat(t),i=W.writeNumber(n.length,2);return W.concat([i,n])}readSubPacket(e,t=!0){let r=0;const n=128&e[r],i=127&e[r];if(t||Xs.has(i))switch(r++,i){case re.signatureSubpacket.signatureCreationTime:this.created=W.readDate(e.subarray(r,e.length));break;case re.signatureSubpacket.signatureExpirationTime:{const t=W.readNumber(e.subarray(r,e.length));this.signatureNeverExpires=0===t,this.signatureExpirationTime=t;break}case re.signatureSubpacket.exportableCertification:this.exportable=1===e[r++];break;case re.signatureSubpacket.trustSignature:this.trustLevel=e[r++],this.trustAmount=e[r++];break;case re.signatureSubpacket.regularExpression:this.regularExpression=e[r];break;case re.signatureSubpacket.revocable:this.revocable=1===e[r++];break;case re.signatureSubpacket.keyExpirationTime:{const t=W.readNumber(e.subarray(r,e.length));this.keyExpirationTime=t,this.keyNeverExpires=0===t;break}case re.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.revocationKey:this.revocationKeyClass=e[r++],this.revocationKeyAlgorithm=e[r++],this.revocationKeyFingerprint=e.subarray(r,r+20);break;case re.signatureSubpacket.issuer:this.issuerKeyID.read(e.subarray(r,e.length));break;case re.signatureSubpacket.notationData:{const t=!!(128&e[r]);r+=4;const i=W.readNumber(e.subarray(r,r+2));r+=2;const a=W.readNumber(e.subarray(r,r+2));r+=2;const s=W.uint8ArrayToString(e.subarray(r,r+i)),o=e.subarray(r+i,r+i+a);this.rawNotations.push({name:s,humanReadable:t,value:o,critical:n}),t&&(this.notations[s]=W.uint8ArrayToString(o));break}case re.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=W.uint8ArrayToString(e.subarray(r,e.length));break;case re.signatureSubpacket.primaryUserID:this.isPrimaryUserID=0!==e[r++];break;case re.signatureSubpacket.policyURI:this.policyURI=W.uint8ArrayToString(e.subarray(r,e.length));break;case re.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.signersUserID:this.signersUserID=W.uint8ArrayToString(e.subarray(r,e.length));break;case re.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[r++],this.reasonForRevocationString=W.uint8ArrayToString(e.subarray(r,e.length));break;case re.signatureSubpacket.features:this.features=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[r++],this.signatureTargetHashAlgorithm=e[r++];const t=Ji.getHashByteLength(this.signatureTargetHashAlgorithm);this.signatureTargetHash=W.uint8ArrayToString(e.subarray(r,r+t));break}case re.signatureSubpacket.embeddedSignature:this.embeddedSignature=new Js,this.embeddedSignature.read(e.subarray(r,e.length));break;case re.signatureSubpacket.issuerFingerprint:this.issuerKeyVersion=e[r++],this.issuerFingerprint=e.subarray(r,e.length),5===this.issuerKeyVersion?this.issuerKeyID.read(this.issuerFingerprint):this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));break;case re.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(r,e.length)];break;default:{const e=Error("Unknown signature subpacket type "+i);if(n)throw e;W.printDebug(e)}}else this.unhashedSubpackets.push(e.subarray(r,e.length))}readSubPackets(e,t=!0,r){const n=W.readNumber(e.subarray(0,2));let i=2;for(;i<2+n;){const n=ln(e.subarray(i,e.length));i+=n.offset,this.readSubPacket(e.subarray(i,i+n.len),t,r),i+=n.len}return i}toSign(e,t){const r=re.signature;switch(e){case r.binary:return null!==t.text?W.encodeUTF8(t.getText(!0)):t.getBytes(!0);case r.text:{const e=t.getBytes(!0);return W.canonicalizeEOL(e)}case r.standalone:return new Uint8Array(0);case r.certGeneric:case r.certPersona:case r.certCasual:case r.certPositive:case r.certRevocation:{let e,n;if(t.userID)n=180,e=t.userID;else{if(!t.userAttribute)throw Error("Either a userID or userAttribute packet needs to be supplied for certification.");n=209,e=t.userAttribute}const i=e.write();return W.concat([this.toSign(r.key,t),new Uint8Array([n]),W.writeNumber(i.length,4),i])}case r.subkeyBinding:case r.subkeyRevocation:case r.keyBinding:return W.concat([this.toSign(r.key,t),this.toSign(r.key,{key:t.bind})]);case r.key:if(void 0===t.key)throw Error("Key packet is required for this signature.");return t.key.writeForHash(this.version);case r.keyRevocation:return this.toSign(r.key,t);case r.timestamp:return new Uint8Array(0);case r.thirdParty:throw Error("Not implemented");default:throw Error("Unknown signature type.")}}calculateTrailer(e,t){let r=0;return z(N(this.signatureData),(e=>{r+=e.length}),(()=>{const n=[];return 5!==this.version||this.signatureType!==re.signature.binary&&this.signatureType!==re.signature.text||(t?n.push(new Uint8Array(6)):n.push(e.writeHeader())),n.push(new Uint8Array([this.version,255])),5===this.version&&n.push(new Uint8Array(4)),n.push(W.writeNumber(r,4)),W.concat(n)}))}toHash(e,t,r=!1){const n=this.toSign(e,t);return W.concat([n,this.signatureData,this.calculateTrailer(t,r)])}async hash(e,t,r,n=!1){return r||(r=this.toHash(e,t,n)),Ji.hash.digest(this.hashAlgorithm,r)}async verify(e,t,r,n=new Date,i=!1,a=ne){if(!this.issuerKeyID.equals(e.getKeyID()))throw Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Public key algorithm used to sign signature does not match issuer key algorithm.");const s=t===re.signature.binary||t===re.signature.text;if(!(this[Ys]&&!s)){let n,a;if(this.hashed?a=await this.hashed:(n=this.toHash(t,r,i),a=await this.hash(t,r,n)),a=await j(a),this.signedHashValue[0]!==a[0]||this.signedHashValue[1]!==a[1])throw Error("Signed digest did not match");this.params=await this.params;const s=this.publicKeyAlgorithm===re.publicKey.hmac?e.privateParams:null;if(this[Ys]=await Ji.signature.verify(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,s,n,a),!this[Ys])throw Error("Signature verification failed")}const o=W.normalizeDate(n);if(o&&this.created>o)throw Error("Signature creation time is in the future");if(o&&o>=this.getExpirationTime())throw Error("Signature is expired");if(a.rejectHashAlgorithms.has(this.hashAlgorithm))throw Error("Insecure hash algorithm: "+re.read(re.hash,this.hashAlgorithm).toUpperCase());if(a.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[re.signature.binary,re.signature.text].includes(this.signatureType))throw Error("Insecure message hash algorithm: "+re.read(re.hash,this.hashAlgorithm).toUpperCase());if(this.rawNotations.forEach((({name:e,critical:t})=>{if(t&&a.knownNotations.indexOf(e)<0)throw Error("Unknown critical notation: "+e)})),null!==this.revocationKeyClass)throw Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){const t=W.normalizeDate(e);return null!==t&&!(this.created<=t&&t<this.getExpirationTime())}getExpirationTime(){return this.signatureNeverExpires?1/0:new Date(this.created.getTime()+1e3*this.signatureExpirationTime)}}function eo(e,t){const r=[];return r.push(yn(t.length+1)),r.push(new Uint8Array([e])),r.push(t),W.concat(r)}class to{static get tag(){return re.packet.onePassSignature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.issuerKeyID=null,this.flags=null}read(e){let t=0;if(this.version=e[t++],3!==this.version)throw new wn(`Version ${this.version} of the one-pass signature packet is unsupported.`);return this.signatureType=e[t++],this.hashAlgorithm=e[t++],this.publicKeyAlgorithm=e[t++],this.issuerKeyID=new pe,this.issuerKeyID.read(e.subarray(t,t+8)),t+=8,this.flags=e[t++],this}write(){const e=new Uint8Array([3,this.signatureType,this.hashAlgorithm,this.publicKeyAlgorithm]),t=new Uint8Array([this.flags]);return W.concatUint8Array([e,this.issuerKeyID.write(),t])}calculateTrailer(...e){return q((async()=>Js.prototype.calculateTrailer.apply(await this.correspondingSig,e)))}async verify(){const e=await this.correspondingSig;if(!e||e.constructor.tag!==re.packet.signature)throw Error("Corresponding signature packet missing");if(e.signatureType!==this.signatureType||e.hashAlgorithm!==this.hashAlgorithm||e.publicKeyAlgorithm!==this.publicKeyAlgorithm||!e.issuerKeyID.equals(this.issuerKeyID))throw Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}}function ro(e,t){if(!t[e]){let t;try{t=re.read(re.packet,e)}catch(t){throw new wn("Unknown packet type with tag: "+e)}throw Error("Packet not allowed in this context: "+t)}return new t[e]}to.prototype.hash=Js.prototype.hash,to.prototype.toHash=Js.prototype.toHash,to.prototype.toSign=Js.prototype.toSign;class no extends Array{static async fromBinary(e,t,r=ne){const n=new no;return await n.read(e,t,r),n}async read(e,t,r=ne){this.stream=R(e,(async(e,n)=>{const i=C(n);try{for(;;){await i.ready;if(await mn(e,(async e=>{try{if(e.tag===re.packet.marker||e.tag===re.packet.trust)return;const n=ro(e.tag,t);n.packets=new no,n.fromStream=W.isStream(e.packet),await n.read(e.packet,r),await i.write(n)}catch(t){const n=!r.ignoreUnsupportedPackets&&t instanceof wn,a=!(r.ignoreMalformedPackets||t instanceof wn);if(n||a||gn(e.tag))await i.abort(t);else{const t=new bn(e.tag,e.packet);await i.write(t)}W.printDebugError(t)}})))return await i.ready,void await i.close()}}catch(e){await i.abort(e)}}));const n=D(this.stream);for(;;){const{done:e,value:t}=await n.read();if(e?this.stream=null:this.push(t),e||gn(t.constructor.tag))break}n.releaseLock()}write(){const e=[];for(let t=0;t<this.length;t++){const r=this[t]instanceof bn?this[t].tag:this[t].constructor.tag,n=this[t].write();if(W.isStream(n)&&gn(this[t].constructor.tag)){let t=[],i=0;const a=512;e.push(dn(r)),e.push(z(n,(e=>{if(t.push(e),i+=e.length,i>=a){const e=Math.min(Math.log(i)/Math.LN2|0,30),r=2**e,n=W.concat([pn(e)].concat(t));return t=[n.subarray(1+r)],i=t[0].length,n.subarray(0,1+r)}}),(()=>W.concat([yn(i)].concat(t)))))}else{if(W.isStream(n)){let t=0;e.push(z(N(n),(e=>{t+=e.length}),(()=>fn(r,t))))}else e.push(fn(r,n.length));e.push(n)}}return W.concat(e)}filterByTag(...e){const t=new no,r=e=>t=>e===t;for(let n=0;n<this.length;n++)e.some(r(this[n].constructor.tag))&&t.push(this[n]);return t}findPacket(e){return this.find((t=>t.constructor.tag===e))}indexOfTag(...e){const t=[],r=this,n=e=>t=>e===t;for(let i=0;i<this.length;i++)e.some(n(r[i].constructor.tag))&&t.push(i);return t}}const io=/*#__PURE__*/W.constructAllowedPackets([Qs,to,Js]);class ao{static get tag(){return re.packet.compressedData}constructor(e=ne){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null,this.deflateLevel=e.deflateLevel}async read(e,t=ne){await M(e,(async e=>{this.algorithm=await e.readByte(),this.compressed=e.remainder(),await this.decompress(t)}))}write(){return null===this.compressed&&this.compress(),W.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=ne){const t=re.read(re.compression,this.algorithm),r=yo[t];if(!r)throw Error(t+" decompression not supported");this.packets=await no.fromBinary(r(this.compressed),io,e)}compress(){const e=re.read(re.compression,this.algorithm),t=lo[e];if(!t)throw Error(e+" compression not supported");this.compressed=t(this.packets.write(),this.deflateLevel)}}const so=W.getNodeZlib();function oo(e){return e}function co(e,t,r={}){return function(n){return!W.isStream(n)||s(n)?q((()=>j(n).then((t=>new Promise(((n,i)=>{e(t,r,((e,t)=>{if(e)return i(e);n(t)}))})))))):f(g(n).pipe(t(r)))}}function ho(e,t={}){return function(r){const n=new e(t);return z(r,(e=>{if(e.length)return n.push(e,2),n.result}),(()=>{if(e===fs)return n.push([],4),n.result}))}}function uo(e){return function(t){return q((async()=>e(await j(t))))}}const lo=so?{zip:/*#__PURE__*/(e,t)=>co(so.deflateRaw,so.createDeflateRaw,{level:t})(e),zlib:/*#__PURE__*/(e,t)=>co(so.deflate,so.createDeflate,{level:t})(e)}:{zip:/*#__PURE__*/(e,t)=>ho(fs,{raw:!0,level:t})(e),zlib:/*#__PURE__*/(e,t)=>ho(fs,{level:t})(e)},yo=so?{uncompressed:oo,zip:/*#__PURE__*/co(so.inflateRaw,so.createInflateRaw),zlib:/*#__PURE__*/co(so.inflate,so.createInflate),bzip2:/*#__PURE__*/uo(Zs)}:{uncompressed:oo,zip:/*#__PURE__*/ho(Ts,{raw:!0}),zlib:/*#__PURE__*/ho(Ts),bzip2:/*#__PURE__*/uo(Zs)},po=/*#__PURE__*/W.constructAllowedPackets([Qs,ao,to,Js]);class fo{static get tag(){return re.packet.symEncryptedIntegrityProtectedData}constructor(){this.version=1,this.encrypted=null,this.packets=null}async read(e){await M(e,(async e=>{const t=await e.readByte();if(1!==t)throw new wn(`Version ${t} of the SEIP packet is unsupported.`);this.encrypted=e.remainder()}))}write(){return W.concat([new Uint8Array([1]),this.encrypted])}async encrypt(e,t,r=ne){const{blockSize:n}=Ji.getCipher(e);let i=this.packets.write();s(i)&&(i=await j(i));const a=await Ji.getPrefixRandom(e),o=new Uint8Array([211,20]),c=W.concat([a,i,o]),h=await Ji.hash.sha1(O(c)),u=W.concat([c,h]);return this.encrypted=await Ji.mode.cfb.encrypt(e,t,u,new Uint8Array(n),r),!0}async decrypt(e,t,r=ne){const{blockSize:n}=Ji.getCipher(e);let i=N(this.encrypted);s(i)&&(i=await j(i));const a=await Ji.mode.cfb.decrypt(e,t,i,new Uint8Array(n)),o=F(O(a),-20),c=F(a,0,-20),h=Promise.all([j(await Ji.hash.sha1(O(c))),j(o)]).then((([e,t])=>{if(!W.equalsUint8Array(e,t))throw Error("Modification detected.");return new Uint8Array})),u=F(c,n+2);let l=F(u,0,-2);return l=U([l,q((()=>h))]),W.isStream(i)&&r.allowUnauthenticatedStream||(l=await j(l)),this.packets=await no.fromBinary(l,po,r),!0}}const go=/*#__PURE__*/W.constructAllowedPackets([Qs,ao,to,Js]);class mo{static get tag(){return re.packet.aeadEncryptedData}constructor(){this.version=1,this.cipherAlgorithm=null,this.aeadAlgorithm=re.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await M(e,(async e=>{const t=await e.readByte();if(1!==t)throw new wn(`Version ${t} of the AEAD-encrypted data packet is not supported.`);this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte();const r=Ji.getAEADMode(this.aeadAlgorithm);this.iv=await e.readBytes(r.ivLength),this.encrypted=e.remainder()}))}write(){return W.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,r=ne){this.packets=await no.fromBinary(await this.crypt("decrypt",t,N(this.encrypted)),go,r)}async encrypt(e,t,r=ne){this.cipherAlgorithm=e;const{ivLength:n}=Ji.getAEADMode(this.aeadAlgorithm);this.iv=await Ji.random.getRandomBytes(n),this.chunkSizeByte=r.aeadChunkSizeByte;const i=this.packets.write();this.encrypted=await this.crypt("encrypt",t,i)}async crypt(e,t,r){const n=Ji.getAEADMode(this.aeadAlgorithm),i=await n(this.cipherAlgorithm,t),a="decrypt"===e?n.tagLength:0,s="encrypt"===e?n.tagLength:0,o=2**(this.chunkSizeByte+6)+a,c=new ArrayBuffer(21),h=new Uint8Array(c,0,13),u=new Uint8Array(c),l=new DataView(c),y=new Uint8Array(c,5,8);h.set([192|mo.tag,this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte],0);let p=0,d=Promise.resolve(),f=0,g=0;const m=this.iv;return R(r,(async(t,r)=>{if("array"!==W.isStream(t)){const e=new E({},{highWaterMark:W.getHardwareConcurrency()*2**(this.chunkSizeByte+6),size:e=>e.length});I(e.readable,r),r=e.writable}const c=D(t),w=C(r);try{for(;;){let t=await c.readBytes(o+a)||new Uint8Array;const r=t.subarray(t.length-a);let b,k;if(t=t.subarray(0,t.length-a),!p||t.length?(c.unshift(r),b=i[e](t,n.getNonce(m,y),h),g+=t.length-a+s):(l.setInt32(17,f),b=i[e](r,n.getNonce(m,y),u),g+=s,k=!0),f+=t.length-a,d=d.then((()=>b)).then((async e=>{await w.ready,await w.write(e),g-=e.length})).catch((e=>w.abort(e))),(k||g>w.desiredSize)&&await d,k){await w.close();break}l.setInt32(9,++p)}}catch(e){await w.abort(e)}}))}}class wo{static get tag(){return re.packet.publicKeyEncryptedSessionKey}constructor(){this.version=3,this.publicKeyID=new pe,this.publicKeyAlgorithm=null,this.sessionKey=null,this.sessionKeyAlgorithm=null,this.encrypted={}}read(e){if(this.version=e[0],3!==this.version)throw new wn(`Version ${this.version} of the PKESK packet is unsupported.`);this.publicKeyID.read(e.subarray(1,e.length)),this.publicKeyAlgorithm=e[9],this.encrypted=Ji.parseEncSessionKeyParams(this.publicKeyAlgorithm,e.subarray(10))}write(){const e=[new Uint8Array([this.version]),this.publicKeyID.write(),new Uint8Array([this.publicKeyAlgorithm]),Ji.serializeParams(this.publicKeyAlgorithm,this.encrypted)];return W.concatUint8Array(e)}async encrypt(e){const t=W.concatUint8Array([new Uint8Array([re.write(re.symmetric,this.sessionKeyAlgorithm)]),this.sessionKey,W.writeChecksum(this.sessionKey)]),r=re.write(re.publicKey,this.publicKeyAlgorithm),n=r===re.publicKey.aead?e.privateParams:null;this.encrypted=await Ji.publicKeyEncrypt(r,e.publicParams,n,t,e.getFingerprintBytes())}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Decryption error");const r=t?W.concatUint8Array([new Uint8Array([t.sessionKeyAlgorithm]),t.sessionKey,W.writeChecksum(t.sessionKey)]):null,n=await Ji.publicKeyDecrypt(this.publicKeyAlgorithm,e.publicParams,e.privateParams,this.encrypted,e.getFingerprintBytes(),r),i=n[0],a=n.subarray(1,n.length-2),s=n.subarray(n.length-2),o=W.writeChecksum(a),c=o[0]===s[0]&o[1]===s[1];if(t){const e=c&i===t.sessionKeyAlgorithm&a.length===t.sessionKey.length;this.sessionKeyAlgorithm=W.selectUint8(e,i,t.sessionKeyAlgorithm),this.sessionKey=W.selectUint8Array(e,a,t.sessionKey)}else{if(!(c&&re.read(re.symmetric,i)))throw Error("Decryption error");this.sessionKey=a,this.sessionKeyAlgorithm=i}}}class bo{constructor(e=ne){this.algorithm=re.hash.sha256,this.type="iterated",this.c=e.s2kIterationCountByte,this.salt=null}getCount(){return 16+(15&this.c)<<6+(this.c>>4)}read(e){let t=0;switch(this.type=re.read(re.s2k,e[t++]),this.algorithm=e[t++],this.type){case"simple":break;case"salted":this.salt=e.subarray(t,t+8),t+=8;break;case"iterated":this.salt=e.subarray(t,t+8),t+=8,this.c=e[t++];break;case"gnu":if("GNU"!==W.uint8ArrayToString(e.subarray(t,t+3)))throw Error("Unknown s2k type.");t+=3;if(1001!==1e3+e[t++])throw Error("Unknown s2k gnu protection mode.");this.type="gnu-dummy";break;default:throw Error("Unknown s2k type.")}return t}write(){if("gnu-dummy"===this.type)return new Uint8Array([101,0,...W.stringToUint8Array("GNU"),1]);const e=[new Uint8Array([re.write(re.s2k,this.type),this.algorithm])];switch(this.type){case"simple":break;case"salted":e.push(this.salt);break;case"iterated":e.push(this.salt),e.push(new Uint8Array([this.c]));break;case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}return W.concatUint8Array(e)}async produceKey(e,t){e=W.encodeUTF8(e);const r=[];let n=0,i=0;for(;n<t;){let t;switch(this.type){case"simple":t=W.concatUint8Array([new Uint8Array(i),e]);break;case"salted":t=W.concatUint8Array([new Uint8Array(i),this.salt,e]);break;case"iterated":{const r=W.concatUint8Array([this.salt,e]);let n=r.length;const a=Math.max(this.getCount(),n);t=new Uint8Array(i+a),t.set(r,i);for(let e=i+n;e<a;e+=n,n*=2)t.copyWithin(e,i,e);break}case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}const a=await Ji.hash.digest(this.algorithm,t);r.push(a),n+=a.length,i++}return W.concatUint8Array(r).subarray(0,t)}}class ko{static get tag(){return re.packet.symEncryptedSessionKey}constructor(e=ne){this.version=e.aeadProtect?5:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=re.symmetric.aes256,this.aeadAlgorithm=re.write(re.aead,e.preferredAEADAlgorithm),this.encrypted=null,this.s2k=null,this.iv=null}read(e){let t=0;if(this.version=e[t++],4!==this.version&&5!==this.version)throw new wn(`Version ${this.version} of the SKESK packet is unsupported.`);const r=e[t++];if(5===this.version&&(this.aeadAlgorithm=e[t++]),this.s2k=new bo,t+=this.s2k.read(e.subarray(t,e.length)),5===this.version){const r=Ji.getAEADMode(this.aeadAlgorithm);this.iv=e.subarray(t,t+=r.ivLength)}5===this.version||t<e.length?(this.encrypted=e.subarray(t,e.length),this.sessionKeyEncryptionAlgorithm=r):this.sessionKeyAlgorithm=r}write(){const e=null===this.encrypted?this.sessionKeyAlgorithm:this.sessionKeyEncryptionAlgorithm;let t;return 5===this.version?t=W.concatUint8Array([new Uint8Array([this.version,e,this.aeadAlgorithm]),this.s2k.write(),this.iv,this.encrypted]):(t=W.concatUint8Array([new Uint8Array([this.version,e]),this.s2k.write()]),null!==this.encrypted&&(t=W.concatUint8Array([t,this.encrypted]))),t}async decrypt(e){const t=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm,{blockSize:r,keySize:n}=Ji.getCipher(t),i=await this.s2k.produceKey(e,n);if(5===this.version){const e=Ji.getAEADMode(this.aeadAlgorithm),r=new Uint8Array([192|ko.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=await e(t,i);this.sessionKey=await n.decrypt(this.encrypted,this.iv,r)}else if(null!==this.encrypted){const e=await Ji.mode.cfb.decrypt(t,i,this.encrypted,new Uint8Array(r));this.sessionKeyAlgorithm=re.write(re.symmetric,e[0]),this.sessionKey=e.subarray(1,e.length)}else this.sessionKey=i}async encrypt(e,t=ne){const r=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=r,this.s2k=new bo(t),this.s2k.salt=await Ji.random.getRandomBytes(8);const{blockSize:n,keySize:i}=Ji.getCipher(r),a=await this.s2k.produceKey(e,i);if(null===this.sessionKey&&(this.sessionKey=await Ji.generateSessionKey(this.sessionKeyAlgorithm)),5===this.version){const e=Ji.getAEADMode(this.aeadAlgorithm);this.iv=await Ji.random.getRandomBytes(e.ivLength);const t=new Uint8Array([192|ko.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=await e(r,a);this.encrypted=await n.encrypt(this.sessionKey,this.iv,t)}else{const e=W.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await Ji.mode.cfb.encrypt(r,a,e,new Uint8Array(n),t)}}}class vo{static get tag(){return re.packet.publicKey}constructor(e=new Date,t=ne){this.version=t.v5Keys?5:4,this.created=W.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){const t=new vo,{version:r,created:n,algorithm:i,publicParams:a,keyID:s,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=a,t.keyID=s,t.fingerprint=o,t}async read(e){let t=0;if(this.version=e[t++],4===this.version||5===this.version){this.created=W.readDate(e.subarray(t,t+4)),t+=4,this.algorithm=e[t++],5===this.version&&(t+=4);const{read:r,publicParams:n}=Ji.parsePublicKeyParams(this.algorithm,e.subarray(t));return this.publicParams=n,t+=r,await this.computeFingerprintAndKeyID(),t}throw new wn(`Version ${this.version} of the key packet is unsupported.`)}write(){const e=[];e.push(new Uint8Array([this.version])),e.push(W.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));const t=Ji.serializeParams(this.algorithm,this.publicParams);return 5===this.version&&e.push(W.writeNumber(t.length,4)),e.push(t),W.concatUint8Array(e)}writeForHash(e){const t=this.writePublicKey();return 5===e?W.concatUint8Array([new Uint8Array([154]),W.writeNumber(t.length,4),t]):W.concatUint8Array([new Uint8Array([153]),W.writeNumber(t.length,2),t])}isDecrypted(){return null}getCreationTime(){return this.created}getKeyID(){return this.keyID}async computeFingerprintAndKeyID(){if(await this.computeFingerprint(),this.keyID=new pe,5===this.version)this.keyID.read(this.fingerprint.subarray(0,8));else{if(4!==this.version)throw Error("Unsupported key version");this.keyID.read(this.fingerprint.subarray(12,20))}}async computeFingerprint(){const e=this.writeForHash(this.version);if(5===this.version)this.fingerprint=await Ji.hash.sha256(e);else{if(4!==this.version)throw Error("Unsupported key version");this.fingerprint=await Ji.hash.sha1(e)}}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return W.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&W.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){const e={};e.algorithm=re.read(re.publicKey,this.algorithm);const t=this.publicParams.n||this.publicParams.p;return t?e.bits=W.uint8ArrayBitLength(t):this.publicParams.oid?e.curve=this.publicParams.oid.getName():e.symmetric=this.publicParams.cipher.getName(),e}}vo.prototype.readPublicKey=vo.prototype.read,vo.prototype.writePublicKey=vo.prototype.write;const Ao=/*#__PURE__*/W.constructAllowedPackets([Qs,ao,to,Js]);class _o{static get tag(){return re.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,r=ne){if(!r.allowUnauthenticatedMessages)throw Error("Message is not authenticated.");const{blockSize:n}=Ji.getCipher(e),i=await j(N(this.encrypted)),a=await Ji.mode.cfb.decrypt(e,t,i.subarray(n+2),i.subarray(2,n+2));this.packets=await no.fromBinary(a,Ao,r)}async encrypt(e,t,r=ne){const n=this.packets.write(),{blockSize:i}=Ji.getCipher(e),a=await Ji.getPrefixRandom(e),s=await Ji.mode.cfb.encrypt(e,t,a,new Uint8Array(i),r),o=await Ji.mode.cfb.encrypt(e,t,n,s.subarray(2),r);this.encrypted=W.concat([s,o])}}class Eo{static get tag(){return re.packet.marker}read(e){return 80===e[0]&&71===e[1]&&80===e[2]}write(){return new Uint8Array([80,71,80])}}class So extends vo{static get tag(){return re.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){const t=new So,{version:r,created:n,algorithm:i,publicParams:a,keyID:s,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=a,t.keyID=s,t.fingerprint=o,t}}class Ko{static get tag(){return re.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t<e.length;){const r=ln(e.subarray(t,e.length));t+=r.offset,this.attributes.push(W.uint8ArrayToString(e.subarray(t,t+r.len))),t+=r.len}}write(){const e=[];for(let t=0;t<this.attributes.length;t++)e.push(yn(this.attributes[t].length)),e.push(W.stringToUint8Array(this.attributes[t]));return W.concatUint8Array(e)}equals(e){return!!(e&&e instanceof Ko)&&this.attributes.every((function(t,r){return t===e.attributes[r]}))}}class xo extends vo{static get tag(){return re.packet.secretKey}constructor(e=new Date,t=ne){super(e,t),this.keyMaterial=null,this.isEncrypted=null,this.s2kUsage=0,this.s2k=null,this.symmetric=null,this.aead=null,this.privateParams=null}async read(e){let t=await this.readPublicKey(e);if(this.s2kUsage=e[t++],5===this.version&&t++,255===this.s2kUsage||254===this.s2kUsage||253===this.s2kUsage){if(this.symmetric=e[t++],253===this.s2kUsage&&(this.aead=e[t++]),this.s2k=new bo,t+=this.s2k.read(e.subarray(t,e.length)),"gnu-dummy"===this.s2k.type)return}else this.s2kUsage&&(this.symmetric=this.s2kUsage);if(this.s2kUsage&&(this.iv=e.subarray(t,t+Ji.getCipher(this.symmetric).blockSize),t+=this.iv.length),5===this.version&&(t+=4),this.keyMaterial=e.subarray(t),this.isEncrypted=!!this.s2kUsage,!this.isEncrypted){const e=this.keyMaterial.subarray(0,-2);if(!W.equalsUint8Array(W.writeChecksum(e),this.keyMaterial.subarray(-2)))throw Error("Key checksum mismatch");try{const{privateParams:t}=Ji.parsePrivateKeyParams(this.algorithm,e,this.publicParams);this.privateParams=t}catch(e){if(e instanceof wn)throw e;throw Error("Error reading MPIs")}}}write(){const e=[this.writePublicKey()];e.push(new Uint8Array([this.s2kUsage]));const t=[];return 255!==this.s2kUsage&&254!==this.s2kUsage&&253!==this.s2kUsage||(t.push(this.symmetric),253===this.s2kUsage&&t.push(this.aead),t.push(...this.s2k.write())),this.s2kUsage&&"gnu-dummy"!==this.s2k.type&&t.push(...this.iv),5===this.version&&e.push(new Uint8Array([t.length])),e.push(new Uint8Array(t)),this.isDummy()||(this.s2kUsage||(this.keyMaterial=Ji.serializeParams(this.algorithm,this.privateParams)),5===this.version&&e.push(W.writeNumber(this.keyMaterial.length,4)),e.push(this.keyMaterial),this.s2kUsage||e.push(W.writeChecksum(this.keyMaterial))),W.concatUint8Array(e)}isDecrypted(){return!1===this.isEncrypted}isDummy(){return!(!this.s2k||"gnu-dummy"!==this.s2k.type)}makeDummy(e=ne){this.isDummy()||(this.isDecrypted()&&this.clearPrivateParams(),this.isEncrypted=null,this.keyMaterial=null,this.s2k=new bo(e),this.s2k.algorithm=0,this.s2k.c=0,this.s2k.type="gnu-dummy",this.s2kUsage=254,this.symmetric=re.symmetric.aes256)}async encrypt(e,t=ne){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key packet is already encrypted");if(!e)throw Error("A non-empty passphrase is required for key encryption.");this.s2k=new bo(t),this.s2k.salt=await Ji.random.getRandomBytes(8);const r=Ji.serializeParams(this.algorithm,this.privateParams);this.symmetric=re.symmetric.aes256;const n=await Po(this.s2k,e,this.symmetric),{blockSize:i}=Ji.getCipher(this.symmetric);if(this.iv=await Ji.random.getRandomBytes(i),t.aeadProtect){this.s2kUsage=253,this.aead=re.aead.eax;const e=Ji.getAEADMode(this.aead),t=await e(this.symmetric,n);this.keyMaterial=await t.encrypt(r,this.iv.subarray(0,e.ivLength),new Uint8Array)}else this.s2kUsage=254,this.keyMaterial=await Ji.mode.cfb.encrypt(this.symmetric,n,W.concatUint8Array([r,await Ji.hash.sha1(r,t)]),this.iv,t)}async decrypt(e){if(this.isDummy())return!1;if(this.isDecrypted())throw Error("Key packet is already decrypted.");let t,r;if(254!==this.s2kUsage&&253!==this.s2kUsage)throw 255===this.s2kUsage?Error("Encrypted private key is authenticated using an insecure two-byte hash"):Error("Private key is encrypted using an insecure S2K function: unsalted MD5");if(t=await Po(this.s2k,e,this.symmetric),253===this.s2kUsage){const e=Ji.getAEADMode(this.aead),n=await e(this.symmetric,t);try{r=await n.decrypt(this.keyMaterial,this.iv.subarray(0,e.ivLength),new Uint8Array)}catch(e){if("Authentication tag mismatch"===e.message)throw Error("Incorrect key passphrase: "+e.message);throw e}}else{const e=await Ji.mode.cfb.decrypt(this.symmetric,t,this.keyMaterial,this.iv);r=e.subarray(0,-20);const n=await Ji.hash.sha1(r);if(!W.equalsUint8Array(n,e.subarray(-20)))throw Error("Incorrect key passphrase")}try{const{privateParams:e}=Ji.parsePrivateKeyParams(this.algorithm,r,this.publicParams);this.privateParams=e}catch(e){throw Error("Error reading MPIs")}this.isEncrypted=!1,this.keyMaterial=null,this.s2kUsage=0}async validate(){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key is not decrypted");let e;try{e=await Ji.validateParams(this.algorithm,this.publicParams,this.privateParams)}catch(t){e=!1}if(!e)throw Error("Key is invalid")}async generate(e,t,r){const{privateParams:n,publicParams:i}=await Ji.generateParams(this.algorithm,e,t,r);this.privateParams=n,this.publicParams=i,this.isEncrypted=!1}clearPrivateParams(){this.isDummy()||(Object.keys(this.privateParams).forEach((e=>{this.privateParams[e].fill(0),delete this.privateParams[e]})),this.privateParams=null,this.isEncrypted=!0)}}async function Po(e,t,r){const{keySize:n}=Ji.getCipher(r);return e.produceKey(t,n)}var Uo=tt((function(e){!function(t){function r(e){function t(){return _e<Ee}function r(){return _e}function i(e){_e=e}function a(){_e=0,Ee=Ae.length}function s(e,t){return{name:e,tokens:t||"",semantic:t||"",children:[]}}function o(e,t){var r;return null===t?null:((r=s(e)).tokens=t.tokens,r.semantic=t.semantic,r.children.push(t),r)}function c(e,t){return null!==t&&(e.tokens+=t.tokens,e.semantic+=t.semantic),e.children.push(t),e}function h(e){var r;return t()&&e(r=Ae[_e])?(_e+=1,s("token",r)):null}function u(e){return function(){return o("literal",h((function(t){return t===e})))}}function l(){var e=arguments;return function(){var t,n,a,o;for(o=r(),n=s("and"),t=0;t<e.length;t+=1){if(null===(a=e[t]()))return i(o),null;c(n,a)}return n}}function y(){var e=arguments;return function(){var t,n,a;for(a=r(),t=0;t<e.length;t+=1){if(null!==(n=e[t]()))return n;i(a)}return null}}function p(e){return function(){var t,n;return n=r(),null!==(t=e())?t:(i(n),s("opt"))}}function d(e){return function(){var t=e();return null!==t&&(t.semantic=""),t}}function f(e){return function(){var t=e();return null!==t&&t.semantic.length>0&&(t.semantic=" "),t}}function g(e,t){return function(){var n,a,o,h,u;for(h=r(),n=s("star"),o=0,u=void 0===t?0:t;null!==(a=e());)o+=1,c(n,a);return o>=u?n:(i(h),null)}}function m(e){return e.charCodeAt(0)>=128}function w(){return o("cr",u("\r")())}function b(){return o("crlf",l(w,A)())}function k(){return o("dquote",u('"')())}function v(){return o("htab",u("\t")())}function A(){return o("lf",u("\n")())}function _(){return o("sp",u(" ")())}function E(){return o("vchar",h((function(t){var r=t.charCodeAt(0),n=33<=r&&r<=126;return e.rfc6532&&(n=n||m(t)),n})))}function S(){return o("wsp",y(_,v)())}function K(){var e=o("quoted-pair",y(l(u("\\"),y(E,S)),ne)());return null===e?null:(e.semantic=e.semantic[1],e)}function x(){return o("fws",y(ae,l(p(l(g(S),d(b))),g(S,1)))())}function P(){return o("ctext",y((function(){return h((function(t){var r=t.charCodeAt(0),n=33<=r&&r<=39||42<=r&&r<=91||93<=r&&r<=126;return e.rfc6532&&(n=n||m(t)),n}))}),te)())}function U(){return o("ccontent",y(P,K,D)())}function D(){return o("comment",l(u("("),g(l(p(x),U)),p(x),u(")"))())}function C(){return o("cfws",y(l(g(l(p(x),D),1),p(x)),x)())}function I(){return o("atext",h((function(t){var r="a"<=t&&t<="z"||"A"<=t&&t<="Z"||"0"<=t&&t<="9"||["!","#","$","%","&","'","*","+","-","/","=","?","^","_","`","{","|","}","~"].indexOf(t)>=0;return e.rfc6532&&(r=r||m(t)),r})))}function B(){return o("atom",l(f(p(C)),g(I,1),f(p(C)))())}function T(){var e,t;return null===(e=o("dot-atom-text",g(I,1)()))||null!==(t=g(l(u("."),g(I,1)))())&&c(e,t),e}function z(){return o("dot-atom",l(d(p(C)),T,d(p(C)))())}function R(){return o("qtext",y((function(){return h((function(t){var r=t.charCodeAt(0),n=33===r||35<=r&&r<=91||93<=r&&r<=126;return e.rfc6532&&(n=n||m(t)),n}))}),re)())}function M(){return o("qcontent",y(R,K)())}function N(){return o("quoted-string",l(d(p(C)),d(k),g(l(p(f(x)),M)),p(d(x)),d(k),d(p(C)))())}function O(){return o("word",y(B,N)())}function L(){return o("address",y(F,q)())}function F(){return o("mailbox",y(j,J)())}function j(){return o("name-addr",l(p(G),H)())}function H(){return o("angle-addr",y(l(d(p(C)),u("<"),J,u(">"),d(p(C))),se)())}function q(){return o("group",l(G,u(":"),p($),u(";"),d(p(C)))())}function G(){return o("display-name",(null!==(e=o("phrase",y(ie,g(O,1))()))&&(e.semantic=function(e){return e.replace(/([ \t]|\r\n)+/g," ").replace(/^\s*/,"").replace(/\s*$/,"")}(e.semantic)),e));var e}function V(){return o("mailbox-list",y(l(F,g(l(u(","),F))),he)())}function W(){return o("address-list",y(l(L,g(l(u(","),L))),ue)())}function $(){return o("group-list",y(V,d(C),le)())}function Z(){return o("local-part",y(ye,z,N)())}function Q(){return o("dtext",y((function(){return h((function(t){var r=t.charCodeAt(0),n=33<=r&&r<=90||94<=r&&r<=126;return e.rfc6532&&(n=n||m(t)),n}))}),de)())}function Y(){return o("domain-literal",l(d(p(C)),u("["),g(l(p(x),Q)),p(x),u("]"),d(p(C)))())}function X(){return o("domain",(t=y(pe,z,Y)(),e.rejectTLD&&t&&t.semantic&&t.semantic.indexOf(".")<0?null:(t&&(t.semantic=t.semantic.replace(/\s+/g,"")),t)));var t}function J(){return o("addr-spec",l(Z,u("@"),X)())}function ee(){return e.strict?null:o("obs-NO-WS-CTL",h((function(e){var t=e.charCodeAt(0);return 1<=t&&t<=8||11===t||12===t||14<=t&&t<=31||127===t})))}function te(){return e.strict?null:o("obs-ctext",ee())}function re(){return e.strict?null:o("obs-qtext",ee())}function ne(){return e.strict?null:o("obs-qp",l(u("\\"),y(u("\0"),ee,A,w))())}function ie(){return e.strict?null:e.atInDisplayName?o("obs-phrase",l(O,g(y(O,u("."),u("@"),f(C))))()):o("obs-phrase",l(O,g(y(O,u("."),f(C))))())}function ae(){return e.strict?null:o("obs-FWS",g(l(d(p(b)),S),1)())}function se(){return e.strict?null:o("obs-angle-addr",l(d(p(C)),u("<"),oe,J,u(">"),d(p(C)))())}function oe(){return e.strict?null:o("obs-route",l(ce,u(":"))())}function ce(){return e.strict?null:o("obs-domain-list",l(g(y(d(C),u(","))),u("@"),X,g(l(u(","),d(p(C)),p(l(u("@"),X)))))())}function he(){return e.strict?null:o("obs-mbox-list",l(g(l(d(p(C)),u(","))),F,g(l(u(","),p(l(F,d(C))))))())}function ue(){return e.strict?null:o("obs-addr-list",l(g(l(d(p(C)),u(","))),L,g(l(u(","),p(l(L,d(C))))))())}function le(){return e.strict?null:o("obs-group-list",l(g(l(d(p(C)),u(",")),1),d(p(C)))())}function ye(){return e.strict?null:o("obs-local-part",l(O,g(l(u("."),O)))())}function pe(){return e.strict?null:o("obs-domain",l(B,g(l(u("."),B)))())}function de(){return e.strict?null:o("obs-dtext",y(ee,K)())}function fe(e,t){var r,n,i;if(null==t)return null;for(n=[t];n.length>0;){if((i=n.pop()).name===e)return i;for(r=i.children.length-1;r>=0;r-=1)n.push(i.children[r])}return null}function ge(e,t){var r,n,i,a,s;if(null==t)return null;for(n=[t],a=[],s={},r=0;r<e.length;r+=1)s[e[r]]=!0;for(;n.length>0;)if((i=n.pop()).name in s)a.push(i);else for(r=i.children.length-1;r>=0;r-=1)n.push(i.children[r]);return a}function me(t){var r,n,i,a,s;if(null===t)return null;for(r=[],n=ge(["group","mailbox"],t),i=0;i<n.length;i+=1)"group"===(a=n[i]).name?r.push(we(a)):"mailbox"===a.name&&r.push(be(a));return s={ast:t,addresses:r},e.simple&&(s=function(e){var t;if(e&&e.addresses)for(t=0;t<e.addresses.length;t+=1)delete e.addresses[t].node;return e}(s)),e.oneResult?function(t){if(!t)return null;if(!e.partial&&t.addresses.length>1)return null;return t.addresses&&t.addresses[0]}(s):e.simple?s&&s.addresses:s}function we(e){var t,r=fe("display-name",e),n=[],i=ge(["mailbox"],e);for(t=0;t<i.length;t+=1)n.push(be(i[t]));return{node:e,parts:{name:r},type:e.name,name:ke(r),addresses:n}}function be(e){var t=fe("display-name",e),r=fe("addr-spec",e),n=function(e,t){var r,n,i,a;if(null==t)return null;for(n=[t],a=[];n.length>0;)for((i=n.pop()).name===e&&a.push(i),r=i.children.length-1;r>=0;r-=1)n.push(i.children[r]);return a}("cfws",e),i=ge(["comment"],e),a=fe("local-part",r),s=fe("domain",r);return{node:e,parts:{name:t,address:r,local:a,domain:s,comments:n},type:e.name,name:ke(t),address:ke(r),local:ke(a),domain:ke(s),comments:ve(i),groupName:ke(e.groupName)}}function ke(e){return null!=e?e.semantic:null}function ve(e){var t="";if(e)for(var r=0;r<e.length;r+=1)t+=ke(e[r]);return t}var Ae,_e,Ee,Se,Ke;if(null===(e=n(e,{})))return null;if(Ae=e.input,Ke={address:L,"address-list":W,"angle-addr":H,from:function(){return o("from",y(V,W)())},group:q,mailbox:F,"mailbox-list":V,"reply-to":function(){return o("reply-to",W())},sender:function(){return o("sender",y(F,L)())}}[e.startAt]||W,!e.strict){if(a(),e.strict=!0,Se=Ke(Ae),e.partial||!t())return me(Se);e.strict=!1}return a(),Se=Ke(Ae),!e.partial&&t()?null:me(Se)}function n(e,t){function r(e){return"[object String]"===Object.prototype.toString.call(e)}function n(e){return null==e}var i,a;if(r(e))e={input:e};else if(!function(e){return e===Object(e)}(e))return null;if(!r(e.input))return null;if(!t)return null;for(a in i={oneResult:!1,partial:!1,rejectTLD:!1,rfc6532:!1,simple:!1,startAt:"address-list",strict:!1,atInDisplayName:!1})n(e[a])&&(e[a]=n(t[a])?i[a]:t[a]);return e}r.parseOneAddress=function(e){return r(n(e,{oneResult:!0,rfc6532:!0,simple:!0,startAt:"address-list"}))},r.parseAddressList=function(e){return r(n(e,{rfc6532:!0,simple:!0,startAt:"address-list"}))},r.parseFrom=function(e){return r(n(e,{rfc6532:!0,simple:!0,startAt:"from"}))},r.parseSender=function(e){return r(n(e,{oneResult:!0,rfc6532:!0,simple:!0,startAt:"sender"}))},r.parseReplyTo=function(e){return r(n(e,{rfc6532:!0,simple:!0,startAt:"reply-to"}))},e.exports=r}()}));class Do{static get tag(){return re.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(W.isString(e)||e.name&&!W.isString(e.name)||e.email&&!W.isEmailAddress(e.email)||e.comment&&!W.isString(e.comment))throw Error("Invalid user ID format");const t=new Do;Object.assign(t,e);const r=[];return t.name&&r.push(t.name),t.comment&&r.push(`(${t.comment})`),t.email&&r.push(`<${t.email}>`),t.userID=r.join(" "),t}read(e,t=ne){const r=W.decodeUTF8(e);if(r.length>t.maxUserIDLength)throw Error("User ID string is too long");try{const{name:e,address:t,comments:n}=Uo.parseOneAddress({input:r,atInDisplayName:!0});this.comment=n.replace(/^\(|\)$/g,""),this.name=e,this.email=t}catch(e){}this.userID=r}write(){return W.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}}class Co extends xo{static get tag(){return re.packet.secretSubkey}constructor(e=new Date,t=ne){super(e,t)}}class Io{static get tag(){return re.packet.trust}read(){throw new wn("Trust packets are not supported")}write(){throw new wn("Trust packets are not supported")}}const Bo=/*#__PURE__*/W.constructAllowedPackets([Js]);class To{constructor(e){this.packets=e||new no}write(){return this.packets.write()}armor(e=ne){return ye(re.armor.signature,this.write(),void 0,void 0,void 0,e)}getSigningKeyIDs(){return this.packets.map((e=>e.issuerKeyID))}}async function zo({armoredSignature:e,binarySignature:t,config:r,...n}){r={...ne,...r};let i=e||t;if(!i)throw Error("readSignature: must pass options object containing `armoredSignature` or `binarySignature`");if(e&&!W.isString(e))throw Error("readSignature: options.armoredSignature must be a string");if(t&&!W.isUint8Array(t))throw Error("readSignature: options.binarySignature must be a Uint8Array");const a=Object.keys(n);if(a.length>0)throw Error("Unknown option: "+a.join(", "));if(e){const{type:e,data:t}=await le(i,r);if(e!==re.armor.signature)throw Error("Armored text not of type signature");i=t}const s=await no.fromBinary(i,Bo,r);return new To(s)}async function Ro(e,t){const r=new Co(e.date,t);return r.packets=null,r.algorithm=re.write(re.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.symmetric),await r.computeFingerprintAndKeyID(),r}async function Mo(e,t){const r=new xo(e.date,t);return r.packets=null,r.algorithm=re.write(re.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.symmetric),await r.computeFingerprintAndKeyID(),r}async function No(e,t,r,n,i=new Date,a){let s,o;for(let c=e.length-1;c>=0;c--)try{(!s||e[c].created>=s.created)&&(await e[c].verify(t,r,n,i,void 0,a),s=e[c])}catch(e){o=e}if(!s)throw W.wrapError(`Could not find valid ${re.read(re.signature,r)} signature in key ${t.getKeyID().toHex()}`.replace("certGeneric ","self-").replace(/([a-z])([A-Z])/g,((e,t,r)=>t+" "+r.toLowerCase())),o);return s}function Oo(e,t,r=new Date){const n=W.normalizeDate(r);if(null!==n){const r=Vo(e,t);return!(e.created<=n&&n<r)}return!1}async function Lo(e,t,r,n){const i={};i.key=t,i.bind=e;const a=new Js;return a.signatureType=re.signature.subkeyBinding,a.publicKeyAlgorithm=t.algorithm,a.hashAlgorithm=await Fo(null,e,void 0,void 0,n),r.sign?(a.keyFlags=[re.keyFlags.signData],a.embeddedSignature=await Ho(i,null,e,{signatureType:re.signature.keyBinding},r.date,void 0,void 0,n)):a.keyFlags=[re.keyFlags.encryptCommunication|re.keyFlags.encryptStorage],r.keyExpirationTime>0&&(a.keyExpirationTime=r.keyExpirationTime,a.keyNeverExpires=!1),await a.sign(t,i,r.date),a}async function Fo(e,t,r=new Date,n={},i){let a=i.preferredHashAlgorithm,s=a;if(e){const t=await e.getPrimaryUser(r,n,i);t.selfCertification.preferredHashAlgorithms&&([s]=t.selfCertification.preferredHashAlgorithms,a=Ji.hash.getHashByteLength(a)<=Ji.hash.getHashByteLength(s)?s:a)}switch(Object.getPrototypeOf(t)){case xo.prototype:case vo.prototype:case Co.prototype:case So.prototype:switch(t.algorithm){case re.publicKey.ecdh:case re.publicKey.ecdsa:case re.publicKey.eddsa:s=Ji.publicKey.elliptic.getPreferredHashAlgo(t.publicParams.oid)}}return Ji.hash.getHashByteLength(a)<=Ji.hash.getHashByteLength(s)?s:a}async function jo(e,t=[],r=new Date,n=[],i=ne){const a={symmetric:re.symmetric.aes128,aead:re.aead.eax,compression:re.compression.uncompressed}[e],s={symmetric:i.preferredSymmetricAlgorithm,aead:i.preferredAEADAlgorithm,compression:i.preferredCompressionAlgorithm}[e],o={symmetric:"preferredSymmetricAlgorithms",aead:"preferredAEADAlgorithms",compression:"preferredCompressionAlgorithms"}[e];return(await Promise.all(t.map((async function(e,t){const a=(await e.getPrimaryUser(r,n[t],i)).selfCertification[o];return!!a&&a.indexOf(s)>=0})))).every(Boolean)?s:a}async function Ho(e,t,r,n,i,a,s=!1,o){if(r.isDummy())throw Error("Cannot sign with a gnu-dummy key.");if(!r.isDecrypted())throw Error("Signing key is not decrypted.");const c=new Js;return Object.assign(c,n),c.publicKeyAlgorithm=r.algorithm,c.hashAlgorithm=await Fo(t,r,i,a,o),await c.sign(r,e,i,s),c}async function qo(e,t,r,n=new Date,i){(e=e[r])&&(t[r].length?await Promise.all(e.map((async function(e){e.isExpired(n)||i&&!await i(e)||t[r].some((function(t){return W.equalsUint8Array(t.writeParams(),e.writeParams())}))||t[r].push(e)}))):t[r]=e)}async function Go(e,t,r,n,i,a,s=new Date,o){a=a||e;const c=[];return await Promise.all(n.map((async function(e){try{i&&!e.issuerKeyID.equals(i.issuerKeyID)||(await e.verify(a,t,r,o.revocationsExpire?s:null,!1,o),c.push(e.issuerKeyID))}catch(e){}}))),i?(i.revoked=!!c.some((e=>e.equals(i.issuerKeyID)))||(i.revoked||!1),i.revoked):c.length>0}function Vo(e,t){let r;return!1===t.keyNeverExpires&&(r=e.created.getTime()+1e3*t.keyExpirationTime),r?new Date(r):1/0}function Wo(e,t={}){switch(e.type=e.type||t.type,e.curve=e.curve||t.curve,e.rsaBits=e.rsaBits||t.rsaBits,e.keyExpirationTime=void 0!==e.keyExpirationTime?e.keyExpirationTime:t.keyExpirationTime,e.passphrase=W.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e.sign=e.sign||!1,e.type){case"ecc":try{e.curve=re.write(re.curve,e.curve)}catch(e){throw Error("Unknown curve")}e.curve!==re.curve.ed25519&&e.curve!==re.curve.curve25519||(e.curve=e.sign?re.curve.ed25519:re.curve.curve25519),e.sign?e.algorithm=e.curve===re.curve.ed25519?re.publicKey.eddsa:re.publicKey.ecdsa:e.algorithm=re.publicKey.ecdh;break;case"rsa":e.algorithm=re.publicKey.rsaEncryptSign;break;case"symmetric":e.sign?(e.algorithm=re.publicKey.hmac,e.symmetric=e.symmetricHash||t.symmetricHash):(e.algorithm=re.publicKey.aead,e.symmetric=e.symmetricCipher||t.symmetricCipher);break;default:throw Error("Unsupported key type "+e.type)}return e}function $o(e,t){const r=e.algorithm;return r!==re.publicKey.rsaEncrypt&&r!==re.publicKey.elgamal&&r!==re.publicKey.ecdh&&(!t.keyFlags||0!=(t.keyFlags[0]&re.keyFlags.signData))}function Zo(e,t){const r=e.algorithm;return r!==re.publicKey.dsa&&r!==re.publicKey.rsaSign&&r!==re.publicKey.ecdsa&&r!==re.publicKey.eddsa&&(!t.keyFlags||0!=(t.keyFlags[0]&re.keyFlags.encryptCommunication)||0!=(t.keyFlags[0]&re.keyFlags.encryptStorage))}function Qo(e,t){return!!t.allowInsecureDecryptionWithSigningKeys||(!e.keyFlags||0!=(e.keyFlags[0]&re.keyFlags.encryptCommunication)||0!=(e.keyFlags[0]&re.keyFlags.encryptStorage))}function Yo(e,t){const r=re.write(re.publicKey,e.algorithm),n=e.getAlgorithmInfo();if(t.rejectPublicKeyAlgorithms.has(r))throw Error(n.algorithm+" keys are considered too weak.");switch(r){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:case re.publicKey.rsaEncrypt:if(n.bits<t.minRSABits)throw Error(`RSA keys shorter than ${t.minRSABits} bits are considered too weak.`);break;case re.publicKey.ecdsa:case re.publicKey.eddsa:case re.publicKey.ecdh:if(t.rejectCurves.has(n.curve))throw Error(`Support for ${n.algorithm} keys using curve ${n.curve} is disabled.`)}}class Xo{constructor(e,t){this.userID=e.constructor.tag===re.packet.userID?e:null,this.userAttribute=e.constructor.tag===re.packet.userAttribute?e:null,this.selfCertifications=[],this.otherCertifications=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new no;return e.push(this.userID||this.userAttribute),e.push(...this.revocationSignatures),e.push(...this.selfCertifications),e.push(...this.otherCertifications),e}clone(){const e=new Xo(this.userID||this.userAttribute,this.mainKey);return e.selfCertifications=[...this.selfCertifications],e.otherCertifications=[...this.otherCertifications],e.revocationSignatures=[...this.revocationSignatures],e}async certify(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n},a=new Xo(i.userID||i.userAttribute,this.mainKey);return a.otherCertifications=await Promise.all(e.map((async function(e){if(!e.isPrivate())throw Error("Need private key for signing");if(e.hasSameFingerprintAs(n))throw Error("The user's own key can only be used for self-certifications");const a=await e.getSigningKey(void 0,t,void 0,r);return Ho(i,e,a.keyPacket,{signatureType:re.signature.certGeneric,keyFlags:[re.keyFlags.certifyKeys|re.keyFlags.signData]},t,void 0,void 0,r)}))),await a.update(this,t,r),a}async isRevoked(e,t,r=new Date,n){const i=this.mainKey.keyPacket;return Go(i,re.signature.certRevocation,{key:i,userID:this.userID,userAttribute:this.userAttribute},this.revocationSignatures,e,t,r,n)}async verifyCertificate(e,t,r=new Date,n){const i=this,a=this.mainKey.keyPacket,s={userID:this.userID,userAttribute:this.userAttribute,key:a},{issuerKeyID:o}=e,c=t.filter((e=>e.getKeys(o).length>0));return 0===c.length?null:(await Promise.all(c.map((async t=>{const a=await t.getSigningKey(o,e.created,void 0,n);if(e.revoked||await i.isRevoked(e,a.keyPacket,r,n))throw Error("User certificate is revoked");try{await e.verify(a.keyPacket,re.signature.certGeneric,s,r,void 0,n)}catch(e){throw W.wrapError("User certificate is invalid",e)}}))),!0)}async verifyAllCertifications(e,t=new Date,r){const n=this,i=this.selfCertifications.concat(this.otherCertifications);return Promise.all(i.map((async i=>({keyID:i.issuerKeyID,valid:await n.verifyCertificate(i,e,t,r).catch((()=>!1))}))))}async verify(e=new Date,t){if(!this.selfCertifications.length)throw Error("No self-certifications found");const r=this,n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};let a;for(let s=this.selfCertifications.length-1;s>=0;s--)try{const a=this.selfCertifications[s];if(a.revoked||await r.isRevoked(a,void 0,e,t))throw Error("Self-certification is revoked");try{await a.verify(n,re.signature.certGeneric,i,e,void 0,t)}catch(e){throw W.wrapError("Self-certification is invalid",e)}return!0}catch(e){a=e}throw a}async update(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};await qo(e,this,"selfCertifications",t,(async function(e){try{return await e.verify(n,re.signature.certGeneric,i,t,!1,r),!0}catch(e){return!1}})),await qo(e,this,"otherCertifications",t),await qo(e,this,"revocationSignatures",t,(function(e){return Go(n,re.signature.certRevocation,i,[e],void 0,void 0,t,r)}))}}class Jo{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new no;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){const e=new Jo(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,r=new Date,n=ne){const i=this.mainKey.keyPacket;return Go(i,re.signature.subkeyRevocation,{key:i,bind:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verify(e=new Date,t=ne){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket},i=await No(this.bindingSignatures,r,re.signature.subkeyBinding,n,e,t);if(i.revoked||await this.isRevoked(i,null,e,t))throw Error("Subkey is revoked");if(Oo(this.keyPacket,i,e))throw Error("Subkey is expired");return i}async getExpirationTime(e=new Date,t=ne){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket};let i;try{i=await No(this.bindingSignatures,r,re.signature.subkeyBinding,n,e,t)}catch(e){return null}const a=Vo(this.keyPacket,i),s=i.getExpirationTime();return a<s?a:s}async update(e,t=new Date,r=ne){const n=this.mainKey.keyPacket;if(!this.hasSameFingerprintAs(e))throw Error("Subkey update method: fingerprints of subkeys not equal");this.keyPacket.constructor.tag===re.packet.publicSubkey&&e.keyPacket.constructor.tag===re.packet.secretSubkey&&(this.keyPacket=e.keyPacket);const i=this,a={key:n,bind:i.keyPacket};await qo(e,this,"bindingSignatures",t,(async function(e){for(let t=0;t<i.bindingSignatures.length;t++)if(i.bindingSignatures[t].issuerKeyID.equals(e.issuerKeyID))return e.created>i.bindingSignatures[t].created&&(i.bindingSignatures[t]=e),!1;try{return await e.verify(n,re.signature.subkeyBinding,a,t,void 0,r),!0}catch(e){return!1}})),await qo(e,this,"revocationSignatures",t,(function(e){return Go(n,re.signature.subkeyRevocation,a,[e],void 0,void 0,t,r)}))}async revoke(e,{flag:t=re.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=ne){const a={key:e,bind:this.keyPacket},s=new Jo(this.keyPacket,this.mainKey);return s.revocationSignatures.push(await Ho(a,null,e,{signatureType:re.signature.subkeyRevocation,reasonForRevocationFlag:re.write(re.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,!1,i)),await s.update(this),s}hasSameFingerprintAs(e){return this.keyPacket.hasSameFingerprintAs(e.keyPacket||e)}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","isDecrypted"].forEach((e=>{Jo.prototype[e]=function(){return this.keyPacket[e]()}}));const ec=/*#__PURE__*/W.constructAllowedPackets([Js]),tc=new Set([re.packet.publicKey,re.packet.privateKey]),rc=new Set([re.packet.publicKey,re.packet.privateKey,re.packet.publicSubkey,re.packet.privateSubkey]);class nc{packetListToStructure(e,t=new Set){let r,n,i,a;for(const s of e){if(s instanceof bn){rc.has(s.tag)&&!a&&(a=tc.has(s.tag)?tc:rc);continue}const e=s.constructor.tag;if(a){if(!a.has(e))continue;a=null}if(t.has(e))throw Error("Unexpected packet type: "+e);switch(e){case re.packet.publicKey:case re.packet.secretKey:if(this.keyPacket)throw Error("Key block contains multiple keys");if(this.keyPacket=s,n=this.getKeyID(),!n)throw Error("Missing Key ID");break;case re.packet.userID:case re.packet.userAttribute:r=new Xo(s,this),this.users.push(r);break;case re.packet.publicSubkey:case re.packet.secretSubkey:r=null,i=new Jo(s,this),this.subkeys.push(i);break;case re.packet.signature:switch(s.signatureType){case re.signature.certGeneric:case re.signature.certPersona:case re.signature.certCasual:case re.signature.certPositive:if(!r){W.printDebug("Dropping certification signatures without preceding user packet");continue}s.issuerKeyID.equals(n)?r.selfCertifications.push(s):r.otherCertifications.push(s);break;case re.signature.certRevocation:r?r.revocationSignatures.push(s):this.directSignatures.push(s);break;case re.signature.key:this.directSignatures.push(s);break;case re.signature.subkeyBinding:if(!i){W.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}i.bindingSignatures.push(s);break;case re.signature.keyRevocation:this.revocationSignatures.push(s);break;case re.signature.subkeyRevocation:if(!i){W.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}i.revocationSignatures.push(s)}}}}toPacketList(){const e=new no;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.directSignatures),this.users.map((t=>e.push(...t.toPacketList()))),this.subkeys.map((t=>e.push(...t.toPacketList()))),e}clone(e=!1){const t=new this.constructor(this.toPacketList());return e&&t.getKeys().forEach((e=>{if(e.keyPacket=Object.create(Object.getPrototypeOf(e.keyPacket),Object.getOwnPropertyDescriptors(e.keyPacket)),!e.keyPacket.isDecrypted())return;const t={};Object.keys(e.keyPacket.privateParams).forEach((r=>{t[r]=new Uint8Array(e.keyPacket.privateParams[r])})),e.keyPacket.privateParams=t})),t}getSubkeys(e=null){return this.subkeys.filter((t=>!e||t.getKeyID().equals(e,!0)))}getKeys(e=null){const t=[];return e&&!this.getKeyID().equals(e,!0)||t.push(this),t.concat(this.getSubkeys(e))}getKeyIDs(){return this.getKeys().map((e=>e.getKeyID()))}getUserIDs(){return this.users.map((e=>e.userID?e.userID.userID:null)).filter((e=>null!==e))}write(){return this.toPacketList().write()}async getSigningKey(e=null,t=new Date,r={},n=ne){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket,a=this.subkeys.slice().sort(((e,t)=>t.keyPacket.created-e.keyPacket.created));let s;for(const r of a)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},a=await No(r.bindingSignatures,i,re.signature.subkeyBinding,e,t,n);if(!$o(r.keyPacket,a))continue;if(!a.embeddedSignature)throw Error("Missing embedded signature");return await No([a.embeddedSignature],r.keyPacket,re.signature.keyBinding,e,t,n),Yo(r.keyPacket,n),r}catch(e){s=e}try{const a=await this.getPrimaryUser(t,r,n);if((!e||i.getKeyID().equals(e))&&$o(i,a.selfCertification))return Yo(i,n),this}catch(e){s=e}throw W.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),s)}async getEncryptionKey(e,t=new Date,r={},n=ne){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket,a=this.subkeys.slice().sort(((e,t)=>t.keyPacket.created-e.keyPacket.created));let s;for(const r of a)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},a=await No(r.bindingSignatures,i,re.signature.subkeyBinding,e,t,n);if(Zo(r.keyPacket,a))return Yo(r.keyPacket,n),r}catch(e){s=e}try{const a=await this.getPrimaryUser(t,r,n);if((!e||i.getKeyID().equals(e))&&Zo(i,a.selfCertification))return Yo(i,n),this}catch(e){s=e}throw W.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),s)}async isRevoked(e,t,r=new Date,n=ne){return Go(this.keyPacket,re.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verifyPrimaryKey(e=new Date,t={},r=ne){const n=this.keyPacket;if(await this.isRevoked(null,null,e,r))throw Error("Primary key is revoked");const{selfCertification:i}=await this.getPrimaryUser(e,t,r);if(Oo(n,i,e))throw Error("Primary key is expired");const a=await No(this.directSignatures,n,re.signature.key,{key:n},e,r).catch((()=>{}));if(a&&Oo(n,a,e))throw Error("Primary key is expired")}async getExpirationTime(e,t=ne){let r;try{const{selfCertification:n}=await this.getPrimaryUser(null,e,t),i=Vo(this.keyPacket,n),a=n.getExpirationTime(),s=await No(this.directSignatures,this.keyPacket,re.signature.key,{key:this.keyPacket},null,t).catch((()=>{}));if(s){const e=Vo(this.keyPacket,s);r=Math.min(i,a,e)}else r=i<a?i:a}catch(e){r=null}return W.normalizeDate(r)}async getPrimaryUser(e=new Date,t={},r=ne){const n=this.keyPacket,i=[];let a;for(let s=0;s<this.users.length;s++)try{const a=this.users[s];if(!a.userID)continue;if(void 0!==t.name&&a.userID.name!==t.name||void 0!==t.email&&a.userID.email!==t.email||void 0!==t.comment&&a.userID.comment!==t.comment)throw Error("Could not find user that matches that user ID");const o={userID:a.userID,key:n},c=await No(a.selfCertifications,n,re.signature.certGeneric,o,e,r);i.push({index:s,user:a,selfCertification:c})}catch(e){a=e}if(!i.length)throw a||Error("Could not find primary user");await Promise.all(i.map((async function(t){return t.user.revoked||t.user.isRevoked(t.selfCertification,null,e,r)})));const s=i.sort((function(e,t){const r=e.selfCertification,n=t.selfCertification;return n.revoked-r.revoked||r.isPrimaryUserID-n.isPrimaryUserID||r.created-n.created})).pop(),{user:o,selfCertification:c}=s;if(c.revoked||await o.isRevoked(c,null,e,r))throw Error("Primary user is revoked");return s}async update(e,t=new Date,r=ne){if(!this.hasSameFingerprintAs(e))throw Error("Primary key fingerprints must be equal to update the key");if(!this.isPrivate()&&e.isPrivate()){if(!(this.subkeys.length===e.subkeys.length&&this.subkeys.every((t=>e.subkeys.some((e=>t.hasSameFingerprintAs(e)))))))throw Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,r)}const n=this.clone();return await qo(e,n,"revocationSignatures",t,(i=>Go(n.keyPacket,re.signature.keyRevocation,n,[i],null,e.keyPacket,t,r))),await qo(e,n,"directSignatures",t),await Promise.all(e.users.map((async e=>{const i=n.users.filter((t=>e.userID&&e.userID.equals(t.userID)||e.userAttribute&&e.userAttribute.equals(t.userAttribute)));if(i.length>0)await Promise.all(i.map((n=>n.update(e,t,r))));else{const t=e.clone();t.mainKey=n,n.users.push(t)}}))),await Promise.all(e.subkeys.map((async e=>{const i=n.subkeys.filter((t=>t.hasSameFingerprintAs(e)));if(i.length>0)await Promise.all(i.map((n=>n.update(e,t,r))));else{const t=e.clone();t.mainKey=n,n.subkeys.push(t)}}))),n}async getRevocationCertificate(e=new Date,t=ne){const r={key:this.keyPacket},n=await No(this.revocationSignatures,this.keyPacket,re.signature.keyRevocation,r,e,t),i=new no;return i.push(n),ye(re.armor.publicKey,i.write(),null,null,"This is a revocation certificate")}async applyRevocationCertificate(e,t=new Date,r=ne){const n=await le(e,r),i=(await no.fromBinary(n.data,ec,r)).findPacket(re.packet.signature);if(!i||i.signatureType!==re.signature.keyRevocation)throw Error("Could not find revocation signature packet");if(!i.issuerKeyID.equals(this.getKeyID()))throw Error("Revocation signature does not match key");try{await i.verify(this.keyPacket,re.signature.keyRevocation,{key:this.keyPacket},t,void 0,r)}catch(e){throw W.wrapError("Could not verify revocation signature",e)}const a=this.clone();return a.revocationSignatures.push(i),a}async signPrimaryUser(e,t,r,n=ne){const{index:i,user:a}=await this.getPrimaryUser(t,r,n),s=await a.certify(e,t,n),o=this.clone();return o.users[i]=s,o}async signAllUsers(e,t=new Date,r=ne){const n=this.clone();return n.users=await Promise.all(this.users.map((function(n){return n.certify(e,t,r)}))),n}async verifyPrimaryUser(e,t=new Date,r,n=ne){const i=this.keyPacket,{user:a}=await this.getPrimaryUser(t,r,n);return e?await a.verifyAllCertifications(e,t,n):[{keyID:i.getKeyID(),valid:await a.verify(t,n).catch((()=>!1))}]}async verifyAllUsers(e,t=new Date,r=ne){const n=this.keyPacket,i=[];return await Promise.all(this.users.map((async a=>{const s=e?await a.verifyAllCertifications(e,t,r):[{keyID:n.getKeyID(),valid:await a.verify(t,r).catch((()=>!1))}];i.push(...s.map((e=>({userID:a.userID.userID,keyID:e.keyID,valid:e.valid}))))}))),i}}function ic(e){for(const t of e)switch(t.constructor.tag){case re.packet.secretKey:return new sc(e);case re.packet.publicKey:return new ac(e)}throw Error("No key packet found")}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","hasSameFingerprintAs"].forEach((e=>{nc.prototype[e]=Jo.prototype[e]}));class ac extends nc{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([re.packet.secretKey,re.packet.secretSubkey])),!this.keyPacket))throw Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=ne){return ye(re.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,e)}}class sc extends ac{constructor(e){if(super(),this.packetListToStructure(e,new Set([re.packet.publicKey,re.packet.publicSubkey])),!this.keyPacket)throw Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){const e=new no,t=this.toPacketList();let r=!1;for(const n of t)if(!r||n.constructor.tag!==re.packet.Signature)switch(r&&(r=!1),n.constructor.tag){case re.packet.secretKey:{const t=re.write(re.publicKey,n.algorithm);if(t===re.publicKey.aead||t===re.publicKey.hmac)throw Error("Cannot create public key from symmetric private");const r=vo.fromSecretKeyPacket(n);e.push(r);break}case re.packet.secretSubkey:{const t=re.write(re.publicKey,n.algorithm);if(t===re.publicKey.aead||t===re.publicKey.hmac){r=!0;break}const i=So.fromSecretSubkeyPacket(n);e.push(i);break}default:e.push(n)}return new ac(e)}armor(e=ne){return ye(re.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,e)}async getDecryptionKeys(e,t=new Date,r={},n=ne){const i=this.keyPacket,a=[];for(let r=0;r<this.subkeys.length;r++)if(!e||this.subkeys[r].getKeyID().equals(e,!0))try{const e={key:i,bind:this.subkeys[r].keyPacket};Qo(await No(this.subkeys[r].bindingSignatures,i,re.signature.subkeyBinding,e,t,n),n)&&a.push(this.subkeys[r])}catch(e){}const s=await this.getPrimaryUser(t,r,n);return e&&!i.getKeyID().equals(e,!0)||!Qo(s.selfCertification,n)||a.push(this),a}isDecrypted(){return this.getKeys().some((({keyPacket:e})=>e.isDecrypted()))}async validate(e=ne){if(!this.isPrivate())throw Error("Cannot validate a public key");let t;if(this.keyPacket.isDummy()){const r=await this.getSigningKey(null,null,void 0,{...e,rejectPublicKeyAlgorithms:new Set,minRSABits:0});r&&!r.keyPacket.isDummy()&&(t=r.keyPacket)}else t=this.keyPacket;if(t)return t.validate();{const e=this.getKeys();if(e.map((e=>e.keyPacket.isDummy())).every(Boolean))throw Error("Cannot validate an all-gnu-dummy key");return Promise.all(e.map((async e=>e.keyPacket.validate())))}}clearPrivateParams(){this.getKeys().forEach((({keyPacket:e})=>{e.isDecrypted()&&e.clearPrivateParams()}))}async revoke({flag:e=re.reasonForRevocation.noReason,string:t=""}={},r=new Date,n=ne){if(!this.isPrivate())throw Error("Need private key for revoking");const i={key:this.keyPacket},a=this.clone();return a.revocationSignatures.push(await Ho(i,null,this.keyPacket,{signatureType:re.signature.keyRevocation,reasonForRevocationFlag:re.write(re.reasonForRevocation,e),reasonForRevocationString:t},r,void 0,void 0,n)),a}async addSubkey(e={}){const t={...ne,...e.config};if(e.passphrase)throw Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBits<t.minRSABits)throw Error(`rsaBits should be at least ${t.minRSABits}, got: ${e.rsaBits}`);const r=this.keyPacket;if(r.isDummy())throw Error("Cannot add subkey to gnu-dummy primary key");if(!r.isDecrypted())throw Error("Key is not decrypted");const n=r.getAlgorithmInfo();n.type=n.curve?"ecc":"rsa",n.rsaBits=n.bits||4096,n.curve=n.curve||"curve25519",e=Wo(e,n);const i=await Ro(e);Yo(i,t);const a=await Lo(i,r,e,t),s=this.toPacketList();return s.push(i,a),new sc(s)}}const oc=/*#__PURE__*/W.constructAllowedPackets([vo,So,xo,Co,Do,Ko,Js]);async function cc(e,t,r,n){r.passphrase&&await e.encrypt(r.passphrase,n),await Promise.all(t.map((async function(e,t){const i=r.subkeys[t].passphrase;i&&await e.encrypt(i,n)})));const i=new no;i.push(e),await Promise.all(r.userIDs.map((async function(t,i){function a(e,t){return[t,...e.filter((e=>e!==t))]}const s=Do.fromObject(t),o={};o.userID=s,o.key=e;const c=new Js;return c.signatureType=re.signature.certGeneric,c.publicKeyAlgorithm=e.algorithm,c.hashAlgorithm=await Fo(null,e,void 0,void 0,n),c.keyFlags=[re.keyFlags.certifyKeys|re.keyFlags.signData],c.preferredSymmetricAlgorithms=a([re.symmetric.aes256,re.symmetric.aes128,re.symmetric.aes192],n.preferredSymmetricAlgorithm),n.aeadProtect&&(c.preferredAEADAlgorithms=a([re.aead.eax,re.aead.ocb],n.preferredAEADAlgorithm)),c.preferredHashAlgorithms=a([re.hash.sha256,re.hash.sha512],n.preferredHashAlgorithm),c.preferredCompressionAlgorithms=a([re.compression.zlib,re.compression.zip,re.compression.uncompressed],n.preferredCompressionAlgorithm),0===i&&(c.isPrimaryUserID=!0),c.features=[0],c.features[0]|=re.features.modificationDetection,n.aeadProtect&&(c.features[0]|=re.features.aead),n.v5Keys&&(c.features[0]|=re.features.v5Keys),r.keyExpirationTime>0&&(c.keyExpirationTime=r.keyExpirationTime,c.keyNeverExpires=!1),await c.sign(e,o,r.date),{userIDPacket:s,signaturePacket:c}}))).then((e=>{e.forEach((({userIDPacket:e,signaturePacket:t})=>{i.push(e),i.push(t)}))})),await Promise.all(t.map((async function(t,i){const a=r.subkeys[i];return{secretSubkeyPacket:t,subkeySignaturePacket:await Lo(t,e,a,n)}}))).then((e=>{e.forEach((({secretSubkeyPacket:e,subkeySignaturePacket:t})=>{i.push(e),i.push(t)}))}));const a={key:e};return i.push(await Ho(a,null,e,{signatureType:re.signature.keyRevocation,reasonForRevocationFlag:re.reasonForRevocation.noReason,reasonForRevocationString:""},r.date,void 0,void 0,n)),r.passphrase&&e.clearPrivateParams(),await Promise.all(t.map((async function(e,t){r.subkeys[t].passphrase&&e.clearPrivateParams()}))),new sc(i)}async function hc({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...ne,...r},!e&&!t)throw Error("readKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!W.isString(e))throw Error("readKey: options.armoredKey must be a string");if(t&&!W.isUint8Array(t))throw Error("readKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let a;if(e){const{type:t,data:n}=await le(e,r);if(t!==re.armor.publicKey&&t!==re.armor.privateKey)throw Error("Armored text not of type key");a=n}else a=t;return ic(await no.fromBinary(a,oc,r))}async function uc({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...ne,...r},!e&&!t)throw Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!W.isString(e))throw Error("readPrivateKey: options.armoredKey must be a string");if(t&&!W.isUint8Array(t))throw Error("readPrivateKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let a;if(e){const{type:t,data:n}=await le(e,r);if(t!==re.armor.privateKey)throw Error("Armored text not of type private key");a=n}else a=t;const s=await no.fromBinary(a,oc,r);return new sc(s)}async function lc({armoredKeys:e,binaryKeys:t,config:r,...n}){r={...ne,...r};let i=e||t;if(!i)throw Error("readKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!W.isString(e))throw Error("readKeys: options.armoredKeys must be a string");if(t&&!W.isUint8Array(t))throw Error("readKeys: options.binaryKeys must be a Uint8Array");const a=Object.keys(n);if(a.length>0)throw Error("Unknown option: "+a.join(", "));if(e){const{type:t,data:n}=await le(e,r);if(t!==re.armor.publicKey&&t!==re.armor.privateKey)throw Error("Armored text not of type key");i=n}const s=[],o=await no.fromBinary(i,oc,r),c=o.indexOfTag(re.packet.publicKey,re.packet.secretKey);if(0===c.length)throw Error("No key packet found");for(let e=0;e<c.length;e++){const t=ic(o.slice(c[e],c[e+1]));s.push(t)}return s}async function yc({armoredKeys:e,binaryKeys:t,config:r}){r={...ne,...r};let n=e||t;if(!n)throw Error("readPrivateKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!W.isString(e))throw Error("readPrivateKeys: options.armoredKeys must be a string");if(t&&!W.isUint8Array(t))throw Error("readPrivateKeys: options.binaryKeys must be a Uint8Array");if(e){const{type:t,data:i}=await le(e,r);if(t!==re.armor.privateKey)throw Error("Armored text not of type private key");n=i}const i=[],a=await no.fromBinary(n,oc,r),s=a.indexOfTag(re.packet.secretKey);if(0===s.length)throw Error("No secret key packet found");for(let e=0;e<s.length;e++){const t=a.slice(s[e],s[e+1]),r=new sc(t);i.push(r)}return i}const pc=/*#__PURE__*/W.constructAllowedPackets([Qs,ao,mo,fo,_o,wo,ko,to,Js]),dc=/*#__PURE__*/W.constructAllowedPackets([ko]),fc=/*#__PURE__*/W.constructAllowedPackets([Js]);class gc{constructor(e){this.packets=e||new no}getEncryptionKeyIDs(){const e=[];return this.packets.filterByTag(re.packet.publicKeyEncryptedSessionKey).forEach((function(t){e.push(t.publicKeyID)})),e}getSigningKeyIDs(){const e=this.unwrapCompressed(),t=e.packets.filterByTag(re.packet.onePassSignature);if(t.length>0)return t.map((e=>e.issuerKeyID));return e.packets.filterByTag(re.packet.signature).map((e=>e.issuerKeyID))}async decrypt(e,t,r,n=new Date,i=ne){const a=r||await this.decryptSessionKeys(e,t,n,i),s=this.packets.filterByTag(re.packet.symmetricallyEncryptedData,re.packet.symEncryptedIntegrityProtectedData,re.packet.aeadEncryptedData);if(0===s.length)throw Error("No encrypted data found");const o=s[0];let c=null;const h=Promise.all(a.map((async({algorithm:e,data:t})=>{if(!W.isUint8Array(t)||!W.isString(e))throw Error("Invalid session key for decryption.");try{const r=re.write(re.symmetric,e);await o.decrypt(r,t,i)}catch(e){W.printDebugError(e),c=e}})));if(H(o.encrypted),o.encrypted=null,await h,!o.packets||!o.packets.length)throw c||Error("Decryption failed.");const u=new gc(o.packets);return o.packets=new no,u}async decryptSessionKeys(e,t,r=new Date,n=ne){let i,a=[];if(t){const e=this.packets.filterByTag(re.packet.symEncryptedSessionKey);if(0===e.length)throw Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map((async function(t,r){let i;i=r?await no.fromBinary(e.write(),dc,n):e,await Promise.all(i.map((async function(e){try{await e.decrypt(t),a.push(e)}catch(e){W.printDebugError(e)}})))})))}else{if(!e)throw Error("No key or password specified.");{const t=this.packets.filterByTag(re.packet.publicKeyEncryptedSessionKey);if(0===t.length)throw Error("No public key encrypted session key packet found.");await Promise.all(t.map((async function(t){await Promise.all(e.map((async function(e){let s=[re.symmetric.aes256,re.symmetric.aes128,re.symmetric.tripledes,re.symmetric.cast5];try{const t=await e.getPrimaryUser(r,void 0,n);t.selfCertification.preferredSymmetricAlgorithms&&(s=s.concat(t.selfCertification.preferredSymmetricAlgorithms))}catch(e){}const o=(await e.getDecryptionKeys(t.publicKeyID,null,void 0,n)).map((e=>e.keyPacket));await Promise.all(o.map((async function(e){if(!e||e.isDummy())return;if(!e.isDecrypted())throw Error("Decryption key is not decrypted.");if(n.constantTimePKCS1Decryption&&(t.publicKeyAlgorithm===re.publicKey.rsaEncrypt||t.publicKeyAlgorithm===re.publicKey.rsaEncryptSign||t.publicKeyAlgorithm===re.publicKey.rsaSign||t.publicKeyAlgorithm===re.publicKey.elgamal)){const r=t.write();await Promise.all(Array.from(n.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms).map((async t=>{const n=new wo;n.read(r);const s={sessionKeyAlgorithm:t,sessionKey:await Ji.generateSessionKey(t)};try{await n.decrypt(e,s),a.push(n)}catch(e){W.printDebugError(e),i=e}})))}else try{if(await t.decrypt(e),!s.includes(re.write(re.symmetric,t.sessionKeyAlgorithm)))throw Error("A non-preferred symmetric algorithm was used.");a.push(t)}catch(e){W.printDebugError(e),i=e}})))}))),H(t.encrypted),t.encrypted=null})))}}if(a.length>0){if(a.length>1){const e=new Set;a=a.filter((t=>{const r=t.sessionKeyAlgorithm+W.uint8ArrayToString(t.sessionKey);return!e.has(r)&&(e.add(r),!0)}))}return a.map((e=>({data:e.sessionKey,algorithm:re.read(re.symmetric,e.sessionKeyAlgorithm)})))}throw i||Error("Session key decryption failed.")}getLiteralData(){const e=this.unwrapCompressed().packets.findPacket(re.packet.literalData);return e&&e.getBytes()||null}getFilename(){const e=this.unwrapCompressed().packets.findPacket(re.packet.literalData);return e&&e.getFilename()||null}getText(){const e=this.unwrapCompressed().packets.findPacket(re.packet.literalData);return e?e.getText():null}static async generateSessionKey(e=[],t=new Date,r=[],n=ne){const i=await jo("symmetric",e,t,r,n),a=re.read(re.symmetric,i),s=n.aeadProtect&&await async function(e,t=new Date,r=[],n=ne){let i=!0;return await Promise.all(e.map((async function(e,a){const s=await e.getPrimaryUser(t,r[a],n);s.selfCertification.features&&s.selfCertification.features[0]&re.features.aead||(i=!1)}))),i}(e,t,r,n)?re.read(re.aead,await jo("aead",e,t,r,n)):void 0;return{data:await Ji.generateSessionKey(i),algorithm:a,aeadAlgorithm:s}}async encrypt(e,t,r,n=!1,i=[],a=new Date,s=[],o=ne){if(r){if(!W.isUint8Array(r.data)||!W.isString(r.algorithm))throw Error("Invalid session key for encryption.")}else if(e&&e.length)r=await gc.generateSessionKey(e,a,s,o);else{if(!t||!t.length)throw Error("No keys, passwords, or session key provided.");r=await gc.generateSessionKey(void 0,void 0,void 0,o)}const{data:c,algorithm:h,aeadAlgorithm:u}=r,l=await gc.encryptSessionKey(c,h,u,e,t,n,i,a,s,o);let y;u?(y=new mo,y.aeadAlgorithm=re.write(re.aead,u)):y=new fo,y.packets=this.packets;const p=re.write(re.symmetric,h);return await y.encrypt(p,c,o),l.packets.push(y),y.packets=new no,l}static async encryptSessionKey(e,t,r,n,i,a=!1,s=[],o=new Date,c=[],h=ne){const u=new no,l=re.write(re.symmetric,t),y=r&&re.write(re.aead,r);if(n){const t=await Promise.all(n.map((async function(t,r){const n=await t.getEncryptionKey(s[r],o,c,h),i=new wo;return i.publicKeyID=a?pe.wildcard():n.getKeyID(),i.publicKeyAlgorithm=n.keyPacket.algorithm,i.sessionKey=e,i.sessionKeyAlgorithm=l,await i.encrypt(n.keyPacket),delete i.sessionKey,i})));u.push(...t)}if(i){const t=async function(e,t){try{return await e.decrypt(t),1}catch(e){return 0}},r=(e,t)=>e+t,n=async function(e,a,s,o){const c=new ko(h);if(c.sessionKey=e,c.sessionKeyAlgorithm=a,s&&(c.aeadAlgorithm=s),await c.encrypt(o,h),h.passwordCollisionCheck){if(1!==(await Promise.all(i.map((e=>t(c,e))))).reduce(r))return n(e,a,o)}return delete c.sessionKey,c},a=await Promise.all(i.map((t=>n(e,l,y,t))));u.push(...a)}return new gc(u)}async sign(e=[],t=null,r=[],n=new Date,i=[],a=ne){const s=new no,o=this.packets.findPacket(re.packet.literalData);if(!o)throw Error("No literal data packet to sign.");let c,h;const u=null===o.text?re.signature.binary:re.signature.text;if(t)for(h=t.packets.filterByTag(re.packet.signature),c=h.length-1;c>=0;c--){const t=h[c],r=new to;r.signatureType=t.signatureType,r.hashAlgorithm=t.hashAlgorithm,r.publicKeyAlgorithm=t.publicKeyAlgorithm,r.issuerKeyID=t.issuerKeyID,e.length||0!==c||(r.flags=1),s.push(r)}return await Promise.all(Array.from(e).reverse().map((async function(t,s){if(!t.isPrivate())throw Error("Need private key for signing");const o=r[e.length-1-s],c=await t.getSigningKey(o,n,i,a),h=new to;return h.signatureType=u,h.hashAlgorithm=await Fo(t,c.keyPacket,n,i,a),h.publicKeyAlgorithm=c.keyPacket.algorithm,h.issuerKeyID=c.getKeyID(),s===e.length-1&&(h.flags=1),h}))).then((e=>{e.forEach((e=>s.push(e)))})),s.push(o),s.push(...await mc(o,e,t,r,n,i,!1,a)),new gc(s)}compress(e,t=ne){if(e===re.compression.uncompressed)return this;const r=new ao(t);r.algorithm=e,r.packets=this.packets;const n=new no;return n.push(r),new gc(n)}async signDetached(e=[],t=null,r=[],n=new Date,i=[],a=ne){const s=this.packets.findPacket(re.packet.literalData);if(!s)throw Error("No literal data packet to sign.");return new To(await mc(s,e,t,r,n,i,!0,a))}async verify(e,t=new Date,r=ne){const n=this.unwrapCompressed(),i=n.packets.filterByTag(re.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");s(n.packets.stream)&&n.packets.push(...await j(n.packets.stream,(e=>e||[])));const a=n.packets.filterByTag(re.packet.onePassSignature).reverse(),o=n.packets.filterByTag(re.packet.signature);return a.length&&!o.length&&W.isStream(n.packets.stream)&&!s(n.packets.stream)?(await Promise.all(a.map((async e=>{e.correspondingSig=new Promise(((t,r)=>{e.correspondingSigResolve=t,e.correspondingSigReject=r})),e.signatureData=q((async()=>(await e.correspondingSig).signatureData)),e.hashed=j(await e.hash(e.signatureType,i[0],void 0,!1)),e.hashed.catch((()=>{}))}))),n.packets.stream=R(n.packets.stream,(async(e,t)=>{const r=D(e),n=C(t);try{for(let e=0;e<a.length;e++){const{value:t}=await r.read();a[e].correspondingSigResolve(t)}await r.readToEnd(),await n.ready,await n.close()}catch(e){a.forEach((t=>{t.correspondingSigReject(e)})),await n.abort(e)}})),wc(a,i,e,t,!1,r)):wc(o,i,e,t,!1,r)}verifyDetached(e,t,r=new Date,n=ne){const i=this.unwrapCompressed().packets.filterByTag(re.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");return wc(e.packets,i,t,r,!0,n)}unwrapCompressed(){const e=this.packets.filterByTag(re.packet.compressedData);return e.length?new gc(e[0].packets):this}async appendSignature(e,t=ne){await this.packets.read(W.isUint8Array(e)?e:(await le(e)).data,fc,t)}write(){return this.packets.write()}armor(e=ne){return ye(re.armor.message,this.write(),null,null,null,e)}}async function mc(e,t,r=null,n=[],i=new Date,a=[],s=!1,o=ne){const c=new no,h=null===e.text?re.signature.binary:re.signature.text;if(await Promise.all(t.map((async(t,r)=>{const c=a[r];if(!t.isPrivate())throw Error("Need private key for signing");const u=await t.getSigningKey(n[r],i,c,o);return Ho(e,t,u.keyPacket,{signatureType:h},i,c,s,o)}))).then((e=>{c.push(...e)})),r){const e=r.packets.filterByTag(re.packet.signature);c.push(...e)}return c}async function wc(e,t,r,n=new Date,i=!1,a=ne){return Promise.all(e.filter((function(e){return["text","binary"].includes(re.read(re.signature,e.signatureType))})).map((async function(e){return async function(e,t,r,n=new Date,i=!1,a=ne){let s,o;for(const t of r){const r=t.getKeys(e.issuerKeyID);if(r.length>0){s=t,o=r[0];break}}const c=e instanceof to?e.correspondingSig:e,h={keyID:e.issuerKeyID,verified:(async()=>{if(!o)throw Error("Could not find signing key with key ID "+e.issuerKeyID.toHex());await e.verify(o.keyPacket,e.signatureType,t[0],n,i,a);const r=await c;if(o.getCreationTime()>r.created)throw Error("Key is newer than the signature");try{await s.getSigningKey(o.getKeyID(),r.created,void 0,a)}catch(e){if(!a.allowInsecureVerificationWithReformattedKeys||!e.message.match(/Signature creation time is in the future/))throw e;await s.getSigningKey(o.getKeyID(),n,void 0,a)}return!0})(),signature:(async()=>{const e=await c,t=new no;return e&&t.push(e),new To(t)})()};return h.signature.catch((()=>{})),h.verified.catch((()=>{})),h}(e,t,r,n,i,a)})))}async function bc({armoredMessage:e,binaryMessage:t,config:r,...n}){r={...ne,...r};let i=e||t;if(!i)throw Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(e&&!W.isString(e)&&!W.isStream(e))throw Error("readMessage: options.armoredMessage must be a string or stream");if(t&&!W.isUint8Array(t)&&!W.isStream(t))throw Error("readMessage: options.binaryMessage must be a Uint8Array or stream");const a=Object.keys(n);if(a.length>0)throw Error("Unknown option: "+a.join(", "));const s=W.isStream(i);if(s&&(await S(),i=x(i)),e){const{type:e,data:t}=await le(i,r);if(e!==re.armor.message)throw Error("Armored text not of type message");i=t}const o=await no.fromBinary(i,pc,r),c=new gc(o);return c.fromStream=s,c}async function kc({text:e,binary:t,filename:r,date:n=new Date,format:i=(void 0!==e?"utf8":"binary"),...a}){let s=void 0!==e?e:t;if(void 0===s)throw Error("createMessage: must pass options object containing `text` or `binary`");if(e&&!W.isString(e)&&!W.isStream(e))throw Error("createMessage: options.text must be a string or stream");if(t&&!W.isUint8Array(t)&&!W.isStream(t))throw Error("createMessage: options.binary must be a Uint8Array or stream");const o=Object.keys(a);if(o.length>0)throw Error("Unknown option: "+o.join(", "));const c=W.isStream(s);c&&(await S(),s=x(s));const h=new Qs(n);void 0!==e?h.setText(s,re.write(re.literal,i)):h.setBytes(s,re.write(re.literal,i)),void 0!==r&&h.setFilename(r);const u=new no;u.push(h);const l=new gc(u);return l.fromStream=c,l}const vc=/*#__PURE__*/W.constructAllowedPackets([Js]);class Ac{constructor(e,t){if(this.text=W.removeTrailingSpaces(e).replace(/\r?\n/g,"\r\n"),t&&!(t instanceof To))throw Error("Invalid signature input");this.signature=t||new To(new no)}getSigningKeyIDs(){const e=[];return this.signature.packets.forEach((function(t){e.push(t.issuerKeyID)})),e}async sign(e,t=null,r=[],n=new Date,i=[],a=ne){const s=new Qs;s.setText(this.text);const o=new To(await mc(s,e,t,r,n,i,!0,a));return new Ac(this.text,o)}verify(e,t=new Date,r=ne){const n=this.signature.packets,i=new Qs;return i.setText(this.text),wc(n,[i],e,t,!0,r)}getText(){return this.text.replace(/\r\n/g,"\n")}armor(e=ne){let t=this.signature.packets.map((function(e){return re.read(re.hash,e.hashAlgorithm).toUpperCase()}));t=t.filter((function(e,t,r){return r.indexOf(e)===t}));const r={hash:t.join(),text:this.text,data:this.signature.packets.write()};return ye(re.armor.signed,r,void 0,void 0,void 0,e)}}async function _c({cleartextMessage:e,config:t,...r}){if(t={...ne,...t},!e)throw Error("readCleartextMessage: must pass options object containing `cleartextMessage`");if(!W.isString(e))throw Error("readCleartextMessage: options.cleartextMessage must be a string");const n=Object.keys(r);if(n.length>0)throw Error("Unknown option: "+n.join(", "));const i=await le(e);if(i.type!==re.armor.signed)throw Error("No cleartext signed message.");const a=await no.fromBinary(i.data,vc,t);!function(e,t){const r=function(e){const r=e=>t=>e.hashAlgorithm===t;for(let n=0;n<t.length;n++)if(t[n].constructor.tag===re.packet.signature&&!e.some(r(t[n])))return!1;return!0};let n=null,i=[];if(e.forEach((function(e){if(n=e.match(/Hash: (.+)/),!n)throw Error('Only "Hash" header allowed in cleartext signed message');n=n[1].replace(/\s/g,""),n=n.split(","),n=n.map((function(e){e=e.toLowerCase();try{return re.write(re.hash,e)}catch(t){throw Error("Unknown hash algorithm in armor header: "+e)}})),i=i.concat(n)})),!i.length&&!r([re.hash.md5]))throw Error('If no "Hash" header in cleartext signed message, then only MD5 signatures allowed');if(i.length&&!r(i))throw Error("Hash algorithm mismatch in armor header and signature")}(i.headers,a);const s=new To(a);return new Ac(i.text,s)}async function Ec({text:e,...t}){if(!e)throw Error("createCleartextMessage: must pass options object containing `text`");if(!W.isString(e))throw Error("createCleartextMessage: options.text must be a string");const r=Object.keys(t);if(r.length>0)throw Error("Unknown option: "+r.join(", "));return new Ac(e)}async function Sc({userIDs:e=[],passphrase:t,type:r="ecc",rsaBits:n=4096,curve:i="curve25519",keyExpirationTime:a=0,date:s=new Date,subkeys:o=[{}],format:c="armored",config:h,symmetricHash:u="sha256",symmetricCipher:l="aes256",...y}){Fc(h={...ne,...h}),e=jc(e);const p=Object.keys(y);if(p.length>0)throw Error("Unknown option: "+p.join(", "));if(0===e.length)throw Error("UserIDs are required for key generation");if("rsa"===r&&n<h.minRSABits)throw Error(`rsaBits should be at least ${h.minRSABits}, got: ${n}`);const d={userIDs:e,passphrase:t,type:r,rsaBits:n,curve:i,keyExpirationTime:a,date:s,subkeys:o,symmetricHash:u,symmetricCipher:l};try{const{key:e,revocationCertificate:t}=await async function(e,t){e.sign=!0,(e=Wo(e)).subkeys=e.subkeys.map(((t,r)=>Wo(e.subkeys[r],e)));let r=[Mo(e,t)];r=r.concat(e.subkeys.map((e=>Ro(e,t))));const n=await Promise.all(r),i=await cc(n[0],n.slice(1),e,t),a=await i.getRevocationCertificate(e.date,t);return i.revocationSignatures=[],{key:i,revocationCertificate:a}}(d,h);return e.getKeys().forEach((({keyPacket:e})=>Yo(e,h))),{privateKey:Gc(e,c,h),publicKey:"symmetric"!==r?Gc(e.toPublic(),c,h):null,revocationCertificate:t}}catch(e){throw W.wrapError("Error generating keypair",e)}}async function Kc({privateKey:e,userIDs:t=[],passphrase:r,keyExpirationTime:n=0,date:i,format:a="armored",config:s,...o}){Fc(s={...ne,...s}),t=jc(t);const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(0===t.length)throw Error("UserIDs are required for key reformat");const h={privateKey:e,userIDs:t,passphrase:r,keyExpirationTime:n,date:i};try{const{key:e,revocationCertificate:t}=await async function(e,t){e=o(e);const{privateKey:r}=e;if(!r.isPrivate())throw Error("Cannot reformat a public key");if(r.keyPacket.isDummy())throw Error("Cannot reformat a gnu-dummy primary key");if(!r.getKeys().every((({keyPacket:e})=>e.isDecrypted())))throw Error("Key is not decrypted");const n=r.keyPacket;e.subkeys||(e.subkeys=await Promise.all(r.subkeys.map((async e=>{const r=e.keyPacket,i={key:n,bind:r},a=await No(e.bindingSignatures,n,re.signature.subkeyBinding,i,null,t).catch((()=>({})));return{sign:a.keyFlags&&a.keyFlags[0]&re.keyFlags.signData}}))));const i=r.subkeys.map((e=>e.keyPacket));if(e.subkeys.length!==i.length)throw Error("Number of subkey options does not match number of subkeys");e.subkeys=e.subkeys.map((t=>o(t,e)));const a=await cc(n,i,e,t),s=await a.getRevocationCertificate(e.date,t);return a.revocationSignatures=[],{key:a,revocationCertificate:s};function o(e,t={}){return e.keyExpirationTime=e.keyExpirationTime||t.keyExpirationTime,e.passphrase=W.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e}}(h,s);return{privateKey:Gc(e,a,s),publicKey:Gc(e.toPublic(),a,s),revocationCertificate:t}}catch(e){throw W.wrapError("Error reformatting keypair",e)}}async function xc({key:e,revocationCertificate:t,reasonForRevocation:r,date:n=new Date,format:i="armored",config:a,...s}){Fc(a={...ne,...a});const o=Object.keys(s);if(o.length>0)throw Error("Unknown option: "+o.join(", "));try{const s=t?await e.applyRevocationCertificate(t,n,a):await e.revoke(r,n,a);return s.isPrivate()?{privateKey:Gc(s,i,a),publicKey:Gc(s.toPublic(),i,a)}:{privateKey:null,publicKey:Gc(s,i,a)}}catch(e){throw W.wrapError("Error revoking key",e)}}async function Pc({privateKey:e,passphrase:t,config:r,...n}){Fc(r={...ne,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot decrypt a public key");const a=e.clone(!0),s=W.isArray(t)?t:[t];try{return await Promise.all(a.getKeys().map((e=>W.anyPromise(s.map((t=>e.keyPacket.decrypt(t))))))),await a.validate(r),a}catch(e){throw a.clearPrivateParams(),W.wrapError("Error decrypting private key",e)}}async function Uc({privateKey:e,passphrase:t,config:r,...n}){Fc(r={...ne,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot encrypt a public key");const a=e.clone(!0),s=a.getKeys(),o=W.isArray(t)?t:Array(s.length).fill(t);if(o.length!==s.length)throw Error("Invalid number of passphrases given for key encryption");try{return await Promise.all(s.map((async(e,t)=>{const{keyPacket:n}=e;await n.encrypt(o[t],r),n.clearPrivateParams()}))),a}catch(e){throw a.clearPrivateParams(),W.wrapError("Error encrypting private key",e)}}async function Dc({message:e,encryptionKeys:t,signingKeys:r,passwords:n,sessionKey:i,format:a="armored",signature:s=null,wildcard:o=!1,signingKeyIDs:c=[],encryptionKeyIDs:h=[],date:u=new Date,signingUserIDs:l=[],encryptionUserIDs:y=[],config:p,...d}){if(Fc(p={...ne,...p}),Mc(e),Oc(a),t=jc(t),r=jc(r),n=jc(n),c=jc(c),h=jc(h),l=jc(l),y=jc(y),d.detached)throw Error("The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.");if(d.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(d.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(void 0!==d.armor)throw Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");const f=Object.keys(d);if(f.length>0)throw Error("Unknown option: "+f.join(", "));r||(r=[]);const g=e.fromStream;try{if((r.length||s)&&(e=await e.sign(r,s,c,u,l,p)),e=e.compress(await jo("compression",t,u,y,p),p),e=await e.encrypt(t,n,i,o,h,u,y,p),"object"===a)return e;const d="armored"===a;return Hc(d?e.armor(p):e.write(),g,d?"utf8":"binary")}catch(e){throw W.wrapError("Error encrypting message",e)}}async function Cc({message:e,decryptionKeys:t,passwords:r,sessionKeys:n,verificationKeys:i,expectSigned:a=!1,format:s="utf8",signature:o=null,date:c=new Date,config:h,...u}){if(Fc(h={...ne,...h}),Mc(e),i=jc(i),t=jc(t),r=jc(r),n=jc(n),u.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(u.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");const l=Object.keys(u);if(l.length>0)throw Error("Unknown option: "+l.join(", "));try{const u=await e.decrypt(t,r,n,c,h);i||(i=[]);const l={};if(l.signatures=o?await u.verifyDetached(o,i,c,h):await u.verify(i,c,h),l.data="binary"===s?u.getLiteralData():u.getText(),l.filename=u.getFilename(),qc(l,e),a){if(0===i.length)throw Error("Verification keys are required to verify message signatures");if(0===l.signatures.length)throw Error("Message is not signed");l.data=U([l.data,q((async()=>{await W.anyPromise(l.signatures.map((e=>e.verified)))}))])}return l.data=await Hc(l.data,e.fromStream,s),l}catch(e){throw W.wrapError("Error decrypting message",e)}}async function Ic({message:e,signingKeys:t,format:r="armored",detached:n=!1,signingKeyIDs:i=[],date:a=new Date,signingUserIDs:s=[],config:o,...c}){if(Fc(o={...ne,...o}),Nc(e),Oc(r),t=jc(t),i=jc(i),s=jc(s),c.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead");if(void 0!==c.armor)throw Error("The `armor` option has been removed from openpgp.sign, pass `format` instead.");const h=Object.keys(c);if(h.length>0)throw Error("Unknown option: "+h.join(", "));if(e instanceof Ac&&"binary"===r)throw Error("Cannot return signed cleartext message in binary format");if(e instanceof Ac&&n)throw Error("Cannot detach-sign a cleartext message");if(!t||0===t.length)throw Error("No signing keys provided");try{let c;if(c=n?await e.signDetached(t,void 0,i,a,s,o):await e.sign(t,void 0,i,a,s,o),"object"===r)return c;const h="armored"===r;return c=h?c.armor(o):c.write(),n&&(c=R(e.packets.write(),(async(e,t)=>{await Promise.all([I(c,t),j(e).catch((()=>{}))])}))),Hc(c,e.fromStream,h?"utf8":"binary")}catch(e){throw W.wrapError("Error signing message",e)}}async function Bc({message:e,verificationKeys:t,expectSigned:r=!1,format:n="utf8",signature:i=null,date:a=new Date,config:s,...o}){if(Fc(s={...ne,...s}),Nc(e),t=jc(t),o.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead");const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(e instanceof Ac&&"binary"===n)throw Error("Can't return cleartext message data as binary");if(e instanceof Ac&&i)throw Error("Can't verify detached cleartext signature");try{const o={};if(o.signatures=i?await e.verifyDetached(i,t,a,s):await e.verify(t,a,s),o.data="binary"===n?e.getLiteralData():e.getText(),e.fromStream&&qc(o,e),r){if(0===o.signatures.length)throw Error("Message is not signed");o.data=U([o.data,q((async()=>{await W.anyPromise(o.signatures.map((e=>e.verified)))}))])}return o.data=await Hc(o.data,e.fromStream,n),o}catch(e){throw W.wrapError("Error verifying signed message",e)}}async function Tc({encryptionKeys:e,date:t=new Date,encryptionUserIDs:r=[],config:n,...i}){if(Fc(n={...ne,...n}),e=jc(e),r=jc(r),i.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead");const a=Object.keys(i);if(a.length>0)throw Error("Unknown option: "+a.join(", "));try{return await gc.generateSessionKey(e,t,r,n)}catch(e){throw W.wrapError("Error generating session key",e)}}async function zc({data:e,algorithm:t,aeadAlgorithm:r,encryptionKeys:n,passwords:i,format:a="armored",wildcard:s=!1,encryptionKeyIDs:o=[],date:c=new Date,encryptionUserIDs:h=[],config:u,...l}){if(Fc(u={...ne,...u}),function(e,t){if(!W.isUint8Array(e))throw Error("Parameter ["+(t||"data")+"] must be of type Uint8Array")}(e),function(e,t){if(!W.isString(e))throw Error("Parameter ["+(t||"data")+"] must be of type String")}(t,"algorithm"),Oc(a),n=jc(n),i=jc(i),o=jc(o),h=jc(h),l.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead");const y=Object.keys(l);if(y.length>0)throw Error("Unknown option: "+y.join(", "));try{return Gc(await gc.encryptSessionKey(e,t,r,n,i,s,o,c,h,u),a,u)}catch(e){throw W.wrapError("Error encrypting session key",e)}}async function Rc({message:e,decryptionKeys:t,passwords:r,date:n=new Date,config:i,...a}){if(Fc(i={...ne,...i}),Mc(e),t=jc(t),r=jc(r),a.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");const s=Object.keys(a);if(s.length>0)throw Error("Unknown option: "+s.join(", "));try{return await e.decryptSessionKeys(t,r,n,i)}catch(e){throw W.wrapError("Error decrypting session keys",e)}}function Mc(e){if(!(e instanceof gc))throw Error("Parameter [message] needs to be of type Message")}function Nc(e){if(!(e instanceof Ac||e instanceof gc))throw Error("Parameter [message] needs to be of type Message or CleartextMessage")}function Oc(e){if("armored"!==e&&"binary"!==e&&"object"!==e)throw Error("Unsupported format "+e)}const Lc=Object.keys(ne).length;function Fc(e){const t=Object.keys(e);if(t.length!==Lc)for(const e of t)if(void 0===ne[e])throw Error("Unknown config property: "+e)}function jc(e){return e&&!W.isArray(e)&&(e=[e]),e}async function Hc(e,t,r="utf8"){const n=W.isStream(e);return"array"===n?j(e):"node"===t?(e=g(e),"binary"!==r&&e.setEncoding(r),e):"web"===t&&"ponyfill"===n?v(e):e}function qc(e,t){e.data=R(t.packets.stream,(async(t,r)=>{await I(e.data,r,{preventClose:!0});const n=C(r);try{await j(t,(e=>e)),await n.close()}catch(e){await n.abort(e)}}))}function Gc(e,t,r){switch(t){case"object":return e;case"armored":return e.armor(r);case"binary":return e.write();default:throw Error("Unsupported format "+t)}}export{mo as AEADEncryptedDataPacket,Ac as CleartextMessage,ao as CompressedDataPacket,Qs as LiteralDataPacket,Eo as MarkerPacket,gc as Message,to as OnePassSignaturePacket,no as PacketList,sc as PrivateKey,ac as PublicKey,wo as PublicKeyEncryptedSessionKeyPacket,vo as PublicKeyPacket,So as PublicSubkeyPacket,xo as SecretKeyPacket,Co as SecretSubkeyPacket,To as Signature,Js as SignaturePacket,Jo as Subkey,fo as SymEncryptedIntegrityProtectedDataPacket,ko as SymEncryptedSessionKeyPacket,_o as SymmetricallyEncryptedDataPacket,Io as TrustPacket,bn as UnparseablePacket,Ko as UserAttributePacket,Do as UserIDPacket,Ut as _,et as a,ye as armor,dt as b,tt as c,ne as config,Ec as createCleartextMessage,kc as createMessage,ht as d,Cc as decrypt,Pc as decryptKey,Rc as decryptSessionKeys,xt as e,Dc as encrypt,Uc as encryptKey,zc as encryptSessionKey,re as enums,ir as f,qt as g,Sc as generateKey,Tc as generateSessionKey,rt as i,Xe as m,br as r,_c as readCleartextMessage,hc as readKey,lc as readKeys,bc as readMessage,uc as readPrivateKey,yc as readPrivateKeys,zo as readSignature,Kc as reformatKey,xc as revokeKey,Ic as sign,st as u,le as unarmor,Bc as verify};
|
|
1
|
+
/*! OpenPGP.js v5.5.0 - 2022-10-31 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
|
2
|
+
const e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=Symbol("doneWritingPromise"),r=Symbol("doneWritingResolve"),n=Symbol("doneWritingReject"),i=Symbol("readingIndex");class a extends Array{constructor(){super(),this[t]=new Promise(((e,t)=>{this[r]=e,this[n]=t})),this[t].catch((()=>{}))}}function s(e){return e&&e.getReader&&Array.isArray(e)}function o(e){if(!s(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch((function(){})),r.call(t)},t}this.stream=e}a.prototype.getReader=function(){return void 0===this[i]&&(this[i]=0),{read:async()=>(await this[t],this[i]===this.length?{value:void 0,done:!0}:{value:this[this[i]++],done:!1})}},a.prototype.readToEnd=async function(e){await this[t];const r=e(this.slice(this[i]));return this.length=0,r},a.prototype.clone=function(){const e=new a;return e[t]=this[t].then((()=>{e.push(...this)})),e},o.prototype.write=async function(e){this.stream.push(e)},o.prototype.close=async function(){this.stream[r]()},o.prototype.abort=async function(e){return this.stream[n](e),e},o.prototype.releaseLock=function(){};const c="object"==typeof e.process&&"object"==typeof e.process.versions,h=c&&void 0;function u(t){return s(t)?"array":e.ReadableStream&&e.ReadableStream.prototype.isPrototypeOf(t)?"web":A&&A.prototype.isPrototypeOf(t)?"ponyfill":h&&h.prototype.isPrototypeOf(t)?"node":!(!t||!t.getReader)&&"web-like"}function l(e){return Uint8Array.prototype.isPrototypeOf(e)}function y(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!l(e[r]))throw Error("concatUint8Array: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((function(e){r.set(e,n),n+=e.length})),r}const p=c&&void 0,d=c&&void 0;let f,g;if(d){f=function(e){let t=!1;return new A({start(r){e.pause(),e.on("data",(n=>{t||(p.isBuffer(n)&&(n=new Uint8Array(n.buffer,n.byteOffset,n.byteLength)),r.enqueue(n),e.pause())})),e.on("end",(()=>{t||r.close()})),e.on("error",(e=>r.error(e)))},pull(){e.resume()},cancel(r){t=!0,e.destroy(r)}})};class e extends d{constructor(e,t){super(t),this._reader=D(e)}async _read(e){try{for(;;){const{done:e,value:t}=await this._reader.read();if(e){this.push(null);break}if(!this.push(t)||this._cancelling){this._reading=!1;break}}}catch(e){this.emit("error",e)}}_destroy(e){this._reader.cancel(e)}}g=function(t,r){return new e(t,r)}}const m=new WeakSet,w=Symbol("externalBuffer");function b(e){if(this.stream=e,e[w]&&(this[w]=e[w].slice()),s(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}let t=u(e);if("node"===t&&(e=f(e)),t){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch((function(){})),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let r=!1;this._read=async()=>r||m.has(e)?{value:void 0,done:!0}:(r=!0,{value:e,done:!1}),this._releaseLock=()=>{if(r)try{m.add(e)}catch(e){}}}b.prototype.read=async function(){if(this[w]&&this[w].length){return{done:!1,value:this[w].shift()}}return this._read()},b.prototype.releaseLock=function(){this[w]&&(this.stream[w]=this[w]),this._releaseLock()},b.prototype.cancel=function(e){return this._cancel(e)},b.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?U(t):void 0;const i=n.indexOf("\n")+1;i&&(e=U(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},b.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(F(t,1)),r},b.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?U(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=U(t);return this.unshift(F(r,e)),F(r,0,e)}}},b.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},b.prototype.unshift=function(...e){this[w]||(this[w]=[]),1===e.length&&l(e[0])&&this[w].length&&e[0].length&&this[w][0].byteOffset>=e[0].length?this[w][0]=new Uint8Array(this[w][0].buffer,this[w][0].byteOffset-e[0].length,this[w][0].byteLength+e[0].length):this[w].unshift(...e.filter((e=>e&&e.length)))},b.prototype.readToEnd=async function(e=U){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};let k,v,{ReadableStream:A,WritableStream:_,TransformStream:E}=e;async function S(){if(E)return;const[t,r]=await Promise.all([import("./ponyfill.es6.min.mjs"),import("./web-streams-adapter.min.mjs")]);({ReadableStream:A,WritableStream:_,TransformStream:E}=t);const{createReadableStreamWrapper:n}=r;e.ReadableStream&&A!==e.ReadableStream&&(k=n(A),v=n(e.ReadableStream))}const K=c&&void 0;function x(e){let t=u(e);return"node"===t?f(e):"web"===t&&k?k(e):t?e:new A({start(t){t.enqueue(e),t.close()}})}function P(e){if(u(e))return e;const t=new a;return(async()=>{const r=C(t);await r.write(e),await r.close()})(),t}function U(e){return e.some((e=>u(e)&&!s(e)))?function(e){e=e.map(x);const t=T((async function(e){await Promise.all(n.map((t=>H(t,e))))}));let r=Promise.resolve();const n=e.map(((n,i)=>R(n,((n,a)=>(r=r.then((()=>I(n,t.writable,{preventClose:i!==e.length-1}))),r)))));return t.readable}(e):e.some((e=>s(e)))?function(e){const t=new a;let r=Promise.resolve();return e.forEach(((n,i)=>(r=r.then((()=>I(n,t,{preventClose:i!==e.length-1}))),r))),t}(e):"string"==typeof e[0]?e.join(""):K&&K.isBuffer(e[0])?K.concat(e):y(e)}function D(e){return new b(e)}function C(e){return new o(e)}async function I(e,t,{preventClose:r=!1,preventAbort:n=!1,preventCancel:i=!1}={}){if(u(e)&&!s(e)){e=x(e);try{if(e[w]){const r=C(t);for(let t=0;t<e[w].length;t++)await r.ready,await r.write(e[w][t]);r.releaseLock()}await e.pipeTo(t,{preventClose:r,preventAbort:n,preventCancel:i})}catch(e){}return}const a=D(e=P(e)),o=C(t);try{for(;;){await o.ready;const{done:e,value:t}=await a.read();if(e){r||await o.close();break}await o.write(t)}}catch(e){n||await o.abort(e)}finally{a.releaseLock(),o.releaseLock()}}function B(e,t){const r=new E(t);return I(e,r.writable),r.readable}function T(e){let t,r,n=!1;return{readable:new A({start(e){r=e},pull(){t?t():n=!0},cancel:e},{highWaterMark:0}),writable:new _({write:async function(e){r.enqueue(e),n?n=!1:(await new Promise((e=>{t=e})),t=null)},close:r.close.bind(r),abort:r.error.bind(r)})}}function z(e,t=(()=>{}),r=(()=>{})){if(s(e)){const n=new a;return(async()=>{const i=C(n);try{const n=await j(e),a=t(n),s=r();let o;o=void 0!==a&&void 0!==s?U([a,s]):void 0!==a?a:s,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if(u(e))return B(e,{async transform(e,r){try{const n=await t(e);void 0!==n&&r.enqueue(n)}catch(e){r.error(e)}},async flush(e){try{const t=await r();void 0!==t&&e.enqueue(t)}catch(t){e.error(t)}}});const n=t(e),i=r();return void 0!==n&&void 0!==i?U([n,i]):void 0!==n?n:i}function R(e,t){if(u(e)&&!s(e)){let r;const n=new E({start(e){r=e}}),i=I(e,n.writable),a=T((async function(e){r.error(e),await i,await new Promise(setTimeout)}));return t(n.readable,a.writable),a.readable}e=P(e);const r=new a;return t(e,r),r}function M(e,t){let r;const n=R(e,((e,i)=>{const a=D(e);a.remainder=()=>(a.releaseLock(),I(e,i),n),r=t(a)}));return r}function N(e){if(s(e))return e.clone();if(u(e)){const t=function(e){if(s(e))throw Error("ArrayStream cannot be tee()d, use clone() instead");if(u(e)){const t=x(e).tee();return t[0][w]=t[1][w]=e[w],t}return[F(e),F(e)]}(e);return L(e,t[0]),t[1]}return F(e)}function O(e){return s(e)?N(e):u(e)?new A({start(t){const r=R(e,(async(e,r)=>{const n=D(e),i=C(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}}));L(e,r)}}):F(e)}function L(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach((([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))}))}function F(e,t=0,r=1/0){if(s(e))throw Error("Not implemented");if(u(e)){if(t>=0&&r>=0){let n=0;return B(e,{transform(e,i){n<r?(n+e.length>=t&&i.enqueue(F(e,Math.max(t-n,0),r-n)),n+=e.length):i.terminate()}})}if(t<0&&(r<0||r===1/0)){let n=[];return z(e,(e=>{e.length>=-t?n=[e]:n.push(e)}),(()=>F(U(n),t,r)))}if(0===t&&r<0){let n;return z(e,(e=>{const i=n?U([n,e]):e;if(i.length>=-r)return n=F(i,r),F(i,t,r);n=i}))}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),q((async()=>F(await j(e),t,r)))}return e[w]&&(e=U(e[w].concat([e]))),!l(e)||K&&K.isBuffer(e)?e.slice(t,r):(r===1/0&&(r=e.length),e.subarray(t,r))}async function j(e,t=U){return s(e)?e.readToEnd(t):u(e)?D(e).readToEnd(t):e}async function H(e,t){if(u(e)){if(e.cancel)return e.cancel(t);if(e.destroy)return e.destroy(t),await new Promise(setTimeout),t}}function q(e){const t=new a;return(async()=>{const r=C(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}class G{constructor(e){if(void 0===e)throw Error("Invalid BigInteger input");if(e instanceof Uint8Array){const t=e,r=Array(t.length);for(let e=0;e<t.length;e++){const n=t[e].toString(16);r[e]=t[e]<=15?"0"+n:n}this.value=BigInt("0x0"+r.join(""))}else this.value=BigInt(e)}clone(){return new G(this.value)}iinc(){return this.value++,this}inc(){return this.clone().iinc()}idec(){return this.value--,this}dec(){return this.clone().idec()}iadd(e){return this.value+=e.value,this}add(e){return this.clone().iadd(e)}isub(e){return this.value-=e.value,this}sub(e){return this.clone().isub(e)}imul(e){return this.value*=e.value,this}mul(e){return this.clone().imul(e)}imod(e){return this.value%=e.value,this.isNegative()&&this.iadd(e),this}mod(e){return this.clone().imod(e)}modExp(e,t){if(t.isZero())throw Error("Modulo cannot be zero");if(t.isOne())return new G(0);if(e.isNegative())throw Error("Unsopported negative exponent");let r=e.value,n=this.value;n%=t.value;let i=BigInt(1);for(;r>BigInt(0);){const e=r&BigInt(1);r>>=BigInt(1);const a=i*n%t.value;i=e?a:i,n=n*n%t.value}return new G(i)}modInv(e){const{gcd:t,x:r}=this._egcd(e);if(!t.isOne())throw Error("Inverse does not exist");return r.add(e).mod(e)}_egcd(e){let t=BigInt(0),r=BigInt(1),n=BigInt(1),i=BigInt(0),a=this.value;for(e=e.value;e!==BigInt(0);){const s=a/e;let o=t;t=n-s*t,n=o,o=r,r=i-s*r,i=o,o=e,e=a%e,a=o}return{x:new G(n),y:new G(i),gcd:new G(a)}}gcd(e){let t=this.value;for(e=e.value;e!==BigInt(0);){const r=e;e=t%e,t=r}return new G(t)}ileftShift(e){return this.value<<=e.value,this}leftShift(e){return this.clone().ileftShift(e)}irightShift(e){return this.value>>=e.value,this}rightShift(e){return this.clone().irightShift(e)}equal(e){return this.value===e.value}lt(e){return this.value<e.value}lte(e){return this.value<=e.value}gt(e){return this.value>e.value}gte(e){return this.value>=e.value}isZero(){return this.value===BigInt(0)}isOne(){return this.value===BigInt(1)}isNegative(){return this.value<BigInt(0)}isEven(){return!(this.value&BigInt(1))}abs(){const e=this.clone();return this.isNegative()&&(e.value=-e.value),e}toString(){return this.value.toString()}toNumber(){const e=Number(this.value);if(e>Number.MAX_SAFE_INTEGER)throw Error("Number can only safely store up to 53 bits");return e}getBit(e){return(this.value>>BigInt(e)&BigInt(1))===BigInt(0)?0:1}bitLength(){const e=new G(0),t=new G(1),r=new G(-1),n=this.isNegative()?r:e;let i=1;const a=this.clone();for(;!a.irightShift(t).equal(n);)i++;return i}byteLength(){const e=new G(0),t=new G(-1),r=this.isNegative()?t:e,n=new G(8);let i=1;const a=this.clone();for(;!a.irightShift(n).equal(r);)i++;return i}toUint8Array(e="be",t){let r=this.value.toString(16);r.length%2==1&&(r="0"+r);const n=r.length/2,i=new Uint8Array(t||n),a=t?t-n:0;let s=0;for(;s<n;)i[s+a]=parseInt(r.slice(2*s,2*s+2),16),s++;return"be"!==e&&i.reverse(),i}}const V=(()=>{try{return"development"===process.env.NODE_ENV}catch(e){}return!1})(),W={isString:function(e){return"string"==typeof e||String.prototype.isPrototypeOf(e)},isArray:function(e){return Array.prototype.isPrototypeOf(e)},isUint8Array:l,isStream:u,readNumber:function(e){let t=0;for(let r=0;r<e.length;r++)t+=256**r*e[e.length-1-r];return t},writeNumber:function(e,t){const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e>>8*(t-n-1)&255;return r},readDate:function(e){const t=W.readNumber(e);return new Date(1e3*t)},writeDate:function(e){const t=Math.floor(e.getTime()/1e3);return W.writeNumber(t,4)},normalizeDate:function(e=Date.now()){return null===e||e===1/0?e:new Date(1e3*Math.floor(+e/1e3))},readMPI:function(e){const t=(e[0]<<8|e[1])+7>>>3;return e.subarray(2,2+t)},leftPad(e,t){const r=new Uint8Array(t),n=t-e.length;return r.set(e,n),r},uint8ArrayToMPI:function(e){const t=W.uint8ArrayBitLength(e);if(0===t)throw Error("Zero MPI");const r=e.subarray(e.length-Math.ceil(t/8)),n=new Uint8Array([(65280&t)>>8,255&t]);return W.concatUint8Array([n,r])},uint8ArrayBitLength:function(e){let t;for(t=0;t<e.length&&0===e[t];t++);if(t===e.length)return 0;const r=e.subarray(t);return 8*(r.length-1)+W.nbits(r[0])},hexToUint8Array:function(e){const t=new Uint8Array(e.length>>1);for(let r=0;r<e.length>>1;r++)t[r]=parseInt(e.substr(r<<1,2),16);return t},uint8ArrayToHex:function(e){const t=[],r=e.length;let n,i=0;for(;i<r;){for(n=e[i++].toString(16);n.length<2;)n="0"+n;t.push(""+n)}return t.join("")},stringToUint8Array:function(e){return z(e,(e=>{if(!W.isString(e))throw Error("stringToUint8Array: Data must be in the form of a string");const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}))},uint8ArrayToString:function(e){const t=[],r=16384,n=(e=new Uint8Array(e)).length;for(let i=0;i<n;i+=r)t.push(String.fromCharCode.apply(String,e.subarray(i,i+r<n?i+r:n)));return t.join("")},encodeUTF8:function(e){const t=new TextEncoder("utf-8");function r(e,r=!1){return t.encode(e,{stream:!r})}return z(e,r,(()=>r("",!0)))},decodeUTF8:function(e){const t=new TextDecoder("utf-8");function r(e,r=!1){return t.decode(e,{stream:!r})}return z(e,r,(()=>r(new Uint8Array,!0)))},concat:U,concatUint8Array:y,equalsUint8Array:function(e,t){if(!W.isUint8Array(e)||!W.isUint8Array(t))throw Error("Data must be in the form of a Uint8Array");if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0},writeChecksum:function(e){let t=0;for(let r=0;r<e.length;r++)t=t+e[r]&65535;return W.writeNumber(t,2)},printDebug:function(e){V&&console.log("[OpenPGP.js debug]",e)},printDebugError:function(e){V&&console.error("[OpenPGP.js debug]",e)},nbits:function(e){let t=1,r=e>>>16;return 0!==r&&(e=r,t+=16),r=e>>8,0!==r&&(e=r,t+=8),r=e>>4,0!==r&&(e=r,t+=4),r=e>>2,0!==r&&(e=r,t+=2),r=e>>1,0!==r&&(e=r,t+=1),t},double:function(e){const t=new Uint8Array(e.length),r=e.length-1;for(let n=0;n<r;n++)t[n]=e[n]<<1^e[n+1]>>7;return t[r]=e[r]<<1^135*(e[0]>>7),t},shiftRight:function(e,t){if(t)for(let r=e.length-1;r>=0;r--)e[r]>>=t,r>0&&(e[r]|=e[r-1]<<8-t);return e},getWebCrypto:function(){return void 0!==e&&e.crypto&&e.crypto.subtle},detectBigInt:()=>"undefined"!=typeof BigInt,getBigInteger:async function(){if(W.detectBigInt())return G;{const{default:e}=await import("./bn.interface.min.mjs");return e}},getNodeCrypto:function(){},getNodeZlib:function(){},getNodeBuffer:function(){return{}.Buffer},getHardwareConcurrency:function(){if("undefined"!=typeof navigator)return navigator.hardwareConcurrency||1;return(void 0).cpus().length},isEmailAddress:function(e){if(!W.isString(e))return!1;return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}|xn--[a-zA-Z\-0-9]+)))$/.test(e)},canonicalizeEOL:function(e){let t=!1;return z(e,(e=>{let r;t&&(e=W.concatUint8Array([new Uint8Array([13]),e])),13===e[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;const n=[];for(let t=0;r=e.indexOf(10,t)+1,r;t=r)13!==e[r-2]&&n.push(r);if(!n.length)return e;const i=new Uint8Array(e.length+n.length);let a=0;for(let t=0;t<n.length;t++){const r=e.subarray(n[t-1]||0,n[t]);i.set(r,a),a+=r.length,i[a-1]=13,i[a]=10,a++}return i.set(e.subarray(n[n.length-1]||0),a),i}),(()=>t?new Uint8Array([13]):void 0))},nativeEOL:function(e){let t=!1;return z(e,(e=>{let r;13===(e=t&&10!==e[0]?W.concatUint8Array([new Uint8Array([13]),e]):new Uint8Array(e))[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;let n=0;for(let t=0;t!==e.length;t=r){r=e.indexOf(13,t)+1,r||(r=e.length);const i=r-(10===e[r]?1:0);t&&e.copyWithin(n,t,i),n+=i-t}return e.subarray(0,n)}),(()=>t?new Uint8Array([13]):void 0))},removeTrailingSpaces:function(e){return e.split("\n").map((e=>{let t=e.length-1;for(;t>=0&&(" "===e[t]||"\t"===e[t]||"\r"===e[t]);t--);return e.substr(0,t+1)})).join("\n")},wrapError:function(e,t){if(!t)return Error(e);try{t.message=e+": "+t.message}catch(e){}return t},constructAllowedPackets:function(e){const t={};return e.forEach((e=>{if(!e.tag)throw Error("Invalid input: expected a packet class");t[e.tag]=e})),t},anyPromise:function(e){return new Promise((async(t,r)=>{let n;await Promise.all(e.map((async e=>{try{t(await e)}catch(e){n=e}}))),r(n)}))},selectUint8Array:function(e,t,r){const n=Math.max(t.length,r.length),i=new Uint8Array(n);let a=0;for(let n=0;n<i.length;n++)i[n]=t[n]&256-e|r[n]&255+e,a+=e&n<t.length|1-e&n<r.length;return i.subarray(0,a)},selectUint8:function(e,t,r){return t&256-e|r&255+e}},$=W.getNodeBuffer();let Z,Q;function Y(e){let t=new Uint8Array;return z(e,(e=>{t=W.concatUint8Array([t,e]);const r=[],n=Math.floor(t.length/45),i=45*n,a=Z(t.subarray(0,i));for(let e=0;e<n;e++)r.push(a.substr(60*e,60)),r.push("\n");return t=t.subarray(i),r.join("")}),(()=>t.length?Z(t)+"\n":""))}function X(e){let t="";return z(e,(e=>{t+=e;let r=0;const n=[" ","\t","\r","\n"];for(let e=0;e<n.length;e++){const i=n[e];for(let e=t.indexOf(i);-1!==e;e=t.indexOf(i,e+1))r++}let i=t.length;for(;i>0&&(i-r)%4!=0;i--)n.includes(t[i])&&r--;const a=Q(t.substr(0,i));return t=t.substr(i),a}),(()=>Q(t)))}function J(e){return X(e.replace(/-/g,"+").replace(/_/g,"/"))}function ee(e,t){let r=Y(e).replace(/[\r\n]/g,"");return t&&(r=r.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,"")),r}$?(Z=e=>$.from(e).toString("base64"),Q=e=>{const t=$.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}):(Z=e=>btoa(W.uint8ArrayToString(e)),Q=e=>W.stringToUint8Array(atob(e)));const te=Symbol("byValue");var re={curve:{p256:"p256","P-256":"p256",secp256r1:"p256",prime256v1:"p256","1.2.840.10045.3.1.7":"p256","2a8648ce3d030107":"p256","2A8648CE3D030107":"p256",p384:"p384","P-384":"p384",secp384r1:"p384","1.3.132.0.34":"p384","2b81040022":"p384","2B81040022":"p384",p521:"p521","P-521":"p521",secp521r1:"p521","1.3.132.0.35":"p521","2b81040023":"p521","2B81040023":"p521",secp256k1:"secp256k1","1.3.132.0.10":"secp256k1","2b8104000a":"secp256k1","2B8104000A":"secp256k1",ED25519:"ed25519",ed25519:"ed25519",Ed25519:"ed25519","1.3.6.1.4.1.11591.15.1":"ed25519","2b06010401da470f01":"ed25519","2B06010401DA470F01":"ed25519",X25519:"curve25519",cv25519:"curve25519",curve25519:"curve25519",Curve25519:"curve25519","1.3.6.1.4.1.3029.1.5.1":"curve25519","2b060104019755010501":"curve25519","2B060104019755010501":"curve25519",brainpoolP256r1:"brainpoolP256r1","1.3.36.3.3.2.8.1.1.7":"brainpoolP256r1","2b2403030208010107":"brainpoolP256r1","2B2403030208010107":"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1","1.3.36.3.3.2.8.1.1.11":"brainpoolP384r1","2b240303020801010b":"brainpoolP384r1","2B240303020801010B":"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1","1.3.36.3.3.2.8.1.1.13":"brainpoolP512r1","2b240303020801010d":"brainpoolP512r1","2B240303020801010D":"brainpoolP512r1"},kdfFlags:{replace_fingerprint:1,replace_kdf_params:2},s2k:{simple:0,salted:1,iterated:3,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsa:22,aedh:23,aedsa:24,aead:100,hmac:101},symmetric:{plaintext:0,idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20},literal:{binary:98,text:116,utf8:117,mime:109},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuer:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4},write:function(e,t){if("number"==typeof t&&(t=this.read(e,t)),void 0!==e[t])return e[t];throw Error("Invalid enum value.")},read:function(e,t){if(e[te]||(e[te]=[],Object.entries(e).forEach((([t,r])=>{e[te][r]=t}))),void 0!==e[te][t])return e[te][t];throw Error("Invalid enum value.")}},ne={preferredHashAlgorithm:re.hash.sha256,preferredSymmetricAlgorithm:re.symmetric.aes256,preferredCompressionAlgorithm:re.compression.uncompressed,deflateLevel:6,aeadProtect:!1,preferredAEADAlgorithm:re.aead.eax,aeadChunkSizeByte:12,v5Keys:!1,s2kIterationCountByte:224,allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,checksumRequired:!1,minRSABits:2047,passwordCollisionCheck:!1,revocationsExpire:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([re.symmetric.aes128,re.symmetric.aes192,re.symmetric.aes256]),minBytesForWebCrypto:1e3,ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,showVersion:!1,showComment:!1,versionString:"OpenPGP.js 5.5.0",commentString:"https://openpgpjs.org",maxUserIDLength:5120,knownNotations:["preferred-email-encoding@pgp.com","pka-address@gnupg.org"],useIndutnyElliptic:!0,rejectHashAlgorithms:new Set([re.hash.md5,re.hash.ripemd]),rejectMessageHashAlgorithms:new Set([re.hash.md5,re.hash.ripemd,re.hash.sha1]),rejectPublicKeyAlgorithms:new Set([re.publicKey.elgamal,re.publicKey.dsa]),rejectCurves:new Set([re.curve.brainpoolP256r1,re.curve.brainpoolP384r1,re.curve.brainpoolP512r1,re.curve.secp256k1])};function ie(e){const t=e.match(/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m);if(!t)throw Error("Unknown ASCII armor type");return/MESSAGE, PART \d+\/\d+/.test(t[1])?re.armor.multipartSection:/MESSAGE, PART \d+/.test(t[1])?re.armor.multipartLast:/SIGNED MESSAGE/.test(t[1])?re.armor.signed:/MESSAGE/.test(t[1])?re.armor.message:/PUBLIC KEY BLOCK/.test(t[1])?re.armor.publicKey:/PRIVATE KEY BLOCK/.test(t[1])?re.armor.privateKey:/SIGNATURE/.test(t[1])?re.armor.signature:void 0}function ae(e,t){let r="";return t.showVersion&&(r+="Version: "+t.versionString+"\n"),t.showComment&&(r+="Comment: "+t.commentString+"\n"),e&&(r+="Comment: "+e+"\n"),r+="\n",r}function se(e){return Y(function(e){let t=13501623;return z(e,(e=>{const r=ce?Math.floor(e.length/4):0,n=new Uint32Array(e.buffer,e.byteOffset,r);for(let e=0;e<r;e++)t^=n[e],t=oe[0][t>>24&255]^oe[1][t>>16&255]^oe[2][t>>8&255]^oe[3][t>>0&255];for(let n=4*r;n<e.length;n++)t=t>>8^oe[0][255&t^e[n]]}),(()=>new Uint8Array([t,t>>8,t>>16])))}(e))}const oe=[Array(255),Array(255),Array(255),Array(255)];for(let e=0;e<=255;e++){let t=e<<16;for(let e=0;e<8;e++)t=t<<1^(0!=(8388608&t)?8801531:0);oe[0][e]=(16711680&t)>>16|65280&t|(255&t)<<16}for(let e=0;e<=255;e++)oe[1][e]=oe[0][e]>>8^oe[0][255&oe[0][e]];for(let e=0;e<=255;e++)oe[2][e]=oe[1][e]>>8^oe[0][255&oe[1][e]];for(let e=0;e<=255;e++)oe[3][e]=oe[2][e]>>8^oe[0][255&oe[2][e]];const ce=function(){const e=new ArrayBuffer(2);return new DataView(e).setInt16(0,255,!0),255===new Int16Array(e)[0]}();function he(e){for(let t=0;t<e.length;t++)/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(e[t])||W.printDebugError(Error("Improperly formatted armor header: "+e[t])),/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(e[t])||W.printDebugError(Error("Unknown header: "+e[t]))}function ue(e){let t=e,r="";const n=e.lastIndexOf("=");return n>=0&&n!==e.length-1&&(t=e.slice(0,n),r=e.slice(n+1).substr(0,4)),{body:t,checksum:r}}function le(e,t=ne){return new Promise((async(r,n)=>{try{const i=/^-----[^-]+-----$/m,a=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;let s;const o=[];let c,h,u,l=o,y=[],p=X(R(e,(async(e,t)=>{const d=D(e);try{for(;;){let e=await d.readLine();if(void 0===e)throw Error("Misformed armored text");if(e=W.removeTrailingSpaces(e.replace(/[\r\n]/g,"")),s)if(c)h||2!==s||(i.test(e)?(y=y.join("\r\n"),h=!0,he(l),l=[],c=!1):y.push(e.replace(/^- /,"")));else if(i.test(e)&&n(Error("Mandatory blank line missing between armor headers and armor data")),a.test(e)){if(he(l),c=!0,h||2!==s){r({text:y,data:p,headers:o,type:s});break}}else l.push(e);else i.test(e)&&(s=ie(e))}}catch(e){return void n(e)}const f=C(t);try{for(;;){await f.ready;const{done:e,value:t}=await d.read();if(e)throw Error("Misformed armored text");const r=t+"";if(-1!==r.indexOf("=")||-1!==r.indexOf("-")){let e=await d.readToEnd();e.length||(e=""),e=r+e,e=W.removeTrailingSpaces(e.replace(/\r/g,""));const t=e.split(i);if(1===t.length)throw Error("Misformed armored text");const n=ue(t[0].slice(0,-1));u=n.checksum,await f.write(n.body);break}await f.write(r)}await f.ready,await f.close()}catch(e){await f.abort(e)}})));p=R(p,(async(e,r)=>{const n=j(se(O(e)));n.catch((()=>{})),await I(e,r,{preventClose:!0});const i=C(r);try{const e=(await n).replace("\n","");if(u!==e&&(u||t.checksumRequired))throw Error("Ascii armor integrity check failed");await i.ready,await i.close()}catch(e){await i.abort(e)}}))}catch(e){n(e)}})).then((async e=>(s(e.data)&&(e.data=await j(e.data)),e)))}function ye(e,t,r,n,i,a=ne){let s,o;e===re.armor.signed&&(s=t.text,o=t.hash,t=t.data);const c=O(t),h=[];switch(e){case re.armor.multipartSection:h.push("-----BEGIN PGP MESSAGE, PART "+r+"/"+n+"-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP MESSAGE, PART "+r+"/"+n+"-----\n");break;case re.armor.multipartLast:h.push("-----BEGIN PGP MESSAGE, PART "+r+"-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP MESSAGE, PART "+r+"-----\n");break;case re.armor.signed:h.push("-----BEGIN PGP SIGNED MESSAGE-----\n"),h.push("Hash: "+o+"\n\n"),h.push(s.replace(/^-/gm,"- -")),h.push("\n-----BEGIN PGP SIGNATURE-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP SIGNATURE-----\n");break;case re.armor.message:h.push("-----BEGIN PGP MESSAGE-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP MESSAGE-----\n");break;case re.armor.publicKey:h.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP PUBLIC KEY BLOCK-----\n");break;case re.armor.privateKey:h.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP PRIVATE KEY BLOCK-----\n");break;case re.armor.signature:h.push("-----BEGIN PGP SIGNATURE-----\n"),h.push(ae(i,a)),h.push(Y(t)),h.push("=",se(c)),h.push("-----END PGP SIGNATURE-----\n")}return W.concat(h)}class pe{constructor(){this.bytes=""}read(e){this.bytes=W.uint8ArrayToString(e.subarray(0,8))}write(){return W.stringToUint8Array(this.bytes)}toHex(){return W.uint8ArrayToHex(W.stringToUint8Array(this.bytes))}equals(e,t=!1){return t&&(e.isWildcard()||this.isWildcard())||this.bytes===e.bytes}isNull(){return""===this.bytes}isWildcard(){return/^0+$/.test(this.toHex())}static mapToHex(e){return e.toHex()}static fromID(e){const t=new pe;return t.read(W.hexToUint8Array(e)),t}static wildcard(){const e=new pe;return e.read(new Uint8Array(8)),e}}var de=function(){var e,t,r=!1;function n(r,n){var i=e[(t[r]+t[n])%255];return 0!==r&&0!==n||(i=0),i}var i,a,s,o,c=!1;function h(){function h(r){var n,i,a;for(i=a=function(r){var n=e[255-t[r]];return 0===r&&(n=0),n}(r),n=0;n<4;n++)a^=i=255&(i<<1|i>>>7);return a^=99}r||function(){e=[],t=[];var n,i,a=1;for(n=0;n<255;n++)e[n]=a,i=128&a,a<<=1,a&=255,128===i&&(a^=27),a^=e[n],t[e[n]]=n;e[255]=e[0],t[0]=0,r=!0}(),i=[],a=[],s=[[],[],[],[]],o=[[],[],[],[]];for(var u=0;u<256;u++){var l=h(u);i[u]=l,a[l]=u,s[0][u]=n(2,l)<<24|l<<16|l<<8|n(3,l),o[0][l]=n(14,u)<<24|n(9,u)<<16|n(13,u)<<8|n(11,u);for(var y=1;y<4;y++)s[y][u]=s[y-1][u]>>>8|s[y-1][u]<<24,o[y][l]=o[y-1][l]>>>8|o[y-1][l]<<24}c=!0}var u=function(e,t){c||h();var r=new Uint32Array(t);r.set(i,512),r.set(a,768);for(var n=0;n<4;n++)r.set(s[n],4096+1024*n>>2),r.set(o[n],8192+1024*n>>2);var u=function(e,t,r){"use asm";var n=0,i=0,a=0,s=0,o=0,c=0,h=0,u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0;var E=new e.Uint32Array(r),S=new e.Uint8Array(r);function K(e,t,r,o,c,h,u,l){e=e|0;t=t|0;r=r|0;o=o|0;c=c|0;h=h|0;u=u|0;l=l|0;var y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0;y=r|0x400,p=r|0x800,d=r|0xc00;c=c^E[(e|0)>>2],h=h^E[(e|4)>>2],u=u^E[(e|8)>>2],l=l^E[(e|12)>>2];for(b=16;(b|0)<=o<<4;b=b+16|0){f=E[(r|c>>22&1020)>>2]^E[(y|h>>14&1020)>>2]^E[(p|u>>6&1020)>>2]^E[(d|l<<2&1020)>>2]^E[(e|b|0)>>2],g=E[(r|h>>22&1020)>>2]^E[(y|u>>14&1020)>>2]^E[(p|l>>6&1020)>>2]^E[(d|c<<2&1020)>>2]^E[(e|b|4)>>2],m=E[(r|u>>22&1020)>>2]^E[(y|l>>14&1020)>>2]^E[(p|c>>6&1020)>>2]^E[(d|h<<2&1020)>>2]^E[(e|b|8)>>2],w=E[(r|l>>22&1020)>>2]^E[(y|c>>14&1020)>>2]^E[(p|h>>6&1020)>>2]^E[(d|u<<2&1020)>>2]^E[(e|b|12)>>2];c=f,h=g,u=m,l=w}n=E[(t|c>>22&1020)>>2]<<24^E[(t|h>>14&1020)>>2]<<16^E[(t|u>>6&1020)>>2]<<8^E[(t|l<<2&1020)>>2]^E[(e|b|0)>>2],i=E[(t|h>>22&1020)>>2]<<24^E[(t|u>>14&1020)>>2]<<16^E[(t|l>>6&1020)>>2]<<8^E[(t|c<<2&1020)>>2]^E[(e|b|4)>>2],a=E[(t|u>>22&1020)>>2]<<24^E[(t|l>>14&1020)>>2]<<16^E[(t|c>>6&1020)>>2]<<8^E[(t|h<<2&1020)>>2]^E[(e|b|8)>>2],s=E[(t|l>>22&1020)>>2]<<24^E[(t|c>>14&1020)>>2]<<16^E[(t|h>>6&1020)>>2]<<8^E[(t|u<<2&1020)>>2]^E[(e|b|12)>>2]}function x(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;K(0x0000,0x0800,0x1000,_,e,t,r,n)}function P(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var a=0;K(0x0400,0x0c00,0x2000,_,e,n,r,t);a=i,i=s,s=a}function U(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;K(0x0000,0x0800,0x1000,_,o^e,c^t,h^r,u^l);o=n,c=i,h=a,u=s}function D(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;var y=0;K(0x0400,0x0c00,0x2000,_,e,l,r,t);y=i,i=s,s=y;n=n^o,i=i^c,a=a^h,s=s^u;o=e,c=t,h=r,u=l}function C(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;K(0x0000,0x0800,0x1000,_,o,c,h,u);o=n=n^e,c=i=i^t,h=a=a^r,u=s=s^l}function I(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;K(0x0000,0x0800,0x1000,_,o,c,h,u);n=n^e,i=i^t,a=a^r,s=s^l;o=e,c=t,h=r,u=l}function B(e,t,r,l){e=e|0;t=t|0;r=r|0;l=l|0;K(0x0000,0x0800,0x1000,_,o,c,h,u);o=n,c=i,h=a,u=s;n=n^e,i=i^t,a=a^r,s=s^l}function T(e,t,r,o){e=e|0;t=t|0;r=r|0;o=o|0;K(0x0000,0x0800,0x1000,_,l,y,p,d);d=~w&d|w&d+1;p=~m&p|m&p+((d|0)==0);y=~g&y|g&y+((p|0)==0);l=~f&l|f&l+((y|0)==0);n=n^e;i=i^t;a=a^r;s=s^o}function z(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,a=0,s=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0;e=e^o,t=t^c,r=r^h,n=n^u;i=b|0,a=k|0,s=v|0,l=A|0;for(;(g|0)<128;g=g+1|0){if(i>>>31){y=y^e,p=p^t,d=d^r,f=f^n}i=i<<1|a>>>31,a=a<<1|s>>>31,s=s<<1|l>>>31,l=l<<1;m=n&1;n=n>>>1|r<<31,r=r>>>1|t<<31,t=t>>>1|e<<31,e=e>>>1;if(m)e=e^0xe1000000}o=y,c=p,h=d,u=f}function R(e){e=e|0;_=e}function M(e,t,r,o){e=e|0;t=t|0;r=r|0;o=o|0;n=e,i=t,a=r,s=o}function N(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;o=e,c=t,h=r,u=n}function O(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;l=e,y=t,p=r,d=n}function L(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;f=e,g=t,m=r,w=n}function F(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;d=~w&d|w&n,p=~m&p|m&r,y=~g&y|g&t,l=~f&l|f&e}function j(e){e=e|0;if(e&15)return-1;S[e|0]=n>>>24,S[e|1]=n>>>16&255,S[e|2]=n>>>8&255,S[e|3]=n&255,S[e|4]=i>>>24,S[e|5]=i>>>16&255,S[e|6]=i>>>8&255,S[e|7]=i&255,S[e|8]=a>>>24,S[e|9]=a>>>16&255,S[e|10]=a>>>8&255,S[e|11]=a&255,S[e|12]=s>>>24,S[e|13]=s>>>16&255,S[e|14]=s>>>8&255,S[e|15]=s&255;return 16}function H(e){e=e|0;if(e&15)return-1;S[e|0]=o>>>24,S[e|1]=o>>>16&255,S[e|2]=o>>>8&255,S[e|3]=o&255,S[e|4]=c>>>24,S[e|5]=c>>>16&255,S[e|6]=c>>>8&255,S[e|7]=c&255,S[e|8]=h>>>24,S[e|9]=h>>>16&255,S[e|10]=h>>>8&255,S[e|11]=h&255,S[e|12]=u>>>24,S[e|13]=u>>>16&255,S[e|14]=u>>>8&255,S[e|15]=u&255;return 16}function q(){x(0,0,0,0);b=n,k=i,v=a,A=s}function G(e,t,r){e=e|0;t=t|0;r=r|0;var o=0;if(t&15)return-1;while((r|0)>=16){W[e&7](S[t|0]<<24|S[t|1]<<16|S[t|2]<<8|S[t|3],S[t|4]<<24|S[t|5]<<16|S[t|6]<<8|S[t|7],S[t|8]<<24|S[t|9]<<16|S[t|10]<<8|S[t|11],S[t|12]<<24|S[t|13]<<16|S[t|14]<<8|S[t|15]);S[t|0]=n>>>24,S[t|1]=n>>>16&255,S[t|2]=n>>>8&255,S[t|3]=n&255,S[t|4]=i>>>24,S[t|5]=i>>>16&255,S[t|6]=i>>>8&255,S[t|7]=i&255,S[t|8]=a>>>24,S[t|9]=a>>>16&255,S[t|10]=a>>>8&255,S[t|11]=a&255,S[t|12]=s>>>24,S[t|13]=s>>>16&255,S[t|14]=s>>>8&255,S[t|15]=s&255;o=o+16|0,t=t+16|0,r=r-16|0}return o|0}function V(e,t,r){e=e|0;t=t|0;r=r|0;var n=0;if(t&15)return-1;while((r|0)>=16){$[e&1](S[t|0]<<24|S[t|1]<<16|S[t|2]<<8|S[t|3],S[t|4]<<24|S[t|5]<<16|S[t|6]<<8|S[t|7],S[t|8]<<24|S[t|9]<<16|S[t|10]<<8|S[t|11],S[t|12]<<24|S[t|13]<<16|S[t|14]<<8|S[t|15]);n=n+16|0,t=t+16|0,r=r-16|0}return n|0}var W=[x,P,U,D,C,I,B,T];var $=[U,z];return{set_rounds:R,set_state:M,set_iv:N,set_nonce:O,set_mask:L,set_counter:F,get_state:j,get_iv:H,gcm_init:q,cipher:G,mac:V}}({Uint8Array,Uint32Array},e,t);return u.set_key=function(e,t,n,a,s,c,h,l,y){var p=r.subarray(0,60),d=r.subarray(256,316);p.set([t,n,a,s,c,h,l,y]);for(var f=e,g=1;f<4*e+28;f++){var m=p[f-1];(f%e==0||8===e&&f%e==4)&&(m=i[m>>>24]<<24^i[m>>>16&255]<<16^i[m>>>8&255]<<8^i[255&m]),f%e==0&&(m=m<<8^m>>>24^g<<24,g=g<<1^(128&g?27:0)),p[f]=p[f-e]^m}for(var w=0;w<f;w+=4)for(var b=0;b<4;b++){m=p[f-(4+w)+(4-b)%4];d[w+b]=w<4||w>=f-4?m:o[0][i[m>>>24]]^o[1][i[m>>>16&255]]^o[2][i[m>>>8&255]]^o[3][i[255&m]]}u.set_rounds(e+5)},u};return u.ENC={ECB:0,CBC:2,CFB:4,OFB:6,CTR:7},u.DEC={ECB:1,CBC:3,CFB:5,OFB:6,CTR:7},u.MAC={CBC:0,GCM:1},u.HEAP_DATA=16384,u}();function fe(e){return e instanceof Uint8Array}function ge(e,t){const r=e?e.byteLength:t||65536;if(4095&r||r<=0)throw Error("heap size must be a positive integer and a multiple of 4096");return e=e||new Uint8Array(new ArrayBuffer(r))}function me(e,t,r,n,i){const a=e.length-t,s=a<i?a:i;return e.set(r.subarray(n,n+s),t),s}function we(...e){const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);let n=0;for(let t=0;t<e.length;t++)r.set(e[t],n),n+=e[t].length;return r}class be extends Error{constructor(...e){super(...e)}}class ke extends Error{constructor(...e){super(...e)}}class ve extends Error{constructor(...e){super(...e)}}const Ae=[],_e=[];class Ee{constructor(e,t,r=!0,n,i,a){this.pos=0,this.len=0,this.mode=n,this.pos=0,this.len=0,this.key=e,this.iv=t,this.padding=r,this.acquire_asm(i,a)}acquire_asm(e,t){return void 0!==this.heap&&void 0!==this.asm||(this.heap=e||Ae.pop()||ge().subarray(de.HEAP_DATA),this.asm=t||_e.pop()||new de(null,this.heap.buffer),this.reset(this.key,this.iv)),{heap:this.heap,asm:this.asm}}release_asm(){void 0!==this.heap&&void 0!==this.asm&&(Ae.push(this.heap),_e.push(this.asm)),this.heap=void 0,this.asm=void 0}reset(e,t){const{asm:r}=this.acquire_asm(),n=e.length;if(16!==n&&24!==n&&32!==n)throw new ke("illegal key size");const i=new DataView(e.buffer,e.byteOffset,e.byteLength);if(r.set_key(n>>2,i.getUint32(0),i.getUint32(4),i.getUint32(8),i.getUint32(12),n>16?i.getUint32(16):0,n>16?i.getUint32(20):0,n>24?i.getUint32(24):0,n>24?i.getUint32(28):0),void 0!==t){if(16!==t.length)throw new ke("illegal iv size");let e=new DataView(t.buffer,t.byteOffset,t.byteLength);r.set_iv(e.getUint32(0),e.getUint32(4),e.getUint32(8),e.getUint32(12))}else r.set_iv(0,0,0,0)}AES_Encrypt_process(e){if(!fe(e))throw new TypeError("data isn't of expected type");let{heap:t,asm:r}=this.acquire_asm(),n=de.ENC[this.mode],i=de.HEAP_DATA,a=this.pos,s=this.len,o=0,c=e.length||0,h=0,u=0,l=new Uint8Array(s+c&-16);for(;c>0;)u=me(t,a+s,e,o,c),s+=u,o+=u,c-=u,u=r.cipher(n,i+a,s),u&&l.set(t.subarray(a,a+u),h),h+=u,u<s?(a+=u,s-=u):(a=0,s=0);return this.pos=a,this.len=s,l}AES_Encrypt_finish(){let{heap:e,asm:t}=this.acquire_asm(),r=de.ENC[this.mode],n=de.HEAP_DATA,i=this.pos,a=this.len,s=16-a%16,o=a;if(this.hasOwnProperty("padding")){if(this.padding){for(let t=0;t<s;++t)e[i+a+t]=s;a+=s,o=a}else if(a%16)throw new ke("data length must be a multiple of the block size")}else a+=s;const c=new Uint8Array(o);return a&&t.cipher(r,n+i,a),o&&c.set(e.subarray(i,i+o)),this.pos=0,this.len=0,this.release_asm(),c}AES_Decrypt_process(e){if(!fe(e))throw new TypeError("data isn't of expected type");let{heap:t,asm:r}=this.acquire_asm(),n=de.DEC[this.mode],i=de.HEAP_DATA,a=this.pos,s=this.len,o=0,c=e.length||0,h=0,u=s+c&-16,l=0,y=0;this.padding&&(l=s+c-u||16,u-=l);const p=new Uint8Array(u);for(;c>0;)y=me(t,a+s,e,o,c),s+=y,o+=y,c-=y,y=r.cipher(n,i+a,s-(c?0:l)),y&&p.set(t.subarray(a,a+y),h),h+=y,y<s?(a+=y,s-=y):(a=0,s=0);return this.pos=a,this.len=s,p}AES_Decrypt_finish(){let{heap:e,asm:t}=this.acquire_asm(),r=de.DEC[this.mode],n=de.HEAP_DATA,i=this.pos,a=this.len,s=a;if(a>0){if(a%16){if(this.hasOwnProperty("padding"))throw new ke("data length must be a multiple of the block size");a+=16-a%16}if(t.cipher(r,n+i,a),this.hasOwnProperty("padding")&&this.padding){let t=e[i+s-1];if(t<1||t>16||t>s)throw new ve("bad padding");let r=0;for(let n=t;n>1;n--)r|=t^e[i+s-n];if(r)throw new ve("bad padding");s-=t}}const o=new Uint8Array(s);return s>0&&o.set(e.subarray(i,i+s)),this.pos=0,this.len=0,this.release_asm(),o}}class Se{static encrypt(e,t,r=!1){return new Se(t,r).encrypt(e)}static decrypt(e,t,r=!1){return new Se(t,r).decrypt(e)}constructor(e,t=!1,r){this.aes=r||new Ee(e,void 0,t,"ECB")}encrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}decrypt(e){return we(this.aes.AES_Decrypt_process(e),this.aes.AES_Decrypt_finish())}}function Ke(e){const t=function(e){const t=new Se(e);this.encrypt=function(e){return t.encrypt(e)},this.decrypt=function(e){return t.decrypt(e)}};return t.blockSize=t.prototype.blockSize=16,t.keySize=t.prototype.keySize=e/8,t}function xe(e,t,r,n,i,a){const s=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],o=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],c=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],h=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],u=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],l=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],y=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],p=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];let d,f,g,m,w,b,k,v,A,_,E,S,K,x,P=0,U=t.length;const D=32===e.length?3:9;v=3===D?r?[0,32,2]:[30,-2,-2]:r?[0,32,2,62,30,-2,64,96,2]:[94,62,-2,32,64,2,30,-2,-2],r&&(U=(t=function(e,t){const r=8-e.length%8;let n;if(2===t&&r<8)n=32;else if(1===t)n=r;else{if(t||!(r<8)){if(8===r)return e;throw Error("des: invalid padding")}n=0}const i=new Uint8Array(e.length+r);for(let t=0;t<e.length;t++)i[t]=e[t];for(let t=0;t<r;t++)i[e.length+t]=n;return i}(t,a)).length);let C=new Uint8Array(U),I=0;for(1===n&&(A=i[P++]<<24|i[P++]<<16|i[P++]<<8|i[P++],E=i[P++]<<24|i[P++]<<16|i[P++]<<8|i[P++],P=0);P<U;){for(b=t[P++]<<24|t[P++]<<16|t[P++]<<8|t[P++],k=t[P++]<<24|t[P++]<<16|t[P++]<<8|t[P++],1===n&&(r?(b^=A,k^=E):(_=A,S=E,A=b,E=k)),g=252645135&(b>>>4^k),k^=g,b^=g<<4,g=65535&(b>>>16^k),k^=g,b^=g<<16,g=858993459&(k>>>2^b),b^=g,k^=g<<2,g=16711935&(k>>>8^b),b^=g,k^=g<<8,g=1431655765&(b>>>1^k),k^=g,b^=g<<1,b=b<<1|b>>>31,k=k<<1|k>>>31,f=0;f<D;f+=3){for(K=v[f+1],x=v[f+2],d=v[f];d!==K;d+=x)m=k^e[d],w=(k>>>4|k<<28)^e[d+1],g=b,b=k,k=g^(o[m>>>24&63]|h[m>>>16&63]|l[m>>>8&63]|p[63&m]|s[w>>>24&63]|c[w>>>16&63]|u[w>>>8&63]|y[63&w]);g=b,b=k,k=g}b=b>>>1|b<<31,k=k>>>1|k<<31,g=1431655765&(b>>>1^k),k^=g,b^=g<<1,g=16711935&(k>>>8^b),b^=g,k^=g<<8,g=858993459&(k>>>2^b),b^=g,k^=g<<2,g=65535&(b>>>16^k),k^=g,b^=g<<16,g=252645135&(b>>>4^k),k^=g,b^=g<<4,1===n&&(r?(A=b,E=k):(b^=_,k^=S)),C[I++]=b>>>24,C[I++]=b>>>16&255,C[I++]=b>>>8&255,C[I++]=255&b,C[I++]=k>>>24,C[I++]=k>>>16&255,C[I++]=k>>>8&255,C[I++]=255&k}return r||(C=function(e,t){let r,n=null;if(2===t)r=32;else if(1===t)n=e[e.length-1];else{if(t)throw Error("des: invalid padding");r=0}if(!n){for(n=1;e[e.length-n]===r;)n++;n--}return e.subarray(0,e.length-n)}(C,a)),C}function Pe(e){const t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],a=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],o=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],h=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],y=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],p=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],f=e.length>8?3:1,g=Array(32*f),m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0];let w,b,k,v=0,A=0;for(let _=0;_<f;_++){let f=e[v++]<<24|e[v++]<<16|e[v++]<<8|e[v++],_=e[v++]<<24|e[v++]<<16|e[v++]<<8|e[v++];k=252645135&(f>>>4^_),_^=k,f^=k<<4,k=65535&(_>>>-16^f),f^=k,_^=k<<-16,k=858993459&(f>>>2^_),_^=k,f^=k<<2,k=65535&(_>>>-16^f),f^=k,_^=k<<-16,k=1431655765&(f>>>1^_),_^=k,f^=k<<1,k=16711935&(_>>>8^f),f^=k,_^=k<<8,k=1431655765&(f>>>1^_),_^=k,f^=k<<1,k=f<<8|_>>>20&240,f=_<<24|_<<8&16711680|_>>>8&65280|_>>>24&240,_=k;for(let e=0;e<16;e++)m[e]?(f=f<<2|f>>>26,_=_<<2|_>>>26):(f=f<<1|f>>>27,_=_<<1|_>>>27),f&=-15,_&=-15,w=t[f>>>28]|r[f>>>24&15]|n[f>>>20&15]|i[f>>>16&15]|a[f>>>12&15]|s[f>>>8&15]|o[f>>>4&15],b=c[_>>>28]|h[_>>>24&15]|u[_>>>20&15]|l[_>>>16&15]|y[_>>>12&15]|p[_>>>8&15]|d[_>>>4&15],k=65535&(b>>>16^w),g[A++]=w^k,g[A++]=b^k<<16}return g}function Ue(e){this.key=[];for(let t=0;t<3;t++)this.key.push(new Uint8Array(e.subarray(8*t,8*t+8)));this.encrypt=function(e){return xe(Pe(this.key[2]),xe(Pe(this.key[1]),xe(Pe(this.key[0]),e,!0,0,null,null),!1,0,null,null),!0,0,null,null)}}function De(){this.BlockSize=8,this.KeySize=16,this.setKey=function(e){if(this.masking=Array(16),this.rotate=Array(16),this.reset(),e.length!==this.KeySize)throw Error("CAST-128: keys must be 16 bytes");return this.keySchedule(e),!0},this.reset=function(){for(let e=0;e<16;e++)this.masking[e]=0,this.rotate[e]=0},this.getBlockSize=function(){return this.BlockSize},this.encrypt=function(e){const t=Array(e.length);for(let a=0;a<e.length;a+=8){let s,o=e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3],c=e[a+4]<<24|e[a+5]<<16|e[a+6]<<8|e[a+7];s=c,c=o^r(c,this.masking[0],this.rotate[0]),o=s,s=c,c=o^n(c,this.masking[1],this.rotate[1]),o=s,s=c,c=o^i(c,this.masking[2],this.rotate[2]),o=s,s=c,c=o^r(c,this.masking[3],this.rotate[3]),o=s,s=c,c=o^n(c,this.masking[4],this.rotate[4]),o=s,s=c,c=o^i(c,this.masking[5],this.rotate[5]),o=s,s=c,c=o^r(c,this.masking[6],this.rotate[6]),o=s,s=c,c=o^n(c,this.masking[7],this.rotate[7]),o=s,s=c,c=o^i(c,this.masking[8],this.rotate[8]),o=s,s=c,c=o^r(c,this.masking[9],this.rotate[9]),o=s,s=c,c=o^n(c,this.masking[10],this.rotate[10]),o=s,s=c,c=o^i(c,this.masking[11],this.rotate[11]),o=s,s=c,c=o^r(c,this.masking[12],this.rotate[12]),o=s,s=c,c=o^n(c,this.masking[13],this.rotate[13]),o=s,s=c,c=o^i(c,this.masking[14],this.rotate[14]),o=s,s=c,c=o^r(c,this.masking[15],this.rotate[15]),o=s,t[a]=c>>>24&255,t[a+1]=c>>>16&255,t[a+2]=c>>>8&255,t[a+3]=255&c,t[a+4]=o>>>24&255,t[a+5]=o>>>16&255,t[a+6]=o>>>8&255,t[a+7]=255&o}return t},this.decrypt=function(e){const t=Array(e.length);for(let a=0;a<e.length;a+=8){let s,o=e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3],c=e[a+4]<<24|e[a+5]<<16|e[a+6]<<8|e[a+7];s=c,c=o^r(c,this.masking[15],this.rotate[15]),o=s,s=c,c=o^i(c,this.masking[14],this.rotate[14]),o=s,s=c,c=o^n(c,this.masking[13],this.rotate[13]),o=s,s=c,c=o^r(c,this.masking[12],this.rotate[12]),o=s,s=c,c=o^i(c,this.masking[11],this.rotate[11]),o=s,s=c,c=o^n(c,this.masking[10],this.rotate[10]),o=s,s=c,c=o^r(c,this.masking[9],this.rotate[9]),o=s,s=c,c=o^i(c,this.masking[8],this.rotate[8]),o=s,s=c,c=o^n(c,this.masking[7],this.rotate[7]),o=s,s=c,c=o^r(c,this.masking[6],this.rotate[6]),o=s,s=c,c=o^i(c,this.masking[5],this.rotate[5]),o=s,s=c,c=o^n(c,this.masking[4],this.rotate[4]),o=s,s=c,c=o^r(c,this.masking[3],this.rotate[3]),o=s,s=c,c=o^i(c,this.masking[2],this.rotate[2]),o=s,s=c,c=o^n(c,this.masking[1],this.rotate[1]),o=s,s=c,c=o^r(c,this.masking[0],this.rotate[0]),o=s,t[a]=c>>>24&255,t[a+1]=c>>>16&255,t[a+2]=c>>>8&255,t[a+3]=255&c,t[a+4]=o>>>24&255,t[a+5]=o>>16&255,t[a+6]=o>>8&255,t[a+7]=255&o}return t};const e=[,,,,];e[0]=[,,,,],e[0][0]=[4,0,13,15,12,14,8],e[0][1]=[5,2,16,18,17,19,10],e[0][2]=[6,3,23,22,21,20,9],e[0][3]=[7,1,26,25,27,24,11],e[1]=[,,,,],e[1][0]=[0,6,21,23,20,22,16],e[1][1]=[1,4,0,2,1,3,18],e[1][2]=[2,5,7,6,5,4,17],e[1][3]=[3,7,10,9,11,8,19],e[2]=[,,,,],e[2][0]=[4,0,13,15,12,14,8],e[2][1]=[5,2,16,18,17,19,10],e[2][2]=[6,3,23,22,21,20,9],e[2][3]=[7,1,26,25,27,24,11],e[3]=[,,,,],e[3][0]=[0,6,21,23,20,22,16],e[3][1]=[1,4,0,2,1,3,18],e[3][2]=[2,5,7,6,5,4,17],e[3][3]=[3,7,10,9,11,8,19];const t=[,,,,];function r(e,t,r){const n=t+e,i=n<<r|n>>>32-r;return(a[0][i>>>24]^a[1][i>>>16&255])-a[2][i>>>8&255]+a[3][255&i]}function n(e,t,r){const n=t^e,i=n<<r|n>>>32-r;return a[0][i>>>24]-a[1][i>>>16&255]+a[2][i>>>8&255]^a[3][255&i]}function i(e,t,r){const n=t-e,i=n<<r|n>>>32-r;return(a[0][i>>>24]+a[1][i>>>16&255]^a[2][i>>>8&255])-a[3][255&i]}t[0]=[,,,,],t[0][0]=[24,25,23,22,18],t[0][1]=[26,27,21,20,22],t[0][2]=[28,29,19,18,25],t[0][3]=[30,31,17,16,28],t[1]=[,,,,],t[1][0]=[3,2,12,13,8],t[1][1]=[1,0,14,15,13],t[1][2]=[7,6,8,9,3],t[1][3]=[5,4,10,11,7],t[2]=[,,,,],t[2][0]=[19,18,28,29,25],t[2][1]=[17,16,30,31,28],t[2][2]=[23,22,24,25,18],t[2][3]=[21,20,26,27,22],t[3]=[,,,,],t[3][0]=[8,9,7,6,3],t[3][1]=[10,11,5,4,7],t[3][2]=[12,13,3,2,8],t[3][3]=[14,15,1,0,13],this.keySchedule=function(r){const n=[,,,,,,,,],i=Array(32);let s;for(let e=0;e<4;e++)s=4*e,n[e]=r[s]<<24|r[s+1]<<16|r[s+2]<<8|r[s+3];const o=[6,7,4,5];let c,h=0;for(let r=0;r<2;r++)for(let r=0;r<4;r++){for(s=0;s<4;s++){const t=e[r][s];c=n[t[1]],c^=a[4][n[t[2]>>>2]>>>24-8*(3&t[2])&255],c^=a[5][n[t[3]>>>2]>>>24-8*(3&t[3])&255],c^=a[6][n[t[4]>>>2]>>>24-8*(3&t[4])&255],c^=a[7][n[t[5]>>>2]>>>24-8*(3&t[5])&255],c^=a[o[s]][n[t[6]>>>2]>>>24-8*(3&t[6])&255],n[t[0]]=c}for(s=0;s<4;s++){const e=t[r][s];c=a[4][n[e[0]>>>2]>>>24-8*(3&e[0])&255],c^=a[5][n[e[1]>>>2]>>>24-8*(3&e[1])&255],c^=a[6][n[e[2]>>>2]>>>24-8*(3&e[2])&255],c^=a[7][n[e[3]>>>2]>>>24-8*(3&e[3])&255],c^=a[4+s][n[e[4]>>>2]>>>24-8*(3&e[4])&255],i[h]=c,h++}}for(let e=0;e<16;e++)this.masking[e]=i[e],this.rotate[e]=31&i[16+e]};const a=[,,,,,,,,];a[0]=[821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063],a[1]=[522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321],a[2]=[2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027],a[3]=[2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730],a[4]=[2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860],a[5]=[4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975],a[6]=[2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875],a[7]=[3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]}function Ce(e){this.cast5=new De,this.cast5.setKey(e),this.encrypt=function(e){return this.cast5.encrypt(e)}}Ue.keySize=Ue.prototype.keySize=24,Ue.blockSize=Ue.prototype.blockSize=8,Ce.blockSize=Ce.prototype.blockSize=8,Ce.keySize=Ce.prototype.keySize=16;const Ie=4294967295;function Be(e,t){return(e<<t|e>>>32-t)&Ie}function Te(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function ze(e,t,r){e.splice(t,4,255&r,r>>>8&255,r>>>16&255,r>>>24&255)}function Re(e,t){return e>>>8*t&255}function Me(e){this.tf=function(){let e=null,t=null,r=-1,n=[],i=[[],[],[],[]];function a(e){return i[0][Re(e,0)]^i[1][Re(e,1)]^i[2][Re(e,2)]^i[3][Re(e,3)]}function s(e){return i[0][Re(e,3)]^i[1][Re(e,0)]^i[2][Re(e,1)]^i[3][Re(e,2)]}function o(e,t){let r=a(t[0]),i=s(t[1]);t[2]=Be(t[2]^r+i+n[4*e+8]&Ie,31),t[3]=Be(t[3],1)^r+2*i+n[4*e+9]&Ie,r=a(t[2]),i=s(t[3]),t[0]=Be(t[0]^r+i+n[4*e+10]&Ie,31),t[1]=Be(t[1],1)^r+2*i+n[4*e+11]&Ie}function c(e,t){let r=a(t[0]),i=s(t[1]);t[2]=Be(t[2],1)^r+i+n[4*e+10]&Ie,t[3]=Be(t[3]^r+2*i+n[4*e+11]&Ie,31),r=a(t[2]),i=s(t[3]),t[0]=Be(t[0],1)^r+i+n[4*e+8]&Ie,t[1]=Be(t[1]^r+2*i+n[4*e+9]&Ie,31)}return{name:"twofish",blocksize:16,open:function(t){let r,a,s,o,c;e=t;const h=[],u=[],l=[];let y;const p=[];let d,f,g;const m=[[8,1,7,13,6,15,3,2,0,11,5,9,14,12,10,4],[2,8,11,13,15,7,6,14,3,1,9,4,0,10,12,5]],w=[[14,12,11,8,1,2,3,5,15,4,10,6,7,0,9,13],[1,14,2,11,4,12,3,7,6,13,10,5,15,9,0,8]],b=[[11,10,5,14,6,13,9,0,12,8,15,3,2,4,7,1],[4,12,7,5,1,6,9,10,0,14,13,8,2,11,3,15]],k=[[13,7,15,4,1,2,6,14,9,11,3,0,8,5,12,10],[11,9,5,1,12,3,13,14,6,4,7,15,2,0,8,10]],v=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],A=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],_=[[],[]],E=[[],[],[],[]];function S(e){return e^e>>2^[0,90,180,238][3&e]}function K(e){return e^e>>1^e>>2^[0,238,180,90][3&e]}function x(e,t){let r,n,i;for(r=0;r<8;r++)n=t>>>24,t=t<<8&Ie|e>>>24,e=e<<8&Ie,i=n<<1,128&n&&(i^=333),t^=n^i<<16,i^=n>>>1,1&n&&(i^=166),t^=i<<24|i<<8;return t}function P(e,t){const r=t>>4,n=15&t,i=m[e][r^n],a=w[e][v[n]^A[r]];return k[e][v[a]^A[i]]<<4|b[e][i^a]}function U(e,t){let r=Re(e,0),n=Re(e,1),i=Re(e,2),a=Re(e,3);switch(y){case 4:r=_[1][r]^Re(t[3],0),n=_[0][n]^Re(t[3],1),i=_[0][i]^Re(t[3],2),a=_[1][a]^Re(t[3],3);case 3:r=_[1][r]^Re(t[2],0),n=_[1][n]^Re(t[2],1),i=_[0][i]^Re(t[2],2),a=_[0][a]^Re(t[2],3);case 2:r=_[0][_[0][r]^Re(t[1],0)]^Re(t[0],0),n=_[0][_[1][n]^Re(t[1],1)]^Re(t[0],1),i=_[1][_[0][i]^Re(t[1],2)]^Re(t[0],2),a=_[1][_[1][a]^Re(t[1],3)]^Re(t[0],3)}return E[0][r]^E[1][n]^E[2][i]^E[3][a]}for(e=e.slice(0,32),r=e.length;16!==r&&24!==r&&32!==r;)e[r++]=0;for(r=0;r<e.length;r+=4)l[r>>2]=Te(e,r);for(r=0;r<256;r++)_[0][r]=P(0,r),_[1][r]=P(1,r);for(r=0;r<256;r++)d=_[1][r],f=S(d),g=K(d),E[0][r]=d+(f<<8)+(g<<16)+(g<<24),E[2][r]=f+(g<<8)+(d<<16)+(g<<24),d=_[0][r],f=S(d),g=K(d),E[1][r]=g+(g<<8)+(f<<16)+(d<<24),E[3][r]=f+(d<<8)+(g<<16)+(f<<24);for(y=l.length/2,r=0;r<y;r++)a=l[r+r],h[r]=a,s=l[r+r+1],u[r]=s,p[y-r-1]=x(a,s);for(r=0;r<40;r+=2)a=16843009*r,s=a+16843009,a=U(a,h),s=Be(U(s,u),8),n[r]=a+s&Ie,n[r+1]=Be(a+2*s,9);for(r=0;r<256;r++)switch(a=s=o=c=r,y){case 4:a=_[1][a]^Re(p[3],0),s=_[0][s]^Re(p[3],1),o=_[0][o]^Re(p[3],2),c=_[1][c]^Re(p[3],3);case 3:a=_[1][a]^Re(p[2],0),s=_[1][s]^Re(p[2],1),o=_[0][o]^Re(p[2],2),c=_[0][c]^Re(p[2],3);case 2:i[0][r]=E[0][_[0][_[0][a]^Re(p[1],0)]^Re(p[0],0)],i[1][r]=E[1][_[0][_[1][s]^Re(p[1],1)]^Re(p[0],1)],i[2][r]=E[2][_[1][_[0][o]^Re(p[1],2)]^Re(p[0],2)],i[3][r]=E[3][_[1][_[1][c]^Re(p[1],3)]^Re(p[0],3)]}},close:function(){n=[],i=[[],[],[],[]]},encrypt:function(e,i){t=e,r=i;const a=[Te(t,r)^n[0],Te(t,r+4)^n[1],Te(t,r+8)^n[2],Te(t,r+12)^n[3]];for(let e=0;e<8;e++)o(e,a);return ze(t,r,a[2]^n[4]),ze(t,r+4,a[3]^n[5]),ze(t,r+8,a[0]^n[6]),ze(t,r+12,a[1]^n[7]),r+=16,t},decrypt:function(e,i){t=e,r=i;const a=[Te(t,r)^n[4],Te(t,r+4)^n[5],Te(t,r+8)^n[6],Te(t,r+12)^n[7]];for(let e=7;e>=0;e--)c(e,a);ze(t,r,a[2]^n[0]),ze(t,r+4,a[3]^n[1]),ze(t,r+8,a[0]^n[2]),ze(t,r+12,a[1]^n[3]),r+=16},finalize:function(){return t}}}(),this.tf.open(Array.from(e),0),this.encrypt=function(e){return this.tf.encrypt(Array.from(e),0)}}function Ne(){}function Oe(e){this.bf=new Ne,this.bf.init(e),this.encrypt=function(e){return this.bf.encryptBlock(e)}}Me.keySize=Me.prototype.keySize=32,Me.blockSize=Me.prototype.blockSize=16,Ne.prototype.BLOCKSIZE=8,Ne.prototype.SBOXES=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]],Ne.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],Ne.prototype.NN=16,Ne.prototype._clean=function(e){if(e<0){e=(2147483647&e)+2147483648}return e},Ne.prototype._F=function(e){let t;const r=255&e,n=255&(e>>>=8),i=255&(e>>>=8),a=255&(e>>>=8);return t=this.sboxes[0][a]+this.sboxes[1][i],t^=this.sboxes[2][n],t+=this.sboxes[3][r],t},Ne.prototype._encryptBlock=function(e){let t,r=e[0],n=e[1];for(t=0;t<this.NN;++t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[this.NN+0],n^=this.parray[this.NN+1],e[0]=this._clean(n),e[1]=this._clean(r)},Ne.prototype.encryptBlock=function(e){let t;const r=[0,0],n=this.BLOCKSIZE/2;for(t=0;t<this.BLOCKSIZE/2;++t)r[0]=r[0]<<8|255&e[t+0],r[1]=r[1]<<8|255&e[t+n];this._encryptBlock(r);const i=[];for(t=0;t<this.BLOCKSIZE/2;++t)i[t+0]=r[0]>>>24-8*t&255,i[t+n]=r[1]>>>24-8*t&255;return i},Ne.prototype._decryptBlock=function(e){let t,r=e[0],n=e[1];for(t=this.NN+1;t>1;--t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[1],n^=this.parray[0],e[0]=this._clean(n),e[1]=this._clean(r)},Ne.prototype.init=function(e){let t,r=0;for(this.parray=[],t=0;t<this.NN+2;++t){let n=0;for(let t=0;t<4;++t)n=n<<8|255&e[r],++r>=e.length&&(r=0);this.parray[t]=this.PARRAY[t]^n}for(this.sboxes=[],t=0;t<4;++t)for(this.sboxes[t]=[],r=0;r<256;++r)this.sboxes[t][r]=this.SBOXES[t][r];const n=[0,0];for(t=0;t<this.NN+2;t+=2)this._encryptBlock(n),this.parray[t+0]=n[0],this.parray[t+1]=n[1];for(t=0;t<4;++t)for(r=0;r<256;r+=2)this._encryptBlock(n),this.sboxes[t][r+0]=n[0],this.sboxes[t][r+1]=n[1]},Oe.keySize=Oe.prototype.keySize=16,Oe.blockSize=Oe.prototype.blockSize=8;const Le=Ke(128),Fe=Ke(192),je=Ke(256);var He=/*#__PURE__*/Object.freeze({__proto__:null,aes128:Le,aes192:Fe,aes256:je,des:function(e){this.key=e,this.encrypt=function(e,t){return xe(Pe(this.key),e,!0,0,null,t)},this.decrypt=function(e,t){return xe(Pe(this.key),e,!1,0,null,t)}},tripledes:Ue,cast5:Ce,twofish:Me,blowfish:Oe,idea:function(){throw Error("IDEA symmetric-key algorithm not implemented")}}),qe=function(e,t,r){"use asm";var n=0,i=0,a=0,s=0,o=0,c=0,h=0;var u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0;var k=new e.Uint8Array(r);function v(e,t,r,c,h,u,l,y,p,d,f,g,m,w,b,k){e=e|0;t=t|0;r=r|0;c=c|0;h=h|0;u=u|0;l=l|0;y=y|0;p=p|0;d=d|0;f=f|0;g=g|0;m=m|0;w=w|0;b=b|0;k=k|0;var v=0,A=0,_=0,E=0,S=0,K=0,x=0,P=0,U=0,D=0,C=0,I=0,B=0,T=0,z=0,R=0,M=0,N=0,O=0,L=0,F=0,j=0,H=0,q=0,G=0,V=0,W=0,$=0,Z=0,Q=0,Y=0,X=0,J=0,ee=0,te=0,re=0,ne=0,ie=0,ae=0,se=0,oe=0,ce=0,he=0,ue=0,le=0,ye=0,pe=0,de=0,fe=0,ge=0,me=0,we=0,be=0,ke=0,ve=0,Ae=0,_e=0,Ee=0,Se=0,Ke=0,xe=0,Pe=0,Ue=0,De=0,Ce=0,Ie=0,Be=0,Te=0,ze=0,Re=0,Me=0;v=n;A=i;_=a;E=s;S=o;x=e+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=t+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=r+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=c+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=h+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=u+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=l+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=y+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=p+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=d+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=f+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=g+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=m+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=w+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=b+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;x=k+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=w^p^r^e;P=K<<1|K>>>31;x=P+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=b^d^c^t;U=K<<1|K>>>31;x=U+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=k^f^h^r;D=K<<1|K>>>31;x=D+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=P^g^u^c;C=K<<1|K>>>31;x=C+(v<<5|v>>>27)+S+(A&_|~A&E)+0x5a827999|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=U^m^l^h;I=K<<1|K>>>31;x=I+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=D^w^y^u;B=K<<1|K>>>31;x=B+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=C^b^p^l;T=K<<1|K>>>31;x=T+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=I^k^d^y;z=K<<1|K>>>31;x=z+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=B^P^f^p;R=K<<1|K>>>31;x=R+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=T^U^g^d;M=K<<1|K>>>31;x=M+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=z^D^m^f;N=K<<1|K>>>31;x=N+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=R^C^w^g;O=K<<1|K>>>31;x=O+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=M^I^b^m;L=K<<1|K>>>31;x=L+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=N^B^k^w;F=K<<1|K>>>31;x=F+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=O^T^P^b;j=K<<1|K>>>31;x=j+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=L^z^U^k;H=K<<1|K>>>31;x=H+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=F^R^D^P;q=K<<1|K>>>31;x=q+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=j^M^C^U;G=K<<1|K>>>31;x=G+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=H^N^I^D;V=K<<1|K>>>31;x=V+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=q^O^B^C;W=K<<1|K>>>31;x=W+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=G^L^T^I;$=K<<1|K>>>31;x=$+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=V^F^z^B;Z=K<<1|K>>>31;x=Z+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=W^j^R^T;Q=K<<1|K>>>31;x=Q+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=$^H^M^z;Y=K<<1|K>>>31;x=Y+(v<<5|v>>>27)+S+(A^_^E)+0x6ed9eba1|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Z^q^N^R;X=K<<1|K>>>31;x=X+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Q^G^O^M;J=K<<1|K>>>31;x=J+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Y^V^L^N;ee=K<<1|K>>>31;x=ee+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=X^W^F^O;te=K<<1|K>>>31;x=te+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=J^$^j^L;re=K<<1|K>>>31;x=re+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ee^Z^H^F;ne=K<<1|K>>>31;x=ne+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=te^Q^q^j;ie=K<<1|K>>>31;x=ie+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=re^Y^G^H;ae=K<<1|K>>>31;x=ae+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ne^X^V^q;se=K<<1|K>>>31;x=se+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ie^J^W^G;oe=K<<1|K>>>31;x=oe+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ae^ee^$^V;ce=K<<1|K>>>31;x=ce+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=se^te^Z^W;he=K<<1|K>>>31;x=he+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=oe^re^Q^$;ue=K<<1|K>>>31;x=ue+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ce^ne^Y^Z;le=K<<1|K>>>31;x=le+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=he^ie^X^Q;ye=K<<1|K>>>31;x=ye+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ue^ae^J^Y;pe=K<<1|K>>>31;x=pe+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=le^se^ee^X;de=K<<1|K>>>31;x=de+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ye^oe^te^J;fe=K<<1|K>>>31;x=fe+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=pe^ce^re^ee;ge=K<<1|K>>>31;x=ge+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=de^he^ne^te;me=K<<1|K>>>31;x=me+(v<<5|v>>>27)+S+(A&_|A&E|_&E)-0x70e44324|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=fe^ue^ie^re;we=K<<1|K>>>31;x=we+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ge^le^ae^ne;be=K<<1|K>>>31;x=be+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=me^ye^se^ie;ke=K<<1|K>>>31;x=ke+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=we^pe^oe^ae;ve=K<<1|K>>>31;x=ve+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=be^de^ce^se;Ae=K<<1|K>>>31;x=Ae+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ke^fe^he^oe;_e=K<<1|K>>>31;x=_e+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=ve^ge^ue^ce;Ee=K<<1|K>>>31;x=Ee+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ae^me^le^he;Se=K<<1|K>>>31;x=Se+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=_e^we^ye^ue;Ke=K<<1|K>>>31;x=Ke+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ee^be^pe^le;xe=K<<1|K>>>31;x=xe+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Se^ke^de^ye;Pe=K<<1|K>>>31;x=Pe+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ke^ve^fe^pe;Ue=K<<1|K>>>31;x=Ue+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=xe^Ae^ge^de;De=K<<1|K>>>31;x=De+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Pe^_e^me^fe;Ce=K<<1|K>>>31;x=Ce+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ue^Ee^we^ge;Ie=K<<1|K>>>31;x=Ie+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=De^Se^be^me;Be=K<<1|K>>>31;x=Be+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ce^Ke^ke^we;Te=K<<1|K>>>31;x=Te+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Ie^xe^ve^be;ze=K<<1|K>>>31;x=ze+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Be^Pe^Ae^ke;Re=K<<1|K>>>31;x=Re+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;K=Te^Ue^_e^ve;Me=K<<1|K>>>31;x=Me+(v<<5|v>>>27)+S+(A^_^E)-0x359d3e2a|0;S=E;E=_;_=A<<30|A>>>2;A=v;v=x;n=n+v|0;i=i+A|0;a=a+_|0;s=s+E|0;o=o+S|0}function A(e){e=e|0;v(k[e|0]<<24|k[e|1]<<16|k[e|2]<<8|k[e|3],k[e|4]<<24|k[e|5]<<16|k[e|6]<<8|k[e|7],k[e|8]<<24|k[e|9]<<16|k[e|10]<<8|k[e|11],k[e|12]<<24|k[e|13]<<16|k[e|14]<<8|k[e|15],k[e|16]<<24|k[e|17]<<16|k[e|18]<<8|k[e|19],k[e|20]<<24|k[e|21]<<16|k[e|22]<<8|k[e|23],k[e|24]<<24|k[e|25]<<16|k[e|26]<<8|k[e|27],k[e|28]<<24|k[e|29]<<16|k[e|30]<<8|k[e|31],k[e|32]<<24|k[e|33]<<16|k[e|34]<<8|k[e|35],k[e|36]<<24|k[e|37]<<16|k[e|38]<<8|k[e|39],k[e|40]<<24|k[e|41]<<16|k[e|42]<<8|k[e|43],k[e|44]<<24|k[e|45]<<16|k[e|46]<<8|k[e|47],k[e|48]<<24|k[e|49]<<16|k[e|50]<<8|k[e|51],k[e|52]<<24|k[e|53]<<16|k[e|54]<<8|k[e|55],k[e|56]<<24|k[e|57]<<16|k[e|58]<<8|k[e|59],k[e|60]<<24|k[e|61]<<16|k[e|62]<<8|k[e|63])}function _(e){e=e|0;k[e|0]=n>>>24;k[e|1]=n>>>16&255;k[e|2]=n>>>8&255;k[e|3]=n&255;k[e|4]=i>>>24;k[e|5]=i>>>16&255;k[e|6]=i>>>8&255;k[e|7]=i&255;k[e|8]=a>>>24;k[e|9]=a>>>16&255;k[e|10]=a>>>8&255;k[e|11]=a&255;k[e|12]=s>>>24;k[e|13]=s>>>16&255;k[e|14]=s>>>8&255;k[e|15]=s&255;k[e|16]=o>>>24;k[e|17]=o>>>16&255;k[e|18]=o>>>8&255;k[e|19]=o&255}function E(){n=0x67452301;i=0xefcdab89;a=0x98badcfe;s=0x10325476;o=0xc3d2e1f0;c=h=0}function S(e,t,r,u,l,y,p){e=e|0;t=t|0;r=r|0;u=u|0;l=l|0;y=y|0;p=p|0;n=e;i=t;a=r;s=u;o=l;c=y;h=p}function K(e,t){e=e|0;t=t|0;var r=0;if(e&63)return-1;while((t|0)>=64){A(e);e=e+64|0;t=t-64|0;r=r+64|0}c=c+r|0;if(c>>>0<r>>>0)h=h+1|0;return r|0}function x(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0;if(e&63)return-1;if(~r)if(r&31)return-1;if((t|0)>=64){n=K(e,t)|0;if((n|0)==-1)return-1;e=e+n|0;t=t-n|0}n=n+t|0;c=c+t|0;if(c>>>0<t>>>0)h=h+1|0;k[e|t]=0x80;if((t|0)>=56){for(i=t+1|0;(i|0)<64;i=i+1|0)k[e|i]=0x00;A(e);t=0;k[e|0]=0}for(i=t+1|0;(i|0)<59;i=i+1|0)k[e|i]=0;k[e|56]=h>>>21&255;k[e|57]=h>>>13&255;k[e|58]=h>>>5&255;k[e|59]=h<<3&255|c>>>29;k[e|60]=c>>>21&255;k[e|61]=c>>>13&255;k[e|62]=c>>>5&255;k[e|63]=c<<3&255;A(e);if(~r)_(r);return n|0}function P(){n=u;i=l;a=y;s=p;o=d;c=64;h=0}function U(){n=f;i=g;a=m;s=w;o=b;c=64;h=0}function D(e,t,r,k,A,_,S,K,x,P,U,D,C,I,B,T){e=e|0;t=t|0;r=r|0;k=k|0;A=A|0;_=_|0;S=S|0;K=K|0;x=x|0;P=P|0;U=U|0;D=D|0;C=C|0;I=I|0;B=B|0;T=T|0;E();v(e^0x5c5c5c5c,t^0x5c5c5c5c,r^0x5c5c5c5c,k^0x5c5c5c5c,A^0x5c5c5c5c,_^0x5c5c5c5c,S^0x5c5c5c5c,K^0x5c5c5c5c,x^0x5c5c5c5c,P^0x5c5c5c5c,U^0x5c5c5c5c,D^0x5c5c5c5c,C^0x5c5c5c5c,I^0x5c5c5c5c,B^0x5c5c5c5c,T^0x5c5c5c5c);f=n;g=i;m=a;w=s;b=o;E();v(e^0x36363636,t^0x36363636,r^0x36363636,k^0x36363636,A^0x36363636,_^0x36363636,S^0x36363636,K^0x36363636,x^0x36363636,P^0x36363636,U^0x36363636,D^0x36363636,C^0x36363636,I^0x36363636,B^0x36363636,T^0x36363636);u=n;l=i;y=a;p=s;d=o;c=64;h=0}function C(e,t,r){e=e|0;t=t|0;r=r|0;var c=0,h=0,u=0,l=0,y=0,p=0;if(e&63)return-1;if(~r)if(r&31)return-1;p=x(e,t,-1)|0;c=n,h=i,u=a,l=s,y=o;U();v(c,h,u,l,y,0x80000000,0,0,0,0,0,0,0,0,0,672);if(~r)_(r);return p|0}function I(e,t,r,c,h){e=e|0;t=t|0;r=r|0;c=c|0;h=h|0;var u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0;if(e&63)return-1;if(~h)if(h&31)return-1;k[e+t|0]=r>>>24;k[e+t+1|0]=r>>>16&255;k[e+t+2|0]=r>>>8&255;k[e+t+3|0]=r&255;C(e,t+4|0,-1)|0;u=f=n,l=g=i,y=m=a,p=w=s,d=b=o;c=c-1|0;while((c|0)>0){P();v(f,g,m,w,b,0x80000000,0,0,0,0,0,0,0,0,0,672);f=n,g=i,m=a,w=s,b=o;U();v(f,g,m,w,b,0x80000000,0,0,0,0,0,0,0,0,0,672);f=n,g=i,m=a,w=s,b=o;u=u^n;l=l^i;y=y^a;p=p^s;d=d^o;c=c-1|0}n=u;i=l;a=y;s=p;o=d;if(~h)_(h);return 0}return{reset:E,init:S,process:K,finish:x,hmac_reset:P,hmac_init:D,hmac_finish:C,pbkdf2_generate_block:I}};class Ge{constructor(){this.pos=0,this.len=0}reset(){const{asm:e}=this.acquire_asm();return this.result=null,this.pos=0,this.len=0,e.reset(),this}process(e){if(null!==this.result)throw new be("state must be reset before processing new data");const{asm:t,heap:r}=this.acquire_asm();let n=this.pos,i=this.len,a=0,s=e.length,o=0;for(;s>0;)o=me(r,n+i,e,a,s),i+=o,a+=o,s-=o,o=t.process(n,i),n+=o,i-=o,i||(n=0);return this.pos=n,this.len=i,this}finish(){if(null!==this.result)throw new be("state must be reset before processing new data");const{asm:e,heap:t}=this.acquire_asm();return e.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(t.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this.release_asm(),this}}const Ve=[],We=[];class $e extends Ge{constructor(){super(),this.NAME="sha1",this.BLOCK_SIZE=64,this.HASH_SIZE=20,this.acquire_asm()}acquire_asm(){return void 0!==this.heap&&void 0!==this.asm||(this.heap=Ve.pop()||ge(),this.asm=We.pop()||qe({Uint8Array},null,this.heap.buffer),this.reset()),{heap:this.heap,asm:this.asm}}release_asm(){void 0!==this.heap&&void 0!==this.asm&&(Ve.push(this.heap),We.push(this.asm)),this.heap=void 0,this.asm=void 0}static bytes(e){return(new $e).process(e).finish().result}}$e.NAME="sha1",$e.heap_pool=[],$e.asm_pool=[],$e.asm_function=qe;const Ze=[],Qe=[];class Ye extends Ge{constructor(){super(),this.NAME="sha256",this.BLOCK_SIZE=64,this.HASH_SIZE=32,this.acquire_asm()}acquire_asm(){return void 0!==this.heap&&void 0!==this.asm||(this.heap=Ze.pop()||ge(),this.asm=Qe.pop()||function(e,t,r){"use asm";var n=0,i=0,a=0,s=0,o=0,c=0,h=0,u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0,E=0,S=0,K=0,x=0,P=0,U=new e.Uint8Array(r);function D(e,t,r,l,y,p,d,f,g,m,w,b,k,v,A,_){e=e|0;t=t|0;r=r|0;l=l|0;y=y|0;p=p|0;d=d|0;f=f|0;g=g|0;m=m|0;w=w|0;b=b|0;k=k|0;v=v|0;A=A|0;_=_|0;var E=0,S=0,K=0,x=0,P=0,U=0,D=0,C=0;E=n;S=i;K=a;x=s;P=o;U=c;D=h;C=u;C=e+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x428a2f98|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;D=t+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x71374491|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;U=r+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0xb5c0fbcf|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;P=l+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0xe9b5dba5|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;x=y+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x3956c25b|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;K=p+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x59f111f1|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;S=d+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x923f82a4|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;E=f+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0xab1c5ed5|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;C=g+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0xd807aa98|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;D=m+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x12835b01|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;U=w+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x243185be|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;P=b+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x550c7dc3|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;x=k+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x72be5d74|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;K=v+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x80deb1fe|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;S=A+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x9bdc06a7|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;E=_+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0xc19bf174|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;C=e+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0xe49b69c1|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+t+w|0;D=t+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0xefbe4786|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;r=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+b|0;U=r+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x0fc19dc6|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;l=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+l+k|0;P=l+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x240ca1cc|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;y=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+y+v|0;x=y+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x2de92c6f|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;p=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+A|0;K=p+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x4a7484aa|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;d=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+_|0;S=d+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x5cb0a9dc|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;f=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+f+e|0;E=f+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x76f988da|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+g+t|0;C=g+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x983e5152|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;m=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+m+r|0;D=m+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0xa831c66d|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;w=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+l|0;U=w+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0xb00327c8|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;b=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+b+y|0;P=b+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0xbf597fc7|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;k=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+k+p|0;x=k+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0xc6e00bf3|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;v=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+v+d|0;K=v+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0xd5a79147|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;A=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+A+f|0;S=A+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x06ca6351|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;_=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+g|0;E=_+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x14292967|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;C=e+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x27b70a85|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+t+w|0;D=t+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x2e1b2138|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;r=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+b|0;U=r+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x4d2c6dfc|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;l=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+l+k|0;P=l+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x53380d13|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;y=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+y+v|0;x=y+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x650a7354|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;p=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+A|0;K=p+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x766a0abb|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;d=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+_|0;S=d+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x81c2c92e|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;f=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+f+e|0;E=f+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x92722c85|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+g+t|0;C=g+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0xa2bfe8a1|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;m=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+m+r|0;D=m+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0xa81a664b|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;w=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+l|0;U=w+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0xc24b8b70|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;b=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+b+y|0;P=b+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0xc76c51a3|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;k=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+k+p|0;x=k+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0xd192e819|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;v=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+v+d|0;K=v+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0xd6990624|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;A=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+A+f|0;S=A+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0xf40e3585|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;_=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+g|0;E=_+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x106aa070|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;C=e+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x19a4c116|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+t+w|0;D=t+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x1e376c08|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;r=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+b|0;U=r+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x2748774c|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;l=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+l+k|0;P=l+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x34b0bcb5|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;y=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+y+v|0;x=y+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x391c0cb3|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;p=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+A|0;K=p+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0x4ed8aa4a|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;d=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+_|0;S=d+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0x5b9cca4f|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;f=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+f+e|0;E=f+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0x682e6ff3|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+g+t|0;C=g+C+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(D^P&(U^D))+0x748f82ee|0;x=x+C|0;C=C+(E&S^K&(E^S))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;m=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+m+r|0;D=m+D+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(U^x&(P^U))+0x78a5636f|0;K=K+D|0;D=D+(C&E^S&(C^E))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;w=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+l|0;U=w+U+(K>>>6^K>>>11^K>>>25^K<<26^K<<21^K<<7)+(P^K&(x^P))+0x84c87814|0;S=S+U|0;U=U+(D&C^E&(D^C))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;b=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+b+y|0;P=b+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(x^S&(K^x))+0x8cc70208|0;E=E+P|0;P=P+(U&D^C&(U^D))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;k=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+k+p|0;x=k+x+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(K^E&(S^K))+0x90befffa|0;C=C+x|0;x=x+(P&U^D&(P^U))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;v=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+v+d|0;K=v+K+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(S^C&(E^S))+0xa4506ceb|0;D=D+K|0;K=K+(x&P^U&(x^P))+(x>>>2^x>>>13^x>>>22^x<<30^x<<19^x<<10)|0;A=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+A+f|0;S=A+S+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(E^D&(C^E))+0xbef9a3f7|0;U=U+S|0;S=S+(K&x^P&(K^x))+(K>>>2^K>>>13^K>>>22^K<<30^K<<19^K<<10)|0;_=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+g|0;E=_+E+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(C^U&(D^C))+0xc67178f2|0;P=P+E|0;E=E+(S&K^x&(S^K))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;n=n+E|0;i=i+S|0;a=a+K|0;s=s+x|0;o=o+P|0;c=c+U|0;h=h+D|0;u=u+C|0}function C(e){e=e|0;D(U[e|0]<<24|U[e|1]<<16|U[e|2]<<8|U[e|3],U[e|4]<<24|U[e|5]<<16|U[e|6]<<8|U[e|7],U[e|8]<<24|U[e|9]<<16|U[e|10]<<8|U[e|11],U[e|12]<<24|U[e|13]<<16|U[e|14]<<8|U[e|15],U[e|16]<<24|U[e|17]<<16|U[e|18]<<8|U[e|19],U[e|20]<<24|U[e|21]<<16|U[e|22]<<8|U[e|23],U[e|24]<<24|U[e|25]<<16|U[e|26]<<8|U[e|27],U[e|28]<<24|U[e|29]<<16|U[e|30]<<8|U[e|31],U[e|32]<<24|U[e|33]<<16|U[e|34]<<8|U[e|35],U[e|36]<<24|U[e|37]<<16|U[e|38]<<8|U[e|39],U[e|40]<<24|U[e|41]<<16|U[e|42]<<8|U[e|43],U[e|44]<<24|U[e|45]<<16|U[e|46]<<8|U[e|47],U[e|48]<<24|U[e|49]<<16|U[e|50]<<8|U[e|51],U[e|52]<<24|U[e|53]<<16|U[e|54]<<8|U[e|55],U[e|56]<<24|U[e|57]<<16|U[e|58]<<8|U[e|59],U[e|60]<<24|U[e|61]<<16|U[e|62]<<8|U[e|63])}function I(e){e=e|0;U[e|0]=n>>>24;U[e|1]=n>>>16&255;U[e|2]=n>>>8&255;U[e|3]=n&255;U[e|4]=i>>>24;U[e|5]=i>>>16&255;U[e|6]=i>>>8&255;U[e|7]=i&255;U[e|8]=a>>>24;U[e|9]=a>>>16&255;U[e|10]=a>>>8&255;U[e|11]=a&255;U[e|12]=s>>>24;U[e|13]=s>>>16&255;U[e|14]=s>>>8&255;U[e|15]=s&255;U[e|16]=o>>>24;U[e|17]=o>>>16&255;U[e|18]=o>>>8&255;U[e|19]=o&255;U[e|20]=c>>>24;U[e|21]=c>>>16&255;U[e|22]=c>>>8&255;U[e|23]=c&255;U[e|24]=h>>>24;U[e|25]=h>>>16&255;U[e|26]=h>>>8&255;U[e|27]=h&255;U[e|28]=u>>>24;U[e|29]=u>>>16&255;U[e|30]=u>>>8&255;U[e|31]=u&255}function B(){n=0x6a09e667;i=0xbb67ae85;a=0x3c6ef372;s=0xa54ff53a;o=0x510e527f;c=0x9b05688c;h=0x1f83d9ab;u=0x5be0cd19;l=y=0}function T(e,t,r,p,d,f,g,m,w,b){e=e|0;t=t|0;r=r|0;p=p|0;d=d|0;f=f|0;g=g|0;m=m|0;w=w|0;b=b|0;n=e;i=t;a=r;s=p;o=d;c=f;h=g;u=m;l=w;y=b}function z(e,t){e=e|0;t=t|0;var r=0;if(e&63)return-1;while((t|0)>=64){C(e);e=e+64|0;t=t-64|0;r=r+64|0}l=l+r|0;if(l>>>0<r>>>0)y=y+1|0;return r|0}function R(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0;if(e&63)return-1;if(~r)if(r&31)return-1;if((t|0)>=64){n=z(e,t)|0;if((n|0)==-1)return-1;e=e+n|0;t=t-n|0}n=n+t|0;l=l+t|0;if(l>>>0<t>>>0)y=y+1|0;U[e|t]=0x80;if((t|0)>=56){for(i=t+1|0;(i|0)<64;i=i+1|0)U[e|i]=0x00;C(e);t=0;U[e|0]=0}for(i=t+1|0;(i|0)<59;i=i+1|0)U[e|i]=0;U[e|56]=y>>>21&255;U[e|57]=y>>>13&255;U[e|58]=y>>>5&255;U[e|59]=y<<3&255|l>>>29;U[e|60]=l>>>21&255;U[e|61]=l>>>13&255;U[e|62]=l>>>5&255;U[e|63]=l<<3&255;C(e);if(~r)I(r);return n|0}function M(){n=p;i=d;a=f;s=g;o=m;c=w;h=b;u=k;l=64;y=0}function N(){n=v;i=A;a=_;s=E;o=S;c=K;h=x;u=P;l=64;y=0}function O(e,t,r,U,C,I,T,z,R,M,N,O,L,F,j,H){e=e|0;t=t|0;r=r|0;U=U|0;C=C|0;I=I|0;T=T|0;z=z|0;R=R|0;M=M|0;N=N|0;O=O|0;L=L|0;F=F|0;j=j|0;H=H|0;B();D(e^0x5c5c5c5c,t^0x5c5c5c5c,r^0x5c5c5c5c,U^0x5c5c5c5c,C^0x5c5c5c5c,I^0x5c5c5c5c,T^0x5c5c5c5c,z^0x5c5c5c5c,R^0x5c5c5c5c,M^0x5c5c5c5c,N^0x5c5c5c5c,O^0x5c5c5c5c,L^0x5c5c5c5c,F^0x5c5c5c5c,j^0x5c5c5c5c,H^0x5c5c5c5c);v=n;A=i;_=a;E=s;S=o;K=c;x=h;P=u;B();D(e^0x36363636,t^0x36363636,r^0x36363636,U^0x36363636,C^0x36363636,I^0x36363636,T^0x36363636,z^0x36363636,R^0x36363636,M^0x36363636,N^0x36363636,O^0x36363636,L^0x36363636,F^0x36363636,j^0x36363636,H^0x36363636);p=n;d=i;f=a;g=s;m=o;w=c;b=h;k=u;l=64;y=0}function L(e,t,r){e=e|0;t=t|0;r=r|0;var l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0;if(e&63)return-1;if(~r)if(r&31)return-1;b=R(e,t,-1)|0;l=n,y=i,p=a,d=s,f=o,g=c,m=h,w=u;N();D(l,y,p,d,f,g,m,w,0x80000000,0,0,0,0,0,0,768);if(~r)I(r);return b|0}function F(e,t,r,l,y){e=e|0;t=t|0;r=r|0;l=l|0;y=y|0;var p=0,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0,E=0,S=0,K=0,x=0,P=0;if(e&63)return-1;if(~y)if(y&31)return-1;U[e+t|0]=r>>>24;U[e+t+1|0]=r>>>16&255;U[e+t+2|0]=r>>>8&255;U[e+t+3|0]=r&255;L(e,t+4|0,-1)|0;p=v=n,d=A=i,f=_=a,g=E=s,m=S=o,w=K=c,b=x=h,k=P=u;l=l-1|0;while((l|0)>0){M();D(v,A,_,E,S,K,x,P,0x80000000,0,0,0,0,0,0,768);v=n,A=i,_=a,E=s,S=o,K=c,x=h,P=u;N();D(v,A,_,E,S,K,x,P,0x80000000,0,0,0,0,0,0,768);v=n,A=i,_=a,E=s,S=o,K=c,x=h,P=u;p=p^n;d=d^i;f=f^a;g=g^s;m=m^o;w=w^c;b=b^h;k=k^u;l=l-1|0}n=p;i=d;a=f;s=g;o=m;c=w;h=b;u=k;if(~y)I(y);return 0}return{reset:B,init:T,process:z,finish:R,hmac_reset:M,hmac_init:O,hmac_finish:L,pbkdf2_generate_block:F}}({Uint8Array},null,this.heap.buffer),this.reset()),{heap:this.heap,asm:this.asm}}release_asm(){void 0!==this.heap&&void 0!==this.asm&&(Ze.push(this.heap),Qe.push(this.asm)),this.heap=void 0,this.asm=void 0}static bytes(e){return(new Ye).process(e).finish().result}}Ye.NAME="sha256";var Xe=Je;function Je(e,t){if(!e)throw Error(t||"Assertion failed")}Je.equal=function(e,t,r){if(e!=t)throw Error(r||"Assertion failed: "+e+" != "+t)};var et=void 0!==e?e:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function tt(e,t){return e(t={exports:{}},t.exports),t.exports}var rt=tt((function(e){e.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}));function nt(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function it(e){return 1===e.length?"0"+e:e}function at(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}var st={inherits:rt,toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16))}else for(var n=0;n<e.length;n++){var i=e.charCodeAt(n),a=i>>8,s=255&i;a?r.push(a,s):r.push(s)}else for(n=0;n<e.length;n++)r[n]=0|e[n];return r},toHex:function(e){for(var t="",r=0;r<e.length;r++)t+=it(e[r].toString(16));return t},htonl:nt,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=nt(i)),r+=at(i.toString(16))}return r},zero2:it,zero8:at,join32:function(e,t,r,n){var i=r-t;Xe(i%4==0);for(var a=Array(i/4),s=0,o=t;s<a.length;s++,o+=4){var c;c="big"===n?e[o]<<24|e[o+1]<<16|e[o+2]<<8|e[o+3]:e[o+3]<<24|e[o+2]<<16|e[o+1]<<8|e[o],a[s]=c>>>0}return a},split32:function(e,t){for(var r=Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var a=e[n];"big"===t?(r[i]=a>>>24,r[i+1]=a>>>16&255,r[i+2]=a>>>8&255,r[i+3]=255&a):(r[i+3]=a>>>24,r[i+2]=a>>>16&255,r[i+1]=a>>>8&255,r[i]=255&a)}return r},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,r){return e+t+r>>>0},sum32_4:function(e,t,r,n){return e+t+r+n>>>0},sum32_5:function(e,t,r,n,i){return e+t+r+n+i>>>0},sum64:function(e,t,r,n){var i=e[t],a=n+e[t+1]>>>0,s=(a<n?1:0)+r+i;e[t]=s>>>0,e[t+1]=a},sum64_hi:function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},sum64_lo:function(e,t,r,n){return t+n>>>0},sum64_4_hi:function(e,t,r,n,i,a,s,o){var c=0,h=t;return c+=(h=h+n>>>0)<t?1:0,c+=(h=h+a>>>0)<a?1:0,e+r+i+s+(c+=(h=h+o>>>0)<o?1:0)>>>0},sum64_4_lo:function(e,t,r,n,i,a,s,o){return t+n+a+o>>>0},sum64_5_hi:function(e,t,r,n,i,a,s,o,c,h){var u=0,l=t;return u+=(l=l+n>>>0)<t?1:0,u+=(l=l+a>>>0)<a?1:0,u+=(l=l+o>>>0)<o?1:0,e+r+i+s+c+(u+=(l=l+h>>>0)<h?1:0)>>>0},sum64_5_lo:function(e,t,r,n,i,a,s,o,c,h){return t+n+a+o+h>>>0},rotr64_hi:function(e,t,r){return(t<<32-r|e>>>r)>>>0},rotr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0},shr64_hi:function(e,t,r){return e>>>r},shr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0}};function ot(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var ct=ot;ot.prototype.update=function(e,t){if(e=st.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=st.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},ot.prototype.digest=function(e){return this.update(this._pad()),Xe(null===this.pending),this._digest(e)},ot.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,a=8;a<this.padLength;a++)n[i++]=0;return n};var ht={BlockHash:ct},ut=st.rotr32;function lt(e,t,r){return e&t^~e&r}function yt(e,t,r){return e&t^e&r^t&r}function pt(e,t,r){return e^t^r}var dt={ft_1:function(e,t,r,n){return 0===e?lt(t,r,n):1===e||3===e?pt(t,r,n):2===e?yt(t,r,n):void 0},ch32:lt,maj32:yt,p32:pt,s0_256:function(e){return ut(e,2)^ut(e,13)^ut(e,22)},s1_256:function(e){return ut(e,6)^ut(e,11)^ut(e,25)},g0_256:function(e){return ut(e,7)^ut(e,18)^e>>>3},g1_256:function(e){return ut(e,17)^ut(e,19)^e>>>10}},ft=st.sum32,gt=st.sum32_4,mt=st.sum32_5,wt=dt.ch32,bt=dt.maj32,kt=dt.s0_256,vt=dt.s1_256,At=dt.g0_256,_t=dt.g1_256,Et=ht.BlockHash,St=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Kt(){if(!(this instanceof Kt))return new Kt;Et.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=St,this.W=Array(64)}st.inherits(Kt,Et);var xt=Kt;function Pt(){if(!(this instanceof Pt))return new Pt;xt.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Kt.blockSize=512,Kt.outSize=256,Kt.hmacStrength=192,Kt.padLength=64,Kt.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=gt(_t(r[n-2]),r[n-7],At(r[n-15]),r[n-16]);var i=this.h[0],a=this.h[1],s=this.h[2],o=this.h[3],c=this.h[4],h=this.h[5],u=this.h[6],l=this.h[7];for(Xe(this.k.length===r.length),n=0;n<r.length;n++){var y=mt(l,vt(c),wt(c,h,u),this.k[n],r[n]),p=ft(kt(i),bt(i,a,s));l=u,u=h,h=c,c=ft(o,y),o=s,s=a,a=i,i=ft(y,p)}this.h[0]=ft(this.h[0],i),this.h[1]=ft(this.h[1],a),this.h[2]=ft(this.h[2],s),this.h[3]=ft(this.h[3],o),this.h[4]=ft(this.h[4],c),this.h[5]=ft(this.h[5],h),this.h[6]=ft(this.h[6],u),this.h[7]=ft(this.h[7],l)},Kt.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h,"big"):st.split32(this.h,"big")},st.inherits(Pt,xt);var Ut=Pt;Pt.blockSize=512,Pt.outSize=224,Pt.hmacStrength=192,Pt.padLength=64,Pt.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h.slice(0,7),"big"):st.split32(this.h.slice(0,7),"big")};var Dt=st.rotr64_hi,Ct=st.rotr64_lo,It=st.shr64_hi,Bt=st.shr64_lo,Tt=st.sum64,zt=st.sum64_hi,Rt=st.sum64_lo,Mt=st.sum64_4_hi,Nt=st.sum64_4_lo,Ot=st.sum64_5_hi,Lt=st.sum64_5_lo,Ft=ht.BlockHash,jt=[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 Ht(){if(!(this instanceof Ht))return new Ht;Ft.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=jt,this.W=Array(160)}st.inherits(Ht,Ft);var qt=Ht;function Gt(e,t,r,n,i){var a=e&r^~e&i;return a<0&&(a+=4294967296),a}function Vt(e,t,r,n,i,a){var s=t&n^~t&a;return s<0&&(s+=4294967296),s}function Wt(e,t,r,n,i){var a=e&r^e&i^r&i;return a<0&&(a+=4294967296),a}function $t(e,t,r,n,i,a){var s=t&n^t&a^n&a;return s<0&&(s+=4294967296),s}function Zt(e,t){var r=Dt(e,t,28)^Dt(t,e,2)^Dt(t,e,7);return r<0&&(r+=4294967296),r}function Qt(e,t){var r=Ct(e,t,28)^Ct(t,e,2)^Ct(t,e,7);return r<0&&(r+=4294967296),r}function Yt(e,t){var r=Dt(e,t,14)^Dt(e,t,18)^Dt(t,e,9);return r<0&&(r+=4294967296),r}function Xt(e,t){var r=Ct(e,t,14)^Ct(e,t,18)^Ct(t,e,9);return r<0&&(r+=4294967296),r}function Jt(e,t){var r=Dt(e,t,1)^Dt(e,t,8)^It(e,t,7);return r<0&&(r+=4294967296),r}function er(e,t){var r=Ct(e,t,1)^Ct(e,t,8)^Bt(e,t,7);return r<0&&(r+=4294967296),r}function tr(e,t){var r=Dt(e,t,19)^Dt(t,e,29)^It(e,t,6);return r<0&&(r+=4294967296),r}function rr(e,t){var r=Ct(e,t,19)^Ct(t,e,29)^Bt(e,t,6);return r<0&&(r+=4294967296),r}function nr(){if(!(this instanceof nr))return new nr;qt.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Ht.blockSize=1024,Ht.outSize=512,Ht.hmacStrength=192,Ht.padLength=128,Ht.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=tr(r[n-4],r[n-3]),a=rr(r[n-4],r[n-3]),s=r[n-14],o=r[n-13],c=Jt(r[n-30],r[n-29]),h=er(r[n-30],r[n-29]),u=r[n-32],l=r[n-31];r[n]=Mt(i,a,s,o,c,h,u,l),r[n+1]=Nt(i,a,s,o,c,h,u,l)}},Ht.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],a=this.h[2],s=this.h[3],o=this.h[4],c=this.h[5],h=this.h[6],u=this.h[7],l=this.h[8],y=this.h[9],p=this.h[10],d=this.h[11],f=this.h[12],g=this.h[13],m=this.h[14],w=this.h[15];Xe(this.k.length===r.length);for(var b=0;b<r.length;b+=2){var k=m,v=w,A=Yt(l,y),_=Xt(l,y),E=Gt(l,y,p,d,f),S=Vt(l,y,p,d,f,g),K=this.k[b],x=this.k[b+1],P=r[b],U=r[b+1],D=Ot(k,v,A,_,E,S,K,x,P,U),C=Lt(k,v,A,_,E,S,K,x,P,U);k=Zt(n,i),v=Qt(n,i),A=Wt(n,i,a,s,o),_=$t(n,i,a,s,o,c);var I=zt(k,v,A,_),B=Rt(k,v,A,_);m=f,w=g,f=p,g=d,p=l,d=y,l=zt(h,u,D,C),y=Rt(u,u,D,C),h=o,u=c,o=a,c=s,a=n,s=i,n=zt(D,C,I,B),i=Rt(D,C,I,B)}Tt(this.h,0,n,i),Tt(this.h,2,a,s),Tt(this.h,4,o,c),Tt(this.h,6,h,u),Tt(this.h,8,l,y),Tt(this.h,10,p,d),Tt(this.h,12,f,g),Tt(this.h,14,m,w)},Ht.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h,"big"):st.split32(this.h,"big")},st.inherits(nr,qt);var ir=nr;nr.blockSize=1024,nr.outSize=384,nr.hmacStrength=192,nr.padLength=128,nr.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h.slice(0,12),"big"):st.split32(this.h.slice(0,12),"big")};var ar=st.rotl32,sr=st.sum32,or=st.sum32_3,cr=st.sum32_4,hr=ht.BlockHash;function ur(){if(!(this instanceof ur))return new ur;hr.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}st.inherits(ur,hr);var lr=ur;function yr(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function pr(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function dr(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ur.blockSize=512,ur.outSize=160,ur.hmacStrength=192,ur.padLength=64,ur.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],a=this.h[3],s=this.h[4],o=r,c=n,h=i,u=a,l=s,y=0;y<80;y++){var p=sr(ar(cr(r,yr(y,n,i,a),e[fr[y]+t],pr(y)),mr[y]),s);r=s,s=a,a=ar(i,10),i=n,n=p,p=sr(ar(cr(o,yr(79-y,c,h,u),e[gr[y]+t],dr(y)),wr[y]),l),o=l,l=u,u=ar(h,10),h=c,c=p}p=or(this.h[1],i,u),this.h[1]=or(this.h[2],a,l),this.h[2]=or(this.h[3],s,o),this.h[3]=or(this.h[4],r,c),this.h[4]=or(this.h[0],n,h),this.h[0]=p},ur.prototype._digest=function(e){return"hex"===e?st.toHex32(this.h,"little"):st.split32(this.h,"little")};var fr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],gr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],mr=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],wr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],br={ripemd160:lr};function kr(e,t){let r=e[0],n=e[1],i=e[2],a=e[3];r=Ar(r,n,i,a,t[0],7,-680876936),a=Ar(a,r,n,i,t[1],12,-389564586),i=Ar(i,a,r,n,t[2],17,606105819),n=Ar(n,i,a,r,t[3],22,-1044525330),r=Ar(r,n,i,a,t[4],7,-176418897),a=Ar(a,r,n,i,t[5],12,1200080426),i=Ar(i,a,r,n,t[6],17,-1473231341),n=Ar(n,i,a,r,t[7],22,-45705983),r=Ar(r,n,i,a,t[8],7,1770035416),a=Ar(a,r,n,i,t[9],12,-1958414417),i=Ar(i,a,r,n,t[10],17,-42063),n=Ar(n,i,a,r,t[11],22,-1990404162),r=Ar(r,n,i,a,t[12],7,1804603682),a=Ar(a,r,n,i,t[13],12,-40341101),i=Ar(i,a,r,n,t[14],17,-1502002290),n=Ar(n,i,a,r,t[15],22,1236535329),r=_r(r,n,i,a,t[1],5,-165796510),a=_r(a,r,n,i,t[6],9,-1069501632),i=_r(i,a,r,n,t[11],14,643717713),n=_r(n,i,a,r,t[0],20,-373897302),r=_r(r,n,i,a,t[5],5,-701558691),a=_r(a,r,n,i,t[10],9,38016083),i=_r(i,a,r,n,t[15],14,-660478335),n=_r(n,i,a,r,t[4],20,-405537848),r=_r(r,n,i,a,t[9],5,568446438),a=_r(a,r,n,i,t[14],9,-1019803690),i=_r(i,a,r,n,t[3],14,-187363961),n=_r(n,i,a,r,t[8],20,1163531501),r=_r(r,n,i,a,t[13],5,-1444681467),a=_r(a,r,n,i,t[2],9,-51403784),i=_r(i,a,r,n,t[7],14,1735328473),n=_r(n,i,a,r,t[12],20,-1926607734),r=Er(r,n,i,a,t[5],4,-378558),a=Er(a,r,n,i,t[8],11,-2022574463),i=Er(i,a,r,n,t[11],16,1839030562),n=Er(n,i,a,r,t[14],23,-35309556),r=Er(r,n,i,a,t[1],4,-1530992060),a=Er(a,r,n,i,t[4],11,1272893353),i=Er(i,a,r,n,t[7],16,-155497632),n=Er(n,i,a,r,t[10],23,-1094730640),r=Er(r,n,i,a,t[13],4,681279174),a=Er(a,r,n,i,t[0],11,-358537222),i=Er(i,a,r,n,t[3],16,-722521979),n=Er(n,i,a,r,t[6],23,76029189),r=Er(r,n,i,a,t[9],4,-640364487),a=Er(a,r,n,i,t[12],11,-421815835),i=Er(i,a,r,n,t[15],16,530742520),n=Er(n,i,a,r,t[2],23,-995338651),r=Sr(r,n,i,a,t[0],6,-198630844),a=Sr(a,r,n,i,t[7],10,1126891415),i=Sr(i,a,r,n,t[14],15,-1416354905),n=Sr(n,i,a,r,t[5],21,-57434055),r=Sr(r,n,i,a,t[12],6,1700485571),a=Sr(a,r,n,i,t[3],10,-1894986606),i=Sr(i,a,r,n,t[10],15,-1051523),n=Sr(n,i,a,r,t[1],21,-2054922799),r=Sr(r,n,i,a,t[8],6,1873313359),a=Sr(a,r,n,i,t[15],10,-30611744),i=Sr(i,a,r,n,t[6],15,-1560198380),n=Sr(n,i,a,r,t[13],21,1309151649),r=Sr(r,n,i,a,t[4],6,-145523070),a=Sr(a,r,n,i,t[11],10,-1120210379),i=Sr(i,a,r,n,t[2],15,718787259),n=Sr(n,i,a,r,t[9],21,-343485551),e[0]=Ur(r,e[0]),e[1]=Ur(n,e[1]),e[2]=Ur(i,e[2]),e[3]=Ur(a,e[3])}function vr(e,t,r,n,i,a){return t=Ur(Ur(t,e),Ur(n,a)),Ur(t<<i|t>>>32-i,r)}function Ar(e,t,r,n,i,a,s){return vr(t&r|~t&n,e,t,i,a,s)}function _r(e,t,r,n,i,a,s){return vr(t&n|r&~n,e,t,i,a,s)}function Er(e,t,r,n,i,a,s){return vr(t^r^n,e,t,i,a,s)}function Sr(e,t,r,n,i,a,s){return vr(r^(t|~n),e,t,i,a,s)}function Kr(e){const t=[];let r;for(r=0;r<64;r+=4)t[r>>2]=e.charCodeAt(r)+(e.charCodeAt(r+1)<<8)+(e.charCodeAt(r+2)<<16)+(e.charCodeAt(r+3)<<24);return t}const xr="0123456789abcdef".split("");function Pr(e){let t="",r=0;for(;r<4;r++)t+=xr[e>>8*r+4&15]+xr[e>>8*r&15];return t}function Ur(e,t){return e+t&4294967295}const Dr=W.getWebCrypto(),Cr=W.getNodeCrypto(),Ir=Cr&&Cr.getHashes();function Br(e){if(Cr&&Ir.includes(e))return async function(t){const r=Cr.createHash(e);return z(t,(e=>{r.update(e)}),(()=>new Uint8Array(r.digest())))}}function Tr(e,t){return async function(r,n=ne){if(s(r)&&(r=await j(r)),!W.isStream(r)&&Dr&&t&&r.length>=n.minBytesForWebCrypto)return new Uint8Array(await Dr.digest(t,r));const i=e();return z(r,(e=>{i.update(e)}),(()=>new Uint8Array(i.digest())))}}function zr(e,t){return async function(r,n=ne){if(s(r)&&(r=await j(r)),W.isStream(r)){const t=new e;return z(r,(e=>{t.process(e)}),(()=>t.finish().result))}return Dr&&t&&r.length>=n.minBytesForWebCrypto?new Uint8Array(await Dr.digest(t,r)):e.bytes(r)}}const Rr={md5:Br("md5")||async function(e){const t=function(e){const t=e.length,r=[1732584193,-271733879,-1732584194,271733878];let n;for(n=64;n<=e.length;n+=64)kr(r,Kr(e.substring(n-64,n)));e=e.substring(n-64);const i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(n=0;n<e.length;n++)i[n>>2]|=e.charCodeAt(n)<<(n%4<<3);if(i[n>>2]|=128<<(n%4<<3),n>55)for(kr(r,i),n=0;n<16;n++)i[n]=0;return i[14]=8*t,kr(r,i),r}(W.uint8ArrayToString(e));return W.hexToUint8Array(function(e){for(let t=0;t<e.length;t++)e[t]=Pr(e[t]);return e.join("")}(t))},sha1:Br("sha1")||zr($e,"SHA-1"),sha224:Br("sha224")||Tr(Ut),sha256:Br("sha256")||zr(Ye,"SHA-256"),sha384:Br("sha384")||Tr(ir,"SHA-384"),sha512:Br("sha512")||Tr(qt,"SHA-512"),ripemd:Br("ripemd160")||Tr(lr)};var Mr={md5:Rr.md5,sha1:Rr.sha1,sha224:Rr.sha224,sha256:Rr.sha256,sha384:Rr.sha384,sha512:Rr.sha512,ripemd:Rr.ripemd,digest:function(e,t){switch(e){case re.hash.md5:return this.md5(t);case re.hash.sha1:return this.sha1(t);case re.hash.ripemd:return this.ripemd(t);case re.hash.sha256:return this.sha256(t);case re.hash.sha384:return this.sha384(t);case re.hash.sha512:return this.sha512(t);case re.hash.sha224:return this.sha224(t);default:throw Error("Invalid hash function.")}},getHashByteLength:function(e){switch(e){case re.hash.md5:return 16;case re.hash.sha1:case re.hash.ripemd:return 20;case re.hash.sha256:return 32;case re.hash.sha384:return 48;case re.hash.sha512:return 64;case re.hash.sha224:return 28;default:throw Error("Invalid hash algorithm.")}},getBlockSize:function(e){switch(e){case re.hash.md5:case re.hash.sha1:case re.hash.ripemd:case re.hash.sha224:case re.hash.sha256:return 64;case re.hash.sha384:case re.hash.sha512:return 128;default:throw Error("Invalid hash algorithm.")}}};class Nr{static encrypt(e,t,r){return new Nr(t,r).encrypt(e)}static decrypt(e,t,r){return new Nr(t,r).decrypt(e)}constructor(e,t,r){this.aes=r||new Ee(e,t,!0,"CFB"),delete this.aes.padding}encrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}decrypt(e){return we(this.aes.AES_Decrypt_process(e),this.aes.AES_Decrypt_finish())}}var Or=tt((function(e){!function(e){var t=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t<e.length;t++)r[t]=e[t];return r},r=function(){throw Error("no PRNG")},n=new Uint8Array(32);n[0]=9;var i=t(),a=t([1]),s=t([56129,1]),o=t([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),c=t([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),h=t([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),u=t([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),l=t([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function y(e,t,r,n){return function(e,t,r,n,i){var a,s=0;for(a=0;a<i;a++)s|=e[t+a]^r[n+a];return(1&s-1>>>8)-1}(e,t,r,n,32)}function p(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function d(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function f(e,t,r){for(var n,i=~(r-1),a=0;a<16;a++)n=i&(e[a]^t[a]),e[a]^=n,t[a]^=n}function g(e,r){var n,i,a,s=t(),o=t();for(n=0;n<16;n++)o[n]=r[n];for(d(o),d(o),d(o),i=0;i<2;i++){for(s[0]=o[0]-65517,n=1;n<15;n++)s[n]=o[n]-65535-(s[n-1]>>16&1),s[n-1]&=65535;s[15]=o[15]-32767-(s[14]>>16&1),a=s[15]>>16&1,s[14]&=65535,f(o,s,1-a)}for(n=0;n<16;n++)e[2*n]=255&o[n],e[2*n+1]=o[n]>>8}function m(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return g(r,e),g(n,t),y(r,0,n,0)}function w(e){var t=new Uint8Array(32);return g(t,e),1&t[0]}function b(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function k(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function v(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function A(e,t,r){var n,i,a=0,s=0,o=0,c=0,h=0,u=0,l=0,y=0,p=0,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0,E=0,S=0,K=0,x=0,P=0,U=0,D=0,C=0,I=0,B=0,T=0,z=0,R=r[0],M=r[1],N=r[2],O=r[3],L=r[4],F=r[5],j=r[6],H=r[7],q=r[8],G=r[9],V=r[10],W=r[11],$=r[12],Z=r[13],Q=r[14],Y=r[15];a+=(n=t[0])*R,s+=n*M,o+=n*N,c+=n*O,h+=n*L,u+=n*F,l+=n*j,y+=n*H,p+=n*q,d+=n*G,f+=n*V,g+=n*W,m+=n*$,w+=n*Z,b+=n*Q,k+=n*Y,s+=(n=t[1])*R,o+=n*M,c+=n*N,h+=n*O,u+=n*L,l+=n*F,y+=n*j,p+=n*H,d+=n*q,f+=n*G,g+=n*V,m+=n*W,w+=n*$,b+=n*Z,k+=n*Q,v+=n*Y,o+=(n=t[2])*R,c+=n*M,h+=n*N,u+=n*O,l+=n*L,y+=n*F,p+=n*j,d+=n*H,f+=n*q,g+=n*G,m+=n*V,w+=n*W,b+=n*$,k+=n*Z,v+=n*Q,A+=n*Y,c+=(n=t[3])*R,h+=n*M,u+=n*N,l+=n*O,y+=n*L,p+=n*F,d+=n*j,f+=n*H,g+=n*q,m+=n*G,w+=n*V,b+=n*W,k+=n*$,v+=n*Z,A+=n*Q,_+=n*Y,h+=(n=t[4])*R,u+=n*M,l+=n*N,y+=n*O,p+=n*L,d+=n*F,f+=n*j,g+=n*H,m+=n*q,w+=n*G,b+=n*V,k+=n*W,v+=n*$,A+=n*Z,_+=n*Q,E+=n*Y,u+=(n=t[5])*R,l+=n*M,y+=n*N,p+=n*O,d+=n*L,f+=n*F,g+=n*j,m+=n*H,w+=n*q,b+=n*G,k+=n*V,v+=n*W,A+=n*$,_+=n*Z,E+=n*Q,S+=n*Y,l+=(n=t[6])*R,y+=n*M,p+=n*N,d+=n*O,f+=n*L,g+=n*F,m+=n*j,w+=n*H,b+=n*q,k+=n*G,v+=n*V,A+=n*W,_+=n*$,E+=n*Z,S+=n*Q,K+=n*Y,y+=(n=t[7])*R,p+=n*M,d+=n*N,f+=n*O,g+=n*L,m+=n*F,w+=n*j,b+=n*H,k+=n*q,v+=n*G,A+=n*V,_+=n*W,E+=n*$,S+=n*Z,K+=n*Q,x+=n*Y,p+=(n=t[8])*R,d+=n*M,f+=n*N,g+=n*O,m+=n*L,w+=n*F,b+=n*j,k+=n*H,v+=n*q,A+=n*G,_+=n*V,E+=n*W,S+=n*$,K+=n*Z,x+=n*Q,P+=n*Y,d+=(n=t[9])*R,f+=n*M,g+=n*N,m+=n*O,w+=n*L,b+=n*F,k+=n*j,v+=n*H,A+=n*q,_+=n*G,E+=n*V,S+=n*W,K+=n*$,x+=n*Z,P+=n*Q,U+=n*Y,f+=(n=t[10])*R,g+=n*M,m+=n*N,w+=n*O,b+=n*L,k+=n*F,v+=n*j,A+=n*H,_+=n*q,E+=n*G,S+=n*V,K+=n*W,x+=n*$,P+=n*Z,U+=n*Q,D+=n*Y,g+=(n=t[11])*R,m+=n*M,w+=n*N,b+=n*O,k+=n*L,v+=n*F,A+=n*j,_+=n*H,E+=n*q,S+=n*G,K+=n*V,x+=n*W,P+=n*$,U+=n*Z,D+=n*Q,C+=n*Y,m+=(n=t[12])*R,w+=n*M,b+=n*N,k+=n*O,v+=n*L,A+=n*F,_+=n*j,E+=n*H,S+=n*q,K+=n*G,x+=n*V,P+=n*W,U+=n*$,D+=n*Z,C+=n*Q,I+=n*Y,w+=(n=t[13])*R,b+=n*M,k+=n*N,v+=n*O,A+=n*L,_+=n*F,E+=n*j,S+=n*H,K+=n*q,x+=n*G,P+=n*V,U+=n*W,D+=n*$,C+=n*Z,I+=n*Q,B+=n*Y,b+=(n=t[14])*R,k+=n*M,v+=n*N,A+=n*O,_+=n*L,E+=n*F,S+=n*j,K+=n*H,x+=n*q,P+=n*G,U+=n*V,D+=n*W,C+=n*$,I+=n*Z,B+=n*Q,T+=n*Y,k+=(n=t[15])*R,s+=38*(A+=n*N),o+=38*(_+=n*O),c+=38*(E+=n*L),h+=38*(S+=n*F),u+=38*(K+=n*j),l+=38*(x+=n*H),y+=38*(P+=n*q),p+=38*(U+=n*G),d+=38*(D+=n*V),f+=38*(C+=n*W),g+=38*(I+=n*$),m+=38*(B+=n*Z),w+=38*(T+=n*Q),b+=38*(z+=n*Y),a=(n=(a+=38*(v+=n*M))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),s=(n=s+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),k=(n=k+i+65535)-65536*(i=Math.floor(n/65536)),a=(n=(a+=i-1+37*(i-1))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),s=(n=s+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),k=(n=k+i+65535)-65536*(i=Math.floor(n/65536)),a+=i-1+37*(i-1),e[0]=a,e[1]=s,e[2]=o,e[3]=c,e[4]=h,e[5]=u,e[6]=l,e[7]=y,e[8]=p,e[9]=d,e[10]=f,e[11]=g,e[12]=m,e[13]=w,e[14]=b,e[15]=k}function _(e,t){A(e,t,t)}function E(e,r){var n,i=t();for(n=0;n<16;n++)i[n]=r[n];for(n=253;n>=0;n--)_(i,i),2!==n&&4!==n&&A(i,i,r);for(n=0;n<16;n++)e[n]=i[n]}function S(e,r,n){var i,a,o=new Uint8Array(32),c=new Float64Array(80),h=t(),u=t(),l=t(),y=t(),p=t(),d=t();for(a=0;a<31;a++)o[a]=r[a];for(o[31]=127&r[31]|64,o[0]&=248,b(c,n),a=0;a<16;a++)u[a]=c[a],y[a]=h[a]=l[a]=0;for(h[0]=y[0]=1,a=254;a>=0;--a)f(h,u,i=o[a>>>3]>>>(7&a)&1),f(l,y,i),k(p,h,l),v(h,h,l),k(l,u,y),v(u,u,y),_(y,p),_(d,h),A(h,l,h),A(l,u,p),k(p,h,l),v(h,h,l),_(u,h),v(l,y,d),A(h,l,s),k(h,h,y),A(l,l,h),A(h,y,d),A(y,u,c),_(u,p),f(h,u,i),f(l,y,i);for(a=0;a<16;a++)c[a+16]=h[a],c[a+32]=l[a],c[a+48]=u[a],c[a+64]=y[a];var m=c.subarray(32),w=c.subarray(16);return E(m,m),A(w,w,m),g(e,w),0}function K(e,t){return S(e,t,n)}function x(e,r){var n=t(),i=t(),a=t(),s=t(),o=t(),h=t(),u=t(),l=t(),y=t();v(n,e[1],e[0]),v(y,r[1],r[0]),A(n,n,y),k(i,e[0],e[1]),k(y,r[0],r[1]),A(i,i,y),A(a,e[3],r[3]),A(a,a,c),A(s,e[2],r[2]),k(s,s,s),v(o,i,n),v(h,s,a),k(u,s,a),k(l,i,n),A(e[0],o,h),A(e[1],l,u),A(e[2],u,h),A(e[3],o,l)}function P(e,t,r){var n;for(n=0;n<4;n++)f(e[n],t[n],r)}function U(e,r){var n=t(),i=t(),a=t();E(a,r[2]),A(n,r[0],a),A(i,r[1],a),g(e,i),e[31]^=w(n)<<7}function D(e,t,r){var n,s;for(p(e[0],i),p(e[1],a),p(e[2],a),p(e[3],i),s=255;s>=0;--s)P(e,t,n=r[s/8|0]>>(7&s)&1),x(t,e),x(e,e),P(e,t,n)}function C(e,r){var n=[t(),t(),t(),t()];p(n[0],h),p(n[1],u),p(n[2],a),A(n[3],h,u),D(e,n,r)}function I(n,i,a){var s,o,c=[t(),t(),t(),t()];for(a||r(i,32),(s=e.hash(i.subarray(0,32)))[0]&=248,s[31]&=127,s[31]|=64,C(c,s),U(n,c),o=0;o<32;o++)i[o+32]=n[o];return 0}var B=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 T(e,t){var r,n,i,a;for(n=63;n>=32;--n){for(r=0,i=n-32,a=n-12;i<a;++i)t[i]+=r-16*t[n]*B[i-(n-32)],r=Math.floor((t[i]+128)/256),t[i]-=256*r;t[i]+=r,t[n]=0}for(r=0,i=0;i<32;i++)t[i]+=r-(t[31]>>4)*B[i],r=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=r*B[i];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function z(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;T(e,r)}function R(e,r){var n=t(),s=t(),c=t(),h=t(),u=t(),y=t(),d=t();return p(e[2],a),b(e[1],r),_(c,e[1]),A(h,c,o),v(c,c,e[2]),k(h,e[2],h),_(u,h),_(y,u),A(d,y,u),A(n,d,c),A(n,n,h),function(e,r){var n,i=t();for(n=0;n<16;n++)i[n]=r[n];for(n=250;n>=0;n--)_(i,i),1!==n&&A(i,i,r);for(n=0;n<16;n++)e[n]=i[n]}(n,n),A(n,n,c),A(n,n,h),A(n,n,h),A(e[0],n,h),_(s,e[0]),A(s,s,h),m(s,c)&&A(e[0],e[0],l),_(s,e[0]),A(s,s,h),m(s,c)?-1:(w(e[0])===r[31]>>7&&v(e[0],i,e[0]),A(e[3],e[0],e[1]),0)}var M=64;function N(){for(var e=0;e<arguments.length;e++)if(!(arguments[e]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function O(e){for(var t=0;t<e.length;t++)e[t]=0}e.scalarMult=function(e,t){if(N(e,t),32!==e.length)throw Error("bad n size");if(32!==t.length)throw Error("bad p size");var r=new Uint8Array(32);return S(r,e,t),r},e.box={},e.box.keyPair=function(){var e,t,n=new Uint8Array(32),i=new Uint8Array(32);return e=n,r(t=i,32),K(e,t),{publicKey:n,secretKey:i}},e.box.keyPair.fromSecretKey=function(e){if(N(e),32!==e.length)throw Error("bad secret key size");var t=new Uint8Array(32);return K(t,e),{publicKey:t,secretKey:new Uint8Array(e)}},e.sign=function(r,n){if(N(r,n),64!==n.length)throw Error("bad secret key size");var i=new Uint8Array(M+r.length);return function(r,n,i,a){var s,o,c,h,u,l=new Float64Array(64),y=[t(),t(),t(),t()];(s=e.hash(a.subarray(0,32)))[0]&=248,s[31]&=127,s[31]|=64;var p=i+64;for(h=0;h<i;h++)r[64+h]=n[h];for(h=0;h<32;h++)r[32+h]=s[32+h];for(z(c=e.hash(r.subarray(32,p))),C(y,c),U(r,y),h=32;h<64;h++)r[h]=a[h];for(z(o=e.hash(r.subarray(0,p))),h=0;h<64;h++)l[h]=0;for(h=0;h<32;h++)l[h]=c[h];for(h=0;h<32;h++)for(u=0;u<32;u++)l[h+u]+=o[h]*s[u];T(r.subarray(32),l)}(i,r,r.length,n),i},e.sign.detached=function(t,r){for(var n=e.sign(t,r),i=new Uint8Array(M),a=0;a<i.length;a++)i[a]=n[a];return i},e.sign.detached.verify=function(r,n,i){if(N(r,n,i),n.length!==M)throw Error("bad signature size");if(32!==i.length)throw Error("bad public key size");var a,s=new Uint8Array(M+r.length),o=new Uint8Array(M+r.length);for(a=0;a<M;a++)s[a]=n[a];for(a=0;a<r.length;a++)s[a+M]=r[a];return function(r,n,i,a){var s,o,c=new Uint8Array(32),h=[t(),t(),t(),t()],u=[t(),t(),t(),t()];if(i<64)return-1;if(R(u,a))return-1;for(s=0;s<i;s++)r[s]=n[s];for(s=0;s<32;s++)r[s+32]=a[s];if(z(o=e.hash(r.subarray(0,i))),D(h,u,o),C(u,n.subarray(32)),x(h,u),U(c,h),i-=64,y(n,0,c,0)){for(s=0;s<i;s++)r[s]=0;return-1}for(s=0;s<i;s++)r[s]=n[s+64];return i}(o,s,s.length,i)>=0},e.sign.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(64);return I(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(N(e),64!==e.length)throw Error("bad secret key size");for(var t=new Uint8Array(32),r=0;r<t.length;r++)t[r]=e[32+r];return{publicKey:t,secretKey:new Uint8Array(e)}},e.sign.keyPair.fromSeed=function(e){if(N(e),32!==e.length)throw Error("bad seed size");for(var t=new Uint8Array(32),r=new Uint8Array(64),n=0;n<32;n++)r[n]=e[n];return I(t,r,!0),{publicKey:t,secretKey:r}},e.setPRNG=function(e){r=e},function(){var t="undefined"!=typeof self?self.crypto||self.msCrypto:null;if(t&&t.getRandomValues){e.setPRNG((function(e,r){var n,i=new Uint8Array(r);for(n=0;n<r;n+=65536)t.getRandomValues(i.subarray(n,n+Math.min(r-n,65536)));for(n=0;n<r;n++)e[n]=i[n];O(i)}))}else(t=void 0)&&t.randomBytes&&e.setPRNG((function(e,r){var n,i=t.randomBytes(r);for(n=0;n<r;n++)e[n]=i[n];O(i)}))}()}(e.exports?e.exports:self.nacl=self.nacl||{})}));const Lr=W.getNodeCrypto();async function Fr(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto&&crypto.getRandomValues)crypto.getRandomValues(t);else if(Lr){const e=Lr.randomBytes(t.length);t.set(e)}else{if(!Hr.buffer)throw Error("No secure random number generator available.");await Hr.get(t)}return t}async function jr(e,t){const r=await W.getBigInteger();if(t.lt(e))throw Error("Illegal parameter value: max <= min");const n=t.sub(e),i=n.byteLength();return new r(await Fr(i+8)).mod(n).add(e)}const Hr=new class{constructor(){this.buffer=null,this.size=null,this.callback=null}init(e,t){this.buffer=new Uint8Array(e),this.size=0,this.callback=t}set(e){if(!this.buffer)throw Error("RandomBuffer is not initialized");if(!(e instanceof Uint8Array))throw Error("Invalid type: buf not an Uint8Array");const t=this.buffer.length-this.size;e.length>t&&(e=e.subarray(0,t)),this.buffer.set(e,this.size),this.size+=e.length}async get(e){if(!this.buffer)throw Error("RandomBuffer is not initialized");if(!(e instanceof Uint8Array))throw Error("Invalid type: buf not an Uint8Array");if(this.size<e.length){if(!this.callback)throw Error("Random number buffer depleted");return await this.callback(),this.get(e)}for(let t=0;t<e.length;t++)e[t]=this.buffer[--this.size],this.buffer[this.size]=0}};var qr=/*#__PURE__*/Object.freeze({__proto__:null,getRandomBytes:Fr,getRandomBigInteger:jr,randomBuffer:Hr});async function Gr(e,t,r){const n=await W.getBigInteger(),i=new n(1),a=i.leftShift(new n(e-1)),s=new n(30),o=[1,6,5,4,3,2,1,4,3,2,1,2,1,4,3,2,1,2,1,4,3,2,1,6,5,4,3,2,1,2],c=await jr(a,a.leftShift(i));let h=c.mod(s).toNumber();do{c.iadd(new n(o[h])),h=(h+o[h])%o.length,c.bitLength()>e&&(c.imod(a.leftShift(i)).iadd(a),h=c.mod(s).toNumber())}while(!await Vr(c,t,r));return c}async function Vr(e,t,r){return!(t&&!e.dec().gcd(t).isOne())&&(!!await async function(e){const t=await W.getBigInteger();return Wr.every((r=>0!==e.mod(new t(r))))}(e)&&(!!await async function(e,t){const r=await W.getBigInteger();return(t=t||new r(2)).modExp(e.dec(),e).isOne()}(e)&&!!await async function(e,t,r){const n=await W.getBigInteger(),i=e.bitLength();t||(t=Math.max(1,i/48|0));const a=e.dec();let s=0;for(;!a.getBit(s);)s++;const o=e.rightShift(new n(s));for(;t>0;t--){let t,i=(r?r():await jr(new n(2),a)).modExp(o,e);if(!i.isOne()&&!i.equal(a)){for(t=1;t<s;t++){if(i=i.mul(i).mod(e),i.isOne())return!1;if(i.equal(a))break}if(t===s)return!1}}return!0}(e,r)))}const Wr=[7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999];const $r=[];async function Zr(e,t){const r=e.length;if(r>t-11)throw Error("Message too long");const n=await async function(e){const t=new Uint8Array(e);let r=0;for(;r<e;){const n=await Fr(e-r);for(let e=0;e<n.length;e++)0!==n[e]&&(t[r++]=n[e])}return t}(t-r-3),i=new Uint8Array(t);return i[1]=2,i.set(n,2),i.set(e,t-r),i}function Qr(e,t){let r=2,n=1;for(let t=r;t<e.length;t++)n&=0!==e[t],r+=n;const i=r-2,a=e.subarray(r+1),s=0===e[0]&2===e[1]&i>=8&!n;if(t)return W.selectUint8Array(s,a,t);if(s)return a;throw Error("Decryption error")}async function Yr(e,t,r){let n;if(t.length!==Mr.getHashByteLength(e))throw Error("Invalid hash length");const i=new Uint8Array($r[e].length);for(n=0;n<$r[e].length;n++)i[n]=$r[e][n];const a=i.length+t.length;if(r<a+11)throw Error("Intended encoded message length too short");const s=new Uint8Array(r-a-3).fill(255),o=new Uint8Array(r);return o[1]=1,o.set(s,2),o.set(i,r-a),o.set(t,r-t.length),o}$r[1]=[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],$r[2]=[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],$r[3]=[48,33,48,9,6,5,43,36,3,2,1,5,0,4,20],$r[8]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],$r[9]=[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],$r[10]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64],$r[11]=[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28];var Xr=/*#__PURE__*/Object.freeze({__proto__:null,emeEncode:Zr,emeDecode:Qr,emsaEncode:Yr});const Jr=W.getWebCrypto(),en=W.getNodeCrypto(),tn=void 0,rn=en?tn.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())})):void 0,nn=en?tn.define("RSAPubliceKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())})):void 0;var an=/*#__PURE__*/Object.freeze({__proto__:null,sign:async function(e,t,r,n,i,a,s,o,c){if(t&&!W.isStream(t))if(W.getWebCrypto())try{return await async function(e,t,r,n,i,a,s,o){const c=await async function(e,t,r,n,i,a){const s=await W.getBigInteger(),o=new s(n),c=new s(i),h=new s(r);let u=h.mod(c.dec()),l=h.mod(o.dec());return l=l.toUint8Array(),u=u.toUint8Array(),{kty:"RSA",n:ee(e,!0),e:ee(t,!0),d:ee(r,!0),p:ee(i,!0),q:ee(n,!0),dp:ee(u,!0),dq:ee(l,!0),qi:ee(a,!0),ext:!0}}(r,n,i,a,s,o),h={name:"RSASSA-PKCS1-v1_5",hash:{name:e}},u=await Jr.importKey("jwk",c,h,!1,["sign"]);return new Uint8Array(await Jr.sign("RSASSA-PKCS1-v1_5",u,t))}(re.read(re.webHash,e),t,r,n,i,a,s,o)}catch(e){W.printDebugError(e)}else if(W.getNodeCrypto())return async function(e,t,r,n,i,a,s,o){const{default:c}=await import("./bn.min.mjs"),h=new c(a),u=new c(s),l=new c(i),y=l.mod(u.subn(1)),p=l.mod(h.subn(1)),d=en.createSign(re.read(re.hash,e));d.write(t),d.end();const f={version:0,modulus:new c(r),publicExponent:new c(n),privateExponent:new c(i),prime1:new c(s),prime2:new c(a),exponent1:y,exponent2:p,coefficient:new c(o)};if(void 0!==en.createPrivateKey){const e=rn.encode(f,"der");return new Uint8Array(d.sign({key:e,format:"der",type:"pkcs1"}))}const g=rn.encode(f,"pem",{label:"RSA PRIVATE KEY"});return new Uint8Array(d.sign(g))}(e,t,r,n,i,a,s,o);return async function(e,t,r,n){const i=await W.getBigInteger();t=new i(t);const a=new i(await Yr(e,n,t.byteLength()));if(r=new i(r),a.gte(t))throw Error("Message size cannot exceed modulus size");return a.modExp(r,t).toUint8Array("be",t.byteLength())}(e,r,i,c)},verify:async function(e,t,r,n,i,a){if(t&&!W.isStream(t))if(W.getWebCrypto())try{return await async function(e,t,r,n,i){const a=function(e,t){return{kty:"RSA",n:ee(e,!0),e:ee(t,!0),ext:!0}}(n,i),s=await Jr.importKey("jwk",a,{name:"RSASSA-PKCS1-v1_5",hash:{name:e}},!1,["verify"]);return Jr.verify("RSASSA-PKCS1-v1_5",s,r,t)}(re.read(re.webHash,e),t,r,n,i)}catch(e){W.printDebugError(e)}else if(W.getNodeCrypto())return async function(e,t,r,n,i){const{default:a}=await import("./bn.min.mjs"),s=en.createVerify(re.read(re.hash,e));s.write(t),s.end();const o={modulus:new a(n),publicExponent:new a(i)};let c;if(void 0!==en.createPrivateKey){c={key:nn.encode(o,"der"),format:"der",type:"pkcs1"}}else c=nn.encode(o,"pem",{label:"RSA PUBLIC KEY"});try{return await s.verify(c,r)}catch(e){return!1}}(e,t,r,n,i);return async function(e,t,r,n,i){const a=await W.getBigInteger();if(r=new a(r),t=new a(t),n=new a(n),t.gte(r))throw Error("Signature size cannot exceed modulus size");const s=t.modExp(n,r).toUint8Array("be",r.byteLength()),o=await Yr(e,i,r.byteLength());return W.equalsUint8Array(s,o)}(e,r,n,i,a)},encrypt:async function(e,t,r){return W.getNodeCrypto()?async function(e,t,r){const{default:n}=await import("./bn.min.mjs"),i={modulus:new n(t),publicExponent:new n(r)};let a;if(void 0!==en.createPrivateKey){a={key:nn.encode(i,"der"),format:"der",type:"pkcs1",padding:en.constants.RSA_PKCS1_PADDING}}else{a={key:nn.encode(i,"pem",{label:"RSA PUBLIC KEY"}),padding:en.constants.RSA_PKCS1_PADDING}}return new Uint8Array(en.publicEncrypt(a,e))}(e,t,r):async function(e,t,r){const n=await W.getBigInteger();if(t=new n(t),e=new n(await Zr(e,t.byteLength())),r=new n(r),e.gte(t))throw Error("Message size cannot exceed modulus size");return e.modExp(r,t).toUint8Array("be",t.byteLength())}(e,t,r)},decrypt:async function(e,t,r,n,i,a,s,o){return W.getNodeCrypto()?async function(e,t,r,n,i,a,s,o){const{default:c}=await import("./bn.min.mjs"),h=new c(i),u=new c(a),l=new c(n),y=l.mod(u.subn(1)),p=l.mod(h.subn(1)),d={version:0,modulus:new c(t),publicExponent:new c(r),privateExponent:new c(n),prime1:new c(a),prime2:new c(i),exponent1:y,exponent2:p,coefficient:new c(s)};let f;if(void 0!==en.createPrivateKey){f={key:rn.encode(d,"der"),format:"der",type:"pkcs1",padding:en.constants.RSA_PKCS1_PADDING}}else{f={key:rn.encode(d,"pem",{label:"RSA PRIVATE KEY"}),padding:en.constants.RSA_PKCS1_PADDING}}try{return new Uint8Array(en.privateDecrypt(f,e))}catch(e){if(o)return o;throw Error("Decryption error")}}(e,t,r,n,i,a,s,o):async function(e,t,r,n,i,a,s,o){const c=await W.getBigInteger();if(e=new c(e),t=new c(t),r=new c(r),n=new c(n),i=new c(i),a=new c(a),s=new c(s),e.gte(t))throw Error("Data too large.");const h=n.mod(a.dec()),u=n.mod(i.dec()),l=(await jr(new c(2),t)).mod(t),y=l.modInv(t).modExp(r,t),p=(e=e.mul(y).mod(t)).modExp(u,i),d=e.modExp(h,a);let f=s.mul(d.sub(p)).mod(a).mul(i).add(p);return f=f.mul(l).mod(t),Qr(f.toUint8Array("be",t.byteLength()),o)}(e,t,r,n,i,a,s,o)},generate:async function(e,t){if(t=new(await W.getBigInteger())(t),W.getWebCrypto()){const r={name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:t.toUint8Array(),hash:{name:"SHA-1"}},n=await Jr.generateKey(r,!0,["sign","verify"]),i=await Jr.exportKey("jwk",n.privateKey);return{n:J(i.n),e:t.toUint8Array(),d:J(i.d),p:J(i.q),q:J(i.p),u:J(i.qi)}}if(W.getNodeCrypto()&&en.generateKeyPair&&rn){const r={modulusLength:e,publicExponent:t.toNumber(),publicKeyEncoding:{type:"pkcs1",format:"der"},privateKeyEncoding:{type:"pkcs1",format:"der"}},n=await new Promise(((e,t)=>en.generateKeyPair("rsa",r,((r,n,i)=>{r?t(r):e(rn.decode(i,"der"))}))));return{n:n.modulus.toArrayLike(Uint8Array),e:n.publicExponent.toArrayLike(Uint8Array),d:n.privateExponent.toArrayLike(Uint8Array),p:n.prime2.toArrayLike(Uint8Array),q:n.prime1.toArrayLike(Uint8Array),u:n.coefficient.toArrayLike(Uint8Array)}}let r,n,i;do{n=await Gr(e-(e>>1),t,40),r=await Gr(e>>1,t,40),i=r.mul(n)}while(i.bitLength()!==e);const a=r.dec().imul(n.dec());return n.lt(r)&&([r,n]=[n,r]),{n:i.toUint8Array(),e:t.toUint8Array(),d:t.modInv(a).toUint8Array(),p:r.toUint8Array(),q:n.toUint8Array(),u:r.modInv(n).toUint8Array()}},validateParams:async function(e,t,r,n,i,a){const s=await W.getBigInteger();if(e=new s(e),n=new s(n),i=new s(i),!n.mul(i).equal(e))return!1;const o=new s(2);if(a=new s(a),!n.mul(a).mod(i).isOne())return!1;t=new s(t),r=new s(r);const c=new s(Math.floor(e.bitLength()/3)),h=await jr(o,o.leftShift(c)),u=h.mul(r).mul(t);return!(!u.mod(n.dec()).equal(h)||!u.mod(i.dec()).equal(h))}});var sn=/*#__PURE__*/Object.freeze({__proto__:null,encrypt:async function(e,t,r,n){const i=await W.getBigInteger();t=new i(t),r=new i(r),n=new i(n);const a=new i(await Zr(e,t.byteLength())),s=await jr(new i(1),t.dec());return{c1:r.modExp(s,t).toUint8Array(),c2:n.modExp(s,t).imul(a).imod(t).toUint8Array()}},decrypt:async function(e,t,r,n,i){const a=await W.getBigInteger();return e=new a(e),t=new a(t),r=new a(r),n=new a(n),Qr(e.modExp(n,r).modInv(r).imul(t).imod(r).toUint8Array("be",r.byteLength()),i)},validateParams:async function(e,t,r,n){const i=await W.getBigInteger();e=new i(e),t=new i(t),r=new i(r);const a=new i(1);if(t.lte(a)||t.gte(e))return!1;const s=new i(e.bitLength()),o=new i(1023);if(s.lt(o))return!1;if(!t.modExp(e.dec(),e).isOne())return!1;let c=t;const h=new i(1),u=new i(2).leftShift(new i(17));for(;h.lt(u);){if(c=c.mul(t).imod(e),c.isOne())return!1;h.iinc()}n=new i(n);const l=new i(2),y=await jr(l.leftShift(s.dec()),l.leftShift(s)),p=e.dec().imul(y).iadd(n);return!!r.equal(t.modExp(p,e))}});class on{constructor(e){if(e instanceof on)this.oid=e.oid;else if(W.isArray(e)||W.isUint8Array(e)){if(6===(e=new Uint8Array(e))[0]){if(e[1]!==e.length-2)throw Error("Length mismatch in DER encoded oid");e=e.subarray(2)}this.oid=e}else this.oid=""}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.oid=e.subarray(1,1+t),1+this.oid.length}throw Error("Invalid oid")}write(){return W.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return W.uint8ArrayToHex(this.oid)}getName(){const e=this.toHex();if(re.curve[e])return re.write(re.curve,e);throw Error("Unknown curve object identifier.")}}function cn(e,t){return e.keyPair({priv:t})}function hn(e,t){const r=e.keyPair({pub:t});if(!0!==r.validate().result)throw Error("Invalid elliptic public key");return r}async function un(e){if(!ne.useIndutnyElliptic)throw Error("This curve is only supported in the full build of OpenPGP.js");const{default:t}=await import("./elliptic.min.mjs");return new t.ec(e)}function ln(e){let t,r=0;const n=e[0];return n<192?([r]=e,t=1):n<255?(r=(e[0]-192<<8)+e[1]+192,t=2):255===n&&(r=W.readNumber(e.subarray(1,5)),t=5),{len:r,offset:t}}function yn(e){return e<192?new Uint8Array([e]):e>191&&e<8384?new Uint8Array([192+(e-192>>8),e-192&255]):W.concatUint8Array([new Uint8Array([255]),W.writeNumber(e,4)])}function pn(e){if(e<0||e>30)throw Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+e])}function dn(e){return new Uint8Array([192|e])}function fn(e,t){return W.concatUint8Array([dn(e),yn(t)])}function gn(e){return[re.packet.literalData,re.packet.compressedData,re.packet.symmetricallyEncryptedData,re.packet.symEncryptedIntegrityProtectedData,re.packet.aeadEncryptedData].includes(e)}async function mn(e,t){const r=D(e);let n,i;try{const s=await r.peekBytes(2);if(!s||s.length<2||0==(128&s[0]))throw Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");const o=await r.readByte();let c,h,u=-1,l=-1;l=0,0!=(64&o)&&(l=1),l?u=63&o:(u=(63&o)>>2,h=3&o);const y=gn(u);let p,d=null;if(y){if("array"===W.isStream(e)){const e=new a;n=C(e),d=e}else{const e=new E;n=C(e.writable),d=e.readable}i=t({tag:u,packet:d})}else d=[];do{if(l){const e=await r.readByte();if(p=!1,e<192)c=e;else if(e>=192&&e<224)c=(e-192<<8)+await r.readByte()+192;else if(e>223&&e<255){if(c=1<<(31&e),p=!0,!y)throw new TypeError("This packet type does not support partial lengths.")}else c=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte()}else switch(h){case 0:c=await r.readByte();break;case 1:c=await r.readByte()<<8|await r.readByte();break;case 2:c=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte();break;default:c=1/0}if(c>0){let e=0;for(;;){n&&await n.ready;const{done:t,value:i}=await r.read();if(t){if(c===1/0)break;throw Error("Unexpected end of packet")}const a=c===1/0?i:i.subarray(0,c-e);if(n?await n.write(a):d.push(a),e+=i.length,e>=c){r.unshift(i.subarray(c-e+i.length));break}}}}while(p);const f=await r.peekBytes(y?1/0:2);return n?(await n.ready,await n.close()):(d=W.concatUint8Array(d),await t({tag:u,packet:d})),!f||!f.length}catch(e){if(n)return await n.abort(e),!0;throw e}finally{n&&await i,r.releaseLock()}}class wn extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,wn),this.name="UnsupportedError"}}class bn{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}}const kn=W.getWebCrypto(),vn=W.getNodeCrypto(),An={p256:"P-256",p384:"P-384",p521:"P-521"},_n=vn?vn.getCurves():[],En=vn?{secp256k1:_n.includes("secp256k1")?"secp256k1":void 0,p256:_n.includes("prime256v1")?"prime256v1":void 0,p384:_n.includes("secp384r1")?"secp384r1":void 0,p521:_n.includes("secp521r1")?"secp521r1":void 0,ed25519:_n.includes("ED25519")?"ED25519":void 0,curve25519:_n.includes("X25519")?"X25519":void 0,brainpoolP256r1:_n.includes("brainpoolP256r1")?"brainpoolP256r1":void 0,brainpoolP384r1:_n.includes("brainpoolP384r1")?"brainpoolP384r1":void 0,brainpoolP512r1:_n.includes("brainpoolP512r1")?"brainpoolP512r1":void 0}:{},Sn={p256:{oid:[6,8,42,134,72,206,61,3,1,7],keyType:re.publicKey.ecdsa,hash:re.hash.sha256,cipher:re.symmetric.aes128,node:En.p256,web:An.p256,payloadSize:32,sharedSize:256},p384:{oid:[6,5,43,129,4,0,34],keyType:re.publicKey.ecdsa,hash:re.hash.sha384,cipher:re.symmetric.aes192,node:En.p384,web:An.p384,payloadSize:48,sharedSize:384},p521:{oid:[6,5,43,129,4,0,35],keyType:re.publicKey.ecdsa,hash:re.hash.sha512,cipher:re.symmetric.aes256,node:En.p521,web:An.p521,payloadSize:66,sharedSize:528},secp256k1:{oid:[6,5,43,129,4,0,10],keyType:re.publicKey.ecdsa,hash:re.hash.sha256,cipher:re.symmetric.aes128,node:En.secp256k1,payloadSize:32},ed25519:{oid:[6,9,43,6,1,4,1,218,71,15,1],keyType:re.publicKey.eddsa,hash:re.hash.sha512,node:!1,payloadSize:32},curve25519:{oid:[6,10,43,6,1,4,1,151,85,1,5,1],keyType:re.publicKey.ecdh,hash:re.hash.sha256,cipher:re.symmetric.aes128,node:!1,payloadSize:32},brainpoolP256r1:{oid:[6,9,43,36,3,3,2,8,1,1,7],keyType:re.publicKey.ecdsa,hash:re.hash.sha256,cipher:re.symmetric.aes128,node:En.brainpoolP256r1,payloadSize:32},brainpoolP384r1:{oid:[6,9,43,36,3,3,2,8,1,1,11],keyType:re.publicKey.ecdsa,hash:re.hash.sha384,cipher:re.symmetric.aes192,node:En.brainpoolP384r1,payloadSize:48},brainpoolP512r1:{oid:[6,9,43,36,3,3,2,8,1,1,13],keyType:re.publicKey.ecdsa,hash:re.hash.sha512,cipher:re.symmetric.aes256,node:En.brainpoolP512r1,payloadSize:64}};class Kn{constructor(e,t){try{(W.isArray(e)||W.isUint8Array(e))&&(e=new on(e)),e instanceof on&&(e=e.getName()),this.name=re.write(re.curve,e)}catch(e){throw new wn("Unknown curve")}t=t||Sn[this.name],this.keyType=t.keyType,this.oid=t.oid,this.hash=t.hash,this.cipher=t.cipher,this.node=t.node&&Sn[this.name],this.web=t.web&&Sn[this.name],this.payloadSize=t.payloadSize,this.web&&W.getWebCrypto()?this.type="web":this.node&&W.getNodeCrypto()?this.type="node":"curve25519"===this.name?this.type="curve25519":"ed25519"===this.name&&(this.type="ed25519")}async genKeyPair(){let e;switch(this.type){case"web":try{return await async function(e){const t=await kn.generateKey({name:"ECDSA",namedCurve:An[e]},!0,["sign","verify"]),r=await kn.exportKey("jwk",t.privateKey);return{publicKey:Pn(await kn.exportKey("jwk",t.publicKey)),privateKey:J(r.d)}}(this.name)}catch(e){W.printDebugError("Browser did not support generating ec key "+e.message);break}case"node":return async function(e){const t=vn.createECDH(En[e]);return await t.generateKeys(),{publicKey:new Uint8Array(t.getPublicKey()),privateKey:new Uint8Array(t.getPrivateKey())}}(this.name);case"curve25519":{const t=await Fr(32);t[0]=127&t[0]|64,t[31]&=248;const r=t.slice().reverse();e=Or.box.keyPair.fromSecretKey(r);return{publicKey:W.concatUint8Array([new Uint8Array([64]),e.publicKey]),privateKey:t}}case"ed25519":{const e=await Fr(32),t=Or.sign.keyPair.fromSeed(e);return{publicKey:W.concatUint8Array([new Uint8Array([64]),t.publicKey]),privateKey:e}}}const t=await un(this.name);return e=await t.genKeyPair({entropy:W.uint8ArrayToString(await Fr(32))}),{publicKey:new Uint8Array(e.getPublic("array",!1)),privateKey:e.getPrivate().toArrayLike(Uint8Array)}}}async function xn(e,t,r,n){const i={p256:!0,p384:!0,p521:!0,secp256k1:!0,curve25519:e===re.publicKey.ecdh,brainpoolP256r1:!0,brainpoolP384r1:!0,brainpoolP512r1:!0},a=t.getName();if(!i[a])return!1;if("curve25519"===a){n=n.slice().reverse();const{publicKey:e}=Or.box.keyPair.fromSecretKey(n);r=new Uint8Array(r);const t=new Uint8Array([64,...e]);return!!W.equalsUint8Array(t,r)}const s=await un(a);try{r=hn(s,r).getPublic()}catch(e){return!1}return!!cn(s,n).getPublic().eq(r)}function Pn(e){const t=J(e.x),r=J(e.y),n=new Uint8Array(t.length+r.length+1);return n[0]=4,n.set(t,1),n.set(r,t.length+1),n}function Un(e,t,r){const n=e,i=r.slice(1,n+1),a=r.slice(n+1,2*n+1);return{kty:"EC",crv:t,x:ee(i,!0),y:ee(a,!0),ext:!0}}function Dn(e,t,r,n){const i=Un(e,t,r);return i.d=ee(n,!0),i}const Cn=W.getWebCrypto(),In=W.getNodeCrypto();async function Bn(e,t,r,n,i,a){const s=new Kn(e);if(r&&!W.isStream(r)){const e={publicKey:n,privateKey:i};switch(s.type){case"web":try{return await async function(e,t,r,n){const i=e.payloadSize,a=Dn(e.payloadSize,An[e.name],n.publicKey,n.privateKey),s=await Cn.importKey("jwk",a,{name:"ECDSA",namedCurve:An[e.name],hash:{name:re.read(re.webHash,e.hash)}},!1,["sign"]),o=new Uint8Array(await Cn.sign({name:"ECDSA",namedCurve:An[e.name],hash:{name:re.read(re.webHash,t)}},s,r));return{r:o.slice(0,i),s:o.slice(i,i<<1)}}(s,t,r,e)}catch(e){if("p521"!==s.name&&("DataError"===e.name||"OperationError"===e.name))throw e;W.printDebugError("Browser did not support signing: "+e.message)}break;case"node":{const n=await async function(e,t,r,n){const i=In.createSign(re.read(re.hash,t));i.write(r),i.end();const a=Mn.encode({version:1,parameters:e.oid,privateKey:Array.from(n.privateKey),publicKey:{unused:0,data:Array.from(n.publicKey)}},"pem",{label:"EC PRIVATE KEY"});return Rn.decode(i.sign(a),"der")}(s,t,r,e);return{r:n.r.toArrayLike(Uint8Array),s:n.s.toArrayLike(Uint8Array)}}}}return async function(e,t,r){const n=await un(e.name),i=cn(n,r).sign(t);return{r:i.r.toArrayLike(Uint8Array),s:i.s.toArrayLike(Uint8Array)}}(s,a,i)}async function Tn(e,t,r,n,i,a){const s=new Kn(e);if(n&&!W.isStream(n))switch(s.type){case"web":try{return await async function(e,t,{r,s:n},i,a){const s=Un(e.payloadSize,An[e.name],a),o=await Cn.importKey("jwk",s,{name:"ECDSA",namedCurve:An[e.name],hash:{name:re.read(re.webHash,e.hash)}},!1,["verify"]),c=W.concatUint8Array([r,n]).buffer;return Cn.verify({name:"ECDSA",namedCurve:An[e.name],hash:{name:re.read(re.webHash,t)}},o,c,i)}(s,t,r,n,i)}catch(e){if("p521"!==s.name&&("DataError"===e.name||"OperationError"===e.name))throw e;W.printDebugError("Browser did not support verifying: "+e.message)}break;case"node":return async function(e,t,{r,s:n},i,a){const{default:s}=await import("./bn.min.mjs"),o=In.createVerify(re.read(re.hash,t));o.write(i),o.end();const c=On.encode({algorithm:{algorithm:[1,2,840,10045,2,1],parameters:e.oid},subjectPublicKey:{unused:0,data:Array.from(a)}},"pem",{label:"PUBLIC KEY"}),h=Rn.encode({r:new s(r),s:new s(n)},"der");try{return o.verify(c,h)}catch(e){return!1}}(s,t,r,n,i)}return async function(e,t,r,n){const i=await un(e.name);return hn(i,n).verify(r,t)}(s,r,void 0===t?n:a,i)}const zn=void 0,Rn=In?zn.define("ECDSASignature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())})):void 0,Mn=In?zn.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").explicit(0).optional().any(),this.key("publicKey").explicit(1).optional().bitstr())})):void 0,Nn=In?zn.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional().any())})):void 0,On=In?zn.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(Nn),this.key("subjectPublicKey").bitstr())})):void 0;var Ln=/*#__PURE__*/Object.freeze({__proto__:null,sign:Bn,verify:Tn,validateParams:async function(e,t,r){const n=new Kn(e);if(n.keyType!==re.publicKey.ecdsa)return!1;switch(n.type){case"web":case"node":{const n=await Fr(8),i=re.hash.sha256,a=await Mr.digest(i,n);try{const s=await Bn(e,i,n,t,r,a);return await Tn(e,i,s,n,t,a)}catch(e){return!1}}default:return xn(re.publicKey.ecdsa,e,t,r)}}});Or.hash=e=>new Uint8Array(qt().update(e).digest());var Fn=/*#__PURE__*/Object.freeze({__proto__:null,sign:async function(e,t,r,n,i,a){if(Mr.getHashByteLength(t)<Mr.getHashByteLength(re.hash.sha256))throw Error("Hash algorithm too weak: sha256 or stronger is required for EdDSA.");const s=W.concatUint8Array([i,n.subarray(1)]),o=Or.sign.detached(a,s);return{r:o.subarray(0,32),s:o.subarray(32)}},verify:async function(e,t,{r,s:n},i,a,s){const o=W.concatUint8Array([r,n]);return Or.sign.detached.verify(s,o,a.subarray(1))},validateParams:async function(e,t,r){if("ed25519"!==e.getName())return!1;const{publicKey:n}=Or.sign.keyPair.fromSeed(r),i=new Uint8Array([64,...n]);return W.equalsUint8Array(t,i)}});function jn(e,t){const r=new He["aes"+8*e.length](e),n=new Uint32Array([2795939494,2795939494]),i=qn(t);let a=n;const s=i,o=i.length/2,c=new Uint32Array([0,0]);let h=new Uint32Array(4);for(let e=0;e<=5;++e)for(let t=0;t<o;++t)c[1]=o*e+(1+t),h[0]=a[0],h[1]=a[1],h[2]=s[2*t],h[3]=s[2*t+1],h=qn(r.encrypt(Gn(h))),a=h.subarray(0,2),a[0]^=c[0],a[1]^=c[1],s[2*t]=h[2],s[2*t+1]=h[3];return Gn(a,s)}function Hn(e,t){const r=new He["aes"+8*e.length](e),n=new Uint32Array([2795939494,2795939494]),i=qn(t);let a=i.subarray(0,2);const s=i.subarray(2),o=i.length/2-1,c=new Uint32Array([0,0]);let h=new Uint32Array(4);for(let e=5;e>=0;--e)for(let t=o-1;t>=0;--t)c[1]=o*e+(t+1),h[0]=a[0]^c[0],h[1]=a[1]^c[1],h[2]=s[2*t],h[3]=s[2*t+1],h=qn(r.decrypt(Gn(h))),a=h.subarray(0,2),s[2*t]=h[2],s[2*t+1]=h[3];if(a[0]===n[0]&&a[1]===n[1])return Gn(s);throw Error("Key Data Integrity failed")}function qn(e){const{length:t}=e,r=function(e){if(W.isString(e)){const{length:t}=e,r=new ArrayBuffer(t),n=new Uint8Array(r);for(let r=0;r<t;++r)n[r]=e.charCodeAt(r);return r}return new Uint8Array(e).buffer}(e),n=new DataView(r),i=new Uint32Array(t/4);for(let e=0;e<t/4;++e)i[e]=n.getUint32(4*e);return i}function Gn(){let e=0;for(let t=0;t<arguments.length;++t)e+=4*arguments[t].length;const t=new ArrayBuffer(e),r=new DataView(t);let n=0;for(let e=0;e<arguments.length;++e){for(let t=0;t<arguments[e].length;++t)r.setUint32(n+4*t,arguments[e][t]);n+=4*arguments[e].length}return new Uint8Array(t)}var Vn=/*#__PURE__*/Object.freeze({__proto__:null,wrap:jn,unwrap:Hn});function Wn(e){const t=8-e.length%8,r=new Uint8Array(e.length+t).fill(t);return r.set(e),r}function $n(e){const t=e.length;if(t>0){const r=e[t-1];if(r>=1){const n=e.subarray(t-r),i=new Uint8Array(r).fill(r);if(W.equalsUint8Array(n,i))return e.subarray(0,t-r)}}throw Error("Invalid padding")}var Zn=/*#__PURE__*/Object.freeze({__proto__:null,encode:Wn,decode:$n});const Qn=W.getWebCrypto(),Yn=W.getNodeCrypto();function Xn(e,t,r,n){return W.concatUint8Array([t.write(),new Uint8Array([e]),r.replacementKDFParams||r.write(),W.stringToUint8Array("Anonymous Sender "),r.replacementFingerprint||n.subarray(0,20)])}async function Jn(e,t,r,n,i=!1,a=!1){let s;if(i){for(s=0;s<t.length&&0===t[s];s++);t=t.subarray(s)}if(a){for(s=t.length-1;s>=0&&0===t[s];s--);t=t.subarray(0,s+1)}return(await Mr.digest(e,W.concatUint8Array([new Uint8Array([0,0,0,1]),t,n]))).subarray(0,r)}async function ei(e,t){switch(e.type){case"curve25519":{const r=await Fr(32),{secretKey:n,sharedKey:i}=await ti(e,t,null,r);let{publicKey:a}=Or.box.keyPair.fromSecretKey(n);return a=W.concatUint8Array([new Uint8Array([64]),a]),{publicKey:a,sharedKey:i}}case"web":if(e.web&&W.getWebCrypto())try{return await async function(e,t){const r=Un(e.payloadSize,e.web.web,t);let n=Qn.generateKey({name:"ECDH",namedCurve:e.web.web},!0,["deriveKey","deriveBits"]),i=Qn.importKey("jwk",r,{name:"ECDH",namedCurve:e.web.web},!1,[]);[n,i]=await Promise.all([n,i]);let a=Qn.deriveBits({name:"ECDH",namedCurve:e.web.web,public:i},n.privateKey,e.web.sharedSize),s=Qn.exportKey("jwk",n.publicKey);[a,s]=await Promise.all([a,s]);const o=new Uint8Array(a);return{publicKey:new Uint8Array(Pn(s)),sharedKey:o}}(e,t)}catch(e){W.printDebugError(e)}break;case"node":return async function(e,t){const r=Yn.createECDH(e.node.node);r.generateKeys();const n=new Uint8Array(r.computeSecret(t));return{publicKey:new Uint8Array(r.getPublicKey()),sharedKey:n}}(e,t)}return async function(e,t){const r=await un(e.name),n=await e.genKeyPair();t=hn(r,t);const i=cn(r,n.privateKey),a=n.publicKey,s=i.derive(t.getPublic()),o=r.curve.p.byteLength(),c=s.toArrayLike(Uint8Array,"be",o);return{publicKey:a,sharedKey:c}}(e,t)}async function ti(e,t,r,n){if(n.length!==e.payloadSize){const t=new Uint8Array(e.payloadSize);t.set(n,e.payloadSize-n.length),n=t}switch(e.type){case"curve25519":{const e=n.slice().reverse();return{secretKey:e,sharedKey:Or.scalarMult(e,t.subarray(1))}}case"web":if(e.web&&W.getWebCrypto())try{return await async function(e,t,r,n){const i=Dn(e.payloadSize,e.web.web,r,n);let a=Qn.importKey("jwk",i,{name:"ECDH",namedCurve:e.web.web},!0,["deriveKey","deriveBits"]);const s=Un(e.payloadSize,e.web.web,t);let o=Qn.importKey("jwk",s,{name:"ECDH",namedCurve:e.web.web},!0,[]);[a,o]=await Promise.all([a,o]);let c=Qn.deriveBits({name:"ECDH",namedCurve:e.web.web,public:o},a,e.web.sharedSize),h=Qn.exportKey("jwk",a);[c,h]=await Promise.all([c,h]);const u=new Uint8Array(c);return{secretKey:J(h.d),sharedKey:u}}(e,t,r,n)}catch(e){W.printDebugError(e)}break;case"node":return async function(e,t,r){const n=Yn.createECDH(e.node.node);n.setPrivateKey(r);const i=new Uint8Array(n.computeSecret(t));return{secretKey:new Uint8Array(n.getPrivateKey()),sharedKey:i}}(e,t,n)}return async function(e,t,r){const n=await un(e.name);t=hn(n,t),r=cn(n,r);const i=new Uint8Array(r.getPrivate()),a=r.derive(t.getPublic()),s=n.curve.p.byteLength(),o=a.toArrayLike(Uint8Array,"be",s);return{secretKey:i,sharedKey:o}}(e,t,n)}var ri=/*#__PURE__*/Object.freeze({__proto__:null,validateParams:async function(e,t,r){return xn(re.publicKey.ecdh,e,t,r)},encrypt:async function(e,t,r,n,i){const a=Wn(r),s=new Kn(e),{publicKey:o,sharedKey:c}=await ei(s,n),h=Xn(re.publicKey.ecdh,e,t,i),{keySize:u}=di(t.cipher);return{publicKey:o,wrappedKey:jn(await Jn(t.hash,c,u,h),a)}},decrypt:async function(e,t,r,n,i,a,s){const o=new Kn(e),{sharedKey:c}=await ti(o,r,i,a),h=Xn(re.publicKey.ecdh,e,t,s),{keySize:u}=di(t.cipher);let l;for(let e=0;e<3;e++)try{return $n(Hn(await Jn(t.hash,c,u,h,1===e,2===e),n))}catch(e){l=e}throw l}});var ni={rsa:an,elgamal:sn,elliptic:/*#__PURE__*/Object.freeze({__proto__:null,Curve:Kn,ecdh:ri,ecdsa:Ln,eddsa:Fn,generate:async function(e){const t=await W.getBigInteger();e=new Kn(e);const r=await e.genKeyPair(),n=new t(r.publicKey).toUint8Array(),i=new t(r.privateKey).toUint8Array("be",e.payloadSize);return{oid:e.oid,Q:n,secret:i,hash:e.hash,cipher:e.cipher}},getPreferredHashAlgo:function(e){return Sn[re.write(re.curve,e.toHex())].hash}}),dsa:/*#__PURE__*/Object.freeze({__proto__:null,sign:async function(e,t,r,n,i,a){const s=await W.getBigInteger(),o=new s(1);let c,h,u,l;n=new s(n),i=new s(i),r=new s(r),a=new s(a),r=r.mod(n),a=a.mod(i);const y=new s(t.subarray(0,i.byteLength())).mod(i);for(;;){if(c=await jr(o,i),h=r.modExp(c,n).imod(i),h.isZero())continue;const e=a.mul(h).imod(i);if(l=y.add(e).imod(i),u=c.modInv(i).imul(l).imod(i),!u.isZero())break}return{r:h.toUint8Array("be",i.byteLength()),s:u.toUint8Array("be",i.byteLength())}},verify:async function(e,t,r,n,i,a,s,o){const c=await W.getBigInteger(),h=new c(0);if(t=new c(t),r=new c(r),a=new c(a),s=new c(s),i=new c(i),o=new c(o),t.lte(h)||t.gte(s)||r.lte(h)||r.gte(s))return W.printDebug("invalid DSA Signature"),!1;const u=new c(n.subarray(0,s.byteLength())).imod(s),l=r.modInv(s);if(l.isZero())return W.printDebug("invalid DSA Signature"),!1;i=i.mod(a),o=o.mod(a);const y=u.mul(l).imod(s),p=t.mul(l).imod(s),d=i.modExp(y,a),f=o.modExp(p,a);return d.mul(f).imod(a).imod(s).equal(t)},validateParams:async function(e,t,r,n,i){const a=await W.getBigInteger();e=new a(e),t=new a(t),r=new a(r),n=new a(n);const s=new a(1);if(r.lte(s)||r.gte(e))return!1;if(!e.dec().mod(t).isZero())return!1;if(!r.modExp(t,e).isOne())return!1;const o=new a(t.bitLength()),c=new a(150);if(o.lt(c)||!await Vr(t,null,32))return!1;i=new a(i);const h=new a(2),u=await jr(h.leftShift(o.dec()),h.leftShift(o)),l=t.mul(u).add(i);return!!n.equal(r.modExp(l,e))}}),nacl:Or};class ii{constructor(e){e=void 0===e?new Uint8Array([]):W.isString(e)?W.stringToUint8Array(e):new Uint8Array(e),this.data=e}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.data=e.subarray(1,1+t),1+this.data.length}throw Error("Invalid symmetric key")}write(){return W.concatUint8Array([new Uint8Array([this.data.length]),this.data])}}class ai{constructor(e){if(void 0===e&&(e=new Uint8Array([])),!W.isUint8Array(e))throw Error("data must be in the form of a Uint8Array");this.data=e,this.length=this.data.byteLength}write(){return W.concatUint8Array([new Uint8Array([this.length]),this.data])}read(e){if(e.length>=1){const t=e[0];if(e.length>=t+1)return this.data=e.subarray(1,1+t),this.length=t,1+t}throw Error("Invalid octet string")}}class si{constructor(e){if(e){const{version:t,hash:r,cipher:n,flags:i,replacementFingerprint:a,replacementKDFParams:s}=e;this.version=t||1,this.hash=r,this.cipher=n,this.flags=i,this.replacementFingerprint=a,this.replacementKDFParams=s}else this.version=null,this.hash=null,this.cipher=null,this.flags=null,this.replacementFingerprint=null,this.replacementKDFParams=null}read(e){this.version=e[1],this.hash=e[2],this.cipher=e[3];let t=4;if(2===this.version&&(this.flags=e[t++],this.flags&re.kdfFlags.replace_fingerprint&&(this.replacementFingerprint=e.slice(t,t+20),t+=20),this.flags&re.kdfFlags.replace_kdf_params)){const r=e[t]+1;this.replacementKDFParams=e.slice(t,t+r),t+=r}return t}write(){if(!this.version||1===this.version)return new Uint8Array([3,1,this.hash,this.cipher]);const e=W.concatUint8Array([new Uint8Array([4,2,this.hash,this.cipher,this.flags]),this.replacementFingerprint||new Uint8Array,this.replacementKDFParams||new Uint8Array]);return e[0]=e.length-1,new Uint8Array(e)}}const oi=e=>class{constructor(e){this.data=void 0===e?null:e}read(t){const r=t[0];return this.data=re.write(e,r),1}write(){return new Uint8Array([this.data])}getName(){return re.read(e,this.data)}getValue(){return this.data}},ci=oi(re.aead),hi=oi(re.symmetric),ui=oi(re.hash);async function li(e,t){const r=await Fr(32);return{privateParams:{hashSeed:r,keyMaterial:e},publicParams:{cipher:t,digest:await Mr.sha256(r)}}}function yi(e){const{keySize:t}=di(e);return Fr(t)}function pi(e){const t=re.read(re.aead,e);return Zi[t]}function di(e){const t=re.read(re.symmetric,e);return He[t]}function fi(e){try{e.getName()}catch(e){throw new wn("Unknown curve OID")}}var gi=/*#__PURE__*/Object.freeze({__proto__:null,publicKeyEncrypt:async function(e,t,r,n,i){switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:{const{n:e,e:r}=t;return{c:await ni.rsa.encrypt(n,e,r)}}case re.publicKey.elgamal:{const{p:e,g:r,y:i}=t;return ni.elgamal.encrypt(n,e,r,i)}case re.publicKey.ecdh:{const{oid:e,Q:r,kdfParams:a}=t,{publicKey:s,wrappedKey:o}=await ni.elliptic.ecdh.encrypt(e,a,n,r,i);return{V:s,C:new ii(o)}}case re.publicKey.aead:{if(!r)throw Error("Cannot encrypt with symmetric key missing private parameters");const{cipher:e}=t,i=e.getValue(),{keyMaterial:a}=r,s=ne.preferredAEADAlgorithm,o=pi(ne.preferredAEADAlgorithm),{ivLength:c}=o,h=await Fr(c),u=await o(i,a),l=await u.encrypt(n,h,new Uint8Array);return{aeadMode:new ci(s),iv:h,c:new ai(l)}}default:return[]}},publicKeyDecrypt:async function(e,t,r,n,i,a){switch(e){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaEncrypt:{const{c:e}=n,{n:i,e:s}=t,{d:o,p:c,q:h,u}=r;return ni.rsa.decrypt(e,i,s,o,c,h,u,a)}case re.publicKey.elgamal:{const{c1:e,c2:i}=n,s=t.p,o=r.x;return ni.elgamal.decrypt(e,i,s,o,a)}case re.publicKey.ecdh:{const{oid:e,Q:a,kdfParams:s}=t,{d:o}=r,{V:c,C:h}=n;return ni.elliptic.ecdh.decrypt(e,s,c,h.data,a,o,i)}case re.publicKey.aead:{const{cipher:e}=t,i=e.getValue(),{keyMaterial:a}=r,{aeadMode:s,iv:o,c}=n,h=pi(s.getValue());return(await h(i,a)).decrypt(c.data,o,new Uint8Array)}default:throw Error("Unknown public key encryption algorithm.")}},parsePublicKeyParams:function(e,t){let r=0;switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:{const e=W.readMPI(t.subarray(r));r+=e.length+2;const n=W.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{n:e,e:n}}}case re.publicKey.dsa:{const e=W.readMPI(t.subarray(r));r+=e.length+2;const n=W.readMPI(t.subarray(r));r+=n.length+2;const i=W.readMPI(t.subarray(r));r+=i.length+2;const a=W.readMPI(t.subarray(r));return r+=a.length+2,{read:r,publicParams:{p:e,q:n,g:i,y:a}}}case re.publicKey.elgamal:{const e=W.readMPI(t.subarray(r));r+=e.length+2;const n=W.readMPI(t.subarray(r));r+=n.length+2;const i=W.readMPI(t.subarray(r));return r+=i.length+2,{read:r,publicParams:{p:e,g:n,y:i}}}case re.publicKey.ecdsa:{const e=new on;r+=e.read(t),fi(e);const n=W.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{oid:e,Q:n}}}case re.publicKey.eddsa:{const e=new on;r+=e.read(t),fi(e);let n=W.readMPI(t.subarray(r));return r+=n.length+2,n=W.leftPad(n,33),{read:r,publicParams:{oid:e,Q:n}}}case re.publicKey.ecdh:{const e=new on;r+=e.read(t),fi(e);const n=W.readMPI(t.subarray(r));r+=n.length+2;const i=new si;return r+=i.read(t.subarray(r)),{read:r,publicParams:{oid:e,Q:n,kdfParams:i}}}case re.publicKey.hmac:case re.publicKey.aead:{const e=new hi;r+=e.read(t);const n=Mr.getHashByteLength(re.hash.sha256),i=t.subarray(r,r+n);return r+=n,{read:r,publicParams:{cipher:e,digest:i}}}default:throw new wn("Unknown public key encryption algorithm.")}},parsePrivateKeyParams:function(e,t,r){let n=0;switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:{const e=W.readMPI(t.subarray(n));n+=e.length+2;const r=W.readMPI(t.subarray(n));n+=r.length+2;const i=W.readMPI(t.subarray(n));n+=i.length+2;const a=W.readMPI(t.subarray(n));return n+=a.length+2,{read:n,privateParams:{d:e,p:r,q:i,u:a}}}case re.publicKey.dsa:case re.publicKey.elgamal:{const e=W.readMPI(t.subarray(n));return n+=e.length+2,{read:n,privateParams:{x:e}}}case re.publicKey.ecdsa:case re.publicKey.ecdh:{const e=new Kn(r.oid);let i=W.readMPI(t.subarray(n));return n+=i.length+2,i=W.leftPad(i,e.payloadSize),{read:n,privateParams:{d:i}}}case re.publicKey.eddsa:{const e=new Kn(r.oid);let i=W.readMPI(t.subarray(n));return n+=i.length+2,i=W.leftPad(i,e.payloadSize),{read:n,privateParams:{seed:i}}}case re.publicKey.hmac:{const{cipher:e}=r,i=Mr.getHashByteLength(e.getValue()),a=t.subarray(n,n+32);n+=32;const s=t.subarray(n,n+i);return n+=i,{read:n,privateParams:{hashSeed:a,keyMaterial:s}}}case re.publicKey.aead:{const{cipher:e}=r,i=t.subarray(n,n+32);n+=32;const{keySize:a}=di(e.getValue()),s=t.subarray(n,n+a);return n+=a,{read:n,privateParams:{hashSeed:i,keyMaterial:s}}}default:throw new wn("Unknown public key encryption algorithm.")}},parseEncSessionKeyParams:function(e,t){let r=0;switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:return{c:W.readMPI(t.subarray(r))};case re.publicKey.elgamal:{const e=W.readMPI(t.subarray(r));r+=e.length+2;return{c1:e,c2:W.readMPI(t.subarray(r))}}case re.publicKey.ecdh:{const e=W.readMPI(t.subarray(r));r+=e.length+2;const n=new ii;return n.read(t.subarray(r)),{V:e,C:n}}case re.publicKey.aead:{const e=new ci;r+=e.read(t.subarray(r));const{ivLength:n}=pi(e.getValue()),i=t.subarray(r,r+n);r+=n;const a=new ai;return r+=a.read(t.subarray(r)),{aeadMode:e,iv:i,c:a}}default:throw new wn("Unknown public key encryption algorithm.")}},serializeParams:function(e,t){let r;switch(e){case re.publicKey.hmac:case re.publicKey.aead:r=Object.keys(t).map((e=>{const r=t[e];return W.isUint8Array(r)?r:r.write()}));break;default:r=Object.keys(t).map((e=>{const r=t[e];return W.isUint8Array(r)?W.uint8ArrayToMPI(r):r.write()}))}return W.concatUint8Array(r)},generateParams:async function(e,t,r,n){switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:return ni.rsa.generate(t,65537).then((({n:e,e:t,d:r,p:n,q:i,u:a})=>({privateParams:{d:r,p:n,q:i,u:a},publicParams:{n:e,e:t}})));case re.publicKey.ecdsa:return ni.elliptic.generate(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{d:r},publicParams:{oid:new on(e),Q:t}})));case re.publicKey.eddsa:return ni.elliptic.generate(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{seed:r},publicParams:{oid:new on(e),Q:t}})));case re.publicKey.ecdh:return ni.elliptic.generate(r).then((({oid:e,Q:t,secret:r,hash:n,cipher:i})=>({privateParams:{d:r},publicParams:{oid:new on(e),Q:t,kdfParams:new si({hash:n,cipher:i})}})));case re.publicKey.hmac:{const e=re.write(re.hash,n);return li(await Fr(Mr.getHashByteLength(e)),new ui(e))}case re.publicKey.aead:{const e=re.write(re.symmetric,n);return li(await yi(e),new hi(e))}case re.publicKey.dsa:case re.publicKey.elgamal:throw Error("Unsupported algorithm for key generation.");default:throw Error("Unknown public key algorithm.")}},validateParams:async function(e,t,r){if(!t||!r)throw Error("Missing key parameters");switch(e){case re.publicKey.rsaEncrypt:case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:{const{n:e,e:n}=t,{d:i,p:a,q:s,u:o}=r;return ni.rsa.validateParams(e,n,i,a,s,o)}case re.publicKey.dsa:{const{p:e,q:n,g:i,y:a}=t,{x:s}=r;return ni.dsa.validateParams(e,n,i,a,s)}case re.publicKey.elgamal:{const{p:e,g:n,y:i}=t,{x:a}=r;return ni.elgamal.validateParams(e,n,i,a)}case re.publicKey.ecdsa:case re.publicKey.ecdh:{const n=ni.elliptic[re.read(re.publicKey,e)],{oid:i,Q:a}=t,{d:s}=r;return n.validateParams(i,a,s)}case re.publicKey.eddsa:{const{oid:e,Q:n}=t,{seed:i}=r;return ni.elliptic.eddsa.validateParams(e,n,i)}case re.publicKey.hmac:{const{cipher:e,digest:n}=t,{hashSeed:i,keyMaterial:a}=r;return Mr.getHashByteLength(e.getValue())===a.length&&W.equalsUint8Array(n,await Mr.sha256(i))}case re.publicKey.aead:{const{cipher:e,digest:n}=t,{hashSeed:i,keyMaterial:a}=r,{keySize:s}=di(e.getValue());return s===a.length&&W.equalsUint8Array(n,await Mr.sha256(i))}default:throw Error("Unknown public key algorithm.")}},getPrefixRandom:async function(e){const{blockSize:t}=di(e),r=await Fr(t),n=new Uint8Array([r[r.length-2],r[r.length-1]]);return W.concat([r,n])},generateSessionKey:yi,getAEADMode:pi,getCipher:di});const mi=W.getWebCrypto(),wi=W.getNodeCrypto(),bi=wi?wi.getCiphers():[],ki={idea:bi.includes("idea-cfb")?"idea-cfb":void 0,tripledes:bi.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:bi.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:bi.includes("bf-cfb")?"bf-cfb":void 0,aes128:bi.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:bi.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:bi.includes("aes-256-cfb")?"aes-256-cfb":void 0};var vi=/*#__PURE__*/Object.freeze({__proto__:null,encrypt:async function(e,t,r,n,i){const a=re.read(re.symmetric,e);if(W.getNodeCrypto()&&ki[a])return function(e,t,r,n){const i=re.read(re.symmetric,e),a=new wi.createCipheriv(ki[i],t,n);return z(r,(e=>new Uint8Array(a.update(e))))}(e,t,r,n);if("aes"===a.substr(0,3))return function(e,t,r,n,i){if(W.getWebCrypto()&&24!==t.length&&!W.isStream(r)&&r.length>=3e3*i.minBytesForWebCrypto)return async function(e,t,r,n){const i="AES-CBC",a=await mi.importKey("raw",t,{name:i},!1,["encrypt"]),{blockSize:s}=di(e),o=W.concatUint8Array([new Uint8Array(s),r]),c=new Uint8Array(await mi.encrypt({name:i,iv:n},a,o)).subarray(0,r.length);return function(e,t){for(let r=0;r<e.length;r++)e[r]=e[r]^t[r]}(c,r),c}(e,t,r,n);const a=new Nr(t,n);return z(r,(e=>a.aes.AES_Encrypt_process(e)),(()=>a.aes.AES_Encrypt_finish()))}(e,t,r,n,i);const s=new He[a](t),o=s.blockSize,c=n.slice();let h=new Uint8Array;const u=e=>{e&&(h=W.concatUint8Array([h,e]));const t=new Uint8Array(h.length);let r,n=0;for(;e?h.length>=o:h.length;){const e=s.encrypt(c);for(r=0;r<o;r++)c[r]=h[r]^e[r],t[n++]=c[r];h=h.subarray(o)}return t.subarray(0,n)};return z(r,u,u)},decrypt:async function(e,t,r,n){const i=re.read(re.symmetric,e);if(W.getNodeCrypto()&&ki[i])return function(e,t,r,n){const i=re.read(re.symmetric,e),a=new wi.createDecipheriv(ki[i],t,n);return z(r,(e=>new Uint8Array(a.update(e))))}(e,t,r,n);if("aes"===i.substr(0,3))return function(e,t,r,n){if(W.isStream(r)){const e=new Nr(t,n);return z(r,(t=>e.aes.AES_Decrypt_process(t)),(()=>e.aes.AES_Decrypt_finish()))}return Nr.decrypt(r,t,n)}(0,t,r,n);const a=new He[i](t),s=a.blockSize;let o=n,c=new Uint8Array;const h=e=>{e&&(c=W.concatUint8Array([c,e]));const t=new Uint8Array(c.length);let r,n=0;for(;e?c.length>=s:c.length;){const e=a.encrypt(o);for(o=c,r=0;r<s;r++)t[n++]=o[r]^e[r];c=c.subarray(s)}return t.subarray(0,n)};return z(r,h,h)}});class Ai{static encrypt(e,t,r){return new Ai(t,r).encrypt(e)}static decrypt(e,t,r){return new Ai(t,r).encrypt(e)}constructor(e,t,r){this.aes=r||new Ee(e,void 0,!1,"CTR"),delete this.aes.padding,this.AES_CTR_set_options(t)}encrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}decrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}AES_CTR_set_options(e,t,r){let{asm:n}=this.aes.acquire_asm();if(void 0!==r){if(r<8||r>48)throw new ke("illegal counter size");let e=Math.pow(2,r)-1;n.set_mask(0,0,e/4294967296|0,0|e)}else r=48,n.set_mask(0,0,65535,4294967295);if(void 0===e)throw Error("nonce is required");{let t=e.length;if(!t||t>16)throw new ke("illegal nonce size");let r=new DataView(new ArrayBuffer(16));new Uint8Array(r.buffer).set(e),n.set_nonce(r.getUint32(0),r.getUint32(4),r.getUint32(8),r.getUint32(12))}if(void 0!==t){if(t<0||t>=Math.pow(2,r))throw new ke("illegal counter value");n.set_counter(0,0,t/4294967296|0,0|t)}}}class _i{static encrypt(e,t,r=!0,n){return new _i(t,n,r).encrypt(e)}static decrypt(e,t,r=!0,n){return new _i(t,n,r).decrypt(e)}constructor(e,t,r=!0,n){this.aes=n||new Ee(e,t,r,"CBC")}encrypt(e){return we(this.aes.AES_Encrypt_process(e),this.aes.AES_Encrypt_finish())}decrypt(e){return we(this.aes.AES_Decrypt_process(e),this.aes.AES_Decrypt_finish())}}const Ei=W.getWebCrypto(),Si=W.getNodeCrypto();function Ki(e,t){const r=e.length-16;for(let n=0;n<16;n++)e[n+r]^=t[n];return e}const xi=new Uint8Array(16);async function Pi(e){const t=await async function(e){if(W.getWebCrypto()&&24!==e.length)return e=await Ei.importKey("raw",e,{name:"AES-CBC",length:8*e.length},!1,["encrypt"]),async function(t){const r=await Ei.encrypt({name:"AES-CBC",iv:xi,length:128},e,t);return new Uint8Array(r).subarray(0,r.byteLength-16)};if(W.getNodeCrypto())return async function(t){const r=new Si.createCipheriv("aes-"+8*e.length+"-cbc",e,xi).update(t);return new Uint8Array(r)};return async function(t){return _i.encrypt(t,e,!1,xi)}}(e),r=W.double(await t(xi)),n=W.double(r);return async function(e){return(await t(function(e,t,r){if(e.length&&e.length%16==0)return Ki(e,t);const n=new Uint8Array(e.length+(16-e.length%16));return n.set(e),n[e.length]=128,Ki(n,r)}(e,r,n))).subarray(-16)}}const Ui=W.getWebCrypto(),Di=W.getNodeCrypto(),Ci=W.getNodeBuffer(),Ii=new Uint8Array(16),Bi=new Uint8Array(16);Bi[15]=1;const Ti=new Uint8Array(16);async function zi(e){const t=await Pi(e);return function(e,r){return t(W.concatUint8Array([e,r]))}}async function Ri(e){return W.getWebCrypto()&&24!==e.length?(e=await Ui.importKey("raw",e,{name:"AES-CTR",length:8*e.length},!1,["encrypt"]),async function(t,r){const n=await Ui.encrypt({name:"AES-CTR",counter:r,length:128},e,t);return new Uint8Array(n)}):W.getNodeCrypto()?async function(t,r){const n=new Di.createCipheriv("aes-"+8*e.length+"-ctr",e,r),i=Ci.concat([n.update(t),n.final()]);return new Uint8Array(i)}:async function(t,r){return Ai.encrypt(t,e,r)}}async function Mi(e,t){if(e!==re.symmetric.aes128&&e!==re.symmetric.aes192&&e!==re.symmetric.aes256)throw Error("EAX mode supports only AES cipher");const[r,n]=await Promise.all([zi(t),Ri(t)]);return{encrypt:async function(e,t,i){const[a,s]=await Promise.all([r(Ii,t),r(Bi,i)]),o=await n(e,a),c=await r(Ti,o);for(let e=0;e<16;e++)c[e]^=s[e]^a[e];return W.concatUint8Array([o,c])},decrypt:async function(e,t,i){if(e.length<16)throw Error("Invalid EAX ciphertext");const a=e.subarray(0,-16),s=e.subarray(-16),[o,c,h]=await Promise.all([r(Ii,t),r(Bi,i),r(Ti,a)]),u=h;for(let e=0;e<16;e++)u[e]^=c[e]^o[e];if(!W.equalsUint8Array(s,u))throw Error("Authentication tag mismatch");return await n(a,o)}}}Ti[15]=2,Mi.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[8+e]^=t[e];return r},Mi.blockLength=16,Mi.ivLength=16,Mi.tagLength=16;function Ni(e){let t=0;for(let r=1;0==(e&r);r<<=1)t++;return t}function Oi(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r];return e}function Li(e,t){return Oi(e.slice(),t)}const Fi=new Uint8Array(16),ji=new Uint8Array([1]);async function Hi(e,t){let r,n,i,a=0;function s(e,t,n,s){const o=t.length/16|0;!function(e,t){const r=W.nbits(Math.max(e.length,t.length)/16|0)-1;for(let e=a+1;e<=r;e++)i[e]=W.double(i[e-1]);a=r}(t,s);const c=W.concatUint8Array([Fi.subarray(0,15-n.length),ji,n]),h=63&c[15];c[15]&=192;const u=r(c),l=W.concatUint8Array([u,Li(u.subarray(0,8),u.subarray(1,9))]),y=W.shiftRight(l.subarray(0+(h>>3),17+(h>>3)),8-(7&h)).subarray(1),p=new Uint8Array(16),d=new Uint8Array(t.length+16);let f,g=0;for(f=0;f<o;f++)Oi(y,i[Ni(f+1)]),d.set(Oi(e(Li(y,t)),y),g),Oi(p,e===r?t:d.subarray(g)),t=t.subarray(16),g+=16;if(t.length){Oi(y,i.x);const n=r(y);d.set(Li(t,n),g);const a=new Uint8Array(16);a.set(e===r?t:d.subarray(g,-16),0),a[t.length]=128,Oi(p,a),g+=t.length}const m=Oi(r(Oi(Oi(p,y),i.$)),function(e){if(!e.length)return Fi;const t=e.length/16|0,n=new Uint8Array(16),a=new Uint8Array(16);for(let s=0;s<t;s++)Oi(n,i[Ni(s+1)]),Oi(a,r(Li(n,e))),e=e.subarray(16);if(e.length){Oi(n,i.x);const t=new Uint8Array(16);t.set(e,0),t[e.length]=128,Oi(t,n),Oi(a,r(t))}return a}(s));return d.set(m,g),d}return function(e,t){const a=re.read(re.symmetric,e),s=new He[a](t);r=s.encrypt.bind(s),n=s.decrypt.bind(s);const o=r(Fi),c=W.double(o);i=[],i[0]=W.double(c),i.x=o,i.$=c}(e,t),{encrypt:async function(e,t,n){return s(r,e,t,n)},decrypt:async function(e,t,r){if(e.length<16)throw Error("Invalid OCB ciphertext");const i=e.subarray(-16);e=e.subarray(0,-16);const a=s(n,e,t,r);if(W.equalsUint8Array(i,a.subarray(-16)))return a.subarray(0,-16);throw Error("Authentication tag mismatch")}}}Hi.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[7+e]^=t[e];return r},Hi.blockLength=16,Hi.ivLength=15,Hi.tagLength=16;class qi{constructor(e,t,r,n=16,i){this.tagSize=n,this.gamma0=0,this.counter=1,this.aes=i||new Ee(e,void 0,!1,"CTR");let{asm:a,heap:s}=this.aes.acquire_asm();if(a.gcm_init(),this.tagSize<4||this.tagSize>16)throw new ke("illegal tagSize value");const o=t.length||0,c=new Uint8Array(16);12!==o?(this._gcm_mac_process(t),s[0]=0,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=0,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=0,s[11]=o>>>29,s[12]=o>>>21&255,s[13]=o>>>13&255,s[14]=o>>>5&255,s[15]=o<<3&255,a.mac(de.MAC.GCM,de.HEAP_DATA,16),a.get_iv(de.HEAP_DATA),a.set_iv(0,0,0,0),c.set(s.subarray(0,16))):(c.set(t),c[15]=1);const h=new DataView(c.buffer);if(this.gamma0=h.getUint32(12),a.set_nonce(h.getUint32(0),h.getUint32(4),h.getUint32(8),0),a.set_mask(0,0,0,4294967295),void 0!==r){if(r.length>68719476704)throw new ke("illegal adata length");r.length?(this.adata=r,this._gcm_mac_process(r)):this.adata=void 0}else this.adata=void 0;if(this.counter<1||this.counter>4294967295)throw new RangeError("counter must be a positive 32-bit integer");a.set_counter(0,0,0,this.gamma0+this.counter|0)}static encrypt(e,t,r,n,i){return new qi(t,r,n,i).encrypt(e)}static decrypt(e,t,r,n,i){return new qi(t,r,n,i).decrypt(e)}encrypt(e){return this.AES_GCM_encrypt(e)}decrypt(e){return this.AES_GCM_decrypt(e)}AES_GCM_Encrypt_process(e){let t=0,r=e.length||0,{asm:n,heap:i}=this.aes.acquire_asm(),a=this.counter,s=this.aes.pos,o=this.aes.len,c=0,h=o+r&-16,u=0;if((a-1<<4)+o+r>68719476704)throw new RangeError("counter overflow");const l=new Uint8Array(h);for(;r>0;)u=me(i,s+o,e,t,r),o+=u,t+=u,r-=u,u=n.cipher(de.ENC.CTR,de.HEAP_DATA+s,o),u=n.mac(de.MAC.GCM,de.HEAP_DATA+s,u),u&&l.set(i.subarray(s,s+u),c),a+=u>>>4,c+=u,u<o?(s+=u,o-=u):(s=0,o=0);return this.counter=a,this.aes.pos=s,this.aes.len=o,l}AES_GCM_Encrypt_finish(){let{asm:e,heap:t}=this.aes.acquire_asm(),r=this.counter,n=this.tagSize,i=this.adata,a=this.aes.pos,s=this.aes.len;const o=new Uint8Array(s+n);e.cipher(de.ENC.CTR,de.HEAP_DATA+a,s+15&-16),s&&o.set(t.subarray(a,a+s));let c=s;for(;15&c;c++)t[a+c]=0;e.mac(de.MAC.GCM,de.HEAP_DATA+a,c);const h=void 0!==i?i.length:0,u=(r-1<<4)+s;return t[0]=0,t[1]=0,t[2]=0,t[3]=h>>>29,t[4]=h>>>21,t[5]=h>>>13&255,t[6]=h>>>5&255,t[7]=h<<3&255,t[8]=t[9]=t[10]=0,t[11]=u>>>29,t[12]=u>>>21&255,t[13]=u>>>13&255,t[14]=u>>>5&255,t[15]=u<<3&255,e.mac(de.MAC.GCM,de.HEAP_DATA,16),e.get_iv(de.HEAP_DATA),e.set_counter(0,0,0,this.gamma0),e.cipher(de.ENC.CTR,de.HEAP_DATA,16),o.set(t.subarray(0,n),s),this.counter=1,this.aes.pos=0,this.aes.len=0,o}AES_GCM_Decrypt_process(e){let t=0,r=e.length||0,{asm:n,heap:i}=this.aes.acquire_asm(),a=this.counter,s=this.tagSize,o=this.aes.pos,c=this.aes.len,h=0,u=c+r>s?c+r-s&-16:0,l=c+r-u,y=0;if((a-1<<4)+c+r>68719476704)throw new RangeError("counter overflow");const p=new Uint8Array(u);for(;r>l;)y=me(i,o+c,e,t,r-l),c+=y,t+=y,r-=y,y=n.mac(de.MAC.GCM,de.HEAP_DATA+o,y),y=n.cipher(de.DEC.CTR,de.HEAP_DATA+o,y),y&&p.set(i.subarray(o,o+y),h),a+=y>>>4,h+=y,o=0,c=0;return r>0&&(c+=me(i,0,e,t,r)),this.counter=a,this.aes.pos=o,this.aes.len=c,p}AES_GCM_Decrypt_finish(){let{asm:e,heap:t}=this.aes.acquire_asm(),r=this.tagSize,n=this.adata,i=this.counter,a=this.aes.pos,s=this.aes.len,o=s-r;if(s<r)throw new be("authentication tag not found");const c=new Uint8Array(o),h=new Uint8Array(t.subarray(a+o,a+s));let u=o;for(;15&u;u++)t[a+u]=0;e.mac(de.MAC.GCM,de.HEAP_DATA+a,u),e.cipher(de.DEC.CTR,de.HEAP_DATA+a,u),o&&c.set(t.subarray(a,a+o));const l=void 0!==n?n.length:0,y=(i-1<<4)+s-r;t[0]=0,t[1]=0,t[2]=0,t[3]=l>>>29,t[4]=l>>>21,t[5]=l>>>13&255,t[6]=l>>>5&255,t[7]=l<<3&255,t[8]=t[9]=t[10]=0,t[11]=y>>>29,t[12]=y>>>21&255,t[13]=y>>>13&255,t[14]=y>>>5&255,t[15]=y<<3&255,e.mac(de.MAC.GCM,de.HEAP_DATA,16),e.get_iv(de.HEAP_DATA),e.set_counter(0,0,0,this.gamma0),e.cipher(de.ENC.CTR,de.HEAP_DATA,16);let p=0;for(let e=0;e<r;++e)p|=h[e]^t[e];if(p)throw new ve("data integrity check failed");return this.counter=1,this.aes.pos=0,this.aes.len=0,c}AES_GCM_decrypt(e){const t=this.AES_GCM_Decrypt_process(e),r=this.AES_GCM_Decrypt_finish(),n=new Uint8Array(t.length+r.length);return t.length&&n.set(t),r.length&&n.set(r,t.length),n}AES_GCM_encrypt(e){const t=this.AES_GCM_Encrypt_process(e),r=this.AES_GCM_Encrypt_finish(),n=new Uint8Array(t.length+r.length);return t.length&&n.set(t),r.length&&n.set(r,t.length),n}_gcm_mac_process(e){let{asm:t,heap:r}=this.aes.acquire_asm(),n=0,i=e.length||0,a=0;for(;i>0;){for(a=me(r,0,e,n,i),n+=a,i-=a;15&a;)r[a++]=0;t.mac(de.MAC.GCM,de.HEAP_DATA,a)}}}const Gi=W.getWebCrypto(),Vi=W.getNodeCrypto(),Wi=W.getNodeBuffer();async function $i(e,t){if(e!==re.symmetric.aes128&&e!==re.symmetric.aes192&&e!==re.symmetric.aes256)throw Error("GCM mode supports only AES cipher");if(W.getWebCrypto()&&24!==t.length){const e=await Gi.importKey("raw",t,{name:"AES-GCM"},!1,["encrypt","decrypt"]);return{encrypt:async function(r,n,i=new Uint8Array){if(!r.length)return qi.encrypt(r,t,n,i);const a=await Gi.encrypt({name:"AES-GCM",iv:n,additionalData:i,tagLength:128},e,r);return new Uint8Array(a)},decrypt:async function(r,n,i=new Uint8Array){if(16===r.length)return qi.decrypt(r,t,n,i);const a=await Gi.decrypt({name:"AES-GCM",iv:n,additionalData:i,tagLength:128},e,r);return new Uint8Array(a)}}}return W.getNodeCrypto()?{encrypt:async function(e,r,n=new Uint8Array){const i=new Vi.createCipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n);const a=Wi.concat([i.update(e),i.final(),i.getAuthTag()]);return new Uint8Array(a)},decrypt:async function(e,r,n=new Uint8Array){const i=new Vi.createDecipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n),i.setAuthTag(e.slice(e.length-16,e.length));const a=Wi.concat([i.update(e.slice(0,e.length-16)),i.final()]);return new Uint8Array(a)}}:{encrypt:async function(e,r,n){return qi.encrypt(e,t,r,n)},decrypt:async function(e,r,n){return qi.decrypt(e,t,r,n)}}}$i.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[4+e]^=t[e];return r},$i.blockLength=16,$i.ivLength=12,$i.tagLength=16;var Zi={cfb:vi,gcm:$i,experimentalGCM:$i,eax:Mi,ocb:Hi};function Qi(e,t,r){switch(e){case re.hash.sha1:case re.hash.sha256:case re.hash.sha512:return async function(e,t,r){const n=Mr.getBlockSize(e),i=new Uint8Array(n);i.fill(92),Yi(i,t);const a=new Uint8Array(n);a.fill(54),Yi(a,t);const s=W.concatUint8Array([a,r]),o=await Mr.digest(e,s),c=W.concatUint8Array([i,o]);return Mr.digest(e,c)}(e,t,r);default:throw Error("Unsupported hash algorithm.")}}function Yi(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r]||0}var Xi=/*#__PURE__*/Object.freeze({__proto__:null,parseSignatureParams:function(e,t){let r=0;switch(e){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaEncrypt:case re.publicKey.rsaSign:return{s:W.readMPI(t.subarray(r))};case re.publicKey.dsa:case re.publicKey.ecdsa:{const e=W.readMPI(t.subarray(r));r+=e.length+2;return{r:e,s:W.readMPI(t.subarray(r))}}case re.publicKey.eddsa:{let e=W.readMPI(t.subarray(r));r+=e.length+2,e=W.leftPad(e,32);let n=W.readMPI(t.subarray(r));return n=W.leftPad(n,32),{r:e,s:n}}case re.publicKey.hmac:{const e=new ai;return e.read(t.subarray(r)),{mac:e}}default:throw new wn("Unknown signature algorithm.")}},verify:async function(e,t,r,n,i,a,s){switch(e){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaEncrypt:case re.publicKey.rsaSign:{const{n:e,e:i}=n,o=W.leftPad(r.s,e.length);return ni.rsa.verify(t,a,o,e,i,s)}case re.publicKey.dsa:{const{g:e,p:i,q:a,y:o}=n,{r:c,s:h}=r;return ni.dsa.verify(t,c,h,s,e,i,a,o)}case re.publicKey.ecdsa:{const{oid:e,Q:i}=n,o=new ni.elliptic.Curve(e).payloadSize,c=W.leftPad(r.r,o),h=W.leftPad(r.s,o);return ni.elliptic.ecdsa.verify(e,t,{r:c,s:h},a,i,s)}case re.publicKey.eddsa:{const{oid:e,Q:i}=n;return ni.elliptic.eddsa.verify(e,t,r,a,i,s)}case re.publicKey.hmac:{if(!i)throw Error("Cannot verify HMAC signature with symmetric key missing private parameters");const{cipher:e}=n,{keyMaterial:t}=i,a=await Qi(e.getValue(),t,s);return W.equalsUint8Array(a,r.mac.data)}default:throw Error("Unknown signature algorithm.")}},sign:async function(e,t,r,n,i,a){if(!r||!n)throw Error("Missing key parameters");switch(e){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaEncrypt:case re.publicKey.rsaSign:{const{n:e,e:s}=r,{d:o,p:c,q:h,u}=n;return{s:await ni.rsa.sign(t,i,e,s,o,c,h,u,a)}}case re.publicKey.dsa:{const{g:e,p:i,q:s}=r,{x:o}=n;return ni.dsa.sign(t,a,e,i,s,o)}case re.publicKey.elgamal:throw Error("Signing with Elgamal is not defined in the OpenPGP standard.");case re.publicKey.ecdsa:{const{oid:e,Q:s}=r,{d:o}=n;return ni.elliptic.ecdsa.sign(e,t,i,s,o,a)}case re.publicKey.eddsa:{const{oid:e,Q:s}=r,{seed:o}=n;return ni.elliptic.eddsa.sign(e,t,i,s,o,a)}case re.publicKey.hmac:{const{cipher:e}=r,{keyMaterial:t}=n,i=await Qi(e.getValue(),t,a);return{mac:new ai(i)}}default:throw Error("Unknown signature algorithm.")}}});const Ji={cipher:He,hash:Mr,mode:Zi,publicKey:ni,signature:Xi,random:qr,pkcs1:Xr,pkcs5:Zn,aesKW:Vn};Object.assign(Ji,gi);var ea="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function ta(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)}const ra={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(let a=0;a<n;a++)e[i+a]=t[r+a]},flattenChunks:function(e){let t,r,n,i,a;for(n=0,t=0,r=e.length;t<r;t++)n+=e[t].length;const s=new Uint8Array(n);for(i=0,t=0,r=e.length;t<r;t++)a=e[t],s.set(a,i),i+=a.length;return s}},na={arraySet:function(e,t,r,n,i){for(let a=0;a<n;a++)e[i+a]=t[r+a]},flattenChunks:function(e){return[].concat.apply([],e)}};let ia=ea?Uint8Array:Array,aa=ea?Uint16Array:Array,sa=ea?Int32Array:Array,oa=ea?ra.flattenChunks:na.flattenChunks,ca=ea?ra.arraySet:na.arraySet;function ha(e){let t=e.length;for(;--t>=0;)e[t]=0}const ua=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],la=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ya=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],pa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],da=Array(576);ha(da);const fa=Array(60);ha(fa);const ga=Array(512);ha(ga);const ma=Array(256);ha(ma);const wa=Array(29);ha(wa);const ba=Array(30);function ka(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}let va,Aa,_a;function Ea(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Sa(e){return e<256?ga[e]:ga[256+(e>>>7)]}function Ka(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function xa(e,t,r){e.bi_valid>16-r?(e.bi_buf|=t<<e.bi_valid&65535,Ka(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function Pa(e,t,r){xa(e,r[2*t],r[2*t+1])}function Ua(e,t){let r=0;do{r|=1&e,e>>>=1,r<<=1}while(--t>0);return r>>>1}function Da(e,t,r){const n=Array(16);let i,a,s=0;for(i=1;i<=15;i++)n[i]=s=s+r[i-1]<<1;for(a=0;a<=t;a++){const t=e[2*a+1];0!==t&&(e[2*a]=Ua(n[t]++,t))}}function Ca(e){let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Ia(e){e.bi_valid>8?Ka(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Ba(e,t,r,n){const i=2*t,a=2*r;return e[i]<e[a]||e[i]===e[a]&&n[t]<=n[r]}function Ta(e,t,r){const n=e.heap[r];let i=r<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Ba(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Ba(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function za(e,t,r){let n,i,a,s,o=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?Pa(e,i,t):(a=ma[i],Pa(e,a+256+1,t),s=ua[a],0!==s&&(i-=wa[a],xa(e,i,s)),n--,a=Sa(n),Pa(e,a,r),s=la[a],0!==s&&(n-=ba[a],xa(e,n,s)))}while(o<e.last_lit);Pa(e,256,t)}function Ra(e,t){const r=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let s,o,c,h=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<a;s++)0!==r[2*s]?(e.heap[++e.heap_len]=h=s,e.depth[s]=0):r[2*s+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=h<2?++h:0,r[2*c]=1,e.depth[c]=0,e.opt_len--,i&&(e.static_len-=n[2*c+1]);for(t.max_code=h,s=e.heap_len>>1;s>=1;s--)Ta(e,r,s);c=a;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ta(e,r,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,r[2*c]=r[2*s]+r[2*o],e.depth[c]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,r[2*s+1]=r[2*o+1]=c,e.heap[1]=c++,Ta(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){const r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length;let h,u,l,y,p,d,f=0;for(y=0;y<=15;y++)e.bl_count[y]=0;for(r[2*e.heap[e.heap_max]+1]=0,h=e.heap_max+1;h<573;h++)u=e.heap[h],y=r[2*r[2*u+1]+1]+1,y>c&&(y=c,f++),r[2*u+1]=y,u>n||(e.bl_count[y]++,p=0,u>=o&&(p=s[u-o]),d=r[2*u],e.opt_len+=d*(y+p),a&&(e.static_len+=d*(i[2*u+1]+p)));if(0!==f){do{for(y=c-1;0===e.bl_count[y];)y--;e.bl_count[y]--,e.bl_count[y+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(y=c;0!==y;y--)for(u=e.bl_count[y];0!==u;)l=e.heap[--h],l>n||(r[2*l+1]!==y&&(e.opt_len+=(y-r[2*l+1])*r[2*l],r[2*l+1]=y),u--)}}(e,t),Da(r,h,e.bl_count)}function Ma(e,t,r){let n,i,a=-1,s=t[1],o=0,c=7,h=4;for(0===s&&(c=138,h=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=s,s=t[2*(n+1)+1],++o<c&&i===s||(o<h?e.bl_tree[2*i]+=o:0!==i?(i!==a&&e.bl_tree[2*i]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,o=0,a=i,0===s?(c=138,h=3):i===s?(c=6,h=3):(c=7,h=4))}function Na(e,t,r){let n,i,a=-1,s=t[1],o=0,c=7,h=4;for(0===s&&(c=138,h=3),n=0;n<=r;n++)if(i=s,s=t[2*(n+1)+1],!(++o<c&&i===s)){if(o<h)do{Pa(e,i,e.bl_tree)}while(0!=--o);else 0!==i?(i!==a&&(Pa(e,i,e.bl_tree),o--),Pa(e,16,e.bl_tree),xa(e,o-3,2)):o<=10?(Pa(e,17,e.bl_tree),xa(e,o-3,3)):(Pa(e,18,e.bl_tree),xa(e,o-11,7));o=0,a=i,0===s?(c=138,h=3):i===s?(c=6,h=3):(c=7,h=4)}}ha(ba);let Oa=!1;function La(e){Oa||(!function(){let e,t,r,n,i;const a=Array(16);for(r=0,n=0;n<28;n++)for(wa[n]=r,e=0;e<1<<ua[n];e++)ma[r++]=n;for(ma[r-1]=n,i=0,n=0;n<16;n++)for(ba[n]=i,e=0;e<1<<la[n];e++)ga[i++]=n;for(i>>=7;n<30;n++)for(ba[n]=i<<7,e=0;e<1<<la[n]-7;e++)ga[256+i++]=n;for(t=0;t<=15;t++)a[t]=0;for(e=0;e<=143;)da[2*e+1]=8,e++,a[8]++;for(;e<=255;)da[2*e+1]=9,e++,a[9]++;for(;e<=279;)da[2*e+1]=7,e++,a[7]++;for(;e<=287;)da[2*e+1]=8,e++,a[8]++;for(Da(da,287,a),e=0;e<30;e++)fa[2*e+1]=5,fa[2*e]=Ua(e,5);va=new ka(da,ua,257,286,15),Aa=new ka(fa,la,0,30,15),_a=new ka([],ya,0,19,7)}(),Oa=!0),e.l_desc=new Ea(e.dyn_ltree,va),e.d_desc=new Ea(e.dyn_dtree,Aa),e.bl_desc=new Ea(e.bl_tree,_a),e.bi_buf=0,e.bi_valid=0,Ca(e)}function Fa(e,t,r,n){xa(e,0+(n?1:0),3),function(e,t,r,n){Ia(e),n&&(Ka(e,r),Ka(e,~r)),ca(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}function ja(e){xa(e,2,3),Pa(e,256,da),function(e){16===e.bi_valid?(Ka(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}function Ha(e,t,r,n){let i,a,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){let t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),Ra(e,e.l_desc),Ra(e,e.d_desc),s=function(e){let t;for(Ma(e,e.dyn_ltree,e.l_desc.max_code),Ma(e,e.dyn_dtree,e.d_desc.max_code),Ra(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*pa[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==t?Fa(e,t,r,n):4===e.strategy||a===i?(xa(e,2+(n?1:0),3),za(e,da,fa)):(xa(e,4+(n?1:0),3),function(e,t,r,n){let i;for(xa(e,t-257,5),xa(e,r-1,5),xa(e,n-4,4),i=0;i<n;i++)xa(e,e.bl_tree[2*pa[i]+1],3);Na(e,e.dyn_ltree,t-1),Na(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),za(e,e.dyn_ltree,e.dyn_dtree)),Ca(e),n&&Ia(e)}function qa(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(ma[r]+256+1)]++,e.dyn_dtree[2*Sa(t)]++),e.last_lit===e.lit_bufsize-1}function Ga(e,t,r,n){let i=65535&e|0,a=e>>>16&65535|0,s=0;for(;0!==r;){s=r>2e3?2e3:r,r-=s;do{i=i+t[n++]|0,a=a+i|0}while(--s);i%=65521,a%=65521}return i|a<<16|0}const Va=function(){let e;const t=[];for(let r=0;r<256;r++){e=r;for(let t=0;t<8;t++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();function Wa(e,t,r,n){const i=Va,a=n+r;e^=-1;for(let r=n;r<a;r++)e=e>>>8^i[255&(e^t[r])];return-1^e}var $a={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function Za(e,t){return e.msg=$a[t],t}function Qa(e){return(e<<1)-(e>4?9:0)}function Ya(e){let t=e.length;for(;--t>=0;)e[t]=0}function Xa(e){const t=e.state;let r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(ca(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function Ja(e,t){Ha(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xa(e.strm)}function es(e,t){e.pending_buf[e.pending++]=t}function ts(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function rs(e,t,r,n){let i=e.avail_in;return i>n&&(i=n),0===i?0:(e.avail_in-=i,ca(t,e.input,e.next_in,i,r),1===e.state.wrap?e.adler=Ga(e.adler,t,i,r):2===e.state.wrap&&(e.adler=Wa(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)}function ns(e,t){let r,n,i=e.max_chain_length,a=e.strstart,s=e.prev_length,o=e.nice_match;const c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,h=e.window,u=e.w_mask,l=e.prev,y=e.strstart+258;let p=h[a+s-1],d=h[a+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(r=t,h[r+s]===d&&h[r+s-1]===p&&h[r]===h[a]&&h[++r]===h[a+1]){a+=2,r++;do{}while(h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&h[++a]===h[++r]&&a<y);if(n=258-(y-a),a=y-258,n>s){if(e.match_start=t,s=n,n>=o)break;p=h[a+s-1],d=h[a+s]}}}while((t=l[t&u])>c&&0!=--i);return s<=e.lookahead?s:e.lookahead}function is(e){const t=e.w_size;let r,n,i,a,s;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){ca(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,r=n;do{i=e.head[--r],e.head[r]=i>=t?i-t:0}while(--n);n=t,r=n;do{i=e.prev[--r],e.prev[r]=i>=t?i-t:0}while(--n);a+=t}if(0===e.strm.avail_in)break;if(n=rs(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=3)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+3-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)}function as(e,t){let r,n;for(;;){if(e.lookahead<262){if(is(e),e.lookahead<262&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-262&&(e.match_length=ns(e,r)),e.match_length>=3)if(n=qa(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=qa(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Ja(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Ja(e,!1),0===e.strm.avail_out)?1:2}function ss(e,t){let r,n,i;for(;;){if(e.lookahead<262){if(is(e),e.lookahead<262&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-262&&(e.match_length=ns(e,r),e.match_length<=5&&(1===e.strategy||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,n=qa(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(Ja(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=qa(e,0,e.window[e.strstart-1]),n&&Ja(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=qa(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Ja(e,!1),0===e.strm.avail_out)?1:2}class os{constructor(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}}const cs=[new os(0,0,0,0,(function(e,t){let r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(is(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,Ja(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Ja(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Ja(e,!1),e.strm.avail_out),1)})),new os(4,4,8,4,as),new os(4,5,16,8,as),new os(4,6,32,32,as),new os(4,4,16,16,ss),new os(8,16,32,32,ss),new os(8,16,128,128,ss),new os(8,32,128,256,ss),new os(32,128,258,1024,ss),new os(32,258,258,4096,ss)];class hs{constructor(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new aa(1146),this.dyn_dtree=new aa(122),this.bl_tree=new aa(78),Ya(this.dyn_ltree),Ya(this.dyn_dtree),Ya(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new aa(16),this.heap=new aa(573),Ya(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new aa(573),Ya(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}}function us(e){const t=function(e){let t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=2,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=0,La(t),0):Za(e,-2)}(e);return 0===t&&function(e){e.window_size=2*e.w_size,Ya(e.head),e.max_lazy_match=cs[e.level].max_lazy,e.good_match=cs[e.level].good_length,e.nice_match=cs[e.level].nice_length,e.max_chain_length=cs[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0}(e.state),t}function ls(e,t){let r,n,i,a;if(!e||!e.state||t>5||t<0)return e?Za(e,-2):-2;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&4!==t)return Za(e,0===e.avail_out?-5:-2);if(n.strm=e,r=n.last_flush,n.last_flush=t,42===n.status)if(2===n.wrap)e.adler=0,es(n,31),es(n,139),es(n,8),n.gzhead?(es(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),es(n,255&n.gzhead.time),es(n,n.gzhead.time>>8&255),es(n,n.gzhead.time>>16&255),es(n,n.gzhead.time>>24&255),es(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),es(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(es(n,255&n.gzhead.extra.length),es(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Wa(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(es(n,0),es(n,0),es(n,0),es(n,0),es(n,0),es(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),es(n,3),n.status=113);else{let t=8+(n.w_bits-8<<4)<<8,r=-1;r=n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3,t|=r<<6,0!==n.strstart&&(t|=32),t+=31-t%31,n.status=113,ts(n,t),0!==n.strstart&&(ts(n,e.adler>>>16),ts(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),Xa(e),i=n.pending,n.pending!==n.pending_buf_size));)es(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),Xa(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,es(n,a)}while(0!==a);n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),Xa(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,es(n,a)}while(0!==a);n.gzhead.hcrc&&n.pending>i&&(e.adler=Wa(e.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Xa(e),n.pending+2<=n.pending_buf_size&&(es(n,255&e.adler),es(n,e.adler>>8&255),e.adler=0,n.status=113)):n.status=113),0!==n.pending){if(Xa(e),0===e.avail_out)return n.last_flush=-1,0}else if(0===e.avail_in&&Qa(t)<=Qa(r)&&4!==t)return Za(e,-5);if(666===n.status&&0!==e.avail_in)return Za(e,-5);if(0!==e.avail_in||0!==n.lookahead||0!==t&&666!==n.status){var s=2===n.strategy?function(e,t){let r;for(;;){if(0===e.lookahead&&(is(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=qa(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Ja(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Ja(e,!1),0===e.strm.avail_out)?1:2}(n,t):3===n.strategy?function(e,t){let r,n,i,a;const s=e.window;for(;;){if(e.lookahead<=258){if(is(e),e.lookahead<=258&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,n=s[i],n===s[++i]&&n===s[++i]&&n===s[++i])){a=e.strstart+258;do{}while(n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&i<a);e.match_length=258-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=qa(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=qa(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Ja(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(Ja(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Ja(e,!1),0===e.strm.avail_out)?1:2}(n,t):cs[n.level].func(n,t);if(3!==s&&4!==s||(n.status=666),1===s||3===s)return 0===e.avail_out&&(n.last_flush=-1),0;if(2===s&&(1===t?ja(n):5!==t&&(Fa(n,0,0,!1),3===t&&(Ya(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Xa(e),0===e.avail_out))return n.last_flush=-1,0}return 4!==t?0:n.wrap<=0?1:(2===n.wrap?(es(n,255&e.adler),es(n,e.adler>>8&255),es(n,e.adler>>16&255),es(n,e.adler>>24&255),es(n,255&e.total_in),es(n,e.total_in>>8&255),es(n,e.total_in>>16&255),es(n,e.total_in>>24&255)):(ts(n,e.adler>>>16),ts(n,65535&e.adler)),Xa(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)}try{String.fromCharCode.call(null,0)}catch(e){}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){}const ys=new ia(256);for(let e=0;e<256;e++)ys[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;function ps(e){let t,r,n,i,a=0;const s=e.length;for(n=0;n<s;n++)t=e.charCodeAt(n),55296==(64512&t)&&n+1<s&&(r=e.charCodeAt(n+1),56320==(64512&r)&&(t=65536+(t-55296<<10)+(r-56320),n++)),a+=t<128?1:t<2048?2:t<65536?3:4;const o=new ia(a);for(i=0,n=0;i<a;n++)t=e.charCodeAt(n),55296==(64512&t)&&n+1<s&&(r=e.charCodeAt(n+1),56320==(64512&r)&&(t=65536+(t-55296<<10)+(r-56320),n++)),t<128?o[i++]=t:t<2048?(o[i++]=192|t>>>6,o[i++]=128|63&t):t<65536?(o[i++]=224|t>>>12,o[i++]=128|t>>>6&63,o[i++]=128|63&t):(o[i++]=240|t>>>18,o[i++]=128|t>>>12&63,o[i++]=128|t>>>6&63,o[i++]=128|63&t);return o}ys[254]=ys[254]=1;class ds{constructor(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}}class fs{constructor(e){this.options={level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,...e||{}};const t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ds,this.strm.avail_out=0;var r,n,i=function(e,t,r,n,i,a){if(!e)return-2;let s=1;if(-1===t&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),i<1||i>9||8!==r||n<8||n>15||t<0||t>9||a<0||a>4)return Za(e,-2);8===n&&(n=9);const o=new hs;return e.state=o,o.strm=e,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new ia(2*o.w_size),o.head=new aa(o.hash_size),o.prev=new aa(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new ia(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=a,o.method=r,us(e)}(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==i)throw Error($a[i]);if(t.header&&(r=this.strm,n=t.header,r&&r.state&&(2!==r.state.wrap||(r.state.gzhead=n))),t.dictionary){let e;if(e="string"==typeof t.dictionary?ps(t.dictionary):t.dictionary instanceof ArrayBuffer?new Uint8Array(t.dictionary):t.dictionary,0!==(i=function(e,t){let r,n,i,a,s,o,c,h,u=t.length;if(!e||!e.state)return-2;if(r=e.state,a=r.wrap,2===a||1===a&&42!==r.status||r.lookahead)return-2;for(1===a&&(e.adler=Ga(e.adler,t,u,0)),r.wrap=0,u>=r.w_size&&(0===a&&(Ya(r.head),r.strstart=0,r.block_start=0,r.insert=0),h=new ia(r.w_size),ca(h,t,u-r.w_size,r.w_size,0),t=h,u=r.w_size),s=e.avail_in,o=e.next_in,c=e.input,e.avail_in=u,e.next_in=0,e.input=t,is(r);r.lookahead>=3;){n=r.strstart,i=r.lookahead-2;do{r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+3-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++}while(--i);r.strstart=n,r.lookahead=2,is(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=o,e.input=c,e.avail_in=s,r.wrap=a,0}(this.strm,e)))throw Error($a[i]);this._dict_set=!0}}push(e,t){const{strm:r,options:{chunkSize:n}}=this;var i,a;if(this.ended)return!1;a=t===~~t?t:!0===t?4:0,"string"==typeof e?r.input=ps(e):e instanceof ArrayBuffer?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;do{if(0===r.avail_out&&(r.output=new ia(n),r.next_out=0,r.avail_out=n),1!==(i=ls(r,a))&&0!==i)return this.onEnd(i),this.ended=!0,!1;0!==r.avail_out&&(0!==r.avail_in||4!==a&&2!==a)||this.onData(ta(r.output,r.next_out))}while((r.avail_in>0||0===r.avail_out)&&1!==i);return 4===a?(i=function(e){let t;return e&&e.state?(t=e.state.status,42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Za(e,-2):(e.state=null,113===t?Za(e,-3):0)):-2}(this.strm),this.onEnd(i),this.ended=!0,0===i):2!==a||(this.onEnd(0),r.avail_out=0,!0)}onData(e){this.chunks.push(e)}onEnd(e){0===e&&(this.result=oa(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}}function gs(e,t){let r,n,i,a,s,o,c,h,u,l;const y=e.state;r=e.next_in;const p=e.input,d=r+(e.avail_in-5);n=e.next_out;const f=e.output,g=n-(t-e.avail_out),m=n+(e.avail_out-257),w=y.dmax,b=y.wsize,k=y.whave,v=y.wnext,A=y.window;i=y.hold,a=y.bits;const _=y.lencode,E=y.distcode,S=(1<<y.lenbits)-1,K=(1<<y.distbits)-1;e:do{a<15&&(i+=p[r++]<<a,a+=8,i+=p[r++]<<a,a+=8),s=_[i&S];t:for(;;){if(o=s>>>24,i>>>=o,a-=o,o=s>>>16&255,0===o)f[n++]=65535&s;else{if(!(16&o)){if(0==(64&o)){s=_[(65535&s)+(i&(1<<o)-1)];continue t}if(32&o){y.mode=12;break e}e.msg="invalid literal/length code",y.mode=30;break e}c=65535&s,o&=15,o&&(a<o&&(i+=p[r++]<<a,a+=8),c+=i&(1<<o)-1,i>>>=o,a-=o),a<15&&(i+=p[r++]<<a,a+=8,i+=p[r++]<<a,a+=8),s=E[i&K];r:for(;;){if(o=s>>>24,i>>>=o,a-=o,o=s>>>16&255,!(16&o)){if(0==(64&o)){s=E[(65535&s)+(i&(1<<o)-1)];continue r}e.msg="invalid distance code",y.mode=30;break e}if(h=65535&s,o&=15,a<o&&(i+=p[r++]<<a,a+=8,a<o&&(i+=p[r++]<<a,a+=8)),h+=i&(1<<o)-1,h>w){e.msg="invalid distance too far back",y.mode=30;break e}if(i>>>=o,a-=o,o=n-g,h>o){if(o=h-o,o>k&&y.sane){e.msg="invalid distance too far back",y.mode=30;break e}if(u=0,l=A,0===v){if(u+=b-o,o<c){c-=o;do{f[n++]=A[u++]}while(--o);u=n-h,l=f}}else if(v<o){if(u+=b+v-o,o-=v,o<c){c-=o;do{f[n++]=A[u++]}while(--o);if(u=0,v<c){o=v,c-=o;do{f[n++]=A[u++]}while(--o);u=n-h,l=f}}}else if(u+=v-o,o<c){c-=o;do{f[n++]=A[u++]}while(--o);u=n-h,l=f}for(;c>2;)f[n++]=l[u++],f[n++]=l[u++],f[n++]=l[u++],c-=3;c&&(f[n++]=l[u++],c>1&&(f[n++]=l[u++]))}else{u=n-h;do{f[n++]=f[u++],f[n++]=f[u++],f[n++]=f[u++],c-=3}while(c>2);c&&(f[n++]=f[u++],c>1&&(f[n++]=f[u++]))}break}}break}}while(r<d&&n<m);c=a>>3,r-=c,a-=c<<3,i&=(1<<a)-1,e.next_in=r,e.next_out=n,e.avail_in=r<d?d-r+5:5-(r-d),e.avail_out=n<m?m-n+257:257-(n-m),y.hold=i,y.bits=a}const ms=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],ws=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],bs=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],ks=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function vs(e,t,r,n,i,a,s,o){const c=o.bits;let h,u,l,y,p,d=0,f=0,g=0,m=0,w=0,b=0,k=0,v=0,A=0,_=0,E=null,S=0;const K=new aa(16),x=new aa(16);let P,U,D,C=null,I=0;for(d=0;d<=15;d++)K[d]=0;for(f=0;f<n;f++)K[t[r+f]]++;for(w=c,m=15;m>=1&&0===K[m];m--);if(w>m&&(w=m),0===m)return i[a++]=20971520,i[a++]=20971520,o.bits=1,0;for(g=1;g<m&&0===K[g];g++);for(w<g&&(w=g),v=1,d=1;d<=15;d++)if(v<<=1,v-=K[d],v<0)return-1;if(v>0&&(0===e||1!==m))return-1;for(x[1]=0,d=1;d<15;d++)x[d+1]=x[d]+K[d];for(f=0;f<n;f++)0!==t[r+f]&&(s[x[t[r+f]]++]=f);0===e?(E=C=s,p=19):1===e?(E=ms,S-=257,C=ws,I-=257,p=256):(E=bs,C=ks,p=-1),_=0,f=0,d=g,y=a,b=w,k=0,l=-1,A=1<<w;const B=A-1;if(1===e&&A>852||2===e&&A>592)return 1;for(;;){P=d-k,s[f]<p?(U=0,D=s[f]):s[f]>p?(U=C[I+s[f]],D=E[S+s[f]]):(U=96,D=0),h=1<<d-k,u=1<<b,g=u;do{u-=h,i[y+(_>>k)+u]=P<<24|U<<16|D|0}while(0!==u);for(h=1<<d-1;_&h;)h>>=1;if(0!==h?(_&=h-1,_+=h):_=0,f++,0==--K[d]){if(d===m)break;d=t[r+s[f]]}if(d>w&&(_&B)!==l){for(0===k&&(k=w),y+=g,b=d-k,v=1<<b;b+k<m&&(v-=K[b+k],!(v<=0));)b++,v<<=1;if(A+=1<<b,1===e&&A>852||2===e&&A>592)return 1;l=_&B,i[l]=w<<24|b<<16|y-a|0}}return 0!==_&&(i[y+_]=d-k<<24|64<<16|0),o.bits=w,0}function As(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}class _s{constructor(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new aa(320),this.work=new aa(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}}function Es(e){let t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,function(e){let t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new sa(852),t.distcode=t.distdyn=new sa(592),t.sane=1,t.back=-1,0):-2}(e)):-2}function Ss(e,t){let r,n;return e?(n=new _s,e.state=n,n.window=null,r=function(e,t){let r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?-2:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,Es(e))):-2}(e,t),0!==r&&(e.state=null),r):-2}let Ks,xs,Ps=!0;function Us(e){if(Ps){let t;for(Ks=new sa(512),xs=new sa(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(vs(1,e.lens,0,288,Ks,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;vs(2,e.lens,0,32,xs,0,e.work,{bits:5}),Ps=!1}e.lencode=Ks,e.lenbits=9,e.distcode=xs,e.distbits=5}function Ds(e,t,r,n){let i;const a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new ia(a.wsize)),n>=a.wsize?(ca(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),ca(a.window,t,r-n,i,a.wnext),(n-=i)?(ca(a.window,t,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function Cs(e,t){let r,n,i,a,s,o,c,h,u,l,y,p,d,f,g,m,w,b,k,v,A,_,E,S,K=0,x=new ia(4);const P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return-2;r=e.state,12===r.mode&&(r.mode=13),s=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,h=r.hold,u=r.bits,l=o,y=c,_=0;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(2&r.wrap&&35615===h){r.check=0,x[0]=255&h,x[1]=h>>>8&255,r.check=Wa(r.check,x,2,0),h=0,u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&h)<<8)+(h>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&h)){e.msg="unknown compression method",r.mode=30;break}if(h>>>=4,u-=4,A=8+(15&h),0===r.wbits)r.wbits=A;else if(A>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<A,e.adler=r.check=1,r.mode=512&h?10:12,h=0,u=0;break;case 2:for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(r.flags=h,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=30;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=30;break}r.head&&(r.head.text=h>>8&1),512&r.flags&&(x[0]=255&h,x[1]=h>>>8&255,r.check=Wa(r.check,x,2,0)),h=0,u=0,r.mode=3;case 3:for(;u<32;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.head&&(r.head.time=h),512&r.flags&&(x[0]=255&h,x[1]=h>>>8&255,x[2]=h>>>16&255,x[3]=h>>>24&255,r.check=Wa(r.check,x,4,0)),h=0,u=0,r.mode=4;case 4:for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.head&&(r.head.xflags=255&h,r.head.os=h>>8),512&r.flags&&(x[0]=255&h,x[1]=h>>>8&255,r.check=Wa(r.check,x,2,0)),h=0,u=0,r.mode=5;case 5:if(1024&r.flags){for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.length=h,r.head&&(r.head.extra_len=h),512&r.flags&&(x[0]=255&h,x[1]=h>>>8&255,r.check=Wa(r.check,x,2,0)),h=0,u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p=r.length,p>o&&(p=o),p&&(r.head&&(A=r.head.extra_len-r.length,r.head.extra||(r.head.extra=Array(r.head.extra_len)),ca(r.head.extra,n,a,p,A)),512&r.flags&&(r.check=Wa(r.check,n,p,a)),o-=p,a+=p,r.length-=p),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;p=0;do{A=n[a+p++],r.head&&A&&r.length<65536&&(r.head.name+=String.fromCharCode(A))}while(A&&p<o);if(512&r.flags&&(r.check=Wa(r.check,n,p,a)),o-=p,a+=p,A)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;p=0;do{A=n[a+p++],r.head&&A&&r.length<65536&&(r.head.comment+=String.fromCharCode(A))}while(A&&p<o);if(512&r.flags&&(r.check=Wa(r.check,n,p,a)),o-=p,a+=p,A)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;u<16;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(h!==(65535&r.check)){e.msg="header crc mismatch",r.mode=30;break}h=0,u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;u<32;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}e.adler=r.check=As(h),h=0,u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,r.hold=h,r.bits=u,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){h>>>=7&u,u-=7&u,r.mode=27;break}for(;u<3;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}switch(r.last=1&h,h>>>=1,u-=1,3&h){case 0:r.mode=14;break;case 1:if(Us(r),r.mode=20,6===t){h>>>=2,u-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}h>>>=2,u-=2;break;case 14:for(h>>>=7&u,u-=7&u;u<32;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if((65535&h)!=(h>>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&h,h=0,u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(p=r.length,p){if(p>o&&(p=o),p>c&&(p=c),0===p)break e;ca(i,n,a,p,s),o-=p,a+=p,c-=p,s+=p,r.length-=p;break}r.mode=12;break;case 17:for(;u<14;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(r.nlen=257+(31&h),h>>>=5,u-=5,r.ndist=1+(31&h),h>>>=5,u-=5,r.ncode=4+(15&h),h>>>=4,u-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;u<3;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.lens[P[r.have++]]=7&h,h>>>=3,u-=3}for(;r.have<19;)r.lens[P[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,E={bits:r.lenbits},_=vs(0,r.lens,0,19,r.lencode,0,r.work,E),r.lenbits=E.bits,_){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;K=r.lencode[h&(1<<r.lenbits)-1],g=K>>>24,m=K>>>16&255,w=65535&K,!(g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(w<16)h>>>=g,u-=g,r.lens[r.have++]=w;else{if(16===w){for(S=g+2;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(h>>>=g,u-=g,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}A=r.lens[r.have-1],p=3+(3&h),h>>>=2,u-=2}else if(17===w){for(S=g+3;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}h>>>=g,u-=g,A=0,p=3+(7&h),h>>>=3,u-=3}else{for(S=g+7;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}h>>>=g,u-=g,A=0,p=11+(127&h),h>>>=7,u-=7}if(r.have+p>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;p--;)r.lens[r.have++]=A}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,E={bits:r.lenbits},_=vs(1,r.lens,0,r.nlen,r.lencode,0,r.work,E),r.lenbits=E.bits,_){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,E={bits:r.distbits},_=vs(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,E),r.distbits=E.bits,_){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(o>=6&&c>=258){e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,r.hold=h,r.bits=u,gs(e,y),s=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,h=r.hold,u=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;K=r.lencode[h&(1<<r.lenbits)-1],g=K>>>24,m=K>>>16&255,w=65535&K,!(g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(m&&0==(240&m)){for(b=g,k=m,v=w;K=r.lencode[v+((h&(1<<b+k)-1)>>b)],g=K>>>24,m=K>>>16&255,w=65535&K,!(b+g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}h>>>=b,u-=b,r.back+=b}if(h>>>=g,u-=g,r.back+=g,r.length=w,0===m){r.mode=26;break}if(32&m){r.back=-1,r.mode=12;break}if(64&m){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&m,r.mode=22;case 22:if(r.extra){for(S=r.extra;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.length+=h&(1<<r.extra)-1,h>>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;K=r.distcode[h&(1<<r.distbits)-1],g=K>>>24,m=K>>>16&255,w=65535&K,!(g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(0==(240&m)){for(b=g,k=m,v=w;K=r.distcode[v+((h&(1<<b+k)-1)>>b)],g=K>>>24,m=K>>>16&255,w=65535&K,!(b+g<=u);){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}h>>>=b,u-=b,r.back+=b}if(h>>>=g,u-=g,r.back+=g,64&m){e.msg="invalid distance code",r.mode=30;break}r.offset=w,r.extra=15&m,r.mode=24;case 24:if(r.extra){for(S=r.extra;u<S;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}r.offset+=h&(1<<r.extra)-1,h>>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===c)break e;if(p=y-c,r.offset>p){if(p=r.offset-p,p>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p>r.wnext?(p-=r.wnext,d=r.wsize-p):d=r.wnext-p,p>r.length&&(p=r.length),f=r.window}else f=i,d=s-r.offset,p=r.length;p>c&&(p=c),c-=p,r.length-=p;do{i[s++]=f[d++]}while(--p);0===r.length&&(r.mode=21);break;case 26:if(0===c)break e;i[s++]=r.length,c--,r.mode=21;break;case 27:if(r.wrap){for(;u<32;){if(0===o)break e;o--,h|=n[a++]<<u,u+=8}if(y-=c,e.total_out+=y,r.total+=y,y&&(e.adler=r.check=r.flags?Wa(r.check,i,y,s-y):Ga(r.check,i,y,s-y)),y=c,(r.flags?h:As(h))!==r.check){e.msg="incorrect data check",r.mode=30;break}h=0,u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;u<32;){if(0===o)break e;o--,h+=n[a++]<<u,u+=8}if(h!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=30;break}h=0,u=0}r.mode=29;case 29:_=1;break e;case 30:_=-3;break e;case 32:default:return-2}return e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,r.hold=h,r.bits=u,(r.wsize||y!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Ds(e,e.output,e.next_out,y-e.avail_out),l-=e.avail_in,y-=e.avail_out,e.total_in+=l,e.total_out+=y,r.total+=y,r.wrap&&y&&(e.adler=r.check=r.flags?Wa(r.check,i,y,e.next_out-y):Ga(r.check,i,y,e.next_out-y)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0===l&&0===y||4===t)&&0===_&&(_=-5),_}function Is(e,t){const r=t.length;let n,i;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?-2:11===n.mode&&(i=1,i=Ga(i,t,r,0),i!==n.check)?-3:(Ds(e,t,r,r),n.havedict=1,0)):-2}class Bs{constructor(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}}class Ts{constructor(e){this.options={chunkSize:16384,windowBits:0,...e||{}};const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ds,this.strm.avail_out=0;let r=Ss(this.strm,t.windowBits);if(0!==r)throw Error($a[r]);if(this.header=new Bs,function(e,t){let r;e&&e.state&&(r=e.state,0==(2&r.wrap)||(r.head=t,t.done=!1))}(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=ps(t.dictionary):t.dictionary instanceof ArrayBuffer&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=Is(this.strm,t.dictionary),0!==r)))throw Error($a[r])}push(e,t){const{strm:r,options:{chunkSize:n,dictionary:i}}=this;let a,s,o=!1;if(this.ended)return!1;s=t===~~t?t:!0===t?4:0,"string"==typeof e?r.input=function(e){const t=new ia(e.length);for(let r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(e):e instanceof ArrayBuffer?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;do{if(0===r.avail_out&&(r.output=new ia(n),r.next_out=0,r.avail_out=n),a=Cs(r,0),2===a&&i&&(a=Is(this.strm,i)),-5===a&&!0===o&&(a=0,o=!1),1!==a&&0!==a)return this.onEnd(a),this.ended=!0,!1;r.next_out&&(0!==r.avail_out&&1!==a&&(0!==r.avail_in||4!==s&&2!==s)||this.onData(ta(r.output,r.next_out))),0===r.avail_in&&0===r.avail_out&&(o=!0)}while((r.avail_in>0||0===r.avail_out)&&1!==a);return 1===a&&(s=4),4===s?(a=function(e){if(!e||!e.state)return-2;const t=e.state;return t.window&&(t.window=null),e.state=null,0}(this.strm),this.onEnd(a),this.ended=!0,0===a):2!==s||(this.onEnd(0),r.avail_out=0,!0)}onData(e){this.chunks.push(e)}onEnd(e){0===e&&(this.result=oa(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}}var zs=[0,1,3,7,15,31,63,127,255],Rs=function(e){this.stream=e,this.bitOffset=0,this.curByte=0,this.hasByte=!1};Rs.prototype._ensureByte=function(){this.hasByte||(this.curByte=this.stream.readByte(),this.hasByte=!0)},Rs.prototype.read=function(e){for(var t=0;e>0;){this._ensureByte();var r=8-this.bitOffset;if(e>=r)t<<=r,t|=zs[r]&this.curByte,this.hasByte=!1,this.bitOffset=0,e-=r;else{t<<=e;var n=r-e;t|=(this.curByte&zs[e]<<n)>>n,this.bitOffset+=e,e=0}}return t},Rs.prototype.seek=function(e){var t=e%8,r=(e-t)/8;this.bitOffset=t,this.stream.seek(r),this.hasByte=!1},Rs.prototype.pi=function(){var e,t=new Uint8Array(6);for(e=0;e<t.length;e++)t[e]=this.read(8);return function(e){return Array.prototype.map.call(e,(e=>("00"+e.toString(16)).slice(-2))).join("")}(t)};var Ms=Rs,Ns=function(){};Ns.prototype.readByte=function(){throw Error("abstract method readByte() not implemented")},Ns.prototype.read=function(e,t,r){for(var n=0;n<r;){var i=this.readByte();if(i<0)return 0===n?-1:n;e[t++]=i,n++}return n},Ns.prototype.seek=function(e){throw Error("abstract method seek() not implemented")},Ns.prototype.writeByte=function(e){throw Error("abstract method readByte() not implemented")},Ns.prototype.write=function(e,t,r){var n;for(n=0;n<r;n++)this.writeByte(e[t++]);return r},Ns.prototype.flush=function(){};var Os,Ls=Ns,Fs=(Os=new Uint32Array([0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]),function(){var e=4294967295;this.getCRC=function(){return~e>>>0},this.updateCRC=function(t){e=e<<8^Os[255&(e>>>24^t)]},this.updateCRCRun=function(t,r){for(;r-- >0;)e=e<<8^Os[255&(e>>>24^t)]}}),js=function(e,t){var r,n=e[t];for(r=t;r>0;r--)e[r]=e[r-1];return e[0]=n,n},Hs={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},qs={};qs[Hs.LAST_BLOCK]="Bad file checksum",qs[Hs.NOT_BZIP_DATA]="Not bzip data",qs[Hs.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",qs[Hs.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",qs[Hs.DATA_ERROR]="Data error",qs[Hs.OUT_OF_MEMORY]="Out of memory",qs[Hs.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";var Gs=function(e,t){var r=qs[e]||"unknown error";t&&(r+=": "+t);var n=new TypeError(r);throw n.errorCode=e,n},Vs=function(e,t){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(e,t)};Vs.prototype._init_block=function(){return this._get_next_block()?(this.blockCRC=new Fs,!0):(this.writeCount=-1,!1)},Vs.prototype._start_bunzip=function(e,t){var r=new Uint8Array(4);4===e.read(r,0,4)&&"BZh"===String.fromCharCode(r[0],r[1],r[2])||Gs(Hs.NOT_BZIP_DATA,"bad magic");var n=r[3]-48;(n<1||n>9)&&Gs(Hs.NOT_BZIP_DATA,"level out of range"),this.reader=new Ms(e),this.dbufSize=1e5*n,this.nextoutput=0,this.outputStream=t,this.streamCRC=0},Vs.prototype._get_next_block=function(){var e,t,r,n=this.reader,i=n.pi();if("177245385090"===i)return!1;"314159265359"!==i&&Gs(Hs.NOT_BZIP_DATA),this.targetBlockCRC=n.read(32)>>>0,this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,n.read(1)&&Gs(Hs.OBSOLETE_INPUT);var a=n.read(24);a>this.dbufSize&&Gs(Hs.DATA_ERROR,"initial position out of bounds");var s=n.read(16),o=new Uint8Array(256),c=0;for(e=0;e<16;e++)if(s&1<<15-e){var h=16*e;for(r=n.read(16),t=0;t<16;t++)r&1<<15-t&&(o[c++]=h+t)}var u=n.read(3);(u<2||u>6)&&Gs(Hs.DATA_ERROR);var l=n.read(15);0===l&&Gs(Hs.DATA_ERROR);var y=new Uint8Array(256);for(e=0;e<u;e++)y[e]=e;var p=new Uint8Array(l);for(e=0;e<l;e++){for(t=0;n.read(1);t++)t>=u&&Gs(Hs.DATA_ERROR);p[e]=js(y,t)}var d,f=c+2,g=[];for(t=0;t<u;t++){var m,w,b=new Uint8Array(f),k=new Uint16Array(21);for(s=n.read(5),e=0;e<f;e++){for(;(s<1||s>20)&&Gs(Hs.DATA_ERROR),n.read(1);)n.read(1)?s--:s++;b[e]=s}for(m=w=b[0],e=1;e<f;e++)b[e]>w?w=b[e]:b[e]<m&&(m=b[e]);d={},g.push(d),d.permute=new Uint16Array(258),d.limit=new Uint32Array(22),d.base=new Uint32Array(21),d.minLen=m,d.maxLen=w;var v=0;for(e=m;e<=w;e++)for(k[e]=d.limit[e]=0,s=0;s<f;s++)b[s]===e&&(d.permute[v++]=s);for(e=0;e<f;e++)k[b[e]]++;for(v=s=0,e=m;e<w;e++)v+=k[e],d.limit[e]=v-1,v<<=1,s+=k[e],d.base[e+1]=v-s;d.limit[w+1]=Number.MAX_VALUE,d.limit[w]=v+k[w]-1,d.base[m]=0}var A=new Uint32Array(256);for(e=0;e<256;e++)y[e]=e;var _,E=0,S=0,K=0,x=this.dbuf=new Uint32Array(this.dbufSize);for(f=0;;){for(f--||(f=49,K>=l&&Gs(Hs.DATA_ERROR),d=g[p[K++]]),e=d.minLen,t=n.read(e);e>d.maxLen&&Gs(Hs.DATA_ERROR),!(t<=d.limit[e]);e++)t=t<<1|n.read(1);((t-=d.base[e])<0||t>=258)&&Gs(Hs.DATA_ERROR);var P=d.permute[t];if(0!==P&&1!==P){if(E)for(E=0,S+s>this.dbufSize&&Gs(Hs.DATA_ERROR),A[_=o[y[0]]]+=s;s--;)x[S++]=_;if(P>c)break;S>=this.dbufSize&&Gs(Hs.DATA_ERROR),A[_=o[_=js(y,e=P-1)]]++,x[S++]=_}else E||(E=1,s=0),s+=0===P?E:2*E,E<<=1}for((a<0||a>=S)&&Gs(Hs.DATA_ERROR),t=0,e=0;e<256;e++)r=t+A[e],A[e]=t,t=r;for(e=0;e<S;e++)x[A[_=255&x[e]]]|=e<<8,A[_]++;var U=0,D=0,C=0;return S&&(D=255&(U=x[a]),U>>=8,C=-1),this.writePos=U,this.writeCurrent=D,this.writeCount=S,this.writeRun=C,!0},Vs.prototype._read_bunzip=function(e,t){var r,n,i;if(this.writeCount<0)return 0;var a=this.dbuf,s=this.writePos,o=this.writeCurrent,c=this.writeCount;this.outputsize;for(var h=this.writeRun;c;){for(c--,n=o,o=255&(s=a[s]),s>>=8,3==h++?(r=o,i=n,o=-1):(r=1,i=o),this.blockCRC.updateCRCRun(i,r);r--;)this.outputStream.writeByte(i),this.nextoutput++;o!=n&&(h=0)}return this.writeCount=c,this.blockCRC.getCRC()!==this.targetBlockCRC&&Gs(Hs.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput};var Ws=function(e){if("readByte"in e)return e;var t=new Ls;return t.pos=0,t.readByte=function(){return e[this.pos++]},t.seek=function(e){this.pos=e},t.eof=function(){return this.pos>=e.length},t},$s=function(e){var t=new Ls,r=!0;if(e)if("number"==typeof e)t.buffer=new Uint8Array(e),r=!1;else{if("writeByte"in e)return e;t.buffer=e,r=!1}else t.buffer=new Uint8Array(16384);return t.pos=0,t.writeByte=function(e){if(r&&this.pos>=this.buffer.length){var t=new Uint8Array(2*this.buffer.length);t.set(this.buffer),this.buffer=t}this.buffer[this.pos++]=e},t.getBuffer=function(){if(this.pos!==this.buffer.length){if(!r)throw new TypeError("outputsize does not match decoded input");var e=new Uint8Array(this.pos);e.set(this.buffer.subarray(0,this.pos)),this.buffer=e}return this.buffer},t._coerced=!0,t};var Zs=function(e,t,r){for(var n=Ws(e),i=$s(t),a=new Vs(n,i);!("eof"in n)||!n.eof();)if(a._init_block())a._read_bunzip();else{var s=a.reader.read(32)>>>0;if(s!==a.streamCRC&&Gs(Hs.DATA_ERROR,"Bad stream CRC (got "+a.streamCRC.toString(16)+" expected "+s.toString(16)+")"),!r||!("eof"in n)||n.eof())break;a._start_bunzip(n,i)}if("getBuffer"in i)return i.getBuffer()};class Qs{static get tag(){return re.packet.literalData}constructor(e=new Date){this.format=re.literal.utf8,this.date=W.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=re.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(null===this.text||W.isStream(this.text))&&(this.text=W.decodeUTF8(W.nativeEOL(this.getBytes(e)))),this.text}setBytes(e,t){this.format=t,this.data=e,this.text=null}getBytes(e=!1){return null===this.data&&(this.data=W.canonicalizeEOL(W.encodeUTF8(this.text))),e?O(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await M(e,(async e=>{const t=await e.readByte(),r=await e.readByte();this.filename=W.decodeUTF8(await e.readBytes(r)),this.date=W.readDate(await e.readBytes(4));let n=e.remainder();s(n)&&(n=await j(n)),this.setBytes(n,t)}))}writeHeader(){const e=W.encodeUTF8(this.filename),t=new Uint8Array([e.length]),r=new Uint8Array([this.format]),n=W.writeDate(this.date);return W.concatUint8Array([r,t,e,n])}write(){const e=this.writeHeader(),t=this.getBytes();return W.concat([e,t])}}const Ys=Symbol("verified"),Xs=new Set([re.signatureSubpacket.issuer,re.signatureSubpacket.issuerFingerprint,re.signatureSubpacket.embeddedSignature]);class Js{static get tag(){return re.packet.signature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.signatureData=null,this.unhashedSubpackets=[],this.signedHashValue=null,this.created=null,this.signatureExpirationTime=null,this.signatureNeverExpires=!0,this.exportable=null,this.trustLevel=null,this.trustAmount=null,this.regularExpression=null,this.revocable=null,this.keyExpirationTime=null,this.keyNeverExpires=null,this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyID=new pe,this.rawNotations=[],this.notations={},this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserID=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.issuerKeyVersion=null,this.issuerFingerprint=null,this.preferredAEADAlgorithms=null,this.revoked=null,this[Ys]=null}read(e){let t=0;if(this.version=e[t++],4!==this.version&&5!==this.version)throw new wn(`Version ${this.version} of the signature packet is unsupported.`);if(this.signatureType=e[t++],this.publicKeyAlgorithm=e[t++],this.hashAlgorithm=e[t++],t+=this.readSubPackets(e.subarray(t,e.length),!0),!this.created)throw Error("Missing signature creation time subpacket.");this.signatureData=e.subarray(0,t),t+=this.readSubPackets(e.subarray(t,e.length),!1),this.signedHashValue=e.subarray(t,t+2),t+=2,this.params=Ji.signature.parseSignatureParams(this.publicKeyAlgorithm,e.subarray(t,e.length))}writeParams(){return this.params instanceof Promise?q((async()=>Ji.serializeParams(this.publicKeyAlgorithm,await this.params))):Ji.serializeParams(this.publicKeyAlgorithm,this.params)}write(){const e=[];return e.push(this.signatureData),e.push(this.writeUnhashedSubPackets()),e.push(this.signedHashValue),e.push(this.writeParams()),W.concat(e)}async sign(e,t,r=new Date,n=!1){5===e.version?this.version=5:this.version=4;const i=[new Uint8Array([this.version,this.signatureType,this.publicKeyAlgorithm,this.hashAlgorithm])];this.created=W.normalizeDate(r),this.issuerKeyVersion=e.version,this.issuerFingerprint=e.getFingerprintBytes(),this.issuerKeyID=e.getKeyID(),i.push(this.writeHashedSubPackets()),this.unhashedSubpackets=[],this.signatureData=W.concat(i);const a=this.toHash(this.signatureType,t,n),s=await this.hash(this.signatureType,t,a,n);this.signedHashValue=F(N(s),0,2);const o=async()=>Ji.signature.sign(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await j(s));W.isStream(s)?this.params=o():(this.params=await o(),this[Ys]=!0)}writeHashedSubPackets(){const e=re.signatureSubpacket,t=[];let r;if(null===this.created)throw Error("Missing signature creation time");t.push(eo(e.signatureCreationTime,W.writeDate(this.created))),null!==this.signatureExpirationTime&&t.push(eo(e.signatureExpirationTime,W.writeNumber(this.signatureExpirationTime,4))),null!==this.exportable&&t.push(eo(e.exportableCertification,new Uint8Array([this.exportable?1:0]))),null!==this.trustLevel&&(r=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(eo(e.trustSignature,r))),null!==this.regularExpression&&t.push(eo(e.regularExpression,this.regularExpression)),null!==this.revocable&&t.push(eo(e.revocable,new Uint8Array([this.revocable?1:0]))),null!==this.keyExpirationTime&&t.push(eo(e.keyExpirationTime,W.writeNumber(this.keyExpirationTime,4))),null!==this.preferredSymmetricAlgorithms&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(eo(e.preferredSymmetricAlgorithms,r))),null!==this.revocationKeyClass&&(r=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),r=W.concat([r,this.revocationKeyFingerprint]),t.push(eo(e.revocationKey,r))),this.issuerKeyID.isNull()||5===this.issuerKeyVersion||t.push(eo(e.issuer,this.issuerKeyID.write())),this.rawNotations.forEach((([{name:n,value:i,humanReadable:a}])=>{r=[new Uint8Array([a?128:0,0,0,0])],r.push(W.writeNumber(n.length,2)),r.push(W.writeNumber(i.length,2)),r.push(W.stringToUint8Array(n)),r.push(i),r=W.concat(r),t.push(eo(e.notationData,r))})),null!==this.preferredHashAlgorithms&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(eo(e.preferredHashAlgorithms,r))),null!==this.preferredCompressionAlgorithms&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(eo(e.preferredCompressionAlgorithms,r))),null!==this.keyServerPreferences&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.keyServerPreferences)),t.push(eo(e.keyServerPreferences,r))),null!==this.preferredKeyServer&&t.push(eo(e.preferredKeyServer,W.stringToUint8Array(this.preferredKeyServer))),null!==this.isPrimaryUserID&&t.push(eo(e.primaryUserID,new Uint8Array([this.isPrimaryUserID?1:0]))),null!==this.policyURI&&t.push(eo(e.policyURI,W.stringToUint8Array(this.policyURI))),null!==this.keyFlags&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.keyFlags)),t.push(eo(e.keyFlags,r))),null!==this.signersUserID&&t.push(eo(e.signersUserID,W.stringToUint8Array(this.signersUserID))),null!==this.reasonForRevocationFlag&&(r=W.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(eo(e.reasonForRevocation,r))),null!==this.features&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.features)),t.push(eo(e.features,r))),null!==this.signatureTargetPublicKeyAlgorithm&&(r=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],r.push(W.stringToUint8Array(this.signatureTargetHash)),r=W.concat(r),t.push(eo(e.signatureTarget,r))),null!==this.embeddedSignature&&t.push(eo(e.embeddedSignature,this.embeddedSignature.write())),null!==this.issuerFingerprint&&(r=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],r=W.concat(r),t.push(eo(e.issuerFingerprint,r))),null!==this.preferredAEADAlgorithms&&(r=W.stringToUint8Array(W.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(eo(e.preferredAEADAlgorithms,r)));const n=W.concat(t),i=W.writeNumber(n.length,2);return W.concat([i,n])}writeUnhashedSubPackets(){const e=[];this.unhashedSubpackets.forEach((t=>{e.push(yn(t.length)),e.push(t)}));const t=W.concat(e),r=W.writeNumber(t.length,2);return W.concat([r,t])}readSubPacket(e,t=!0){let r=0;const n=128&e[r],i=127&e[r];if(t||(this.unhashedSubpackets.push(e.subarray(r,e.length)),Xs.has(i)))switch(r++,i){case re.signatureSubpacket.signatureCreationTime:this.created=W.readDate(e.subarray(r,e.length));break;case re.signatureSubpacket.signatureExpirationTime:{const t=W.readNumber(e.subarray(r,e.length));this.signatureNeverExpires=0===t,this.signatureExpirationTime=t;break}case re.signatureSubpacket.exportableCertification:this.exportable=1===e[r++];break;case re.signatureSubpacket.trustSignature:this.trustLevel=e[r++],this.trustAmount=e[r++];break;case re.signatureSubpacket.regularExpression:this.regularExpression=e[r];break;case re.signatureSubpacket.revocable:this.revocable=1===e[r++];break;case re.signatureSubpacket.keyExpirationTime:{const t=W.readNumber(e.subarray(r,e.length));this.keyExpirationTime=t,this.keyNeverExpires=0===t;break}case re.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.revocationKey:this.revocationKeyClass=e[r++],this.revocationKeyAlgorithm=e[r++],this.revocationKeyFingerprint=e.subarray(r,r+20);break;case re.signatureSubpacket.issuer:this.issuerKeyID.read(e.subarray(r,e.length));break;case re.signatureSubpacket.notationData:{const t=!!(128&e[r]);r+=4;const i=W.readNumber(e.subarray(r,r+2));r+=2;const a=W.readNumber(e.subarray(r,r+2));r+=2;const s=W.uint8ArrayToString(e.subarray(r,r+i)),o=e.subarray(r+i,r+i+a);this.rawNotations.push({name:s,humanReadable:t,value:o,critical:n}),t&&(this.notations[s]=W.uint8ArrayToString(o));break}case re.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=W.uint8ArrayToString(e.subarray(r,e.length));break;case re.signatureSubpacket.primaryUserID:this.isPrimaryUserID=0!==e[r++];break;case re.signatureSubpacket.policyURI:this.policyURI=W.uint8ArrayToString(e.subarray(r,e.length));break;case re.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.signersUserID:this.signersUserID=W.uint8ArrayToString(e.subarray(r,e.length));break;case re.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[r++],this.reasonForRevocationString=W.uint8ArrayToString(e.subarray(r,e.length));break;case re.signatureSubpacket.features:this.features=[...e.subarray(r,e.length)];break;case re.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[r++],this.signatureTargetHashAlgorithm=e[r++];const t=Ji.getHashByteLength(this.signatureTargetHashAlgorithm);this.signatureTargetHash=W.uint8ArrayToString(e.subarray(r,r+t));break}case re.signatureSubpacket.embeddedSignature:this.embeddedSignature=new Js,this.embeddedSignature.read(e.subarray(r,e.length));break;case re.signatureSubpacket.issuerFingerprint:this.issuerKeyVersion=e[r++],this.issuerFingerprint=e.subarray(r,e.length),5===this.issuerKeyVersion?this.issuerKeyID.read(this.issuerFingerprint):this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));break;case re.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(r,e.length)];break;default:{const e=Error("Unknown signature subpacket type "+i);if(n)throw e;W.printDebug(e)}}}readSubPackets(e,t=!0,r){const n=W.readNumber(e.subarray(0,2));let i=2;for(;i<2+n;){const n=ln(e.subarray(i,e.length));i+=n.offset,this.readSubPacket(e.subarray(i,i+n.len),t,r),i+=n.len}return i}toSign(e,t){const r=re.signature;switch(e){case r.binary:return null!==t.text?W.encodeUTF8(t.getText(!0)):t.getBytes(!0);case r.text:{const e=t.getBytes(!0);return W.canonicalizeEOL(e)}case r.standalone:return new Uint8Array(0);case r.certGeneric:case r.certPersona:case r.certCasual:case r.certPositive:case r.certRevocation:{let e,n;if(t.userID)n=180,e=t.userID;else{if(!t.userAttribute)throw Error("Either a userID or userAttribute packet needs to be supplied for certification.");n=209,e=t.userAttribute}const i=e.write();return W.concat([this.toSign(r.key,t),new Uint8Array([n]),W.writeNumber(i.length,4),i])}case r.subkeyBinding:case r.subkeyRevocation:case r.keyBinding:return W.concat([this.toSign(r.key,t),this.toSign(r.key,{key:t.bind})]);case r.key:if(void 0===t.key)throw Error("Key packet is required for this signature.");return t.key.writeForHash(this.version);case r.keyRevocation:return this.toSign(r.key,t);case r.timestamp:return new Uint8Array(0);case r.thirdParty:throw Error("Not implemented");default:throw Error("Unknown signature type.")}}calculateTrailer(e,t){let r=0;return z(N(this.signatureData),(e=>{r+=e.length}),(()=>{const n=[];return 5!==this.version||this.signatureType!==re.signature.binary&&this.signatureType!==re.signature.text||(t?n.push(new Uint8Array(6)):n.push(e.writeHeader())),n.push(new Uint8Array([this.version,255])),5===this.version&&n.push(new Uint8Array(4)),n.push(W.writeNumber(r,4)),W.concat(n)}))}toHash(e,t,r=!1){const n=this.toSign(e,t);return W.concat([n,this.signatureData,this.calculateTrailer(t,r)])}async hash(e,t,r,n=!1){return r||(r=this.toHash(e,t,n)),Ji.hash.digest(this.hashAlgorithm,r)}async verify(e,t,r,n=new Date,i=!1,a=ne){if(!this.issuerKeyID.equals(e.getKeyID()))throw Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Public key algorithm used to sign signature does not match issuer key algorithm.");const s=t===re.signature.binary||t===re.signature.text;if(!(this[Ys]&&!s)){let n,a;if(this.hashed?a=await this.hashed:(n=this.toHash(t,r,i),a=await this.hash(t,r,n)),a=await j(a),this.signedHashValue[0]!==a[0]||this.signedHashValue[1]!==a[1])throw Error("Signed digest did not match");this.params=await this.params;const s=this.publicKeyAlgorithm===re.publicKey.hmac?e.privateParams:null;if(this[Ys]=await Ji.signature.verify(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,s,n,a),!this[Ys])throw Error("Signature verification failed")}const o=W.normalizeDate(n);if(o&&this.created>o)throw Error("Signature creation time is in the future");if(o&&o>=this.getExpirationTime())throw Error("Signature is expired");if(a.rejectHashAlgorithms.has(this.hashAlgorithm))throw Error("Insecure hash algorithm: "+re.read(re.hash,this.hashAlgorithm).toUpperCase());if(a.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[re.signature.binary,re.signature.text].includes(this.signatureType))throw Error("Insecure message hash algorithm: "+re.read(re.hash,this.hashAlgorithm).toUpperCase());if(this.rawNotations.forEach((({name:e,critical:t})=>{if(t&&a.knownNotations.indexOf(e)<0)throw Error("Unknown critical notation: "+e)})),null!==this.revocationKeyClass)throw Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){const t=W.normalizeDate(e);return null!==t&&!(this.created<=t&&t<this.getExpirationTime())}getExpirationTime(){return this.signatureNeverExpires?1/0:new Date(this.created.getTime()+1e3*this.signatureExpirationTime)}}function eo(e,t){const r=[];return r.push(yn(t.length+1)),r.push(new Uint8Array([e])),r.push(t),W.concat(r)}class to{static get tag(){return re.packet.onePassSignature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.issuerKeyID=null,this.flags=null}read(e){let t=0;if(this.version=e[t++],3!==this.version)throw new wn(`Version ${this.version} of the one-pass signature packet is unsupported.`);return this.signatureType=e[t++],this.hashAlgorithm=e[t++],this.publicKeyAlgorithm=e[t++],this.issuerKeyID=new pe,this.issuerKeyID.read(e.subarray(t,t+8)),t+=8,this.flags=e[t++],this}write(){const e=new Uint8Array([3,this.signatureType,this.hashAlgorithm,this.publicKeyAlgorithm]),t=new Uint8Array([this.flags]);return W.concatUint8Array([e,this.issuerKeyID.write(),t])}calculateTrailer(...e){return q((async()=>Js.prototype.calculateTrailer.apply(await this.correspondingSig,e)))}async verify(){const e=await this.correspondingSig;if(!e||e.constructor.tag!==re.packet.signature)throw Error("Corresponding signature packet missing");if(e.signatureType!==this.signatureType||e.hashAlgorithm!==this.hashAlgorithm||e.publicKeyAlgorithm!==this.publicKeyAlgorithm||!e.issuerKeyID.equals(this.issuerKeyID))throw Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}}function ro(e,t){if(!t[e]){let t;try{t=re.read(re.packet,e)}catch(t){throw new wn("Unknown packet type with tag: "+e)}throw Error("Packet not allowed in this context: "+t)}return new t[e]}to.prototype.hash=Js.prototype.hash,to.prototype.toHash=Js.prototype.toHash,to.prototype.toSign=Js.prototype.toSign;class no extends Array{static async fromBinary(e,t,r=ne){const n=new no;return await n.read(e,t,r),n}async read(e,t,r=ne){this.stream=R(e,(async(e,n)=>{const i=C(n);try{for(;;){await i.ready;if(await mn(e,(async e=>{try{if(e.tag===re.packet.marker||e.tag===re.packet.trust)return;const n=ro(e.tag,t);n.packets=new no,n.fromStream=W.isStream(e.packet),await n.read(e.packet,r),await i.write(n)}catch(t){const n=!r.ignoreUnsupportedPackets&&t instanceof wn,a=!(r.ignoreMalformedPackets||t instanceof wn);if(n||a||gn(e.tag))await i.abort(t);else{const t=new bn(e.tag,e.packet);await i.write(t)}W.printDebugError(t)}})))return await i.ready,void await i.close()}}catch(e){await i.abort(e)}}));const n=D(this.stream);for(;;){const{done:e,value:t}=await n.read();if(e?this.stream=null:this.push(t),e||gn(t.constructor.tag))break}n.releaseLock()}write(){const e=[];for(let t=0;t<this.length;t++){const r=this[t]instanceof bn?this[t].tag:this[t].constructor.tag,n=this[t].write();if(W.isStream(n)&&gn(this[t].constructor.tag)){let t=[],i=0;const a=512;e.push(dn(r)),e.push(z(n,(e=>{if(t.push(e),i+=e.length,i>=a){const e=Math.min(Math.log(i)/Math.LN2|0,30),r=2**e,n=W.concat([pn(e)].concat(t));return t=[n.subarray(1+r)],i=t[0].length,n.subarray(0,1+r)}}),(()=>W.concat([yn(i)].concat(t)))))}else{if(W.isStream(n)){let t=0;e.push(z(N(n),(e=>{t+=e.length}),(()=>fn(r,t))))}else e.push(fn(r,n.length));e.push(n)}}return W.concat(e)}filterByTag(...e){const t=new no,r=e=>t=>e===t;for(let n=0;n<this.length;n++)e.some(r(this[n].constructor.tag))&&t.push(this[n]);return t}findPacket(e){return this.find((t=>t.constructor.tag===e))}indexOfTag(...e){const t=[],r=this,n=e=>t=>e===t;for(let i=0;i<this.length;i++)e.some(n(r[i].constructor.tag))&&t.push(i);return t}}const io=/*#__PURE__*/W.constructAllowedPackets([Qs,to,Js]);class ao{static get tag(){return re.packet.compressedData}constructor(e=ne){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null,this.deflateLevel=e.deflateLevel}async read(e,t=ne){await M(e,(async e=>{this.algorithm=await e.readByte(),this.compressed=e.remainder(),await this.decompress(t)}))}write(){return null===this.compressed&&this.compress(),W.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=ne){const t=re.read(re.compression,this.algorithm),r=yo[t];if(!r)throw Error(t+" decompression not supported");this.packets=await no.fromBinary(r(this.compressed),io,e)}compress(){const e=re.read(re.compression,this.algorithm),t=lo[e];if(!t)throw Error(e+" compression not supported");this.compressed=t(this.packets.write(),this.deflateLevel)}}const so=W.getNodeZlib();function oo(e){return e}function co(e,t,r={}){return function(n){return!W.isStream(n)||s(n)?q((()=>j(n).then((t=>new Promise(((n,i)=>{e(t,r,((e,t)=>{if(e)return i(e);n(t)}))})))))):f(g(n).pipe(t(r)))}}function ho(e,t={}){return function(r){const n=new e(t);return z(r,(e=>{if(e.length)return n.push(e,2),n.result}),(()=>{if(e===fs)return n.push([],4),n.result}))}}function uo(e){return function(t){return q((async()=>e(await j(t))))}}const lo=so?{zip:/*#__PURE__*/(e,t)=>co(so.deflateRaw,so.createDeflateRaw,{level:t})(e),zlib:/*#__PURE__*/(e,t)=>co(so.deflate,so.createDeflate,{level:t})(e)}:{zip:/*#__PURE__*/(e,t)=>ho(fs,{raw:!0,level:t})(e),zlib:/*#__PURE__*/(e,t)=>ho(fs,{level:t})(e)},yo=so?{uncompressed:oo,zip:/*#__PURE__*/co(so.inflateRaw,so.createInflateRaw),zlib:/*#__PURE__*/co(so.inflate,so.createInflate),bzip2:/*#__PURE__*/uo(Zs)}:{uncompressed:oo,zip:/*#__PURE__*/ho(Ts,{raw:!0}),zlib:/*#__PURE__*/ho(Ts),bzip2:/*#__PURE__*/uo(Zs)},po=/*#__PURE__*/W.constructAllowedPackets([Qs,ao,to,Js]);class fo{static get tag(){return re.packet.symEncryptedIntegrityProtectedData}constructor(){this.version=1,this.encrypted=null,this.packets=null}async read(e){await M(e,(async e=>{const t=await e.readByte();if(1!==t)throw new wn(`Version ${t} of the SEIP packet is unsupported.`);this.encrypted=e.remainder()}))}write(){return W.concat([new Uint8Array([1]),this.encrypted])}async encrypt(e,t,r=ne){const{blockSize:n}=Ji.getCipher(e);let i=this.packets.write();s(i)&&(i=await j(i));const a=await Ji.getPrefixRandom(e),o=new Uint8Array([211,20]),c=W.concat([a,i,o]),h=await Ji.hash.sha1(O(c)),u=W.concat([c,h]);return this.encrypted=await Ji.mode.cfb.encrypt(e,t,u,new Uint8Array(n),r),!0}async decrypt(e,t,r=ne){const{blockSize:n}=Ji.getCipher(e);let i=N(this.encrypted);s(i)&&(i=await j(i));const a=await Ji.mode.cfb.decrypt(e,t,i,new Uint8Array(n)),o=F(O(a),-20),c=F(a,0,-20),h=Promise.all([j(await Ji.hash.sha1(O(c))),j(o)]).then((([e,t])=>{if(!W.equalsUint8Array(e,t))throw Error("Modification detected.");return new Uint8Array})),u=F(c,n+2);let l=F(u,0,-2);return l=U([l,q((()=>h))]),W.isStream(i)&&r.allowUnauthenticatedStream||(l=await j(l)),this.packets=await no.fromBinary(l,po,r),!0}}const go=/*#__PURE__*/W.constructAllowedPackets([Qs,ao,to,Js]);class mo{static get tag(){return re.packet.aeadEncryptedData}constructor(){this.version=1,this.cipherAlgorithm=null,this.aeadAlgorithm=re.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await M(e,(async e=>{const t=await e.readByte();if(1!==t)throw new wn(`Version ${t} of the AEAD-encrypted data packet is not supported.`);this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte();const r=Ji.getAEADMode(this.aeadAlgorithm);this.iv=await e.readBytes(r.ivLength),this.encrypted=e.remainder()}))}write(){return W.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,r=ne){this.packets=await no.fromBinary(await this.crypt("decrypt",t,N(this.encrypted)),go,r)}async encrypt(e,t,r=ne){this.cipherAlgorithm=e;const{ivLength:n}=Ji.getAEADMode(this.aeadAlgorithm);this.iv=await Ji.random.getRandomBytes(n),this.chunkSizeByte=r.aeadChunkSizeByte;const i=this.packets.write();this.encrypted=await this.crypt("encrypt",t,i)}async crypt(e,t,r){const n=Ji.getAEADMode(this.aeadAlgorithm),i=await n(this.cipherAlgorithm,t),a="decrypt"===e?n.tagLength:0,s="encrypt"===e?n.tagLength:0,o=2**(this.chunkSizeByte+6)+a,c=new ArrayBuffer(21),h=new Uint8Array(c,0,13),u=new Uint8Array(c),l=new DataView(c),y=new Uint8Array(c,5,8);h.set([192|mo.tag,this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte],0);let p=0,d=Promise.resolve(),f=0,g=0;const m=this.iv;return R(r,(async(t,r)=>{if("array"!==W.isStream(t)){const e=new E({},{highWaterMark:W.getHardwareConcurrency()*2**(this.chunkSizeByte+6),size:e=>e.length});I(e.readable,r),r=e.writable}const c=D(t),w=C(r);try{for(;;){let t=await c.readBytes(o+a)||new Uint8Array;const r=t.subarray(t.length-a);let b,k;if(t=t.subarray(0,t.length-a),!p||t.length?(c.unshift(r),b=i[e](t,n.getNonce(m,y),h),g+=t.length-a+s):(l.setInt32(17,f),b=i[e](r,n.getNonce(m,y),u),g+=s,k=!0),f+=t.length-a,d=d.then((()=>b)).then((async e=>{await w.ready,await w.write(e),g-=e.length})).catch((e=>w.abort(e))),(k||g>w.desiredSize)&&await d,k){await w.close();break}l.setInt32(9,++p)}}catch(e){await w.abort(e)}}))}}class wo{static get tag(){return re.packet.publicKeyEncryptedSessionKey}constructor(){this.version=3,this.publicKeyID=new pe,this.publicKeyAlgorithm=null,this.sessionKey=null,this.sessionKeyAlgorithm=null,this.encrypted={}}read(e){if(this.version=e[0],3!==this.version)throw new wn(`Version ${this.version} of the PKESK packet is unsupported.`);this.publicKeyID.read(e.subarray(1,e.length)),this.publicKeyAlgorithm=e[9],this.encrypted=Ji.parseEncSessionKeyParams(this.publicKeyAlgorithm,e.subarray(10))}write(){const e=[new Uint8Array([this.version]),this.publicKeyID.write(),new Uint8Array([this.publicKeyAlgorithm]),Ji.serializeParams(this.publicKeyAlgorithm,this.encrypted)];return W.concatUint8Array(e)}async encrypt(e){const t=W.concatUint8Array([new Uint8Array([re.write(re.symmetric,this.sessionKeyAlgorithm)]),this.sessionKey,W.writeChecksum(this.sessionKey)]),r=re.write(re.publicKey,this.publicKeyAlgorithm),n=r===re.publicKey.aead?e.privateParams:null;this.encrypted=await Ji.publicKeyEncrypt(r,e.publicParams,n,t,e.getFingerprintBytes())}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Decryption error");const r=t?W.concatUint8Array([new Uint8Array([t.sessionKeyAlgorithm]),t.sessionKey,W.writeChecksum(t.sessionKey)]):null,n=await Ji.publicKeyDecrypt(this.publicKeyAlgorithm,e.publicParams,e.privateParams,this.encrypted,e.getFingerprintBytes(),r),i=n[0],a=n.subarray(1,n.length-2),s=n.subarray(n.length-2),o=W.writeChecksum(a),c=o[0]===s[0]&o[1]===s[1];if(t){const e=c&i===t.sessionKeyAlgorithm&a.length===t.sessionKey.length;this.sessionKeyAlgorithm=W.selectUint8(e,i,t.sessionKeyAlgorithm),this.sessionKey=W.selectUint8Array(e,a,t.sessionKey)}else{if(!(c&&re.read(re.symmetric,i)))throw Error("Decryption error");this.sessionKey=a,this.sessionKeyAlgorithm=i}}}class bo{constructor(e=ne){this.algorithm=re.hash.sha256,this.type="iterated",this.c=e.s2kIterationCountByte,this.salt=null}getCount(){return 16+(15&this.c)<<6+(this.c>>4)}read(e){let t=0;switch(this.type=re.read(re.s2k,e[t++]),this.algorithm=e[t++],this.type){case"simple":break;case"salted":this.salt=e.subarray(t,t+8),t+=8;break;case"iterated":this.salt=e.subarray(t,t+8),t+=8,this.c=e[t++];break;case"gnu":if("GNU"!==W.uint8ArrayToString(e.subarray(t,t+3)))throw Error("Unknown s2k type.");t+=3;if(1001!==1e3+e[t++])throw Error("Unknown s2k gnu protection mode.");this.type="gnu-dummy";break;default:throw Error("Unknown s2k type.")}return t}write(){if("gnu-dummy"===this.type)return new Uint8Array([101,0,...W.stringToUint8Array("GNU"),1]);const e=[new Uint8Array([re.write(re.s2k,this.type),this.algorithm])];switch(this.type){case"simple":break;case"salted":e.push(this.salt);break;case"iterated":e.push(this.salt),e.push(new Uint8Array([this.c]));break;case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}return W.concatUint8Array(e)}async produceKey(e,t){e=W.encodeUTF8(e);const r=[];let n=0,i=0;for(;n<t;){let t;switch(this.type){case"simple":t=W.concatUint8Array([new Uint8Array(i),e]);break;case"salted":t=W.concatUint8Array([new Uint8Array(i),this.salt,e]);break;case"iterated":{const r=W.concatUint8Array([this.salt,e]);let n=r.length;const a=Math.max(this.getCount(),n);t=new Uint8Array(i+a),t.set(r,i);for(let e=i+n;e<a;e+=n,n*=2)t.copyWithin(e,i,e);break}case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}const a=await Ji.hash.digest(this.algorithm,t);r.push(a),n+=a.length,i++}return W.concatUint8Array(r).subarray(0,t)}}class ko{static get tag(){return re.packet.symEncryptedSessionKey}constructor(e=ne){this.version=e.aeadProtect?5:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=re.symmetric.aes256,this.aeadAlgorithm=re.write(re.aead,e.preferredAEADAlgorithm),this.encrypted=null,this.s2k=null,this.iv=null}read(e){let t=0;if(this.version=e[t++],4!==this.version&&5!==this.version)throw new wn(`Version ${this.version} of the SKESK packet is unsupported.`);const r=e[t++];if(5===this.version&&(this.aeadAlgorithm=e[t++]),this.s2k=new bo,t+=this.s2k.read(e.subarray(t,e.length)),5===this.version){const r=Ji.getAEADMode(this.aeadAlgorithm);this.iv=e.subarray(t,t+=r.ivLength)}5===this.version||t<e.length?(this.encrypted=e.subarray(t,e.length),this.sessionKeyEncryptionAlgorithm=r):this.sessionKeyAlgorithm=r}write(){const e=null===this.encrypted?this.sessionKeyAlgorithm:this.sessionKeyEncryptionAlgorithm;let t;return 5===this.version?t=W.concatUint8Array([new Uint8Array([this.version,e,this.aeadAlgorithm]),this.s2k.write(),this.iv,this.encrypted]):(t=W.concatUint8Array([new Uint8Array([this.version,e]),this.s2k.write()]),null!==this.encrypted&&(t=W.concatUint8Array([t,this.encrypted]))),t}async decrypt(e){const t=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm,{blockSize:r,keySize:n}=Ji.getCipher(t),i=await this.s2k.produceKey(e,n);if(5===this.version){const e=Ji.getAEADMode(this.aeadAlgorithm),r=new Uint8Array([192|ko.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=await e(t,i);this.sessionKey=await n.decrypt(this.encrypted,this.iv,r)}else if(null!==this.encrypted){const e=await Ji.mode.cfb.decrypt(t,i,this.encrypted,new Uint8Array(r));this.sessionKeyAlgorithm=re.write(re.symmetric,e[0]),this.sessionKey=e.subarray(1,e.length)}else this.sessionKey=i}async encrypt(e,t=ne){const r=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=r,this.s2k=new bo(t),this.s2k.salt=await Ji.random.getRandomBytes(8);const{blockSize:n,keySize:i}=Ji.getCipher(r),a=await this.s2k.produceKey(e,i);if(null===this.sessionKey&&(this.sessionKey=await Ji.generateSessionKey(this.sessionKeyAlgorithm)),5===this.version){const e=Ji.getAEADMode(this.aeadAlgorithm);this.iv=await Ji.random.getRandomBytes(e.ivLength);const t=new Uint8Array([192|ko.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=await e(r,a);this.encrypted=await n.encrypt(this.sessionKey,this.iv,t)}else{const e=W.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await Ji.mode.cfb.encrypt(r,a,e,new Uint8Array(n),t)}}}class vo{static get tag(){return re.packet.publicKey}constructor(e=new Date,t=ne){this.version=t.v5Keys?5:4,this.created=W.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){const t=new vo,{version:r,created:n,algorithm:i,publicParams:a,keyID:s,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=a,t.keyID=s,t.fingerprint=o,t}async read(e){let t=0;if(this.version=e[t++],4===this.version||5===this.version){this.created=W.readDate(e.subarray(t,t+4)),t+=4,this.algorithm=e[t++],5===this.version&&(t+=4);const{read:r,publicParams:n}=Ji.parsePublicKeyParams(this.algorithm,e.subarray(t));return this.publicParams=n,t+=r,await this.computeFingerprintAndKeyID(),t}throw new wn(`Version ${this.version} of the key packet is unsupported.`)}write(){const e=[];e.push(new Uint8Array([this.version])),e.push(W.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));const t=Ji.serializeParams(this.algorithm,this.publicParams);return 5===this.version&&e.push(W.writeNumber(t.length,4)),e.push(t),W.concatUint8Array(e)}writeForHash(e){const t=this.writePublicKey();return 5===e?W.concatUint8Array([new Uint8Array([154]),W.writeNumber(t.length,4),t]):W.concatUint8Array([new Uint8Array([153]),W.writeNumber(t.length,2),t])}isDecrypted(){return null}getCreationTime(){return this.created}getKeyID(){return this.keyID}async computeFingerprintAndKeyID(){if(await this.computeFingerprint(),this.keyID=new pe,5===this.version)this.keyID.read(this.fingerprint.subarray(0,8));else{if(4!==this.version)throw Error("Unsupported key version");this.keyID.read(this.fingerprint.subarray(12,20))}}async computeFingerprint(){const e=this.writeForHash(this.version);if(5===this.version)this.fingerprint=await Ji.hash.sha256(e);else{if(4!==this.version)throw Error("Unsupported key version");this.fingerprint=await Ji.hash.sha1(e)}}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return W.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&W.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){const e={};e.algorithm=re.read(re.publicKey,this.algorithm);const t=this.publicParams.n||this.publicParams.p;return t?e.bits=W.uint8ArrayBitLength(t):this.publicParams.oid?e.curve=this.publicParams.oid.getName():e.symmetric=this.publicParams.cipher.getName(),e}}vo.prototype.readPublicKey=vo.prototype.read,vo.prototype.writePublicKey=vo.prototype.write;const Ao=/*#__PURE__*/W.constructAllowedPackets([Qs,ao,to,Js]);class _o{static get tag(){return re.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,r=ne){if(!r.allowUnauthenticatedMessages)throw Error("Message is not authenticated.");const{blockSize:n}=Ji.getCipher(e),i=await j(N(this.encrypted)),a=await Ji.mode.cfb.decrypt(e,t,i.subarray(n+2),i.subarray(2,n+2));this.packets=await no.fromBinary(a,Ao,r)}async encrypt(e,t,r=ne){const n=this.packets.write(),{blockSize:i}=Ji.getCipher(e),a=await Ji.getPrefixRandom(e),s=await Ji.mode.cfb.encrypt(e,t,a,new Uint8Array(i),r),o=await Ji.mode.cfb.encrypt(e,t,n,s.subarray(2),r);this.encrypted=W.concat([s,o])}}class Eo{static get tag(){return re.packet.marker}read(e){return 80===e[0]&&71===e[1]&&80===e[2]}write(){return new Uint8Array([80,71,80])}}class So extends vo{static get tag(){return re.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){const t=new So,{version:r,created:n,algorithm:i,publicParams:a,keyID:s,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=a,t.keyID=s,t.fingerprint=o,t}}class Ko{static get tag(){return re.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t<e.length;){const r=ln(e.subarray(t,e.length));t+=r.offset,this.attributes.push(W.uint8ArrayToString(e.subarray(t,t+r.len))),t+=r.len}}write(){const e=[];for(let t=0;t<this.attributes.length;t++)e.push(yn(this.attributes[t].length)),e.push(W.stringToUint8Array(this.attributes[t]));return W.concatUint8Array(e)}equals(e){return!!(e&&e instanceof Ko)&&this.attributes.every((function(t,r){return t===e.attributes[r]}))}}class xo extends vo{static get tag(){return re.packet.secretKey}constructor(e=new Date,t=ne){super(e,t),this.keyMaterial=null,this.isEncrypted=null,this.s2kUsage=0,this.s2k=null,this.symmetric=null,this.aead=null,this.privateParams=null}async read(e){let t=await this.readPublicKey(e);if(this.s2kUsage=e[t++],5===this.version&&t++,255===this.s2kUsage||254===this.s2kUsage||253===this.s2kUsage){if(this.symmetric=e[t++],253===this.s2kUsage&&(this.aead=e[t++]),this.s2k=new bo,t+=this.s2k.read(e.subarray(t,e.length)),"gnu-dummy"===this.s2k.type)return}else this.s2kUsage&&(this.symmetric=this.s2kUsage);if(this.s2kUsage&&(this.iv=e.subarray(t,t+Ji.getCipher(this.symmetric).blockSize),t+=this.iv.length),5===this.version&&(t+=4),this.keyMaterial=e.subarray(t),this.isEncrypted=!!this.s2kUsage,!this.isEncrypted){const e=this.keyMaterial.subarray(0,-2);if(!W.equalsUint8Array(W.writeChecksum(e),this.keyMaterial.subarray(-2)))throw Error("Key checksum mismatch");try{const{privateParams:t}=Ji.parsePrivateKeyParams(this.algorithm,e,this.publicParams);this.privateParams=t}catch(e){if(e instanceof wn)throw e;throw Error("Error reading MPIs")}}}write(){const e=[this.writePublicKey()];e.push(new Uint8Array([this.s2kUsage]));const t=[];return 255!==this.s2kUsage&&254!==this.s2kUsage&&253!==this.s2kUsage||(t.push(this.symmetric),253===this.s2kUsage&&t.push(this.aead),t.push(...this.s2k.write())),this.s2kUsage&&"gnu-dummy"!==this.s2k.type&&t.push(...this.iv),5===this.version&&e.push(new Uint8Array([t.length])),e.push(new Uint8Array(t)),this.isDummy()||(this.s2kUsage||(this.keyMaterial=Ji.serializeParams(this.algorithm,this.privateParams)),5===this.version&&e.push(W.writeNumber(this.keyMaterial.length,4)),e.push(this.keyMaterial),this.s2kUsage||e.push(W.writeChecksum(this.keyMaterial))),W.concatUint8Array(e)}isDecrypted(){return!1===this.isEncrypted}isDummy(){return!(!this.s2k||"gnu-dummy"!==this.s2k.type)}makeDummy(e=ne){this.isDummy()||(this.isDecrypted()&&this.clearPrivateParams(),this.isEncrypted=null,this.keyMaterial=null,this.s2k=new bo(e),this.s2k.algorithm=0,this.s2k.c=0,this.s2k.type="gnu-dummy",this.s2kUsage=254,this.symmetric=re.symmetric.aes256)}async encrypt(e,t=ne){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key packet is already encrypted");if(!e)throw Error("A non-empty passphrase is required for key encryption.");this.s2k=new bo(t),this.s2k.salt=await Ji.random.getRandomBytes(8);const r=Ji.serializeParams(this.algorithm,this.privateParams);this.symmetric=re.symmetric.aes256;const n=await Po(this.s2k,e,this.symmetric),{blockSize:i}=Ji.getCipher(this.symmetric);if(this.iv=await Ji.random.getRandomBytes(i),t.aeadProtect){this.s2kUsage=253,this.aead=re.aead.eax;const e=Ji.getAEADMode(this.aead),t=await e(this.symmetric,n);this.keyMaterial=await t.encrypt(r,this.iv.subarray(0,e.ivLength),new Uint8Array)}else this.s2kUsage=254,this.keyMaterial=await Ji.mode.cfb.encrypt(this.symmetric,n,W.concatUint8Array([r,await Ji.hash.sha1(r,t)]),this.iv,t)}async decrypt(e){if(this.isDummy())return!1;if(this.isDecrypted())throw Error("Key packet is already decrypted.");let t,r;if(254!==this.s2kUsage&&253!==this.s2kUsage)throw 255===this.s2kUsage?Error("Encrypted private key is authenticated using an insecure two-byte hash"):Error("Private key is encrypted using an insecure S2K function: unsalted MD5");if(t=await Po(this.s2k,e,this.symmetric),253===this.s2kUsage){const e=Ji.getAEADMode(this.aead),n=await e(this.symmetric,t);try{r=await n.decrypt(this.keyMaterial,this.iv.subarray(0,e.ivLength),new Uint8Array)}catch(e){if("Authentication tag mismatch"===e.message)throw Error("Incorrect key passphrase: "+e.message);throw e}}else{const e=await Ji.mode.cfb.decrypt(this.symmetric,t,this.keyMaterial,this.iv);r=e.subarray(0,-20);const n=await Ji.hash.sha1(r);if(!W.equalsUint8Array(n,e.subarray(-20)))throw Error("Incorrect key passphrase")}try{const{privateParams:e}=Ji.parsePrivateKeyParams(this.algorithm,r,this.publicParams);this.privateParams=e}catch(e){throw Error("Error reading MPIs")}this.isEncrypted=!1,this.keyMaterial=null,this.s2kUsage=0}async validate(){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key is not decrypted");let e;try{e=await Ji.validateParams(this.algorithm,this.publicParams,this.privateParams)}catch(t){e=!1}if(!e)throw Error("Key is invalid")}async generate(e,t,r){const{privateParams:n,publicParams:i}=await Ji.generateParams(this.algorithm,e,t,r);this.privateParams=n,this.publicParams=i,this.isEncrypted=!1}clearPrivateParams(){this.isDummy()||(Object.keys(this.privateParams).forEach((e=>{this.privateParams[e].fill(0),delete this.privateParams[e]})),this.privateParams=null,this.isEncrypted=!0)}}async function Po(e,t,r){const{keySize:n}=Ji.getCipher(r);return e.produceKey(t,n)}var Uo=tt((function(e){!function(t){function r(e){function t(){return _e<Ee}function r(){return _e}function i(e){_e=e}function a(){_e=0,Ee=Ae.length}function s(e,t){return{name:e,tokens:t||"",semantic:t||"",children:[]}}function o(e,t){var r;return null===t?null:((r=s(e)).tokens=t.tokens,r.semantic=t.semantic,r.children.push(t),r)}function c(e,t){return null!==t&&(e.tokens+=t.tokens,e.semantic+=t.semantic),e.children.push(t),e}function h(e){var r;return t()&&e(r=Ae[_e])?(_e+=1,s("token",r)):null}function u(e){return function(){return o("literal",h((function(t){return t===e})))}}function l(){var e=arguments;return function(){var t,n,a,o;for(o=r(),n=s("and"),t=0;t<e.length;t+=1){if(null===(a=e[t]()))return i(o),null;c(n,a)}return n}}function y(){var e=arguments;return function(){var t,n,a;for(a=r(),t=0;t<e.length;t+=1){if(null!==(n=e[t]()))return n;i(a)}return null}}function p(e){return function(){var t,n;return n=r(),null!==(t=e())?t:(i(n),s("opt"))}}function d(e){return function(){var t=e();return null!==t&&(t.semantic=""),t}}function f(e){return function(){var t=e();return null!==t&&t.semantic.length>0&&(t.semantic=" "),t}}function g(e,t){return function(){var n,a,o,h,u;for(h=r(),n=s("star"),o=0,u=void 0===t?0:t;null!==(a=e());)o+=1,c(n,a);return o>=u?n:(i(h),null)}}function m(e){return e.charCodeAt(0)>=128}function w(){return o("cr",u("\r")())}function b(){return o("crlf",l(w,A)())}function k(){return o("dquote",u('"')())}function v(){return o("htab",u("\t")())}function A(){return o("lf",u("\n")())}function _(){return o("sp",u(" ")())}function E(){return o("vchar",h((function(t){var r=t.charCodeAt(0),n=33<=r&&r<=126;return e.rfc6532&&(n=n||m(t)),n})))}function S(){return o("wsp",y(_,v)())}function K(){var e=o("quoted-pair",y(l(u("\\"),y(E,S)),ne)());return null===e?null:(e.semantic=e.semantic[1],e)}function x(){return o("fws",y(ae,l(p(l(g(S),d(b))),g(S,1)))())}function P(){return o("ctext",y((function(){return h((function(t){var r=t.charCodeAt(0),n=33<=r&&r<=39||42<=r&&r<=91||93<=r&&r<=126;return e.rfc6532&&(n=n||m(t)),n}))}),te)())}function U(){return o("ccontent",y(P,K,D)())}function D(){return o("comment",l(u("("),g(l(p(x),U)),p(x),u(")"))())}function C(){return o("cfws",y(l(g(l(p(x),D),1),p(x)),x)())}function I(){return o("atext",h((function(t){var r="a"<=t&&t<="z"||"A"<=t&&t<="Z"||"0"<=t&&t<="9"||["!","#","$","%","&","'","*","+","-","/","=","?","^","_","`","{","|","}","~"].indexOf(t)>=0;return e.rfc6532&&(r=r||m(t)),r})))}function B(){return o("atom",l(f(p(C)),g(I,1),f(p(C)))())}function T(){var e,t;return null===(e=o("dot-atom-text",g(I,1)()))||null!==(t=g(l(u("."),g(I,1)))())&&c(e,t),e}function z(){return o("dot-atom",l(d(p(C)),T,d(p(C)))())}function R(){return o("qtext",y((function(){return h((function(t){var r=t.charCodeAt(0),n=33===r||35<=r&&r<=91||93<=r&&r<=126;return e.rfc6532&&(n=n||m(t)),n}))}),re)())}function M(){return o("qcontent",y(R,K)())}function N(){return o("quoted-string",l(d(p(C)),d(k),g(l(p(f(x)),M)),p(d(x)),d(k),d(p(C)))())}function O(){return o("word",y(B,N)())}function L(){return o("address",y(F,q)())}function F(){return o("mailbox",y(j,J)())}function j(){return o("name-addr",l(p(G),H)())}function H(){return o("angle-addr",y(l(d(p(C)),u("<"),J,u(">"),d(p(C))),se)())}function q(){return o("group",l(G,u(":"),p($),u(";"),d(p(C)))())}function G(){return o("display-name",(null!==(e=o("phrase",y(ie,g(O,1))()))&&(e.semantic=function(e){return e.replace(/([ \t]|\r\n)+/g," ").replace(/^\s*/,"").replace(/\s*$/,"")}(e.semantic)),e));var e}function V(){return o("mailbox-list",y(l(F,g(l(u(","),F))),he)())}function W(){return o("address-list",y(l(L,g(l(u(","),L))),ue)())}function $(){return o("group-list",y(V,d(C),le)())}function Z(){return o("local-part",y(ye,z,N)())}function Q(){return o("dtext",y((function(){return h((function(t){var r=t.charCodeAt(0),n=33<=r&&r<=90||94<=r&&r<=126;return e.rfc6532&&(n=n||m(t)),n}))}),de)())}function Y(){return o("domain-literal",l(d(p(C)),u("["),g(l(p(x),Q)),p(x),u("]"),d(p(C)))())}function X(){return o("domain",(t=y(pe,z,Y)(),e.rejectTLD&&t&&t.semantic&&t.semantic.indexOf(".")<0?null:(t&&(t.semantic=t.semantic.replace(/\s+/g,"")),t)));var t}function J(){return o("addr-spec",l(Z,u("@"),X)())}function ee(){return e.strict?null:o("obs-NO-WS-CTL",h((function(e){var t=e.charCodeAt(0);return 1<=t&&t<=8||11===t||12===t||14<=t&&t<=31||127===t})))}function te(){return e.strict?null:o("obs-ctext",ee())}function re(){return e.strict?null:o("obs-qtext",ee())}function ne(){return e.strict?null:o("obs-qp",l(u("\\"),y(u("\0"),ee,A,w))())}function ie(){return e.strict?null:e.atInDisplayName?o("obs-phrase",l(O,g(y(O,u("."),u("@"),f(C))))()):o("obs-phrase",l(O,g(y(O,u("."),f(C))))())}function ae(){return e.strict?null:o("obs-FWS",g(l(d(p(b)),S),1)())}function se(){return e.strict?null:o("obs-angle-addr",l(d(p(C)),u("<"),oe,J,u(">"),d(p(C)))())}function oe(){return e.strict?null:o("obs-route",l(ce,u(":"))())}function ce(){return e.strict?null:o("obs-domain-list",l(g(y(d(C),u(","))),u("@"),X,g(l(u(","),d(p(C)),p(l(u("@"),X)))))())}function he(){return e.strict?null:o("obs-mbox-list",l(g(l(d(p(C)),u(","))),F,g(l(u(","),p(l(F,d(C))))))())}function ue(){return e.strict?null:o("obs-addr-list",l(g(l(d(p(C)),u(","))),L,g(l(u(","),p(l(L,d(C))))))())}function le(){return e.strict?null:o("obs-group-list",l(g(l(d(p(C)),u(",")),1),d(p(C)))())}function ye(){return e.strict?null:o("obs-local-part",l(O,g(l(u("."),O)))())}function pe(){return e.strict?null:o("obs-domain",l(B,g(l(u("."),B)))())}function de(){return e.strict?null:o("obs-dtext",y(ee,K)())}function fe(e,t){var r,n,i;if(null==t)return null;for(n=[t];n.length>0;){if((i=n.pop()).name===e)return i;for(r=i.children.length-1;r>=0;r-=1)n.push(i.children[r])}return null}function ge(e,t){var r,n,i,a,s;if(null==t)return null;for(n=[t],a=[],s={},r=0;r<e.length;r+=1)s[e[r]]=!0;for(;n.length>0;)if((i=n.pop()).name in s)a.push(i);else for(r=i.children.length-1;r>=0;r-=1)n.push(i.children[r]);return a}function me(t){var r,n,i,a,s;if(null===t)return null;for(r=[],n=ge(["group","mailbox"],t),i=0;i<n.length;i+=1)"group"===(a=n[i]).name?r.push(we(a)):"mailbox"===a.name&&r.push(be(a));return s={ast:t,addresses:r},e.simple&&(s=function(e){var t;if(e&&e.addresses)for(t=0;t<e.addresses.length;t+=1)delete e.addresses[t].node;return e}(s)),e.oneResult?function(t){if(!t)return null;if(!e.partial&&t.addresses.length>1)return null;return t.addresses&&t.addresses[0]}(s):e.simple?s&&s.addresses:s}function we(e){var t,r=fe("display-name",e),n=[],i=ge(["mailbox"],e);for(t=0;t<i.length;t+=1)n.push(be(i[t]));return{node:e,parts:{name:r},type:e.name,name:ke(r),addresses:n}}function be(e){var t=fe("display-name",e),r=fe("addr-spec",e),n=function(e,t){var r,n,i,a;if(null==t)return null;for(n=[t],a=[];n.length>0;)for((i=n.pop()).name===e&&a.push(i),r=i.children.length-1;r>=0;r-=1)n.push(i.children[r]);return a}("cfws",e),i=ge(["comment"],e),a=fe("local-part",r),s=fe("domain",r);return{node:e,parts:{name:t,address:r,local:a,domain:s,comments:n},type:e.name,name:ke(t),address:ke(r),local:ke(a),domain:ke(s),comments:ve(i),groupName:ke(e.groupName)}}function ke(e){return null!=e?e.semantic:null}function ve(e){var t="";if(e)for(var r=0;r<e.length;r+=1)t+=ke(e[r]);return t}var Ae,_e,Ee,Se,Ke;if(null===(e=n(e,{})))return null;if(Ae=e.input,Ke={address:L,"address-list":W,"angle-addr":H,from:function(){return o("from",y(V,W)())},group:q,mailbox:F,"mailbox-list":V,"reply-to":function(){return o("reply-to",W())},sender:function(){return o("sender",y(F,L)())}}[e.startAt]||W,!e.strict){if(a(),e.strict=!0,Se=Ke(Ae),e.partial||!t())return me(Se);e.strict=!1}return a(),Se=Ke(Ae),!e.partial&&t()?null:me(Se)}function n(e,t){function r(e){return"[object String]"===Object.prototype.toString.call(e)}function n(e){return null==e}var i,a;if(r(e))e={input:e};else if(!function(e){return e===Object(e)}(e))return null;if(!r(e.input))return null;if(!t)return null;for(a in i={oneResult:!1,partial:!1,rejectTLD:!1,rfc6532:!1,simple:!1,startAt:"address-list",strict:!1,atInDisplayName:!1})n(e[a])&&(e[a]=n(t[a])?i[a]:t[a]);return e}r.parseOneAddress=function(e){return r(n(e,{oneResult:!0,rfc6532:!0,simple:!0,startAt:"address-list"}))},r.parseAddressList=function(e){return r(n(e,{rfc6532:!0,simple:!0,startAt:"address-list"}))},r.parseFrom=function(e){return r(n(e,{rfc6532:!0,simple:!0,startAt:"from"}))},r.parseSender=function(e){return r(n(e,{oneResult:!0,rfc6532:!0,simple:!0,startAt:"sender"}))},r.parseReplyTo=function(e){return r(n(e,{rfc6532:!0,simple:!0,startAt:"reply-to"}))},e.exports=r}()}));class Do{static get tag(){return re.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(W.isString(e)||e.name&&!W.isString(e.name)||e.email&&!W.isEmailAddress(e.email)||e.comment&&!W.isString(e.comment))throw Error("Invalid user ID format");const t=new Do;Object.assign(t,e);const r=[];return t.name&&r.push(t.name),t.comment&&r.push(`(${t.comment})`),t.email&&r.push(`<${t.email}>`),t.userID=r.join(" "),t}read(e,t=ne){const r=W.decodeUTF8(e);if(r.length>t.maxUserIDLength)throw Error("User ID string is too long");try{const{name:e,address:t,comments:n}=Uo.parseOneAddress({input:r,atInDisplayName:!0});this.comment=n.replace(/^\(|\)$/g,""),this.name=e,this.email=t}catch(e){}this.userID=r}write(){return W.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}}class Co extends xo{static get tag(){return re.packet.secretSubkey}constructor(e=new Date,t=ne){super(e,t)}}class Io{static get tag(){return re.packet.trust}read(){throw new wn("Trust packets are not supported")}write(){throw new wn("Trust packets are not supported")}}const Bo=/*#__PURE__*/W.constructAllowedPackets([Js]);class To{constructor(e){this.packets=e||new no}write(){return this.packets.write()}armor(e=ne){return ye(re.armor.signature,this.write(),void 0,void 0,void 0,e)}getSigningKeyIDs(){return this.packets.map((e=>e.issuerKeyID))}}async function zo({armoredSignature:e,binarySignature:t,config:r,...n}){r={...ne,...r};let i=e||t;if(!i)throw Error("readSignature: must pass options object containing `armoredSignature` or `binarySignature`");if(e&&!W.isString(e))throw Error("readSignature: options.armoredSignature must be a string");if(t&&!W.isUint8Array(t))throw Error("readSignature: options.binarySignature must be a Uint8Array");const a=Object.keys(n);if(a.length>0)throw Error("Unknown option: "+a.join(", "));if(e){const{type:e,data:t}=await le(i,r);if(e!==re.armor.signature)throw Error("Armored text not of type signature");i=t}const s=await no.fromBinary(i,Bo,r);return new To(s)}async function Ro(e,t){const r=new Co(e.date,t);return r.packets=null,r.algorithm=re.write(re.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.symmetric),await r.computeFingerprintAndKeyID(),r}async function Mo(e,t){const r=new xo(e.date,t);return r.packets=null,r.algorithm=re.write(re.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.symmetric),await r.computeFingerprintAndKeyID(),r}async function No(e,t,r,n,i=new Date,a){let s,o;for(let c=e.length-1;c>=0;c--)try{(!s||e[c].created>=s.created)&&(await e[c].verify(t,r,n,i,void 0,a),s=e[c])}catch(e){o=e}if(!s)throw W.wrapError(`Could not find valid ${re.read(re.signature,r)} signature in key ${t.getKeyID().toHex()}`.replace("certGeneric ","self-").replace(/([a-z])([A-Z])/g,((e,t,r)=>t+" "+r.toLowerCase())),o);return s}function Oo(e,t,r=new Date){const n=W.normalizeDate(r);if(null!==n){const r=Vo(e,t);return!(e.created<=n&&n<r)}return!1}async function Lo(e,t,r,n){const i={};i.key=t,i.bind=e;const a=new Js;return a.signatureType=re.signature.subkeyBinding,a.publicKeyAlgorithm=t.algorithm,a.hashAlgorithm=await Fo(null,e,void 0,void 0,n),r.sign?(a.keyFlags=[re.keyFlags.signData],a.embeddedSignature=await Ho(i,null,e,{signatureType:re.signature.keyBinding},r.date,void 0,void 0,n)):a.keyFlags=[re.keyFlags.encryptCommunication|re.keyFlags.encryptStorage],r.keyExpirationTime>0&&(a.keyExpirationTime=r.keyExpirationTime,a.keyNeverExpires=!1),await a.sign(t,i,r.date),a}async function Fo(e,t,r=new Date,n={},i){let a=i.preferredHashAlgorithm,s=a;if(e){const t=await e.getPrimaryUser(r,n,i);t.selfCertification.preferredHashAlgorithms&&([s]=t.selfCertification.preferredHashAlgorithms,a=Ji.hash.getHashByteLength(a)<=Ji.hash.getHashByteLength(s)?s:a)}switch(Object.getPrototypeOf(t)){case xo.prototype:case vo.prototype:case Co.prototype:case So.prototype:switch(t.algorithm){case re.publicKey.ecdh:case re.publicKey.ecdsa:case re.publicKey.eddsa:s=Ji.publicKey.elliptic.getPreferredHashAlgo(t.publicParams.oid)}}return Ji.hash.getHashByteLength(a)<=Ji.hash.getHashByteLength(s)?s:a}async function jo(e,t=[],r=new Date,n=[],i=ne){const a={symmetric:re.symmetric.aes128,aead:re.aead.eax,compression:re.compression.uncompressed}[e],s={symmetric:i.preferredSymmetricAlgorithm,aead:i.preferredAEADAlgorithm,compression:i.preferredCompressionAlgorithm}[e],o={symmetric:"preferredSymmetricAlgorithms",aead:"preferredAEADAlgorithms",compression:"preferredCompressionAlgorithms"}[e];return(await Promise.all(t.map((async function(e,t){const a=(await e.getPrimaryUser(r,n[t],i)).selfCertification[o];return!!a&&a.indexOf(s)>=0})))).every(Boolean)?s:a}async function Ho(e,t,r,n,i,a,s=!1,o){if(r.isDummy())throw Error("Cannot sign with a gnu-dummy key.");if(!r.isDecrypted())throw Error("Signing key is not decrypted.");const c=new Js;return Object.assign(c,n),c.publicKeyAlgorithm=r.algorithm,c.hashAlgorithm=await Fo(t,r,i,a,o),await c.sign(r,e,i,s),c}async function qo(e,t,r,n=new Date,i){(e=e[r])&&(t[r].length?await Promise.all(e.map((async function(e){e.isExpired(n)||i&&!await i(e)||t[r].some((function(t){return W.equalsUint8Array(t.writeParams(),e.writeParams())}))||t[r].push(e)}))):t[r]=e)}async function Go(e,t,r,n,i,a,s=new Date,o){a=a||e;const c=[];return await Promise.all(n.map((async function(e){try{i&&!e.issuerKeyID.equals(i.issuerKeyID)||(await e.verify(a,t,r,o.revocationsExpire?s:null,!1,o),c.push(e.issuerKeyID))}catch(e){}}))),i?(i.revoked=!!c.some((e=>e.equals(i.issuerKeyID)))||(i.revoked||!1),i.revoked):c.length>0}function Vo(e,t){let r;return!1===t.keyNeverExpires&&(r=e.created.getTime()+1e3*t.keyExpirationTime),r?new Date(r):1/0}function Wo(e,t={}){switch(e.type=e.type||t.type,e.curve=e.curve||t.curve,e.rsaBits=e.rsaBits||t.rsaBits,e.keyExpirationTime=void 0!==e.keyExpirationTime?e.keyExpirationTime:t.keyExpirationTime,e.passphrase=W.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e.sign=e.sign||!1,e.type){case"ecc":try{e.curve=re.write(re.curve,e.curve)}catch(e){throw Error("Unknown curve")}e.curve!==re.curve.ed25519&&e.curve!==re.curve.curve25519||(e.curve=e.sign?re.curve.ed25519:re.curve.curve25519),e.sign?e.algorithm=e.curve===re.curve.ed25519?re.publicKey.eddsa:re.publicKey.ecdsa:e.algorithm=re.publicKey.ecdh;break;case"rsa":e.algorithm=re.publicKey.rsaEncryptSign;break;case"symmetric":e.sign?(e.algorithm=re.publicKey.hmac,e.symmetric=e.symmetricHash||t.symmetricHash):(e.algorithm=re.publicKey.aead,e.symmetric=e.symmetricCipher||t.symmetricCipher);break;default:throw Error("Unsupported key type "+e.type)}return e}function $o(e,t){const r=e.algorithm;return r!==re.publicKey.rsaEncrypt&&r!==re.publicKey.elgamal&&r!==re.publicKey.ecdh&&(!t.keyFlags||0!=(t.keyFlags[0]&re.keyFlags.signData))}function Zo(e,t){const r=e.algorithm;return r!==re.publicKey.dsa&&r!==re.publicKey.rsaSign&&r!==re.publicKey.ecdsa&&r!==re.publicKey.eddsa&&(!t.keyFlags||0!=(t.keyFlags[0]&re.keyFlags.encryptCommunication)||0!=(t.keyFlags[0]&re.keyFlags.encryptStorage))}function Qo(e,t){return!!t.allowInsecureDecryptionWithSigningKeys||(!e.keyFlags||0!=(e.keyFlags[0]&re.keyFlags.encryptCommunication)||0!=(e.keyFlags[0]&re.keyFlags.encryptStorage))}function Yo(e,t){const r=re.write(re.publicKey,e.algorithm),n=e.getAlgorithmInfo();if(t.rejectPublicKeyAlgorithms.has(r))throw Error(n.algorithm+" keys are considered too weak.");switch(r){case re.publicKey.rsaEncryptSign:case re.publicKey.rsaSign:case re.publicKey.rsaEncrypt:if(n.bits<t.minRSABits)throw Error(`RSA keys shorter than ${t.minRSABits} bits are considered too weak.`);break;case re.publicKey.ecdsa:case re.publicKey.eddsa:case re.publicKey.ecdh:if(t.rejectCurves.has(n.curve))throw Error(`Support for ${n.algorithm} keys using curve ${n.curve} is disabled.`)}}class Xo{constructor(e,t){this.userID=e.constructor.tag===re.packet.userID?e:null,this.userAttribute=e.constructor.tag===re.packet.userAttribute?e:null,this.selfCertifications=[],this.otherCertifications=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new no;return e.push(this.userID||this.userAttribute),e.push(...this.revocationSignatures),e.push(...this.selfCertifications),e.push(...this.otherCertifications),e}clone(){const e=new Xo(this.userID||this.userAttribute,this.mainKey);return e.selfCertifications=[...this.selfCertifications],e.otherCertifications=[...this.otherCertifications],e.revocationSignatures=[...this.revocationSignatures],e}async certify(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n},a=new Xo(i.userID||i.userAttribute,this.mainKey);return a.otherCertifications=await Promise.all(e.map((async function(e){if(!e.isPrivate())throw Error("Need private key for signing");if(e.hasSameFingerprintAs(n))throw Error("The user's own key can only be used for self-certifications");const a=await e.getSigningKey(void 0,t,void 0,r);return Ho(i,e,a.keyPacket,{signatureType:re.signature.certGeneric,keyFlags:[re.keyFlags.certifyKeys|re.keyFlags.signData]},t,void 0,void 0,r)}))),await a.update(this,t,r),a}async isRevoked(e,t,r=new Date,n){const i=this.mainKey.keyPacket;return Go(i,re.signature.certRevocation,{key:i,userID:this.userID,userAttribute:this.userAttribute},this.revocationSignatures,e,t,r,n)}async verifyCertificate(e,t,r=new Date,n){const i=this,a=this.mainKey.keyPacket,s={userID:this.userID,userAttribute:this.userAttribute,key:a},{issuerKeyID:o}=e,c=t.filter((e=>e.getKeys(o).length>0));return 0===c.length?null:(await Promise.all(c.map((async t=>{const a=await t.getSigningKey(o,e.created,void 0,n);if(e.revoked||await i.isRevoked(e,a.keyPacket,r,n))throw Error("User certificate is revoked");try{await e.verify(a.keyPacket,re.signature.certGeneric,s,r,void 0,n)}catch(e){throw W.wrapError("User certificate is invalid",e)}}))),!0)}async verifyAllCertifications(e,t=new Date,r){const n=this,i=this.selfCertifications.concat(this.otherCertifications);return Promise.all(i.map((async i=>({keyID:i.issuerKeyID,valid:await n.verifyCertificate(i,e,t,r).catch((()=>!1))}))))}async verify(e=new Date,t){if(!this.selfCertifications.length)throw Error("No self-certifications found");const r=this,n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};let a;for(let s=this.selfCertifications.length-1;s>=0;s--)try{const a=this.selfCertifications[s];if(a.revoked||await r.isRevoked(a,void 0,e,t))throw Error("Self-certification is revoked");try{await a.verify(n,re.signature.certGeneric,i,e,void 0,t)}catch(e){throw W.wrapError("Self-certification is invalid",e)}return!0}catch(e){a=e}throw a}async update(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};await qo(e,this,"selfCertifications",t,(async function(e){try{return await e.verify(n,re.signature.certGeneric,i,t,!1,r),!0}catch(e){return!1}})),await qo(e,this,"otherCertifications",t),await qo(e,this,"revocationSignatures",t,(function(e){return Go(n,re.signature.certRevocation,i,[e],void 0,void 0,t,r)}))}}class Jo{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new no;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){const e=new Jo(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,r=new Date,n=ne){const i=this.mainKey.keyPacket;return Go(i,re.signature.subkeyRevocation,{key:i,bind:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verify(e=new Date,t=ne){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket},i=await No(this.bindingSignatures,r,re.signature.subkeyBinding,n,e,t);if(i.revoked||await this.isRevoked(i,null,e,t))throw Error("Subkey is revoked");if(Oo(this.keyPacket,i,e))throw Error("Subkey is expired");return i}async getExpirationTime(e=new Date,t=ne){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket};let i;try{i=await No(this.bindingSignatures,r,re.signature.subkeyBinding,n,e,t)}catch(e){return null}const a=Vo(this.keyPacket,i),s=i.getExpirationTime();return a<s?a:s}async update(e,t=new Date,r=ne){const n=this.mainKey.keyPacket;if(!this.hasSameFingerprintAs(e))throw Error("Subkey update method: fingerprints of subkeys not equal");this.keyPacket.constructor.tag===re.packet.publicSubkey&&e.keyPacket.constructor.tag===re.packet.secretSubkey&&(this.keyPacket=e.keyPacket);const i=this,a={key:n,bind:i.keyPacket};await qo(e,this,"bindingSignatures",t,(async function(e){for(let t=0;t<i.bindingSignatures.length;t++)if(i.bindingSignatures[t].issuerKeyID.equals(e.issuerKeyID))return e.created>i.bindingSignatures[t].created&&(i.bindingSignatures[t]=e),!1;try{return await e.verify(n,re.signature.subkeyBinding,a,t,void 0,r),!0}catch(e){return!1}})),await qo(e,this,"revocationSignatures",t,(function(e){return Go(n,re.signature.subkeyRevocation,a,[e],void 0,void 0,t,r)}))}async revoke(e,{flag:t=re.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=ne){const a={key:e,bind:this.keyPacket},s=new Jo(this.keyPacket,this.mainKey);return s.revocationSignatures.push(await Ho(a,null,e,{signatureType:re.signature.subkeyRevocation,reasonForRevocationFlag:re.write(re.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,!1,i)),await s.update(this),s}hasSameFingerprintAs(e){return this.keyPacket.hasSameFingerprintAs(e.keyPacket||e)}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","isDecrypted"].forEach((e=>{Jo.prototype[e]=function(){return this.keyPacket[e]()}}));const ec=/*#__PURE__*/W.constructAllowedPackets([Js]),tc=new Set([re.packet.publicKey,re.packet.privateKey]),rc=new Set([re.packet.publicKey,re.packet.privateKey,re.packet.publicSubkey,re.packet.privateSubkey]);class nc{packetListToStructure(e,t=new Set){let r,n,i,a;for(const s of e){if(s instanceof bn){rc.has(s.tag)&&!a&&(a=tc.has(s.tag)?tc:rc);continue}const e=s.constructor.tag;if(a){if(!a.has(e))continue;a=null}if(t.has(e))throw Error("Unexpected packet type: "+e);switch(e){case re.packet.publicKey:case re.packet.secretKey:if(this.keyPacket)throw Error("Key block contains multiple keys");if(this.keyPacket=s,n=this.getKeyID(),!n)throw Error("Missing Key ID");break;case re.packet.userID:case re.packet.userAttribute:r=new Xo(s,this),this.users.push(r);break;case re.packet.publicSubkey:case re.packet.secretSubkey:r=null,i=new Jo(s,this),this.subkeys.push(i);break;case re.packet.signature:switch(s.signatureType){case re.signature.certGeneric:case re.signature.certPersona:case re.signature.certCasual:case re.signature.certPositive:if(!r){W.printDebug("Dropping certification signatures without preceding user packet");continue}s.issuerKeyID.equals(n)?r.selfCertifications.push(s):r.otherCertifications.push(s);break;case re.signature.certRevocation:r?r.revocationSignatures.push(s):this.directSignatures.push(s);break;case re.signature.key:this.directSignatures.push(s);break;case re.signature.subkeyBinding:if(!i){W.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}i.bindingSignatures.push(s);break;case re.signature.keyRevocation:this.revocationSignatures.push(s);break;case re.signature.subkeyRevocation:if(!i){W.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}i.revocationSignatures.push(s)}}}}toPacketList(){const e=new no;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.directSignatures),this.users.map((t=>e.push(...t.toPacketList()))),this.subkeys.map((t=>e.push(...t.toPacketList()))),e}clone(e=!1){const t=new this.constructor(this.toPacketList());return e&&t.getKeys().forEach((e=>{if(e.keyPacket=Object.create(Object.getPrototypeOf(e.keyPacket),Object.getOwnPropertyDescriptors(e.keyPacket)),!e.keyPacket.isDecrypted())return;const t={};Object.keys(e.keyPacket.privateParams).forEach((r=>{t[r]=new Uint8Array(e.keyPacket.privateParams[r])})),e.keyPacket.privateParams=t})),t}getSubkeys(e=null){return this.subkeys.filter((t=>!e||t.getKeyID().equals(e,!0)))}getKeys(e=null){const t=[];return e&&!this.getKeyID().equals(e,!0)||t.push(this),t.concat(this.getSubkeys(e))}getKeyIDs(){return this.getKeys().map((e=>e.getKeyID()))}getUserIDs(){return this.users.map((e=>e.userID?e.userID.userID:null)).filter((e=>null!==e))}write(){return this.toPacketList().write()}async getSigningKey(e=null,t=new Date,r={},n=ne){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket,a=this.subkeys.slice().sort(((e,t)=>t.keyPacket.created-e.keyPacket.created));let s;for(const r of a)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},a=await No(r.bindingSignatures,i,re.signature.subkeyBinding,e,t,n);if(!$o(r.keyPacket,a))continue;if(!a.embeddedSignature)throw Error("Missing embedded signature");return await No([a.embeddedSignature],r.keyPacket,re.signature.keyBinding,e,t,n),Yo(r.keyPacket,n),r}catch(e){s=e}try{const a=await this.getPrimaryUser(t,r,n);if((!e||i.getKeyID().equals(e))&&$o(i,a.selfCertification))return Yo(i,n),this}catch(e){s=e}throw W.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),s)}async getEncryptionKey(e,t=new Date,r={},n=ne){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket,a=this.subkeys.slice().sort(((e,t)=>t.keyPacket.created-e.keyPacket.created));let s;for(const r of a)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},a=await No(r.bindingSignatures,i,re.signature.subkeyBinding,e,t,n);if(Zo(r.keyPacket,a))return Yo(r.keyPacket,n),r}catch(e){s=e}try{const a=await this.getPrimaryUser(t,r,n);if((!e||i.getKeyID().equals(e))&&Zo(i,a.selfCertification))return Yo(i,n),this}catch(e){s=e}throw W.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),s)}async isRevoked(e,t,r=new Date,n=ne){return Go(this.keyPacket,re.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verifyPrimaryKey(e=new Date,t={},r=ne){const n=this.keyPacket;if(await this.isRevoked(null,null,e,r))throw Error("Primary key is revoked");const{selfCertification:i}=await this.getPrimaryUser(e,t,r);if(Oo(n,i,e))throw Error("Primary key is expired");const a=await No(this.directSignatures,n,re.signature.key,{key:n},e,r).catch((()=>{}));if(a&&Oo(n,a,e))throw Error("Primary key is expired")}async getExpirationTime(e,t=ne){let r;try{const{selfCertification:n}=await this.getPrimaryUser(null,e,t),i=Vo(this.keyPacket,n),a=n.getExpirationTime(),s=await No(this.directSignatures,this.keyPacket,re.signature.key,{key:this.keyPacket},null,t).catch((()=>{}));if(s){const e=Vo(this.keyPacket,s);r=Math.min(i,a,e)}else r=i<a?i:a}catch(e){r=null}return W.normalizeDate(r)}async getPrimaryUser(e=new Date,t={},r=ne){const n=this.keyPacket,i=[];let a;for(let s=0;s<this.users.length;s++)try{const a=this.users[s];if(!a.userID)continue;if(void 0!==t.name&&a.userID.name!==t.name||void 0!==t.email&&a.userID.email!==t.email||void 0!==t.comment&&a.userID.comment!==t.comment)throw Error("Could not find user that matches that user ID");const o={userID:a.userID,key:n},c=await No(a.selfCertifications,n,re.signature.certGeneric,o,e,r);i.push({index:s,user:a,selfCertification:c})}catch(e){a=e}if(!i.length)throw a||Error("Could not find primary user");await Promise.all(i.map((async function(t){return t.user.revoked||t.user.isRevoked(t.selfCertification,null,e,r)})));const s=i.sort((function(e,t){const r=e.selfCertification,n=t.selfCertification;return n.revoked-r.revoked||r.isPrimaryUserID-n.isPrimaryUserID||r.created-n.created})).pop(),{user:o,selfCertification:c}=s;if(c.revoked||await o.isRevoked(c,null,e,r))throw Error("Primary user is revoked");return s}async update(e,t=new Date,r=ne){if(!this.hasSameFingerprintAs(e))throw Error("Primary key fingerprints must be equal to update the key");if(!this.isPrivate()&&e.isPrivate()){if(!(this.subkeys.length===e.subkeys.length&&this.subkeys.every((t=>e.subkeys.some((e=>t.hasSameFingerprintAs(e)))))))throw Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,r)}const n=this.clone();return await qo(e,n,"revocationSignatures",t,(i=>Go(n.keyPacket,re.signature.keyRevocation,n,[i],null,e.keyPacket,t,r))),await qo(e,n,"directSignatures",t),await Promise.all(e.users.map((async e=>{const i=n.users.filter((t=>e.userID&&e.userID.equals(t.userID)||e.userAttribute&&e.userAttribute.equals(t.userAttribute)));if(i.length>0)await Promise.all(i.map((n=>n.update(e,t,r))));else{const t=e.clone();t.mainKey=n,n.users.push(t)}}))),await Promise.all(e.subkeys.map((async e=>{const i=n.subkeys.filter((t=>t.hasSameFingerprintAs(e)));if(i.length>0)await Promise.all(i.map((n=>n.update(e,t,r))));else{const t=e.clone();t.mainKey=n,n.subkeys.push(t)}}))),n}async getRevocationCertificate(e=new Date,t=ne){const r={key:this.keyPacket},n=await No(this.revocationSignatures,this.keyPacket,re.signature.keyRevocation,r,e,t),i=new no;return i.push(n),ye(re.armor.publicKey,i.write(),null,null,"This is a revocation certificate")}async applyRevocationCertificate(e,t=new Date,r=ne){const n=await le(e,r),i=(await no.fromBinary(n.data,ec,r)).findPacket(re.packet.signature);if(!i||i.signatureType!==re.signature.keyRevocation)throw Error("Could not find revocation signature packet");if(!i.issuerKeyID.equals(this.getKeyID()))throw Error("Revocation signature does not match key");try{await i.verify(this.keyPacket,re.signature.keyRevocation,{key:this.keyPacket},t,void 0,r)}catch(e){throw W.wrapError("Could not verify revocation signature",e)}const a=this.clone();return a.revocationSignatures.push(i),a}async signPrimaryUser(e,t,r,n=ne){const{index:i,user:a}=await this.getPrimaryUser(t,r,n),s=await a.certify(e,t,n),o=this.clone();return o.users[i]=s,o}async signAllUsers(e,t=new Date,r=ne){const n=this.clone();return n.users=await Promise.all(this.users.map((function(n){return n.certify(e,t,r)}))),n}async verifyPrimaryUser(e,t=new Date,r,n=ne){const i=this.keyPacket,{user:a}=await this.getPrimaryUser(t,r,n);return e?await a.verifyAllCertifications(e,t,n):[{keyID:i.getKeyID(),valid:await a.verify(t,n).catch((()=>!1))}]}async verifyAllUsers(e,t=new Date,r=ne){const n=this.keyPacket,i=[];return await Promise.all(this.users.map((async a=>{const s=e?await a.verifyAllCertifications(e,t,r):[{keyID:n.getKeyID(),valid:await a.verify(t,r).catch((()=>!1))}];i.push(...s.map((e=>({userID:a.userID.userID,keyID:e.keyID,valid:e.valid}))))}))),i}}function ic(e){for(const t of e)switch(t.constructor.tag){case re.packet.secretKey:return new sc(e);case re.packet.publicKey:return new ac(e)}throw Error("No key packet found")}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","hasSameFingerprintAs"].forEach((e=>{nc.prototype[e]=Jo.prototype[e]}));class ac extends nc{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([re.packet.secretKey,re.packet.secretSubkey])),!this.keyPacket))throw Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=ne){return ye(re.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,e)}}class sc extends ac{constructor(e){if(super(),this.packetListToStructure(e,new Set([re.packet.publicKey,re.packet.publicSubkey])),!this.keyPacket)throw Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){const e=new no,t=this.toPacketList();let r=!1;for(const n of t)if(!r||n.constructor.tag!==re.packet.Signature)switch(r&&(r=!1),n.constructor.tag){case re.packet.secretKey:{const t=re.write(re.publicKey,n.algorithm);if(t===re.publicKey.aead||t===re.publicKey.hmac)throw Error("Cannot create public key from symmetric private");const r=vo.fromSecretKeyPacket(n);e.push(r);break}case re.packet.secretSubkey:{const t=re.write(re.publicKey,n.algorithm);if(t===re.publicKey.aead||t===re.publicKey.hmac){r=!0;break}const i=So.fromSecretSubkeyPacket(n);e.push(i);break}default:e.push(n)}return new ac(e)}armor(e=ne){return ye(re.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,e)}async getDecryptionKeys(e,t=new Date,r={},n=ne){const i=this.keyPacket,a=[];for(let r=0;r<this.subkeys.length;r++)if(!e||this.subkeys[r].getKeyID().equals(e,!0))try{const e={key:i,bind:this.subkeys[r].keyPacket};Qo(await No(this.subkeys[r].bindingSignatures,i,re.signature.subkeyBinding,e,t,n),n)&&a.push(this.subkeys[r])}catch(e){}const s=await this.getPrimaryUser(t,r,n);return e&&!i.getKeyID().equals(e,!0)||!Qo(s.selfCertification,n)||a.push(this),a}isDecrypted(){return this.getKeys().some((({keyPacket:e})=>e.isDecrypted()))}async validate(e=ne){if(!this.isPrivate())throw Error("Cannot validate a public key");let t;if(this.keyPacket.isDummy()){const r=await this.getSigningKey(null,null,void 0,{...e,rejectPublicKeyAlgorithms:new Set,minRSABits:0});r&&!r.keyPacket.isDummy()&&(t=r.keyPacket)}else t=this.keyPacket;if(t)return t.validate();{const e=this.getKeys();if(e.map((e=>e.keyPacket.isDummy())).every(Boolean))throw Error("Cannot validate an all-gnu-dummy key");return Promise.all(e.map((async e=>e.keyPacket.validate())))}}clearPrivateParams(){this.getKeys().forEach((({keyPacket:e})=>{e.isDecrypted()&&e.clearPrivateParams()}))}async revoke({flag:e=re.reasonForRevocation.noReason,string:t=""}={},r=new Date,n=ne){if(!this.isPrivate())throw Error("Need private key for revoking");const i={key:this.keyPacket},a=this.clone();return a.revocationSignatures.push(await Ho(i,null,this.keyPacket,{signatureType:re.signature.keyRevocation,reasonForRevocationFlag:re.write(re.reasonForRevocation,e),reasonForRevocationString:t},r,void 0,void 0,n)),a}async addSubkey(e={}){const t={...ne,...e.config};if(e.passphrase)throw Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBits<t.minRSABits)throw Error(`rsaBits should be at least ${t.minRSABits}, got: ${e.rsaBits}`);const r=this.keyPacket;if(r.isDummy())throw Error("Cannot add subkey to gnu-dummy primary key");if(!r.isDecrypted())throw Error("Key is not decrypted");const n=r.getAlgorithmInfo();n.type=n.curve?"ecc":"rsa",n.rsaBits=n.bits||4096,n.curve=n.curve||"curve25519",e=Wo(e,n);const i=await Ro(e);Yo(i,t);const a=await Lo(i,r,e,t),s=this.toPacketList();return s.push(i,a),new sc(s)}}const oc=/*#__PURE__*/W.constructAllowedPackets([vo,So,xo,Co,Do,Ko,Js]);async function cc(e,t,r,n){r.passphrase&&await e.encrypt(r.passphrase,n),await Promise.all(t.map((async function(e,t){const i=r.subkeys[t].passphrase;i&&await e.encrypt(i,n)})));const i=new no;i.push(e),await Promise.all(r.userIDs.map((async function(t,i){function a(e,t){return[t,...e.filter((e=>e!==t))]}const s=Do.fromObject(t),o={};o.userID=s,o.key=e;const c=new Js;return c.signatureType=re.signature.certGeneric,c.publicKeyAlgorithm=e.algorithm,c.hashAlgorithm=await Fo(null,e,void 0,void 0,n),c.keyFlags=[re.keyFlags.certifyKeys|re.keyFlags.signData],c.preferredSymmetricAlgorithms=a([re.symmetric.aes256,re.symmetric.aes128,re.symmetric.aes192],n.preferredSymmetricAlgorithm),n.aeadProtect&&(c.preferredAEADAlgorithms=a([re.aead.eax,re.aead.ocb],n.preferredAEADAlgorithm)),c.preferredHashAlgorithms=a([re.hash.sha256,re.hash.sha512],n.preferredHashAlgorithm),c.preferredCompressionAlgorithms=a([re.compression.zlib,re.compression.zip,re.compression.uncompressed],n.preferredCompressionAlgorithm),0===i&&(c.isPrimaryUserID=!0),c.features=[0],c.features[0]|=re.features.modificationDetection,n.aeadProtect&&(c.features[0]|=re.features.aead),n.v5Keys&&(c.features[0]|=re.features.v5Keys),r.keyExpirationTime>0&&(c.keyExpirationTime=r.keyExpirationTime,c.keyNeverExpires=!1),await c.sign(e,o,r.date),{userIDPacket:s,signaturePacket:c}}))).then((e=>{e.forEach((({userIDPacket:e,signaturePacket:t})=>{i.push(e),i.push(t)}))})),await Promise.all(t.map((async function(t,i){const a=r.subkeys[i];return{secretSubkeyPacket:t,subkeySignaturePacket:await Lo(t,e,a,n)}}))).then((e=>{e.forEach((({secretSubkeyPacket:e,subkeySignaturePacket:t})=>{i.push(e),i.push(t)}))}));const a={key:e};return i.push(await Ho(a,null,e,{signatureType:re.signature.keyRevocation,reasonForRevocationFlag:re.reasonForRevocation.noReason,reasonForRevocationString:""},r.date,void 0,void 0,n)),r.passphrase&&e.clearPrivateParams(),await Promise.all(t.map((async function(e,t){r.subkeys[t].passphrase&&e.clearPrivateParams()}))),new sc(i)}async function hc({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...ne,...r},!e&&!t)throw Error("readKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!W.isString(e))throw Error("readKey: options.armoredKey must be a string");if(t&&!W.isUint8Array(t))throw Error("readKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let a;if(e){const{type:t,data:n}=await le(e,r);if(t!==re.armor.publicKey&&t!==re.armor.privateKey)throw Error("Armored text not of type key");a=n}else a=t;return ic(await no.fromBinary(a,oc,r))}async function uc({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...ne,...r},!e&&!t)throw Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!W.isString(e))throw Error("readPrivateKey: options.armoredKey must be a string");if(t&&!W.isUint8Array(t))throw Error("readPrivateKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let a;if(e){const{type:t,data:n}=await le(e,r);if(t!==re.armor.privateKey)throw Error("Armored text not of type private key");a=n}else a=t;const s=await no.fromBinary(a,oc,r);return new sc(s)}async function lc({armoredKeys:e,binaryKeys:t,config:r,...n}){r={...ne,...r};let i=e||t;if(!i)throw Error("readKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!W.isString(e))throw Error("readKeys: options.armoredKeys must be a string");if(t&&!W.isUint8Array(t))throw Error("readKeys: options.binaryKeys must be a Uint8Array");const a=Object.keys(n);if(a.length>0)throw Error("Unknown option: "+a.join(", "));if(e){const{type:t,data:n}=await le(e,r);if(t!==re.armor.publicKey&&t!==re.armor.privateKey)throw Error("Armored text not of type key");i=n}const s=[],o=await no.fromBinary(i,oc,r),c=o.indexOfTag(re.packet.publicKey,re.packet.secretKey);if(0===c.length)throw Error("No key packet found");for(let e=0;e<c.length;e++){const t=ic(o.slice(c[e],c[e+1]));s.push(t)}return s}async function yc({armoredKeys:e,binaryKeys:t,config:r}){r={...ne,...r};let n=e||t;if(!n)throw Error("readPrivateKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!W.isString(e))throw Error("readPrivateKeys: options.armoredKeys must be a string");if(t&&!W.isUint8Array(t))throw Error("readPrivateKeys: options.binaryKeys must be a Uint8Array");if(e){const{type:t,data:i}=await le(e,r);if(t!==re.armor.privateKey)throw Error("Armored text not of type private key");n=i}const i=[],a=await no.fromBinary(n,oc,r),s=a.indexOfTag(re.packet.secretKey);if(0===s.length)throw Error("No secret key packet found");for(let e=0;e<s.length;e++){const t=a.slice(s[e],s[e+1]),r=new sc(t);i.push(r)}return i}const pc=/*#__PURE__*/W.constructAllowedPackets([Qs,ao,mo,fo,_o,wo,ko,to,Js]),dc=/*#__PURE__*/W.constructAllowedPackets([ko]),fc=/*#__PURE__*/W.constructAllowedPackets([Js]);class gc{constructor(e){this.packets=e||new no}getEncryptionKeyIDs(){const e=[];return this.packets.filterByTag(re.packet.publicKeyEncryptedSessionKey).forEach((function(t){e.push(t.publicKeyID)})),e}getSigningKeyIDs(){const e=this.unwrapCompressed(),t=e.packets.filterByTag(re.packet.onePassSignature);if(t.length>0)return t.map((e=>e.issuerKeyID));return e.packets.filterByTag(re.packet.signature).map((e=>e.issuerKeyID))}async decrypt(e,t,r,n=new Date,i=ne){const a=r||await this.decryptSessionKeys(e,t,n,i),s=this.packets.filterByTag(re.packet.symmetricallyEncryptedData,re.packet.symEncryptedIntegrityProtectedData,re.packet.aeadEncryptedData);if(0===s.length)throw Error("No encrypted data found");const o=s[0];let c=null;const h=Promise.all(a.map((async({algorithm:e,data:t})=>{if(!W.isUint8Array(t)||!W.isString(e))throw Error("Invalid session key for decryption.");try{const r=re.write(re.symmetric,e);await o.decrypt(r,t,i)}catch(e){W.printDebugError(e),c=e}})));if(H(o.encrypted),o.encrypted=null,await h,!o.packets||!o.packets.length)throw c||Error("Decryption failed.");const u=new gc(o.packets);return o.packets=new no,u}async decryptSessionKeys(e,t,r=new Date,n=ne){let i,a=[];if(t){const e=this.packets.filterByTag(re.packet.symEncryptedSessionKey);if(0===e.length)throw Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map((async function(t,r){let i;i=r?await no.fromBinary(e.write(),dc,n):e,await Promise.all(i.map((async function(e){try{await e.decrypt(t),a.push(e)}catch(e){W.printDebugError(e)}})))})))}else{if(!e)throw Error("No key or password specified.");{const t=this.packets.filterByTag(re.packet.publicKeyEncryptedSessionKey);if(0===t.length)throw Error("No public key encrypted session key packet found.");await Promise.all(t.map((async function(t){await Promise.all(e.map((async function(e){let s=[re.symmetric.aes256,re.symmetric.aes128,re.symmetric.tripledes,re.symmetric.cast5];try{const t=await e.getPrimaryUser(r,void 0,n);t.selfCertification.preferredSymmetricAlgorithms&&(s=s.concat(t.selfCertification.preferredSymmetricAlgorithms))}catch(e){}const o=(await e.getDecryptionKeys(t.publicKeyID,null,void 0,n)).map((e=>e.keyPacket));await Promise.all(o.map((async function(e){if(!e||e.isDummy())return;if(!e.isDecrypted())throw Error("Decryption key is not decrypted.");if(n.constantTimePKCS1Decryption&&(t.publicKeyAlgorithm===re.publicKey.rsaEncrypt||t.publicKeyAlgorithm===re.publicKey.rsaEncryptSign||t.publicKeyAlgorithm===re.publicKey.rsaSign||t.publicKeyAlgorithm===re.publicKey.elgamal)){const r=t.write();await Promise.all(Array.from(n.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms).map((async t=>{const n=new wo;n.read(r);const s={sessionKeyAlgorithm:t,sessionKey:await Ji.generateSessionKey(t)};try{await n.decrypt(e,s),a.push(n)}catch(e){W.printDebugError(e),i=e}})))}else try{if(await t.decrypt(e),!s.includes(re.write(re.symmetric,t.sessionKeyAlgorithm)))throw Error("A non-preferred symmetric algorithm was used.");a.push(t)}catch(e){W.printDebugError(e),i=e}})))}))),H(t.encrypted),t.encrypted=null})))}}if(a.length>0){if(a.length>1){const e=new Set;a=a.filter((t=>{const r=t.sessionKeyAlgorithm+W.uint8ArrayToString(t.sessionKey);return!e.has(r)&&(e.add(r),!0)}))}return a.map((e=>({data:e.sessionKey,algorithm:re.read(re.symmetric,e.sessionKeyAlgorithm)})))}throw i||Error("Session key decryption failed.")}getLiteralData(){const e=this.unwrapCompressed().packets.findPacket(re.packet.literalData);return e&&e.getBytes()||null}getFilename(){const e=this.unwrapCompressed().packets.findPacket(re.packet.literalData);return e&&e.getFilename()||null}getText(){const e=this.unwrapCompressed().packets.findPacket(re.packet.literalData);return e?e.getText():null}static async generateSessionKey(e=[],t=new Date,r=[],n=ne){const i=await jo("symmetric",e,t,r,n),a=re.read(re.symmetric,i),s=n.aeadProtect&&await async function(e,t=new Date,r=[],n=ne){let i=!0;return await Promise.all(e.map((async function(e,a){const s=await e.getPrimaryUser(t,r[a],n);s.selfCertification.features&&s.selfCertification.features[0]&re.features.aead||(i=!1)}))),i}(e,t,r,n)?re.read(re.aead,await jo("aead",e,t,r,n)):void 0;return{data:await Ji.generateSessionKey(i),algorithm:a,aeadAlgorithm:s}}async encrypt(e,t,r,n=!1,i=[],a=new Date,s=[],o=ne){if(r){if(!W.isUint8Array(r.data)||!W.isString(r.algorithm))throw Error("Invalid session key for encryption.")}else if(e&&e.length)r=await gc.generateSessionKey(e,a,s,o);else{if(!t||!t.length)throw Error("No keys, passwords, or session key provided.");r=await gc.generateSessionKey(void 0,void 0,void 0,o)}const{data:c,algorithm:h,aeadAlgorithm:u}=r,l=await gc.encryptSessionKey(c,h,u,e,t,n,i,a,s,o);let y;u?(y=new mo,y.aeadAlgorithm=re.write(re.aead,u)):y=new fo,y.packets=this.packets;const p=re.write(re.symmetric,h);return await y.encrypt(p,c,o),l.packets.push(y),y.packets=new no,l}static async encryptSessionKey(e,t,r,n,i,a=!1,s=[],o=new Date,c=[],h=ne){const u=new no,l=re.write(re.symmetric,t),y=r&&re.write(re.aead,r);if(n){const t=await Promise.all(n.map((async function(t,r){const n=await t.getEncryptionKey(s[r],o,c,h),i=new wo;return i.publicKeyID=a?pe.wildcard():n.getKeyID(),i.publicKeyAlgorithm=n.keyPacket.algorithm,i.sessionKey=e,i.sessionKeyAlgorithm=l,await i.encrypt(n.keyPacket),delete i.sessionKey,i})));u.push(...t)}if(i){const t=async function(e,t){try{return await e.decrypt(t),1}catch(e){return 0}},r=(e,t)=>e+t,n=async function(e,a,s,o){const c=new ko(h);if(c.sessionKey=e,c.sessionKeyAlgorithm=a,s&&(c.aeadAlgorithm=s),await c.encrypt(o,h),h.passwordCollisionCheck){if(1!==(await Promise.all(i.map((e=>t(c,e))))).reduce(r))return n(e,a,o)}return delete c.sessionKey,c},a=await Promise.all(i.map((t=>n(e,l,y,t))));u.push(...a)}return new gc(u)}async sign(e=[],t=null,r=[],n=new Date,i=[],a=ne){const s=new no,o=this.packets.findPacket(re.packet.literalData);if(!o)throw Error("No literal data packet to sign.");let c,h;const u=null===o.text?re.signature.binary:re.signature.text;if(t)for(h=t.packets.filterByTag(re.packet.signature),c=h.length-1;c>=0;c--){const t=h[c],r=new to;r.signatureType=t.signatureType,r.hashAlgorithm=t.hashAlgorithm,r.publicKeyAlgorithm=t.publicKeyAlgorithm,r.issuerKeyID=t.issuerKeyID,e.length||0!==c||(r.flags=1),s.push(r)}return await Promise.all(Array.from(e).reverse().map((async function(t,s){if(!t.isPrivate())throw Error("Need private key for signing");const o=r[e.length-1-s],c=await t.getSigningKey(o,n,i,a),h=new to;return h.signatureType=u,h.hashAlgorithm=await Fo(t,c.keyPacket,n,i,a),h.publicKeyAlgorithm=c.keyPacket.algorithm,h.issuerKeyID=c.getKeyID(),s===e.length-1&&(h.flags=1),h}))).then((e=>{e.forEach((e=>s.push(e)))})),s.push(o),s.push(...await mc(o,e,t,r,n,i,!1,a)),new gc(s)}compress(e,t=ne){if(e===re.compression.uncompressed)return this;const r=new ao(t);r.algorithm=e,r.packets=this.packets;const n=new no;return n.push(r),new gc(n)}async signDetached(e=[],t=null,r=[],n=new Date,i=[],a=ne){const s=this.packets.findPacket(re.packet.literalData);if(!s)throw Error("No literal data packet to sign.");return new To(await mc(s,e,t,r,n,i,!0,a))}async verify(e,t=new Date,r=ne){const n=this.unwrapCompressed(),i=n.packets.filterByTag(re.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");s(n.packets.stream)&&n.packets.push(...await j(n.packets.stream,(e=>e||[])));const a=n.packets.filterByTag(re.packet.onePassSignature).reverse(),o=n.packets.filterByTag(re.packet.signature);return a.length&&!o.length&&W.isStream(n.packets.stream)&&!s(n.packets.stream)?(await Promise.all(a.map((async e=>{e.correspondingSig=new Promise(((t,r)=>{e.correspondingSigResolve=t,e.correspondingSigReject=r})),e.signatureData=q((async()=>(await e.correspondingSig).signatureData)),e.hashed=j(await e.hash(e.signatureType,i[0],void 0,!1)),e.hashed.catch((()=>{}))}))),n.packets.stream=R(n.packets.stream,(async(e,t)=>{const r=D(e),n=C(t);try{for(let e=0;e<a.length;e++){const{value:t}=await r.read();a[e].correspondingSigResolve(t)}await r.readToEnd(),await n.ready,await n.close()}catch(e){a.forEach((t=>{t.correspondingSigReject(e)})),await n.abort(e)}})),wc(a,i,e,t,!1,r)):wc(o,i,e,t,!1,r)}verifyDetached(e,t,r=new Date,n=ne){const i=this.unwrapCompressed().packets.filterByTag(re.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");return wc(e.packets,i,t,r,!0,n)}unwrapCompressed(){const e=this.packets.filterByTag(re.packet.compressedData);return e.length?new gc(e[0].packets):this}async appendSignature(e,t=ne){await this.packets.read(W.isUint8Array(e)?e:(await le(e)).data,fc,t)}write(){return this.packets.write()}armor(e=ne){return ye(re.armor.message,this.write(),null,null,null,e)}}async function mc(e,t,r=null,n=[],i=new Date,a=[],s=!1,o=ne){const c=new no,h=null===e.text?re.signature.binary:re.signature.text;if(await Promise.all(t.map((async(t,r)=>{const c=a[r];if(!t.isPrivate())throw Error("Need private key for signing");const u=await t.getSigningKey(n[r],i,c,o);return Ho(e,t,u.keyPacket,{signatureType:h},i,c,s,o)}))).then((e=>{c.push(...e)})),r){const e=r.packets.filterByTag(re.packet.signature);c.push(...e)}return c}async function wc(e,t,r,n=new Date,i=!1,a=ne){return Promise.all(e.filter((function(e){return["text","binary"].includes(re.read(re.signature,e.signatureType))})).map((async function(e){return async function(e,t,r,n=new Date,i=!1,a=ne){let s,o;for(const t of r){const r=t.getKeys(e.issuerKeyID);if(r.length>0){s=t,o=r[0];break}}const c=e instanceof to?e.correspondingSig:e,h={keyID:e.issuerKeyID,verified:(async()=>{if(!o)throw Error("Could not find signing key with key ID "+e.issuerKeyID.toHex());await e.verify(o.keyPacket,e.signatureType,t[0],n,i,a);const r=await c;if(o.getCreationTime()>r.created)throw Error("Key is newer than the signature");try{await s.getSigningKey(o.getKeyID(),r.created,void 0,a)}catch(e){if(!a.allowInsecureVerificationWithReformattedKeys||!e.message.match(/Signature creation time is in the future/))throw e;await s.getSigningKey(o.getKeyID(),n,void 0,a)}return!0})(),signature:(async()=>{const e=await c,t=new no;return e&&t.push(e),new To(t)})()};return h.signature.catch((()=>{})),h.verified.catch((()=>{})),h}(e,t,r,n,i,a)})))}async function bc({armoredMessage:e,binaryMessage:t,config:r,...n}){r={...ne,...r};let i=e||t;if(!i)throw Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(e&&!W.isString(e)&&!W.isStream(e))throw Error("readMessage: options.armoredMessage must be a string or stream");if(t&&!W.isUint8Array(t)&&!W.isStream(t))throw Error("readMessage: options.binaryMessage must be a Uint8Array or stream");const a=Object.keys(n);if(a.length>0)throw Error("Unknown option: "+a.join(", "));const s=W.isStream(i);if(s&&(await S(),i=x(i)),e){const{type:e,data:t}=await le(i,r);if(e!==re.armor.message)throw Error("Armored text not of type message");i=t}const o=await no.fromBinary(i,pc,r),c=new gc(o);return c.fromStream=s,c}async function kc({text:e,binary:t,filename:r,date:n=new Date,format:i=(void 0!==e?"utf8":"binary"),...a}){let s=void 0!==e?e:t;if(void 0===s)throw Error("createMessage: must pass options object containing `text` or `binary`");if(e&&!W.isString(e)&&!W.isStream(e))throw Error("createMessage: options.text must be a string or stream");if(t&&!W.isUint8Array(t)&&!W.isStream(t))throw Error("createMessage: options.binary must be a Uint8Array or stream");const o=Object.keys(a);if(o.length>0)throw Error("Unknown option: "+o.join(", "));const c=W.isStream(s);c&&(await S(),s=x(s));const h=new Qs(n);void 0!==e?h.setText(s,re.write(re.literal,i)):h.setBytes(s,re.write(re.literal,i)),void 0!==r&&h.setFilename(r);const u=new no;u.push(h);const l=new gc(u);return l.fromStream=c,l}const vc=/*#__PURE__*/W.constructAllowedPackets([Js]);class Ac{constructor(e,t){if(this.text=W.removeTrailingSpaces(e).replace(/\r?\n/g,"\r\n"),t&&!(t instanceof To))throw Error("Invalid signature input");this.signature=t||new To(new no)}getSigningKeyIDs(){const e=[];return this.signature.packets.forEach((function(t){e.push(t.issuerKeyID)})),e}async sign(e,t=null,r=[],n=new Date,i=[],a=ne){const s=new Qs;s.setText(this.text);const o=new To(await mc(s,e,t,r,n,i,!0,a));return new Ac(this.text,o)}verify(e,t=new Date,r=ne){const n=this.signature.packets,i=new Qs;return i.setText(this.text),wc(n,[i],e,t,!0,r)}getText(){return this.text.replace(/\r\n/g,"\n")}armor(e=ne){let t=this.signature.packets.map((function(e){return re.read(re.hash,e.hashAlgorithm).toUpperCase()}));t=t.filter((function(e,t,r){return r.indexOf(e)===t}));const r={hash:t.join(),text:this.text,data:this.signature.packets.write()};return ye(re.armor.signed,r,void 0,void 0,void 0,e)}}async function _c({cleartextMessage:e,config:t,...r}){if(t={...ne,...t},!e)throw Error("readCleartextMessage: must pass options object containing `cleartextMessage`");if(!W.isString(e))throw Error("readCleartextMessage: options.cleartextMessage must be a string");const n=Object.keys(r);if(n.length>0)throw Error("Unknown option: "+n.join(", "));const i=await le(e);if(i.type!==re.armor.signed)throw Error("No cleartext signed message.");const a=await no.fromBinary(i.data,vc,t);!function(e,t){const r=function(e){const r=e=>t=>e.hashAlgorithm===t;for(let n=0;n<t.length;n++)if(t[n].constructor.tag===re.packet.signature&&!e.some(r(t[n])))return!1;return!0};let n=null,i=[];if(e.forEach((function(e){if(n=e.match(/Hash: (.+)/),!n)throw Error('Only "Hash" header allowed in cleartext signed message');n=n[1].replace(/\s/g,""),n=n.split(","),n=n.map((function(e){e=e.toLowerCase();try{return re.write(re.hash,e)}catch(t){throw Error("Unknown hash algorithm in armor header: "+e)}})),i=i.concat(n)})),!i.length&&!r([re.hash.md5]))throw Error('If no "Hash" header in cleartext signed message, then only MD5 signatures allowed');if(i.length&&!r(i))throw Error("Hash algorithm mismatch in armor header and signature")}(i.headers,a);const s=new To(a);return new Ac(i.text,s)}async function Ec({text:e,...t}){if(!e)throw Error("createCleartextMessage: must pass options object containing `text`");if(!W.isString(e))throw Error("createCleartextMessage: options.text must be a string");const r=Object.keys(t);if(r.length>0)throw Error("Unknown option: "+r.join(", "));return new Ac(e)}async function Sc({userIDs:e=[],passphrase:t,type:r="ecc",rsaBits:n=4096,curve:i="curve25519",keyExpirationTime:a=0,date:s=new Date,subkeys:o=[{}],format:c="armored",config:h,symmetricHash:u="sha256",symmetricCipher:l="aes256",...y}){Fc(h={...ne,...h}),e=jc(e);const p=Object.keys(y);if(p.length>0)throw Error("Unknown option: "+p.join(", "));if(0===e.length)throw Error("UserIDs are required for key generation");if("rsa"===r&&n<h.minRSABits)throw Error(`rsaBits should be at least ${h.minRSABits}, got: ${n}`);const d={userIDs:e,passphrase:t,type:r,rsaBits:n,curve:i,keyExpirationTime:a,date:s,subkeys:o,symmetricHash:u,symmetricCipher:l};try{const{key:e,revocationCertificate:t}=await async function(e,t){e.sign=!0,(e=Wo(e)).subkeys=e.subkeys.map(((t,r)=>Wo(e.subkeys[r],e)));let r=[Mo(e,t)];r=r.concat(e.subkeys.map((e=>Ro(e,t))));const n=await Promise.all(r),i=await cc(n[0],n.slice(1),e,t),a=await i.getRevocationCertificate(e.date,t);return i.revocationSignatures=[],{key:i,revocationCertificate:a}}(d,h);return e.getKeys().forEach((({keyPacket:e})=>Yo(e,h))),{privateKey:Gc(e,c,h),publicKey:"symmetric"!==r?Gc(e.toPublic(),c,h):null,revocationCertificate:t}}catch(e){throw W.wrapError("Error generating keypair",e)}}async function Kc({privateKey:e,userIDs:t=[],passphrase:r,keyExpirationTime:n=0,date:i,format:a="armored",config:s,...o}){Fc(s={...ne,...s}),t=jc(t);const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(0===t.length)throw Error("UserIDs are required for key reformat");const h={privateKey:e,userIDs:t,passphrase:r,keyExpirationTime:n,date:i};try{const{key:e,revocationCertificate:t}=await async function(e,t){e=o(e);const{privateKey:r}=e;if(!r.isPrivate())throw Error("Cannot reformat a public key");if(r.keyPacket.isDummy())throw Error("Cannot reformat a gnu-dummy primary key");if(!r.getKeys().every((({keyPacket:e})=>e.isDecrypted())))throw Error("Key is not decrypted");const n=r.keyPacket;e.subkeys||(e.subkeys=await Promise.all(r.subkeys.map((async e=>{const r=e.keyPacket,i={key:n,bind:r},a=await No(e.bindingSignatures,n,re.signature.subkeyBinding,i,null,t).catch((()=>({})));return{sign:a.keyFlags&&a.keyFlags[0]&re.keyFlags.signData}}))));const i=r.subkeys.map((e=>e.keyPacket));if(e.subkeys.length!==i.length)throw Error("Number of subkey options does not match number of subkeys");e.subkeys=e.subkeys.map((t=>o(t,e)));const a=await cc(n,i,e,t),s=await a.getRevocationCertificate(e.date,t);return a.revocationSignatures=[],{key:a,revocationCertificate:s};function o(e,t={}){return e.keyExpirationTime=e.keyExpirationTime||t.keyExpirationTime,e.passphrase=W.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e}}(h,s);return{privateKey:Gc(e,a,s),publicKey:Gc(e.toPublic(),a,s),revocationCertificate:t}}catch(e){throw W.wrapError("Error reformatting keypair",e)}}async function xc({key:e,revocationCertificate:t,reasonForRevocation:r,date:n=new Date,format:i="armored",config:a,...s}){Fc(a={...ne,...a});const o=Object.keys(s);if(o.length>0)throw Error("Unknown option: "+o.join(", "));try{const s=t?await e.applyRevocationCertificate(t,n,a):await e.revoke(r,n,a);return s.isPrivate()?{privateKey:Gc(s,i,a),publicKey:Gc(s.toPublic(),i,a)}:{privateKey:null,publicKey:Gc(s,i,a)}}catch(e){throw W.wrapError("Error revoking key",e)}}async function Pc({privateKey:e,passphrase:t,config:r,...n}){Fc(r={...ne,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot decrypt a public key");const a=e.clone(!0),s=W.isArray(t)?t:[t];try{return await Promise.all(a.getKeys().map((e=>W.anyPromise(s.map((t=>e.keyPacket.decrypt(t))))))),await a.validate(r),a}catch(e){throw a.clearPrivateParams(),W.wrapError("Error decrypting private key",e)}}async function Uc({privateKey:e,passphrase:t,config:r,...n}){Fc(r={...ne,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot encrypt a public key");const a=e.clone(!0),s=a.getKeys(),o=W.isArray(t)?t:Array(s.length).fill(t);if(o.length!==s.length)throw Error("Invalid number of passphrases given for key encryption");try{return await Promise.all(s.map((async(e,t)=>{const{keyPacket:n}=e;await n.encrypt(o[t],r),n.clearPrivateParams()}))),a}catch(e){throw a.clearPrivateParams(),W.wrapError("Error encrypting private key",e)}}async function Dc({message:e,encryptionKeys:t,signingKeys:r,passwords:n,sessionKey:i,format:a="armored",signature:s=null,wildcard:o=!1,signingKeyIDs:c=[],encryptionKeyIDs:h=[],date:u=new Date,signingUserIDs:l=[],encryptionUserIDs:y=[],config:p,...d}){if(Fc(p={...ne,...p}),Mc(e),Oc(a),t=jc(t),r=jc(r),n=jc(n),c=jc(c),h=jc(h),l=jc(l),y=jc(y),d.detached)throw Error("The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.");if(d.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(d.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(void 0!==d.armor)throw Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");const f=Object.keys(d);if(f.length>0)throw Error("Unknown option: "+f.join(", "));r||(r=[]);const g=e.fromStream;try{if((r.length||s)&&(e=await e.sign(r,s,c,u,l,p)),e=e.compress(await jo("compression",t,u,y,p),p),e=await e.encrypt(t,n,i,o,h,u,y,p),"object"===a)return e;const d="armored"===a;return Hc(d?e.armor(p):e.write(),g,d?"utf8":"binary")}catch(e){throw W.wrapError("Error encrypting message",e)}}async function Cc({message:e,decryptionKeys:t,passwords:r,sessionKeys:n,verificationKeys:i,expectSigned:a=!1,format:s="utf8",signature:o=null,date:c=new Date,config:h,...u}){if(Fc(h={...ne,...h}),Mc(e),i=jc(i),t=jc(t),r=jc(r),n=jc(n),u.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(u.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");const l=Object.keys(u);if(l.length>0)throw Error("Unknown option: "+l.join(", "));try{const u=await e.decrypt(t,r,n,c,h);i||(i=[]);const l={};if(l.signatures=o?await u.verifyDetached(o,i,c,h):await u.verify(i,c,h),l.data="binary"===s?u.getLiteralData():u.getText(),l.filename=u.getFilename(),qc(l,e),a){if(0===i.length)throw Error("Verification keys are required to verify message signatures");if(0===l.signatures.length)throw Error("Message is not signed");l.data=U([l.data,q((async()=>{await W.anyPromise(l.signatures.map((e=>e.verified)))}))])}return l.data=await Hc(l.data,e.fromStream,s),l}catch(e){throw W.wrapError("Error decrypting message",e)}}async function Ic({message:e,signingKeys:t,format:r="armored",detached:n=!1,signingKeyIDs:i=[],date:a=new Date,signingUserIDs:s=[],config:o,...c}){if(Fc(o={...ne,...o}),Nc(e),Oc(r),t=jc(t),i=jc(i),s=jc(s),c.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead");if(void 0!==c.armor)throw Error("The `armor` option has been removed from openpgp.sign, pass `format` instead.");const h=Object.keys(c);if(h.length>0)throw Error("Unknown option: "+h.join(", "));if(e instanceof Ac&&"binary"===r)throw Error("Cannot return signed cleartext message in binary format");if(e instanceof Ac&&n)throw Error("Cannot detach-sign a cleartext message");if(!t||0===t.length)throw Error("No signing keys provided");try{let c;if(c=n?await e.signDetached(t,void 0,i,a,s,o):await e.sign(t,void 0,i,a,s,o),"object"===r)return c;const h="armored"===r;return c=h?c.armor(o):c.write(),n&&(c=R(e.packets.write(),(async(e,t)=>{await Promise.all([I(c,t),j(e).catch((()=>{}))])}))),Hc(c,e.fromStream,h?"utf8":"binary")}catch(e){throw W.wrapError("Error signing message",e)}}async function Bc({message:e,verificationKeys:t,expectSigned:r=!1,format:n="utf8",signature:i=null,date:a=new Date,config:s,...o}){if(Fc(s={...ne,...s}),Nc(e),t=jc(t),o.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead");const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(e instanceof Ac&&"binary"===n)throw Error("Can't return cleartext message data as binary");if(e instanceof Ac&&i)throw Error("Can't verify detached cleartext signature");try{const o={};if(o.signatures=i?await e.verifyDetached(i,t,a,s):await e.verify(t,a,s),o.data="binary"===n?e.getLiteralData():e.getText(),e.fromStream&&qc(o,e),r){if(0===o.signatures.length)throw Error("Message is not signed");o.data=U([o.data,q((async()=>{await W.anyPromise(o.signatures.map((e=>e.verified)))}))])}return o.data=await Hc(o.data,e.fromStream,n),o}catch(e){throw W.wrapError("Error verifying signed message",e)}}async function Tc({encryptionKeys:e,date:t=new Date,encryptionUserIDs:r=[],config:n,...i}){if(Fc(n={...ne,...n}),e=jc(e),r=jc(r),i.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead");const a=Object.keys(i);if(a.length>0)throw Error("Unknown option: "+a.join(", "));try{return await gc.generateSessionKey(e,t,r,n)}catch(e){throw W.wrapError("Error generating session key",e)}}async function zc({data:e,algorithm:t,aeadAlgorithm:r,encryptionKeys:n,passwords:i,format:a="armored",wildcard:s=!1,encryptionKeyIDs:o=[],date:c=new Date,encryptionUserIDs:h=[],config:u,...l}){if(Fc(u={...ne,...u}),function(e,t){if(!W.isUint8Array(e))throw Error("Parameter ["+(t||"data")+"] must be of type Uint8Array")}(e),function(e,t){if(!W.isString(e))throw Error("Parameter ["+(t||"data")+"] must be of type String")}(t,"algorithm"),Oc(a),n=jc(n),i=jc(i),o=jc(o),h=jc(h),l.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead");const y=Object.keys(l);if(y.length>0)throw Error("Unknown option: "+y.join(", "));if(!(n&&0!==n.length||i&&0!==i.length))throw Error("No encryption keys or passwords provided.");try{return Gc(await gc.encryptSessionKey(e,t,r,n,i,s,o,c,h,u),a,u)}catch(e){throw W.wrapError("Error encrypting session key",e)}}async function Rc({message:e,decryptionKeys:t,passwords:r,date:n=new Date,config:i,...a}){if(Fc(i={...ne,...i}),Mc(e),t=jc(t),r=jc(r),a.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");const s=Object.keys(a);if(s.length>0)throw Error("Unknown option: "+s.join(", "));try{return await e.decryptSessionKeys(t,r,n,i)}catch(e){throw W.wrapError("Error decrypting session keys",e)}}function Mc(e){if(!(e instanceof gc))throw Error("Parameter [message] needs to be of type Message")}function Nc(e){if(!(e instanceof Ac||e instanceof gc))throw Error("Parameter [message] needs to be of type Message or CleartextMessage")}function Oc(e){if("armored"!==e&&"binary"!==e&&"object"!==e)throw Error("Unsupported format "+e)}const Lc=Object.keys(ne).length;function Fc(e){const t=Object.keys(e);if(t.length!==Lc)for(const e of t)if(void 0===ne[e])throw Error("Unknown config property: "+e)}function jc(e){return e&&!W.isArray(e)&&(e=[e]),e}async function Hc(e,t,r="utf8"){const n=W.isStream(e);return"array"===n?j(e):"node"===t?(e=g(e),"binary"!==r&&e.setEncoding(r),e):"web"===t&&"ponyfill"===n?v(e):e}function qc(e,t){e.data=R(t.packets.stream,(async(t,r)=>{await I(e.data,r,{preventClose:!0});const n=C(r);try{await j(t,(e=>e)),await n.close()}catch(e){await n.abort(e)}}))}function Gc(e,t,r){switch(t){case"object":return e;case"armored":return e.armor(r);case"binary":return e.write();default:throw Error("Unsupported format "+t)}}export{mo as AEADEncryptedDataPacket,Ac as CleartextMessage,ao as CompressedDataPacket,Qs as LiteralDataPacket,Eo as MarkerPacket,gc as Message,to as OnePassSignaturePacket,no as PacketList,sc as PrivateKey,ac as PublicKey,wo as PublicKeyEncryptedSessionKeyPacket,vo as PublicKeyPacket,So as PublicSubkeyPacket,xo as SecretKeyPacket,Co as SecretSubkeyPacket,To as Signature,Js as SignaturePacket,Jo as Subkey,fo as SymEncryptedIntegrityProtectedDataPacket,ko as SymEncryptedSessionKeyPacket,_o as SymmetricallyEncryptedDataPacket,Io as TrustPacket,bn as UnparseablePacket,Ko as UserAttributePacket,Do as UserIDPacket,Ut as _,et as a,ye as armor,dt as b,tt as c,ne as config,Ec as createCleartextMessage,kc as createMessage,ht as d,Cc as decrypt,Pc as decryptKey,Rc as decryptSessionKeys,xt as e,Dc as encrypt,Uc as encryptKey,zc as encryptSessionKey,re as enums,ir as f,qt as g,Sc as generateKey,Tc as generateSessionKey,rt as i,Xe as m,br as r,_c as readCleartextMessage,hc as readKey,lc as readKeys,bc as readMessage,uc as readPrivateKey,yc as readPrivateKeys,zo as readSignature,Kc as reformatKey,xc as revokeKey,Ic as sign,st as u,le as unarmor,Bc as verify};
|
|
3
3
|
//# sourceMappingURL=openpgp.min.mjs.map
|