@bwalletx/connect 0.0.0-stage → 0.2.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.
@@ -0,0 +1,54 @@
1
+ "use strict";var bWalletXConnect=(()=>{var ht=Object.defineProperty;var fi=Object.getOwnPropertyDescriptor;var di=Object.getOwnPropertyNames;var li=Object.prototype.hasOwnProperty;var Xn=r=>{throw TypeError(r)};var hi=(r,e,t)=>e in r?ht(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var ui=(r,e)=>{for(var t in e)ht(r,t,{get:e[t],enumerable:!0})},bi=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of di(e))!li.call(r,i)&&i!==t&&ht(r,i,{get:()=>e[i],enumerable:!(n=fi(e,i))||n.enumerable});return r};var pi=r=>bi(ht({},"__esModule",{value:!0}),r);var p=(r,e,t)=>hi(r,typeof e!="symbol"?e+"":e,t),Vt=(r,e,t)=>e.has(r)||Xn("Cannot "+t);var u=(r,e,t)=>(Vt(r,e,"read from private field"),t?t.call(r):e.get(r)),P=(r,e,t)=>e.has(r)?Xn("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),I=(r,e,t,n)=>(Vt(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t),d=(r,e,t)=>(Vt(r,e,"access private method"),t);var Zs={};ui(Zs,{BWALLETX_RDNS:()=>jt,GET_URL:()=>Un,LOGIN_PROTOCOL:()=>Mn,LOGO_URL:()=>Fn,RDNS_EXTENSION:()=>ut,RDNS_MOBILE:()=>Yt,SIGNIN_CSS:()=>zn,SIGNIN_TAG:()=>Pn,WEB_WALLET_URL:()=>Cn,buildAuthorizeUrl:()=>On,clearPairing:()=>ni,connectBwalletX:()=>Tn,defineBwalletxSignin:()=>Gt,discoverBwalletX:()=>pe,findBwalletX:()=>qn,inOrder:()=>ft,markSvg:()=>_n,pairBwalletX:()=>qt,renderButton:()=>ai,restorePairing:()=>Dt,signInWithBwalletX:()=>$t,signinText:()=>Hn});var ut="com.bwalletx.extension",Yt="space.bwallet.mobile",jt=[ut,Yt];function pe(r=1200){return typeof window>"u"?Promise.resolve(null):new Promise(e=>{let t=!1,n=s=>{t||(t=!0,window.removeEventListener("brc100:announceWallet",i),e(s))},i=s=>{let o=s.detail,a=o?.info?.rdns??"";o?.wallet&&jt.includes(a)&&n({wallet:o.wallet,method:a===ut?"extension":"in-app",rdns:a})};window.addEventListener("brc100:announceWallet",i),window.dispatchEvent(new Event("brc100:requestWallet")),setTimeout(()=>{let s=window.CWI;n(s?{wallet:s,method:"in-app",rdns:null}:null)},r)})}async function qn(r=1200){return(await pe(r))?.wallet??null}var Jt=globalThis.Buffer,gi=Jt!=null&&typeof Jt.from=="function",Ze=new Int8Array(256).fill(-1);for(let r=0;r<10;r++)Ze[48+r]=r;for(let r=0;r<6;r++)Ze[65+r]=10+r,Ze[97+r]=10+r;var Ge,Ke,pt,gt,ae,mt,Ve,S,E,M,l,Dn,$n,Zn,Gn,Kn,Vn,Qt,G,te,A,Yn,qe,De,jn,Jn,me,Qn,er,tr,U,z,$e,bt,ge,en,nr,tn,v=class v{constructor(e=0,t=10,n="be"){P(this,l);P(this,S,0n);P(this,E,0);P(this,M,1);p(this,"red",null);if(e??(e=0),typeof e=="bigint"){d(this,l,G).call(this,e<0n?-e:e,e<0n?1:0),this.normSign();return}let i=t==="le"||t==="be",s=i?10:t,o=i?t:n;if(typeof e=="number"){d(this,l,Yn).call(this,e,o);return}if(Array.isArray(e)){d(this,l,qe).call(this,e,o);return}if(typeof e=="string"){d(this,l,$n).call(this,e,s,o);return}e!==0?d(this,l,A).call(this,!1,"Unsupported input type for BigNumber constructor"):d(this,l,G).call(this,0n,0)}get negative(){return u(this,E)}set negative(e){d(this,l,A).call(this,e===0||e===1,"Negative property must be 0 or 1");let t=e===1?1:0;u(this,S)===0n?I(this,E,0):I(this,E,t)}get words(){if(!Number.isSafeInteger(u(this,M))||u(this,M)<1||u(this,M)>u(v,Ve))throw new Error("BigNumber word length exceeds the supported limit");let e=u(this,l,Dn);if(u(this,M)<=e.length)return e;let t=Array.from({length:u(this,M)}).fill(0);for(let n=0;n<e.length;n++)t[n]=e[n];return t}set words(e){let t=u(this,E),n=0n,i=e.length>0?e.length:1;for(let s=i-1;s>=0;s--){let o=e[s]??0;n=n<<u(v,Ge)|BigInt(o&Number(u(v,Ke)))}I(this,S,n),I(this,E,t),I(this,M,i),this.normSign()}get length(){return Math.max(1,u(this,M))}static isBN(e){return e instanceof v?!0:e!==null&&typeof e=="object"&&e.constructor?.wordSize===v.wordSize&&Array.isArray(e.words)}static max(e,t){return e.cmp(t)>0?e:t}static min(e,t){return e.cmp(t)<0?e:t}copy(e){I(e,S,u(this,S)),I(e,E,u(this,E)),I(e,M,u(this,M)),e.red=this.red}static move(e,t){I(e,S,u(t,S)),I(e,E,u(t,E)),I(e,M,u(t,M)),e.red=t.red}clone(){let e=new v(0n);return this.copy(e),e}expand(e){return d(this,l,A).call(this,Number.isSafeInteger(e)&&e>=0&&e<=u(v,Ve),"Expand size must be a non-negative safe integer within the supported word limit"),I(this,M,Math.max(u(this,M),e,1)),this}strip(){return d(this,l,te).call(this),this.normSign()}normSign(){return u(this,S)===0n&&I(this,E,0),this}inspect(){return(this.red===null?"<BN: ":"<BN-R: ")+this.toString(16)+">"}toString(e=10,t=1){if(e===16||e==="hex")return d(this,l,jn).call(this,t);if(typeof e!="number"||e<2||e>36||e%1!==0)throw new Error("Base should be an integer between 2 and 36");return d(this,l,Jn).call(this,e,t)}toNumber(){let e=d(this,l,U).call(this);if(e>u(v,pt)||e<u(v,gt))throw new Error("Number can only safely store up to 53 bits");return Number(e)}toBigInt(){return d(this,l,U).call(this)}toJSON(){let e=d(this,l,De).call(this);return(this.isNeg()?"-":"")+e}toArray(e="be",t){this.strip();let n=this.byteLength(),i=t??Math.max(1,n);d(this,l,A).call(this,n<=i,"byte array longer than desired length"),d(this,l,A).call(this,i>0,"Requested array length <= 0");let s=Array.from({length:i}).fill(0);return u(this,S)===0n&&i>0?s:u(this,S)===0n&&i===0?[]:(d(this,l,tr).call(this,s,e==="le"),s)}bitLength(){return u(this,S)===0n?0:u(this,S).toString(2).length}static toBitArray(e){let t=e.bitLength();if(t===0)return[];let n=Array.from({length:t}),i=u(e,S);for(let s=0;s<t;s++)n[s]=(i>>BigInt(s)&1n)===0n?0:1;return n}toBitArray(){return v.toBitArray(this)}zeroBits(){if(u(this,S)===0n)return 0;let e=0,t=u(this,S);for(;(t&1n)===0n&&t!==0n;)e++,t>>=1n;return e}byteLength(){return u(this,S)===0n?0:Math.ceil(this.bitLength()/8)}toTwos(e){var o;d(this,l,A).call(this,e>=0);let t=BigInt(e),n=d(this,l,U).call(this);u(this,E)===1&&u(this,S)!==0n&&(n=(1n<<t)+n);let i=(1n<<t)-1n;n&=i;let s=new v(0n);return d(o=s,l,G).call(o,n,0),s}fromTwos(e){var i;d(this,l,A).call(this,e>=0);let t=BigInt(e),n=u(this,S);if(e>0&&(n>>t-1n&1n)!==0n&&u(this,E)===0){let s=n-(1n<<t),o=new v(0n);return d(i=o,l,z).call(i,s),o}return this.clone()}isNeg(){return u(this,E)===1&&u(this,S)!==0n}neg(){return this.clone().ineg()}ineg(){return u(this,S)!==0n&&I(this,E,u(this,E)===1?0:1),this}iuor(e){return d(this,l,$e).call(this,e,(t,n)=>t|n)}iuand(e){return d(this,l,$e).call(this,e,(t,n)=>t&n)}iuxor(e){return d(this,l,$e).call(this,e,(t,n)=>t^n,!0)}ior(e){return d(this,l,bt).call(this,e,(t,n)=>t|n)}iand(e){return d(this,l,bt).call(this,e,(t,n)=>t&n)}ixor(e){return d(this,l,bt).call(this,e,(t,n)=>t^n,!0)}or(e){return d(this,l,A).call(this,u(this,E)===0&&u(e,E)===0),d(this,l,ge).call(this,e,"iuor")}uor(e){return d(this,l,ge).call(this,e,"iuor")}and(e){return d(this,l,A).call(this,u(this,E)===0&&u(e,E)===0),d(this,l,ge).call(this,e,"iuand")}uand(e){return d(this,l,ge).call(this,e,"iuand")}xor(e){return d(this,l,A).call(this,u(this,E)===0&&u(e,E)===0),d(this,l,ge).call(this,e,"iuxor")}uxor(e){return d(this,l,ge).call(this,e,"iuxor")}inotn(e){d(this,l,A).call(this,typeof e=="number"&&e>=0);let n=(1n<<BigInt(e))-1n;I(this,S,~u(this,S)&n);let i=e===0?1:Math.ceil(e/v.wordSize);return I(this,M,Math.max(1,i)),this.strip(),I(this,M,Math.max(u(this,M),Math.max(1,i))),this}notn(e){return this.clone().inotn(e)}setn(e,t){d(this,l,A).call(this,typeof e=="number"&&e>=0);let n=BigInt(e);t===1||t===!0?I(this,S,u(this,S)|1n<<n):I(this,S,u(this,S)&~(1n<<n));let i=Math.floor(e/v.wordSize)+1;return I(this,M,Math.max(u(this,M),i)),d(this,l,te).call(this),this.strip()}iadd(e){var t;return d(this,l,z).call(this,d(this,l,U).call(this)+d(t=e,l,U).call(t)),this}add(e){var n,i;let t=new v(0n);return d(i=t,l,z).call(i,d(this,l,U).call(this)+d(n=e,l,U).call(n)),t}isub(e){var t;return d(this,l,z).call(this,d(this,l,U).call(this)-d(t=e,l,U).call(t)),this}sub(e){var n,i;let t=new v(0n);return d(i=t,l,z).call(i,d(this,l,U).call(this)-d(n=e,l,U).call(n)),t}mul(e){let t=new v(0n);return I(t,S,u(this,S)*u(e,S)),I(t,E,u(t,S)===0n?0:u(this,E)^u(e,E)),I(t,M,this.length+e.length),t.red=null,t.normSign()}imul(e){return I(this,S,u(this,S)*u(e,S)),I(this,E,u(this,S)===0n?0:u(this,E)^u(e,E)),I(this,M,this.length+e.length),this.red=null,this.normSign()}imuln(e){return d(this,l,A).call(this,typeof e=="number","Assertion failed"),d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"Assertion failed"),d(this,l,z).call(this,d(this,l,U).call(this)*BigInt(e)),this}muln(e){return this.clone().imuln(e)}sqr(){let e=new v(0n);return I(e,S,u(this,S)*u(this,S)),I(e,E,0),I(e,M,this.length*2),e.red=null,e}isqr(){return I(this,S,u(this,S)*u(this,S)),I(this,E,0),I(this,M,this.length*2),this.red=null,this}pow(e){if(d(this,l,A).call(this,u(e,E)===0,"Exponent for pow must be non-negative"),e.isZero())return new v(1n);let t=new v(1n),n=this.clone(),i=e.clone(),s=n.isNeg(),o=i.isOdd();for(s&&n.ineg();!i.isZero();)i.isOdd()&&t.imul(n),n.isqr(),i.iushrn(1);return s&&o&&t.ineg(),t}iushln(e){var n;let t=d(n=v,me,en).call(n,e,"Shift bits");return t===0n?this:(I(this,S,u(this,S)<<t),d(this,l,te).call(this),this.strip())}ishln(e){return d(this,l,A).call(this,u(this,E)===0,"ishln requires positive number"),this.iushln(e)}iushrn(e,t,n){var s,o,a;let i=d(s=v,me,en).call(s,e,"Shift bits");if(i===0n)return n!=null&&d(o=n,l,G).call(o,0n,0),this;if(n!=null){let c=(1n<<i)-1n,f=u(this,S)&c;d(a=n,l,G).call(a,f,0)}return I(this,S,u(this,S)>>i),d(this,l,te).call(this),this.strip()}ishrn(e,t,n){return d(this,l,A).call(this,u(this,E)===0,"ishrn requires positive number"),this.iushrn(e,t,n)}shln(e){return this.clone().ishln(e)}ushln(e){return this.clone().iushln(e)}shrn(e){return this.clone().ishrn(e)}ushrn(e){return this.clone().iushrn(e)}testn(e){return d(this,l,A).call(this,typeof e=="number"&&e>=0),(u(this,S)>>BigInt(e)&1n)!==0n}imaskn(e){d(this,l,A).call(this,typeof e=="number"&&e>=0),d(this,l,A).call(this,u(this,E)===0,"imaskn works only with positive numbers");let t=BigInt(e),n=t===0n?0n:(1n<<t)-1n;I(this,S,u(this,S)&n);let i=e===0?1:Math.max(1,Math.ceil(e/v.wordSize));return I(this,M,i),d(this,l,te).call(this),I(this,M,Math.max(u(this,M),i)),this.strip()}maskn(e){return this.clone().imaskn(e)}iaddn(e){return d(this,l,A).call(this,typeof e=="number"),d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"num is too large"),d(this,l,z).call(this,d(this,l,U).call(this)+BigInt(e)),this}_iaddn(e){return this.iaddn(e)}isubn(e){return d(this,l,A).call(this,typeof e=="number"),d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"Assertion failed"),d(this,l,z).call(this,d(this,l,U).call(this)-BigInt(e)),this}addn(e){return this.clone().iaddn(e)}subn(e){return this.clone().isubn(e)}iabs(){return I(this,E,0),this}abs(){return this.clone().iabs()}divmod(e,t,n){var c;if(d(this,l,A).call(this,!e.isZero(),"Division by zero"),this.isZero()){let f=new v(0n);return{div:t==="mod"?null:f,mod:t==="div"?null:f}}let i=d(this,l,U).call(this),s=d(c=e,l,U).call(c),o=t!=="mod"?i/s:null,a=d(this,l,nr).call(this,i,s,t,n);return{div:d(this,l,tn).call(this,o),mod:d(this,l,tn).call(this,a)}}div(e){return this.divmod(e,"div",!1).div}mod(e){return this.divmod(e,"mod",!1).mod}umod(e){return this.divmod(e,"mod",!0).mod}divRound(e){var f,h,b;d(this,l,A).call(this,!e.isZero());let t=d(this,l,U).call(this),n=d(f=e,l,U).call(f),i=t/n,s=t%n;if(s===0n){let g=new v(0n);return d(h=g,l,z).call(h,i),g}let o=s<0n?-s:s,a=n<0n?-n:n;o*2n>=a&&(t>0n&&n>0n||t<0n&&n<0n?i+=1n:i-=1n);let c=new v(0n);return d(b=c,l,z).call(b,i),c}modrn(e){d(this,l,A).call(this,e!==0,"Division by zero in modrn");let t=BigInt(Math.abs(e));if(t===0n)throw new Error("Division by zero in modrn");let n=u(this,S)%t;return e<0?Number(-n):Number(n)}idivn(e){return d(this,l,A).call(this,e!==0),d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"num is too large"),d(this,l,z).call(this,d(this,l,U).call(this)/BigInt(e)),this}divn(e){return this.clone().idivn(e)}egcd(e){var b,g,y;d(this,l,A).call(this,e.negative===0,"p must not be negative"),d(this,l,A).call(this,!e.isZero(),"p must not be zero");let t=d(this,l,U).call(this),n=u(e,S),i=1n,s=0n,o=0n,a=1n;for(;n!==0n;){let w=t/n,x=n;n=t%n,t=x,x=s,s=i-w*s,i=x,x=a,a=o-w*a,o=x}let c=new v(0n);d(b=c,l,z).call(b,i);let f=new v(0n);d(g=f,l,z).call(g,o);let h=new v(0n);return d(y=h,l,G).call(y,t<0n?-t:t,0),{a:c,b:f,gcd:h}}gcd(e){var s,o,a;let t=u(this,S),n=u(e,S);if(t===0n){let c=new v(0n);return d(s=c,l,z).call(s,n),c.iabs()}if(n===0n){let c=new v(0n);return d(o=c,l,z).call(o,t),c.iabs()}for(;n!==0n;){let c=t%n;t=n,n=c}let i=new v(0n);return d(a=i,l,G).call(a,t,0),i}invm(e){d(this,l,A).call(this,!e.isZero()&&u(e,E)===0,"Modulus for invm must be positive and non-zero");let t=this.egcd(e);if(!t.gcd.eqn(1))throw new Error("Inverse does not exist (numbers are not coprime).");return t.a.umod(e)}isEven(){return u(this,S)%2n===0n}isOdd(){return u(this,S)%2n===1n}andln(e){return d(this,l,A).call(this,e>=0),Number(u(this,S)&BigInt(e))}bincn(e){d(this,l,A).call(this,typeof e=="number"&&e>=0);let t=1n<<BigInt(e);return d(this,l,z).call(this,d(this,l,U).call(this)+t),this}isZero(){return u(this,S)===0n}cmpn(e){d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"Number is too big");let t=d(this,l,U).call(this),n=BigInt(e);return t<n?-1:t>n?1:0}cmp(e){var i;let t=d(this,l,U).call(this),n=d(i=e,l,U).call(i);return t<n?-1:t>n?1:0}ucmp(e){return u(this,S)<u(e,S)?-1:u(this,S)>u(e,S)?1:0}gtn(e){return this.cmpn(e)===1}gt(e){return this.cmp(e)===1}gten(e){return this.cmpn(e)>=0}gte(e){return this.cmp(e)>=0}ltn(e){return this.cmpn(e)===-1}lt(e){return this.cmp(e)===-1}lten(e){return this.cmpn(e)<=0}lte(e){return this.cmp(e)<=0}eqn(e){return this.cmpn(e)===0}eq(e){return this.cmp(e)===0}toRed(e){return d(this,l,A).call(this,this.red==null,"Already a number in reduction context"),d(this,l,A).call(this,u(this,E)===0,"toRed works only with positives"),e.convertTo(this).forceRed(e)}fromRed(){return d(this,l,A).call(this,this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)}forceRed(e){return this.red=e,this}redAdd(e){return d(this,l,A).call(this,this.red,"redAdd works only with red numbers"),this.red.add(this,e)}redIAdd(e){return d(this,l,A).call(this,this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)}redSub(e){return d(this,l,A).call(this,this.red,"redSub works only with red numbers"),this.red.sub(this,e)}redISub(e){return d(this,l,A).call(this,this.red,"redISub works only with red numbers"),this.red.isub(this,e)}redShl(e){return d(this,l,A).call(this,this.red,"redShl works only with red numbers"),this.red.shl(this,e)}redMul(e){return d(this,l,A).call(this,this.red,"redMul works only with red numbers"),this.red.verify2(this,e),this.red.mul(this,e)}redIMul(e){return d(this,l,A).call(this,this.red,"redIMul works only with red numbers"),this.red.verify2(this,e),this.red.imul(this,e)}redSqr(){return d(this,l,A).call(this,this.red,"redSqr works only with red numbers"),this.red.verify1(this),this.red.sqr(this)}redISqr(){return d(this,l,A).call(this,this.red,"redISqr works only with red numbers"),this.red.verify1(this),this.red.isqr(this)}redSqrt(){return d(this,l,A).call(this,this.red,"redSqrt works only with red numbers"),this.red.verify1(this),this.red.sqrt(this)}redInvm(){return d(this,l,A).call(this,this.red,"redInvm works only with red numbers"),this.red.verify1(this),this.red.invm(this)}redNeg(){return d(this,l,A).call(this,this.red,"redNeg works only with red numbers"),this.red.verify1(this),this.red.neg(this)}redPow(e){return d(this,l,A).call(this,this.red!=null&&e.red==null,"redPow(normalNum)"),this.red.verify1(this),this.red.pow(this,e)}static fromHex(e,t){let n="be";return(t==="little"||t==="le")&&(n="le"),new v(e,16,n)}toHex(e=0){if(this.isZero()&&e===0)return"";let t=d(this,l,De).call(this);t!=="0"&&t.length%2!==0&&(t="0"+t);let n=e*2;for(;t.length<n;)t="0"+t;return(this.isNeg()?"-":"")+t}static fromJSON(e){return new v(e,16)}static fromNumber(e){return new v(e)}static fromString(e,t){return new v(e,t)}static fromSm(e,t="big"){var c;if(e.length===0)return new v(0n);let n=e.slice();t==="little"&&n.reverse();let i=0;n.length>0&&(n[0]&128)!==0&&(i=1,n[0]&=127);let s;if(gi)s=Jt.from(n).toString("hex");else{s="";for(let f of n)s+=f<16?"0"+f.toString(16):f.toString(16)}let o=s.length===0?0n:BigInt("0x"+s),a=new v(0n);return d(c=a,l,G).call(c,o,i),a}toSm(e="big"){if(u(this,S)===0n)return u(this,E)===1?[128]:[];let t=d(this,l,De).call(this);t.length%2!==0&&(t="0"+t);let n=t.length/2,i=Array.from({length:n});for(let o=0,a=0;o<t.length;o+=2){let c=Ze[t.codePointAt(o)],f=Ze[t.codePointAt(o+1)];i[a++]=(c&15)<<4|f&15}let s;return u(this,E)===1?(i[0]&128)===0?(s=i.slice(),s[0]|=128):s=[128,...i]:(i[0]&128)===0?s=i.slice():s=[0,...i],e==="little"?s.reverse():s}static fromBits(e,t=!1){let n=e>>>24,i=e&8388607,s=(e&8388608)!==0;if(t&&s)throw new Error("negative bit set");if(n===0&&i===0){if(s&&t)throw new Error("negative bit set for zero value");return new v(0n)}let o=new v(i);return n<=3?o.iushrn((3-n)*8):o.iushln((n-3)*8),s&&o.ineg(),o}toBits(){if(this.strip(),this.isZero()&&!this.isNeg())return 0;let e=this.isNeg(),n=this.abs().toArray("be"),i=0;for(;i<n.length-1&&n[i]===0;)i++;n=n.slice(i);let s=n.length,o;if(s===0)o=0;else if(s<=3){o=0;for(let c=0;c<s;c++)o=o<<8|n[c]}else o=n[0]<<16|n[1]<<8|n[2];(o&8388608)!==0&&s<=255&&(o>>>=8,s++);let a=s<<24|o;return e&&(a|=8388608),a>>>0}static fromScriptNum(e,t=!1,n){if(n!==void 0&&e.length>n)throw new Error("script number overflow");if(e.length===0)return new v(0n);if(t&&(e.at(-1)&127)===0&&(e.length<=1||(e.at(-2)&128)===0))throw new Error("non-minimally encoded script number");return v.fromSm(e,"little")}toScriptNum(){return this.toSm("little")}_invmp(e){d(this,l,A).call(this,u(e,E)===0,"p must not be negative for _invmp"),d(this,l,A).call(this,!e.isZero(),"p must not be zero for _invmp");let t=this.umod(e),n=e.subn(2);if(t.red!==null)return t.redPow(n);let i=new v(1n),s=t.clone(),o=n.clone();for(;!o.isZero();)o.isOdd()&&(i=i.mul(s).umod(e)),s=s.sqr().umod(e),o.iushrn(1);return i}mulTo(e,t){return I(t,S,u(this,S)*u(e,S)),I(t,E,u(t,S)===0n?0:u(this,E)^u(e,E)),I(t,M,this.length+e.length),t.red=null,t.normSign(),t}};Ge=new WeakMap,Ke=new WeakMap,pt=new WeakMap,gt=new WeakMap,ae=new WeakMap,mt=new WeakMap,Ve=new WeakMap,S=new WeakMap,E=new WeakMap,M=new WeakMap,l=new WeakSet,Dn=function(){if(u(this,S)===0n)return[0];let e=[],t=u(this,S);for(;t>0n;)e.push(Number(t&u(v,Ke))),t>>=u(v,Ge);return e.length>0?e:[0]},$n=function(e,t,n){t==="hex"&&(t=16),d(this,l,A).call(this,typeof t=="number"&&t===Math.trunc(t)&&t>=2&&t<=36,"Base must be an integer between 2 and 36");let i=e.toString().replace(/\s+/g,""),s=0,o=0;i.startsWith("-")?(s++,o=1):i.startsWith("+")&&s++;let a=i.substring(s);if(a.length===0){d(this,l,G).call(this,0n,o===1&&i.startsWith("-")?1:0),this.normSign();return}t===16?d(this,l,Zn).call(this,a,o,n):d(this,l,Gn).call(this,a,t,o,n)},Zn=function(e,t,n){if(n==="le"){let i=[],s=e;s.length%2!==0&&(s="0"+s);for(let o=0;o<s.length;o+=2){let a=s.substring(o,o+2),c=Number.parseInt(a,16);if(Number.isNaN(c))throw new Error("Invalid character in "+s);i.push(c)}d(this,l,qe).call(this,i,"le"),I(this,E,t),this.normSign()}else{let i;try{i=BigInt("0x"+e)}catch{throw new Error("Invalid character in "+e)}d(this,l,G).call(this,i,t),this.normSign()}},Gn=function(e,t,n,i){try{if(d(this,l,Vn).call(this,e,t),I(this,E,n),this.normSign(),i==="le"){let s=u(this,E);d(this,l,qe).call(this,this.toArray("be"),"le"),I(this,E,s),this.normSign()}}catch(s){let o=s;throw o.message.includes("Invalid character in string")||o.message.includes("Invalid digit for base")||o.message.startsWith("Invalid character:")?new Error("Invalid character"):o}},Kn=function(e,t){if(e===0n)return"0";if(t<2||t>36)throw new Error("Base must be between 2 and 36");let n="0123456789abcdefghijklmnopqrstuvwxyz",i="",s=e>0n?e:-e,o=BigInt(t);for(;s>0n;)i=n[Number(s%o)]+i,s/=o;return i},Vn=function(e,t){I(this,S,0n);let n=BigInt(t),i=v.groupSizes[t],s=BigInt(v.groupBases[t]);(i===0||s===0n)&&(i=Math.floor(Math.log(67108863)/Math.log(t)),i===0&&(i=1),s=n**BigInt(i));let o=0,a=e.length,c=a%i;if(c===0&&a>0&&(c=i),c>0){let f=e.substring(o,o+c);I(this,S,BigInt(d(this,l,Qt).call(this,f,t))),o+=c}for(;o<a;){let f=e.substring(o,o+i),h=BigInt(d(this,l,Qt).call(this,f,t));I(this,S,u(this,S)*s+h),o+=i}d(this,l,te).call(this)},Qt=function(e,t){let n=0;for(let i=0;i<e.length;i++){let s=e.codePointAt(i),o;if(s>=48&&s<=57)o=s-48;else if(s>=65&&s<=90)o=s-65+10;else if(s>=97&&s<=122)o=s-97+10;else throw new Error("Invalid character: "+e[i]);if(o>=t)throw new Error("Invalid character");n=n*t+o}return n},G=function(e,t){I(this,S,e),I(this,E,e===0n?0:t),d(this,l,te).call(this)},te=function(){if(u(this,S)===0n)I(this,M,1),I(this,E,0);else{let e=u(this,S).toString(2).length;I(this,M,Math.max(1,Math.ceil(e/v.wordSize)))}},A=function(e,t="Assertion failed"){if(!e)throw new Error(t)},Yn=function(e,t="be"){if(d(this,l,A).call(this,BigInt(Math.abs(e))<=u(v,mt),"The number is larger than 2 ^ 53 (unsafe)"),d(this,l,A).call(this,e%1===0,"Number must be an integer for BigNumber conversion"),d(this,l,G).call(this,BigInt(Math.abs(e)),e<0?1:0),t==="le"){let n=u(this,E),i=this.toArray("be");d(this,l,qe).call(this,i,"le"),I(this,E,n),this.normSign()}return this},qe=function(e,t){if(e.length===0)return d(this,l,G).call(this,0n,0),this;let n=0n;if(t==="be")for(let i of e)n=n<<8n|BigInt(i&255);else for(let i=e.length-1;i>=0;i--)n=n<<8n|BigInt(e[i]&255);return d(this,l,G).call(this,n,0),this},De=function(){return u(this,S)===0n?"0":u(this,S).toString(16)},jn=function(e){let t=d(this,l,De).call(this);if(e>1)for(t!=="0"&&t.length%2!==0&&(t="0"+t);t.length%e!==0;)t="0"+t;return(this.isNeg()?"-":"")+t},Jn=function(e,t){var a;if(u(this,S)===0n)return d(a=v,me,Qn).call(a,t);let n=v.groupSizes[e],i=BigInt(v.groupBases[e]);(n===0||i===0n)&&(n=Math.floor(Math.log(Number.MAX_SAFE_INTEGER)/Math.log(e)),n===0&&(n=1),i=BigInt(e)**BigInt(n));let s="",o=u(this,S);for(;o>0n;){let c=o%i;o/=i;let f=d(this,l,Kn).call(this,c,e);s=(o>0n?d(this,l,er).call(this,f,n):f)+s}if(t>0)for(;s.length<t;)s="0"+s;return(u(this,E)===1?"-":"")+s},me=new WeakSet,Qn=function(e){let t="0";if(e>1)for(;t.length<e;)t="0"+t;return t},er=function(e,t){let n=t-e.length;return n<=0?e:n<v.zeros.length?v.zeros[n]+e:"0".repeat(n)+e},tr=function(e,t){let n=u(this,S),i=t?0:e.length-1,s=t?1:-1;for(let o of e){if(n===0n&&i>=0&&i<e.length)e[i]=0;else if(i>=0&&i<e.length)e[i]=Number(n&0xffn);else break;n>>=8n,i+=s}},U=function(){return u(this,E)===1?-u(this,S):u(this,S)},z=function(e){e<0n?(I(this,S,-e),I(this,E,1)):(I(this,S,e),I(this,E,0)),d(this,l,te).call(this),this.normSign()},$e=function(e,t,n=!1){let i=t(u(this,S),u(e,S)),s=u(this,M);return n&&(s=Math.max(this.length,e.length)),I(this,S,i),d(this,l,te).call(this),n&&I(this,M,Math.max(u(this,M),s)),this.strip()},bt=function(e,t,n=!1){return d(this,l,A).call(this,u(this,E)===0&&u(e,E)===0),d(this,l,$e).call(this,e,t,n)},ge=function(e,t){return this.length>=e.length?this.clone()[t](e):e.clone()[t](this)},en=function(e,t){if(typeof e=="number"){if(!Number.isFinite(e)||!Number.isInteger(e)||e<0)throw new Error(`${t} must be a non-negative integer`);return BigInt(e)}if(e<0n)throw new Error(`${t} must be a non-negative integer`);return e},nr=function(e,t,n,i){if(n==="div")return null;let s=e%t;return i===!0&&s<0n&&(s+=t<0n?-t:t),s},tn=function(e){var n;if(e===null)return null;let t=new v(0n);return d(n=t,l,z).call(n,e),t},P(v,me),p(v,"zeros",["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"]),p(v,"groupSizes",[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5]),p(v,"groupBases",[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176]),p(v,"wordSize",26),P(v,Ge,26n),P(v,Ke,(1n<<26n)-1n),P(v,pt,BigInt(Number.MAX_SAFE_INTEGER)),P(v,gt,BigInt(Number.MIN_SAFE_INTEGER)),P(v,ae,67108863),P(v,mt,(1n<<53n)-1n),P(v,Ve,1048576);var m=v;var Ye=class{constructor(e,t){p(this,"name");p(this,"p");p(this,"k");p(this,"n");p(this,"tmp");this.name=e,this.p=new m(t,16),this.n=this.p.bitLength(),this.k=new m(BigInt(1)).iushln(this.n).isub(this.p),this.tmp=this._tmp()}_tmp(){let e=new m(BigInt(0)),t=Math.ceil(this.n/m.wordSize);return e.expand(Math.max(1,t)),e}ireduce(e){let t=e,n;do this.split(t,this.tmp),this.imulK(t),t.iadd(this.tmp),n=t.bitLength();while(n>this.n);let i=n<this.n?-1:t.ucmp(this.p);return i===0?t.words=[0]:i>0&&t.isub(this.p),t.strip(),t}split(e,t){e.iushrn(this.n,0,t)}imulK(e){return e.imul(this.k)}};var je=class extends Ye{constructor(){super("k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}split(e,t){let i=e.words,s=e.length,o=Math.min(s,9),a=Array.from({length:o+(s>9?1:0)},()=>0);for(let w=0;w<o;w++)a[w]=i[w];let c=o;if(s<=9){let w=Array.from({length:c},()=>0);for(let x=0;x<c;++x)w[x]=a[x];t.words=w,e.words=[0];return}let f=i[9];a[c++]=f&4194303;let h=Array.from({length:c},()=>0);for(let w=0;w<c;++w)h[w]=a[w];t.words=h;let b=Array.from({length:Math.max(1,s-9)},()=>0),g=0;for(let w=10;w<s;w++){let x=Math.trunc(i[w]);g<b.length&&(b[g++]=(x&4194303)<<4|f>>>22),f=x}f>>>=22,g<b.length?b[g++]=f:f!==0&&b.length>0;let y=Array.from({length:g},()=>0);for(let w=0;w<g;++w)y[w]=b[w];e.words=y}imulK(e){let t=e.words,n=e.length,i=n+2,s=Array.from({length:i},()=>0);for(let a=0;a<n;a++)s[a]=t[a];let o=0;for(let a=0;a<i;a++){let c=Math.trunc(s[a]);o+=c*977,s[a]=o&67108863,o=c*64+Math.trunc(o/67108864)}return e.words=s,e}};var we=class{constructor(e){p(this,"prime");p(this,"m");if(e==="k256"){let t=new je;this.m=t.p,this.prime=t}else this.assert(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}assert(e,t="Assertion failed"){if(!e)throw new Error(t)}verify1(e){this.assert(e.negative===0,"red works only with positives"),this.assert(e.red,"red works only with red numbers")}verify2(e,t){this.assert((e.negative|t.negative)===0,"red works only with positives"),this.assert(e.red!=null&&e.red===t.red,"red works only with red numbers")}imod(e){return this.prime!=null?this.prime.ireduce(e).forceRed(this):(m.move(e,e.umod(this.m).forceRed(this)),e)}neg(e){return e.isZero()?e.clone():this.m.sub(e).forceRed(this)}add(e,t){this.verify2(e,t);let n=e.clone();return n.iadd(t),n.isub(this.m),n.isNeg()&&n.iadd(this.m),n}iadd(e,t){return this.verify2(e,t),e.iadd(t),e.isub(this.m),e.isNeg()&&e.iadd(this.m),e}sub(e,t){this.verify2(e,t);let n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n.forceRed(this)}isub(e,t){this.verify2(e,t);let n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n}shl(e,t){return this.verify1(e),this.imod(e.ushln(t))}imul(e,t){return this.verify2(e,t),this.imod(e.imul(t))}mul(e,t){return this.verify2(e,t),this.imod(e.mul(t))}isqr(e){return this.imul(e,e.clone())}sqr(e){return this.mul(e,e)}sqrt(e){if(e.isZero())return e.clone();let t=this.m.andln(3);if(this.assert(t%2===1),t===3){let w=this.m.add(new m(1)).iushrn(2);return this.pow(e,w)}let n=this.m.subn(1),i=0;for(;!n.isZero()&&n.andln(1)===0;)i++,n.iushrn(1);this.assert(!n.isZero());let s=new m(1).toRed(this),o=s.redNeg(),a=this.m.subn(1).iushrn(1),c=this.m.bitLength(),f=new m(2*c*c).toRed(this);for(;this.pow(f,a).cmp(o)!==0;)f.redIAdd(o);let h=this.pow(f,n),b=this.pow(e,n.addn(1).iushrn(1)),g=this.pow(e,n),y=i;for(;g.cmp(s)!==0;){let w=g,x=0;for(;w.cmp(s)!==0;)w=w.redSqr(),x++;this.assert(x<y);let k=this.pow(h,new m(1).iushln(y-x-1));b=b.redMul(k),h=k.redSqr(),g=g.redMul(h),y=x}return b}invm(e){let t=e._invmp(this.m);return t.negative!==0?(t.negative=0,this.imod(t).redNeg()):this.imod(t)}pow(e,t){if(this.verify1(e),t.isZero())return new m(1).toRed(this);let n=new m(1).toRed(this),i=e.clone(),s=t.bitLength();for(let o=s-1;o>=0;o--)n=this.sqr(n),t.testn(o)&&(n=this.mul(n,i));return n}convertTo(e){let t=e.umod(this.m);return t===e?t.clone():t}convertFrom(e){let t=e.clone();return t.red=null,t}};var Je=class extends we{constructor(t){super(t);p(this,"shift");p(this,"r");p(this,"r2");p(this,"rinv");p(this,"minv");this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new m(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}convertTo(t){return this.imod(t.ushln(this.shift))}convertFrom(t){let n=this.imod(t.mul(this.rinv));return n.red=null,n}imul(t,n){if(t.isZero()||n.isZero())return t.words[0]=0,t.length=1,t;let i=t.imul(n),s=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=i.isub(s).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a.forceRed(this)}mul(t,n){if(t.isZero()||n.isZero())return new m(0).forceRed(this);let i=t.mul(n),s=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=i.isub(s).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a.forceRed(this)}invm(t){return this.imod(t._invmp(this.m).mul(this.r2)).forceRed(this)}};var mi=new TextEncoder;function wt(r){return mi.encode(r)}var wi=/^[0-9a-fA-F]*$/;function Qe(r){if(typeof r!="string")throw new TypeError("Invalid hex string");if(r.length!==0&&!wi.test(r))throw new Error("Invalid hex string")}function rr(r){if(Qe(r),r.length===0)return"";let e=r.toLowerCase();return e.length%2!==0&&(e="0"+e),e}var rn=(r,e="Hash assertion failed")=>{if(!r)throw new Error(e)},sn=class{constructor(e,t,n,i){p(this,"pending",null);p(this,"pendingTotal",0);p(this,"blockSize");p(this,"outSize");p(this,"endian");p(this,"_delta8");p(this,"_delta32");p(this,"padLength");p(this,"hmacStrength");this.blockSize=e,this.outSize=t,this.hmacStrength=n,this.padLength=i/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}_update(e,t){throw new Error("Not implemented")}_digest(){throw new Error("Not implemented")}_digestHex(){throw new Error("Not implemented")}update(e,t){if(e=lr(e,t),this.pending==null?this.pending=e:this.pending=this.pending.concat(e),this.pendingTotal+=e.length,this.pending.length>=this._delta8){e=this.pending;let n=e.length%this._delta8;this.pending=e.slice(e.length-n,e.length),this.pending.length===0&&(this.pending=null),e=Ri(e,0,e.length-n,this.endian);for(let i=0;i<e.length;i+=this._delta32)this._update(e,i)}return this}digest(){return this.update(this._pad()),rn(this.pending===null),this._digest()}digestHex(){return this.update(this._pad()),rn(this.pending===null),this._digestHex()}_pad(){let e=this.pendingTotal;if(!Number.isSafeInteger(e)||e<0)throw new Error("Message too long for this hash function");let t=this._delta8,n=t-(e+this.padLength)%t,i=Array.from({length:n+this.padLength});i[0]=128;let s;for(s=1;s<n;s++)i[s]=0;let o=this.padLength,a=1n<<BigInt(o*8),c=BigInt(e)*8n;if(c>=a)throw new Error("Message too long for this hash function");if(this.endian==="big"){let f=Array.from({length:o});for(let h=o-1;h>=0;h--)f[h]=Number(c&0xffn),c>>=8n;for(let h=0;h<o;h++)i[s++]=f[h]}else for(let f=0;f<o;f++)i[s++]=Number(c&0xffn),c>>=8n;return i}};function xi(r,e,t){let n=r.codePointAt(e);return n<128?(t.push(n),e):n<2048?(t.push(n>>6|192,n&63|128),e):n>65535?(t.push(n>>18|240,n>>12&63|128,n>>6&63|128,n&63|128),e+1):(t.push(n>>12|224,n>>6&63|128,n&63|128),e)}function yi(r){let e=[],t=0;for(;t<r.length;)t=xi(r,t,e)+1;return e}function Si(r){Qe(r);let e=rr(r),t=[];for(let n=0;n<e.length;n+=2)t.push(Number.parseInt(e[n]+e[n+1],16));return t}function vi(r){let e=[];for(let t=0;t<r.length;t++)e[t]=Math.trunc(r[t]);return e}function lr(r,e){return Array.isArray(r)?r.slice():r?typeof r=="string"?e==="hex"?Si(r):yi(r):vi(r):[]}function Ii(r){return ds(r)}function Ei(r,e){let t="";for(let n of r)e==="little"&&(n=Ii(n)),t+=Ai(n.toString(16));return t}function Ai(r){return r.length===7?"0"+r:r.length===6?"00"+r:r.length===5?"000"+r:r.length===4?"0000"+r:r.length===3?"00000"+r:r.length===2?"000000"+r:r.length===1?"0000000"+r:r}var on=typeof globalThis>"u"?void 0:globalThis.Buffer,Bi=on!=null&&typeof on.from=="function",ir="0123456789abcdef",an=Array.from({length:256});for(let r=0;r<an.length;r++)an[r]=ir[r>>4&15]+ir[r&15];function Ni(r){if(Bi)return on.from(r).toString("hex");let e=Array.from({length:r.length});for(let t=0;t<r.length;t++)e[t]=an[r[t]];return e.join("")}var hr=(()=>{let r=typeof globalThis>"u"?void 0:globalThis.process,e=r?.getBuiltinModule;if(typeof e=="function")try{let t=e.call(r,"node:crypto");if(t!=null)return t}catch{}})();function Se(r,e){return r instanceof Uint8Array?r:Array.isArray(r)?new Uint8Array(r):Uint8Array.from(lr(r,e))}function ln(r){return typeof r=="string"?Se(r,"hex"):Se(r)}function ur(r,e,t){r!=null?r.update(t):e?.update(t)}function br(r,e){return r!=null?Array.from(r.digest()):e!=null?Array.from(e.digest()):[]}function pr(r,e){return r!=null?r.digest("hex"):e!=null?Ni(e.digest()):""}function ki(r){let e=hr?.createHash;if(typeof e=="function")try{return e(r)}catch{return}}function hn(r,e){let t=hr?.createHmac;if(typeof t=="function")try{return t(r,e)}catch{return}}function gr(r,e,t){let n=ki(r);if(n!=null)return n.update(Se(e,t)),n.digest()}function mr(r,e,t,n){let i=hn(r,ln(e));if(i!=null)return i.update(Se(t,n)),i.digest()}function Ri(r,e,t,n){let i=t-e;rn(i%4===0);let s=Array.from({length:i/4});for(let o=0,a=e;o<s.length;o++,a+=4){let c;n==="big"?c=r[a]<<24|r[a+1]<<16|r[a+2]<<8|r[a+3]:c=r[a+3]<<24|r[a+2]<<16|r[a+1]<<8|r[a],s[o]=c>>>0}return s}function Mi(r,e){let t=Array.from({length:r.length*4});for(let n=0,i=0;n<r.length;n++,i+=4){let s=r[n];e==="big"?(t[i]=s>>>24,t[i+1]=s>>>16&255,t[i+2]=s>>>8&255,t[i+3]=s&255):(t[i+3]=s>>>24,t[i+2]=s>>>16&255,t[i+1]=s>>>8&255,t[i]=s&255)}return t}function ne(r,e){return r>>>e|r<<32-e}function xt(r,e){return r<<e|r>>>32-e}function X(r,e){return r+e>>>0}function et(r,e,t){return r+e+t>>>0}function sr(r,e,t,n){return r+e+t+n>>>0}function Ti(r,e,t,n,i){return r+e+t+n+i>>>0}function Li(r,e,t){return r&e^~r&t}function Pi(r,e,t){return r&e^r&t^e&t}function Ui(r){return ne(r,2)^ne(r,13)^ne(r,22)}function Ci(r){return ne(r,6)^ne(r,11)^ne(r,25)}function Hi(r){return ne(r,7)^ne(r,18)^r>>>3}function _i(r){return ne(r,17)^ne(r,19)^r>>>10}var zi=[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],Oi=[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],Fi=[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],Wi=[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];function or(r,e,t,n){return r<=15?e^t^n:r<=31?e&t|~e&n:r<=47?(e|~t)^n:r<=63?e&n|t&~n:e^(t|~n)}function Xi(r){return r<=15?0:r<=31?1518500249:r<=47?1859775393:r<=63?2400959708:2840853838}function qi(r){return r<=15?1352829926:r<=31?1548603684:r<=47?1836072691:r<=63?2053994217:0}var cn=class extends sn{constructor(){super(512,160,192,64);p(this,"h");this.endian="little",this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}_update(t,n){let i=this.h[0],s=this.h[1],o=this.h[2],a=this.h[3],c=this.h[4],f=i,h=s,b=o,g=a,y=c,w;for(let x=0;x<80;x++)w=X(xt(sr(i,or(x,s,o,a),t[zi[x]+n],Xi(x)),Fi[x]),c),i=c,c=a,a=xt(o,10),o=s,s=w,w=X(xt(sr(f,or(79-x,h,b,g),t[Oi[x]+n],qi(x)),Wi[x]),y),f=y,y=g,g=xt(b,10),b=h,h=w;w=et(this.h[1],o,g),this.h[1]=et(this.h[2],a,y),this.h[2]=et(this.h[3],c,f),this.h[3]=et(this.h[4],i,h),this.h[4]=et(this.h[0],s,b),this.h[0]=w}_digest(){return Mi(this.h,"little")}_digestHex(){return Ei(this.h,"little")}};var xe,he,tt=class{constructor(e){P(this,xe);P(this,he);p(this,"blockSize",64);p(this,"outSize",32);let t=ln(e);I(this,he,hn("sha256",t)),u(this,he)==null&&I(this,xe,new He(ss,t))}update(e,t){return ur(u(this,he),u(this,xe),Se(e,t)),this}digest(){return br(u(this,he),u(this,xe))}digestHex(){return pr(u(this,he),u(this,xe))}};xe=new WeakMap,he=new WeakMap;var ye,ue,fn=class{constructor(e){P(this,ye);P(this,ue);p(this,"blockSize",128);p(this,"outSize",32);let t=ln(e);I(this,ue,hn("sha512",t)),u(this,ue)==null&&I(this,ye,new He(cs,t))}update(e,t){return ur(u(this,ue),u(this,ye),Se(e,t)),this}digest(){return br(u(this,ue),u(this,ye))}digestHex(){return pr(u(this,ue),u(this,ye))}};ye=new WeakMap,ue=new WeakMap;function It(r,e){let t=gr("sha256",r,e);return t??new Nt().update(Se(r,e)).digest()}function Di(r,e){return gr("ripemd160",r,e)}var ve=(r,e)=>Array.from(It(r,e));var un=(r,e)=>Array.from(It(It(r,e))),wr=(r,e)=>{let t=It(r,e),n=Di(t);return n!=null?Array.from(n):new cn().update(t).digest()},kt=(r,e,t)=>{let n=mr("sha256",r,e,t);return n!=null?Array.from(n):new tt(r).update(e,t).digest()},xr=(r,e,t)=>{let n=mr("sha512",r,e,t);return n!=null?Array.from(n):new fn(r).update(e,t).digest()};function $i(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function ar(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, got ${r}`)}function Rt(r,...e){if(!$i(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length)){let t=e.join(",");throw new Error(`Uint8Array expected of length ${t}, got length=${r.length}`)}}function Zi(r){if(typeof r!="function"||typeof r.create!="function")throw new TypeError("Hash should be wrapped by utils.createHasher");ar(r.outputLen),ar(r.blockLen)}function Et(r,e=!0){if(r.destroyed===!0)throw new Error("Hash instance has been destroyed");if(e&&r.finished===!0)throw new Error("Hash#digest() has already been called")}function Gi(r,e){Rt(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}function Ce(...r){for(let e of r)e.fill(0)}function nn(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function bn(r){return typeof r=="string"&&(r=Ki(r)),Rt(r),r}function Ki(r){if(typeof r!="string")throw new Error("string expected");return wt(r)}var At=class{};function yr(r){let e=n=>r().update(bn(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}var yt=BigInt(2**32-1),cr=BigInt(32);function Vi(r,e=!1){return e?{h:Number(r&yt),l:Number(r>>cr&yt)}:{h:Number(r>>cr&yt)|0,l:Number(r&yt)|0}}function Yi(r,e=!1){let t=r.length,n=new Uint32Array(t),i=new Uint32Array(t);for(let s=0;s<t;s++){let{h:o,l:a}=Vi(r[s],e);n[s]=o,i[s]=a}return[n,i]}var fr=(r,e,t)=>r>>>t,dr=(r,e,t)=>r<<32-t|e>>>t,Pe=(r,e,t)=>r>>>t|e<<32-t,Ue=(r,e,t)=>r<<32-t|e>>>t,St=(r,e,t)=>r<<64-t|e>>>t-32,vt=(r,e,t)=>r>>>t-32|e<<64-t;function oe(r,e,t,n){let i=(e>>>0)+(n>>>0);return{h:r+t+(i/2**32|0)|0,l:i|0}}var ji=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),Ji=(r,e,t,n)=>Math.trunc(e+t+n+Math.trunc(r/2**32)),Qi=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),es=(r,e,t,n,i)=>Math.trunc(e+t+n+i+Math.trunc(r/2**32)),ts=(r,e,t,n,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(i>>>0),ns=(r,e,t,n,i,s)=>e+t+n+i+s+(r/2**32|0)|0,Bt=class extends At{constructor(t,n,i,s){super();p(this,"blockLen");p(this,"outputLen");p(this,"padOffset");p(this,"isLE");p(this,"buffer");p(this,"view");p(this,"finished",!1);p(this,"length",0);p(this,"pos",0);p(this,"destroyed",!1);this.blockLen=t,this.outputLen=n,this.padOffset=i,this.isLE=s,this.buffer=new Uint8Array(t),this.view=nn(this.buffer)}update(t){Et(this),t=bn(t),Rt(t);let{view:n,buffer:i,blockLen:s}=this,o=t.length;for(let a=0;a<o;){let c=Math.min(s-this.pos,o-a);if(c===s){let f=nn(t);for(;s<=o-a;a+=s)this.process(f,a);continue}i.set(t.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Et(this),Gi(t,this),this.finished=!0;let{buffer:n,view:i,blockLen:s,isLE:o}=this,{pos:a}=this;n[a++]=128,Ce(this.buffer.subarray(a)),this.padOffset>s-a&&(this.process(i,0),a=0);for(let g=a;g<s;g++)n[g]=0;rs(i,s-8,BigInt(this.length*8),o),this.process(i,0);let c=nn(t),f=this.outputLen;if(f%4!==0)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=f/4,b=this.get();if(h>b.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<h;g++)c.setUint32(4*g,b[g],o)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let i=t.slice(0,n);return this.destroy(),i}_cloneInto(t){t??(t=new this.constructor),t.set(...this.get());let{blockLen:n,buffer:i,length:s,finished:o,destroyed:a,pos:c}=this;return t.destroyed=a,t.finished=o,t.length=s,t.pos=c,s%n!==0&&t.buffer.set(i),t}clone(){return this._cloneInto()}};function rs(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let i=BigInt(32),s=BigInt(4294967295),o=Number(t>>i&s),a=Number(t&s),c=n?4:0,f=n?0:4;r.setUint32(e+c,o,n),r.setUint32(e+f,a,n)}var ce=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),is=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),fe=new Uint32Array(64),Nt=class extends Bt{constructor(t=32){super(64,t,8,!1);p(this,"A",ce[0]|0);p(this,"B",ce[1]|0);p(this,"C",ce[2]|0);p(this,"D",ce[3]|0);p(this,"E",ce[4]|0);p(this,"F",ce[5]|0);p(this,"G",ce[6]|0);p(this,"H",ce[7]|0)}get(){let{A:t,B:n,C:i,D:s,E:o,F:a,G:c,H:f}=this;return[t,n,i,s,o,a,c,f]}set(...[t,n,i,s,o,a,c,f]){this.A=t|0,this.B=n|0,this.C=i|0,this.D=s|0,this.E=o|0,this.F=a|0,this.G=c|0,this.H=f|0}process(t,n){for(let g=0;g<16;g++,n+=4)fe[g]=t.getUint32(n);for(let g=16;g<64;g++){let y=fe[g-15],w=fe[g-2],x=Hi(y),k=_i(w);fe[g]=X(X(x,fe[g-7]),X(k,fe[g-16]))}let{A:i,B:s,C:o,D:a,E:c,F:f,G:h,H:b}=this;for(let g=0;g<64;g++){let y=Ti(b,Ci(c),Li(c,f,h),is[g],fe[g]),w=X(Ui(i),Pi(i,s,o));b=h,h=f,f=c,c=X(a,y),a=o,o=s,s=i,i=X(y,w)}this.A=X(this.A,i),this.B=X(this.B,s),this.C=X(this.C,o),this.D=X(this.D,a),this.E=X(this.E,c),this.F=X(this.F,f),this.G=X(this.G,h),this.H=X(this.H,b)}roundClean(){Ce(fe)}destroy(){Ce(this.buffer),this.set(0,0,0,0,0,0,0,0)}},ss=yr(()=>new Nt),W=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Sr=Yi(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(BigInt)),os=Sr[0],as=Sr[1],de=new Uint32Array(80),le=new Uint32Array(80),dn=class extends Bt{constructor(t=64){super(128,t,16,!1);p(this,"Ah",W[0]|0);p(this,"Al",W[1]|0);p(this,"Bh",W[2]|0);p(this,"Bl",W[3]|0);p(this,"Ch",W[4]|0);p(this,"Cl",W[5]|0);p(this,"Dh",W[6]|0);p(this,"Dl",W[7]|0);p(this,"Eh",W[8]|0);p(this,"El",W[9]|0);p(this,"Fh",W[10]|0);p(this,"Fl",W[11]|0);p(this,"Gh",W[12]|0);p(this,"Gl",W[13]|0);p(this,"Hh",W[14]|0);p(this,"Hl",W[15]|0)}get(){let{Ah:t,Al:n,Bh:i,Bl:s,Ch:o,Cl:a,Dh:c,Dl:f,Eh:h,El:b,Fh:g,Fl:y,Gh:w,Gl:x,Hh:k,Hl:N}=this;return[t,n,i,s,o,a,c,f,h,b,g,y,w,x,k,N]}set(...[t,n,i,s,o,a,c,f,h,b,g,y,w,x,k,N]){this.Ah=t|0,this.Al=n|0,this.Bh=i|0,this.Bl=s|0,this.Ch=o|0,this.Cl=a|0,this.Dh=c|0,this.Dl=f|0,this.Eh=h|0,this.El=b|0,this.Fh=g|0,this.Fl=y|0,this.Gh=w|0,this.Gl=x|0,this.Hh=k|0,this.Hl=N|0}process(t,n){for(let R=0;R<16;R++,n+=8)de[R]=t.getUint32(n),le[R]=t.getUint32(n+4);for(let R=16;R<80;R++){let O=de[R-15]|0,V=le[R-15]|0,We=Pe(O,V,1)^Pe(O,V,8)^fr(O,V,7),ee=Ue(O,V,1)^Ue(O,V,8)^dr(O,V,7),J=de[R-2]|0,Q=le[R-2]|0,Te=Pe(J,Q,19)^St(J,Q,61)^fr(J,Q,6),Xe=Ue(J,Q,19)^vt(J,Q,61)^dr(J,Q,6),Le=Qi(ee,Xe,le[R-7],le[R-16]),Kt=es(Le,We,Te,de[R-7],de[R-16]);de[R]=Kt|0,le[R]=Le|0}let{Ah:i,Al:s,Bh:o,Bl:a,Ch:c,Cl:f,Dh:h,Dl:b,Eh:g,El:y,Fh:w,Fl:x,Gh:k,Gl:N,Hh:L,Hl:_}=this;for(let R=0;R<80;R++){let O=Pe(g,y,14)^Pe(g,y,18)^St(g,y,41),V=Ue(g,y,14)^Ue(g,y,18)^vt(g,y,41),We=g&w^~g&k,ee=y&x^~y&N,J=ts(_,V,ee,as[R],le[R]),Q=ns(J,L,O,We,os[R],de[R]),Te=J|0,Xe=Pe(i,s,28)^St(i,s,34)^St(i,s,39),Le=Ue(i,s,28)^vt(i,s,34)^vt(i,s,39),Kt=i&o^i&c^o&c,ci=s&a^s&f^a&f;L=k|0,_=N|0,k=w|0,N=x|0,w=g|0,x=y|0,{h:g,l:y}=oe(h|0,b|0,Q|0,Te|0),h=c|0,b=f|0,c=o|0,f=a|0,o=i|0,a=s|0;let Wn=ji(Le,ci,Te);i=Ji(Wn,Xe,Kt,Q),s=Wn|0}({h:i,l:s}=oe(i,s,this.Ah,this.Al)),{h:o,l:a}=oe(o,a,this.Bh,this.Bl),{h:c,l:f}=oe(c,f,this.Ch,this.Cl),{h,l:b}=oe(h,b,this.Dh,this.Dl),{h:g,l:y}=oe(g,y,this.Eh,this.El),{h:w,l:x}=oe(w,x,this.Fh,this.Fl),{h:k,l:N}=oe(k,N,this.Gh,this.Gl),{h:L,l:_}=oe(L,_,this.Hh,this.Hl),this.set(i,s,o,a,c,f,h,b,g,y,w,x,k,N,L,_)}roundClean(){Ce(de,le)}destroy(){Ce(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},cs=yr(()=>new dn),He=class extends At{constructor(t,n){super();p(this,"oHash");p(this,"iHash");p(this,"blockLen");p(this,"outputLen");p(this,"finished",!1);p(this,"destroyed",!1);Zi(t);let i=bn(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,o=new Uint8Array(s);o.set(i.length>s?t.create().update(i).digest():i);for(let a=0;a<o.length;a++)o[a]^=54;this.iHash.update(o),this.oHash=t.create();for(let a=0;a<o.length;a++)o[a]^=106;this.oHash.update(o),Ce(o)}update(t){return Et(this),this.iHash.update(t),this}digestInto(t){Et(this),Rt(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t??(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:n,iHash:i,finished:s,destroyed:o,blockLen:a,outputLen:c}=this;return t=t,t.finished=s,t.destroyed=o,t.blockLen=a,t.outputLen=c,t.oHash=n._cloneInto(t.oHash??void 0),t.iHash=i._cloneInto(t.iHash??void 0),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};var fs=(r,e,t)=>new He(r,e).update(t).digest();fs.create=(r,e)=>new He(r,e);function ds(r){return(r>>>24|r>>>8&65280|r<<8&16711680|(r&255)<<24)>>>0}var po=(()=>{let r=new ArrayBuffer(4),e=new Uint32Array(r),t=new Uint8Array(r);return e[0]=16909060,t[0]===4})();var Mt=globalThis.Buffer,Ir=Mt!=null&&typeof Mt.from=="function";var vr="0123456789abcdef",Er=Array.from({length:256},()=>"");for(let r=0;r<256;r++)Er[r]=vr[r>>4&15]+vr[r&15];var Y=r=>Ir?Mt.from(r).toString("hex"):r.length===0?"":Array.from(r,e=>Er[e&255]).join("");var $=(r,e)=>{if(Array.isArray(r))return r.slice();if(r===void 0)return[];if(typeof r!="string")return Array.from(r,t=>Math.trunc(t));switch(e){case"hex":return ls(r);case"base64":return ps(r);default:return gs(r)}},rt=new Int8Array(256).fill(-1);for(let r=0;r<10;r++)rt[48+r]=r;for(let r=0;r<6;r++)rt[65+r]=10+r,rt[97+r]=10+r;var ls=r=>Array.from(hs(r)),hs=r=>{Qe(r);let e=r.length%2===0?r:"0"+r;if(Ir){let i=Mt.from(e,"hex");return new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}let t=new Uint8Array(e.length/2),n=0;for(let i=0;i<e.length;i+=2){let s=rt[e.codePointAt(i)],o=rt[e.codePointAt(i+1)];t[n++]=s<<4|o}return t},us=r=>{if(typeof r!="string")throw new TypeError("msg must be a string");let e=r.trim().replaceAll(/[\r\n\t\f\v ]+/g,"").replaceAll("-","+").replaceAll("_","/"),t=e.indexOf("=");if(t===-1)return e;let n=e.slice(t);if(!/^={1,2}$/.test(n)||e.slice(0,t).includes("="))throw new Error("Invalid base64 padding");return e.slice(0,t)},bs=(r,e)=>{if(r>=65&&r<=90)return r-65;if(r>=97&&r<=122)return r-97+26;if(r>=48&&r<=57)return r-48+52;if(r===43)return 62;if(r===47)return 63;throw new Error(`Invalid base64 character at index ${e}`)};function ps(r){let e=us(r),t=[],n=0,i=0;for(let s=0;s<e.length;s++){let o=e.codePointAt(s),a=bs(o,s);for(n=n<<6|a,i+=6;i>=8;)i-=8,t.push(n>>i&255),n&=(1<<i)-1}return t}function gs(r){return Array.from(wt(r))}function pn(r){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t="",n;for(n=0;n<r.length;n+=3){let i=r[n],s=n+1<r.length?r[n+1]:0,o=n+2<r.length?r[n+2]:0,a=i>>2,c=(i&3)<<4|s>>4,f=(s&15)<<2|o>>6,h=o&63;t+=e.charAt(a)+e.charAt(c),t+=n+1<r.length?e.charAt(f):"=",t+=n+2<r.length?e.charAt(h):"="}return t}var nt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Tt=r=>{if(r===""||typeof r!="string")throw new Error(`Expected base58 string but got \u201C${r}\u201D`);let e=r.match(/[^1-9A-HJ-NP-Za-km-z]/gmu);if(e!==null)throw new Error(`Invalid base58 character \u201C${e.join("")}\u201D`);let t=r.match(/^1+/gmu),n=t===null?0:t[0].length,i=(r.length-n)*(Math.log(58)/Math.log(256))+1>>>0;return[...new Uint8Array([...new Uint8Array(n),...Array.from(r).map(o=>nt.indexOf(o)).reduce((o,a)=>(o=o.map(c=>{let f=c*58+a;return a=f>>8,f}),o),new Uint8Array(i)).reverse().filter((o=>a=>o=o||a)(!1))])]},Lt=r=>{let e=Array.from({length:256},()=>-1);for(let n=0;n<nt.length;++n)e[nt.codePointAt(n)]=n;let t=[];for(let n of r){let i=n;for(let s=0;s<t.length;++s){let o=(e[t[s]]<<8)+i,a=Math.trunc(o/58),c=o-a*58;t[s]=nt.codePointAt(c),i=a}for(;i!==0;){let s=Math.trunc(i/58),o=i-s*58;t.push(nt.codePointAt(o)),i=s}}for(let n of r)if(n===0)t.push("1".codePointAt(0));else break;return t.reverse(),String.fromCodePoint(...t)},Pt=(r,e=[0])=>{let t=un([...e,...r]);return t=[...e,...r,...t.slice(0,4)],Lt(t)},Ar=(r,e,t=1)=>{let n=Tt(r),i=n.slice(0,t),s=n.slice(t,-4),o=[...i,...s];return o=un(o),n.slice(-4).forEach((a,c)=>{if(a!==o[c])throw new Error("Invalid checksum")}),e==="hex"&&(i=Y(i),s=Y(s)),{prefix:i,data:s}};var vo=new m(2).pow(new m(63)),Io=new m(2).pow(new m(64));var gn;function Br(r,e){let t=r.andln(3)+e&3;return t===3?-1:t}function Nr(r,e,t,n){if((t&1)===0)return 0;let i=r.andln(7)+e&7;return(i===3||i===5)&&n===2?-t:t}function kr(r,e){return 2*r===e+1?1-r:r}var Ut,Rr,mn=class mn{constructor(){P(this,Ut);p(this,"p");p(this,"red");p(this,"redN");p(this,"zero");p(this,"one");p(this,"two");p(this,"g");p(this,"n");p(this,"a");p(this,"b");p(this,"tinv");p(this,"zeroA");p(this,"threeA");p(this,"endo");p(this,"_endoWnafT1");p(this,"_endoWnafT2");p(this,"_wnafT1");p(this,"_wnafT2");p(this,"_wnafT3");p(this,"_wnafT4");p(this,"_bitLength");if(gn===void 0)gn=this;else return gn;let t={prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",{doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}]};this.p=new m(t.p,16),this.red=new we(t.prime),this.zero=new m(0).toRed(this.red),this.one=new m(1).toRed(this.red),this.two=new m(2).toRed(this.red),this.n=new m(t.n,16),this.g=Z.fromJSON(t.g,t.gRed),this._wnafT1=Array.from({length:4},()=>{}),this._wnafT2=Array.from({length:4},()=>{}),this._wnafT3=Array.from({length:4},()=>{}),this._wnafT4=Array.from({length:4},()=>{}),this._bitLength=this.n.bitLength(),this.redN=this.n.toRed(this.red),this.a=new m(t.a,16).toRed(this.red),this.b=new m(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(t),this._endoWnafT1=Array.from({length:4},()=>{}),this._endoWnafT2=Array.from({length:4},()=>{})}static assert(e,t="Elliptic curve assertion failed"){if(!e)throw new Error(t)}getNAF(e,t,n){let i=Array.from({length:Math.max(e.bitLength(),n)+1},()=>0);i.fill(0);let s=1<<t+1,o=e.clone();for(let a=0;a<i.length;a++){let c,f=o.andln(s-1);o.isOdd()?(f>(s>>1)-1?c=(s>>1)-f:c=f,o.isubn(c)):c=0,i[a]=c,o.iushrn(1)}return i}getJSF(e,t){let n=[[],[]];e=e.clone(),t=t.clone();let i=0,s=0;for(;e.cmpn(-i)>0||t.cmpn(-s)>0;){let o=Br(e,i),a=Br(t,s),c=Nr(e,i,o,a);n[0].push(c);let f=Nr(t,s,a,o);n[1].push(f),i=kr(i,c),s=kr(s,f),e.iushrn(1),t.iushrn(1)}return n}static cachedProperty(e,t,n){let i="_"+t;e.prototype[t]=function(){return this[i]===void 0&&(this[i]=n.call(this)),this[i]}}static parseBytes(e){return typeof e=="string"?$(e,"hex"):e}static intFromLE(e){return new m(e,"hex","le")}_getEndomorphism(e){if(!this.zeroA||this.p.modrn(3)!==1)return;let t=this._resolveEndomorphismBeta(e),n=this._resolveEndomorphismLambda(e,t);return{beta:t,lambda:n,basis:d(this,Ut,Rr).call(this,e,n)}}_resolveEndomorphismBeta(e){if(e.beta!==void 0)return new m(e.beta,16).toRed(this.red);let t=this._getEndoRoots(this.p);if(t==null)throw new Error("Failed to get endomorphism roots for beta.");return(t[0].cmp(t[1])<0?t[0]:t[1]).toRed(this.red)}_endomorphismLambdaMatches(e,t,n=!1){if(this.g==null)throw new Error("Curve generator point (g) is not defined.");let i=this.g.mul(e)?.x,s=this.g.x==null?void 0:this.g.x.redMul(t);if(i==null||s==null){if(n)throw new Error("Lambda computation failed: g.mul(lambda).x or g.x.redMul(beta) is undefined.");return!1}return i.cmp(s)===0}_resolveEndomorphismLambda(e,t){if(e.lambda!==void 0)return new m(e.lambda,16);let n=this._getEndoRoots(this.n);if(n==null)throw new Error("Failed to get endomorphism roots for lambda.");return this._endomorphismLambdaMatches(n[0],t)?n[0]:(mn.assert(this._endomorphismLambdaMatches(n[1],t,!0),"Lambda selection does not match computed beta."),n[1])}_getEndoRoots(e){let t=e===this.p?this.red:new Je(e),n=new m(2).toRed(t).redInvm(),i=n.redNeg(),s=new m(3).toRed(t).redNeg().redSqrt().redMul(n),o=i.redAdd(s).fromRed(),a=i.redSub(s).fromRed();return[o,a]}_getEndoBasis(e){let t=this.n.ushrn(Math.floor(this.n.bitLength()/2)),n=e,i=this.n.clone(),s=new m(1),o=new m(0),a=new m(0),c=new m(1),f,h,b,g,y,w,x=new m(0),k=0,N=new m(0),L=new m(0);for(;n.cmpn(0)!==0;){let O=i.div(n);N=i.sub(O.mul(n)),L=a.sub(O.mul(s));let V=c.sub(O.mul(o));if(b===void 0&&N.cmp(t)<0)f=x.neg(),h=s,b=N.neg(),g=L;else if(b!==void 0&&++k===2)break;x=N,i=n,n=N,a=s,s=L,c=o,o=V}if(f===void 0||h===void 0||b===void 0||g===void 0)throw new Error("Failed to compute Endo Basis values");y=N.neg(),w=L;let _=b.sqr().add(g.sqr());return y.sqr().add(w.sqr()).cmp(_)>=0&&(y=f,w=h),b.negative!==0&&(b=b.neg(),g=g.neg()),y.negative!==0&&(y=y.neg(),w=w.neg()),[{a:b,b:g},{a:y,b:w}]}_endoSplit(e){if(this.endo==null)throw new Error("Endomorphism is not defined.");let t=this.endo.basis,n=t[0],i=t[1],s=i.b.mul(e).divRound(this.n),o=n.b.neg().mul(e).divRound(this.n),a=s.mul(n.a),c=o.mul(i.a),f=s.mul(n.b),h=o.mul(i.b),b=e.sub(a).sub(c),g=f.add(h).neg();return{k1:b,k2:g}}validate(e){if(e.inf)return!0;let t=e.x,n=e.y;if(t===null||n===null)throw new Error("Point coordinates cannot be null");let i=this.a.redMul(t),s=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return n.redSqr().redISub(s).cmpn(0)===0}};Ut=new WeakSet,Rr=function(e,t){return typeof e.basis!="object"||e.basis===null?this._getEndoBasis(t):e.basis.map(n=>({a:new m(n.a,16),b:new m(n.b,16)}))};var H=mn;var Ie=class{constructor(e){p(this,"curve");p(this,"type");p(this,"precomputed");this.curve=new H,this.type=e,this.precomputed=null}};var Ee=class r extends Ie{constructor(t,n,i){super("jacobian");p(this,"x");p(this,"y");p(this,"z");p(this,"zOne");t===null&&n===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new m(0)):(m.isBN(t)||(t=new m(t,16)),this.x=t,m.isBN(n)||(n=new m(n,16)),this.y=n,m.isBN(i)||(i=new m(i,16)),this.z=i),this.x.red==null&&(this.x=this.x.toRed(this.curve.red)),this.y.red==null&&(this.y=this.y.toRed(this.curve.red)),this.z.red==null&&(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.isInfinity()&&(this.x=this.curve.one,this.y=this.curve.one,this.z=new m(0).toRed(this.curve.red),this.zOne=!1)}toP(){if(this.isInfinity())return new Z(null,null);let t=this.z.redInvm(),n=t.redSqr(),i=this.x.redMul(n),s=this.y.redMul(n).redMul(t);return new Z(i,s)}neg(){return new r(this.x,this.y.redNeg(),this.z)}add(t){if(this.isInfinity())return t;if(t.isInfinity())return this;let n=t.z.redSqr(),i=this.z.redSqr(),s=this.x.redMul(n),o=t.x.redMul(i),a=this.y.redMul(n.redMul(t.z)),c=t.y.redMul(i.redMul(this.z)),f=s.redSub(o),h=a.redSub(c);if(f.cmpn(0)===0)return h.cmpn(0)===0?this.dbl():new r(null,null,null);let b=f.redSqr(),g=b.redMul(f),y=s.redMul(b),w=h.redSqr().redIAdd(g).redISub(y).redISub(y),x=h.redMul(y.redISub(w)).redISub(a.redMul(g)),k=this.z.redMul(t.z).redMul(f);return new r(w,x,k)}mixedAdd(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;if(t.x===null||t.y===null)throw new Error("Point coordinates cannot be null");let n=this.z.redSqr(),i=this.x,s=t.x.redMul(n),o=this.y,a=t.y.redMul(n).redMul(this.z),c=i.redSub(s),f=o.redSub(a);if(c.cmpn(0)===0)return f.cmpn(0)===0?this.dbl():new r(null,null,null);let h=c.redSqr(),b=h.redMul(c),g=i.redMul(h),y=f.redSqr().redIAdd(b).redISub(g).redISub(g),w=f.redMul(g.redISub(y)).redISub(o.redMul(b)),x=this.z.redMul(c);return new r(y,w,x)}dblp(t){if(t===0)return this;if(this.isInfinity())return this;if(t===void 0)return this.dbl();let n=this;for(let i=0;i<t;i++)n=n.dbl();return n}dbl(){if(this.isInfinity())return this;let t,n,i;if(this.zOne){let s=this.x.redSqr(),o=this.y.redSqr(),a=o.redSqr(),c=this.x.redAdd(o).redSqr().redISub(s).redISub(a);c=c.redIAdd(c);let f=s.redAdd(s).redIAdd(s),h=f.redSqr().redISub(c).redISub(c),b=a.redIAdd(a);b=b.redIAdd(b),b=b.redIAdd(b),t=h,n=f.redMul(c.redISub(h)).redISub(b),i=this.y.redAdd(this.y)}else{let s=this.x.redSqr(),o=this.y.redSqr(),a=o.redSqr(),c=this.x.redAdd(o).redSqr().redISub(s).redISub(a);c=c.redIAdd(c);let f=s.redAdd(s).redIAdd(s),h=f.redSqr(),b=a.redIAdd(a);b=b.redIAdd(b),b=b.redIAdd(b),t=h.redISub(c).redISub(c),n=f.redMul(c.redISub(t)).redISub(b),i=this.y.redMul(this.z),i=i.redIAdd(i)}return new r(t,n,i)}eq(t){if(t.type==="affine")return this.eq(t.toJ());if(this===t||(t=t,this.isInfinity()&&t.isInfinity()))return!0;if(this.isInfinity()!==t.isInfinity())return!1;let n=this.z.redSqr(),i=t.z.redSqr();if(this.x.redMul(i).redISub(t.x.redMul(n)).cmpn(0)!==0)return!1;let s=n.redMul(this.z),o=i.redMul(t.z);return this.y.redMul(o).redISub(t.y.redMul(s)).cmpn(0)===0}eqXToP(t){let n=this.z.redSqr(),i=t.toRed(this.curve?.red).redMul(n);if(this.x.cmp(i)===0)return!0;let s=t.clone();if(this.curve?.redN==null)throw new Error("Curve or redN is not initialized.");let o=this.curve.redN.redMul(n);for(;s.cmp(this.curve.p)<0;){if(s.iadd(this.curve.n),s.cmp(this.curve.p)>=0)return!1;if(i.redIAdd(o),this.x.cmp(i)===0)return!0}return!1}inspect(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"}isInfinity(){return this.z.cmpn(0)===0}};function Mr(r,e,t){let n=-r,i=(e.X^t.X)&n,s=(e.Y^t.Y)&n,o=(e.Z^t.Z)&n;e.X^=i,t.X^=i,e.Y^=s,t.Y^=s,e.Z^=o,t.Z^=o}var C=0n,K=1n,wn=2n,ms=3n,ws=4n,xs=8n,ie=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,be=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n,Tr=(1n<<256n)-1n;function yn(r){let e=r>>256n;return r=(r&Tr)+(e<<32n)+e*977n,e=r>>256n,r=(r&Tr)+(e<<32n)+e*977n,r>=ie&&(r-=ie),r}var Ae=r=>yn((r%ie+ie)%ie),re=(r,e)=>r>=e?r-e:ie-(e-r),B=(r,e)=>yn(r*e),Lr=(r,e)=>yn(r+e),_e=r=>{let e=K,t=C,n=Ae(r),i=ie;for(;n>K;){let s=i/n;[e,t]=[t-e*s,e],[n,i]=[i-n*s,n]}return Ae(e)},ys=r=>B(r,r),Ss=(r,e)=>{let t=1n;for(r=Ae(r);e>0n;)(e&1n)!==0n&&(t=B(t,r)),r=B(r,r),e>>=1n;return t},vs=ie+1n>>2n,Is=r=>{let e=Ss(r,vs);return B(e,e)!==Ae(r)?null:e},Es=r=>m.isBN(r)?BigInt("0x"+r.toString(16)):typeof r=="string"?BigInt("0x"+r):Array.isArray(r)?BigInt("0x"+Y(r)):BigInt(r),Ct=BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Ht=BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),Pr=new Map,it=r=>{let{X:e,Y:t,Z:n}=r;if(t===C)return{X:C,Y:K,Z:C};let i=B(t,t),s=B(ws,B(e,i)),o=B(ms,B(e,e)),a=re(B(o,o),B(wn,s)),c=re(B(o,re(s,a)),B(xs,B(i,i))),f=B(wn,B(t,n));return{X:a,Y:c,Z:f}},ze=(r,e)=>{if(r.Z===C)return e;if(e.Z===C)return r;let t=B(r.Z,r.Z),n=B(e.Z,e.Z),i=B(r.X,n),s=B(e.X,t),o=B(r.Y,B(n,e.Z)),a=B(e.Y,B(t,r.Z)),c=re(s,i),f=re(a,o);if(c===C)return f===C?it(r):{X:C,Y:K,Z:C};let h=B(c,c),b=B(c,h),g=B(i,h),y=re(re(B(f,f),b),B(wn,g)),w=re(B(f,re(g,y)),B(o,b)),x=B(c,B(r.Z,e.Z));return{X:y,Y:w,Z:x}},As=r=>r.Z===C?r:{X:r.X,Y:ie-r.Y,Z:r.Z},Bs=(r,e)=>{let t=`${r}:${e.x.toString(16)}:${e.y.toString(16)}`,n=Pr.get(t);if(n!==void 0)return n;let i=Array.from({length:1<<r-1},()=>({X:C,Y:K,Z:C})),s={X:e.x,Y:e.y,Z:K};i[0]=s;let o=it(s);for(let a=1;a<i.length;a++)i[a]=ze(i[a-1],o);return Pr.set(t,i),i},Ns=(r,e)=>{let t=[],n=1n<<BigInt(e),i=n>>1n,s=r;for(;s>0n;){if((s&K)===C)t.push(0);else{let o=s&n-1n;o>i&&(o-=n),t.push(Number(o)),s-=o}s>>=K}return t},_t=(r,e,t=5)=>{let n=Bs(t,e),i=Ns(r,t),s={X:C,Y:K,Z:C};for(let o=i.length-1;o>=0;o--){s=it(s);let a=i[o];if(a!==0){let c=Math.abs(a)>>1,f=a>0?n[c]:As(n[c]);s=ze(s,f)}}return s},Be=r=>{let e=r%be;return e<0n&&(e+=be),e},st=(r,e)=>Be(r*e),Sn=r=>{let e=1n,t=0n,n=Be(r),i=be;for(;n>1n;){let s=i/n;[e,t]=[t-e*s,e],[n,i]=[i-n*s,n]}return Be(e)},F,Ur,Cr,Hr,_r,zr,xn,Or,T=class T extends Ie{constructor(t,n,i=!0){super("affine");P(this,F);p(this,"x");p(this,"y");p(this,"inf");this.precomputed=null,t===null&&n===null?(this.x=null,this.y=null,this.inf=!0):(m.isBN(t)||(t=new m(t,16)),this.x=t,m.isBN(n)||(n=new m(n,16)),this.y=n,i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red===null&&(this.x=this.x.toRed(this.curve.red)),this.y.red===null&&(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}static _assertOnCurve(t){if(!t.validate())throw new Error("Invalid point");return t}static fromDER(t){if((t[0]===4||t[0]===6||t[0]===7)&&t.length-1===64){if(t[0]===6){if(t.at(-1)%2!==0)throw new Error("Point string value is wrong length")}else if(t[0]===7&&t.at(-1)%2!==1)throw new Error("Point string value is wrong length");let i=new T(t.slice(1,33),t.slice(33,65));return T._assertOnCurve(i)}else if((t[0]===2||t[0]===3)&&t.length-1===32)return T._assertOnCurve(T.fromX(t.slice(1,33),t[0]===3));throw new Error("Unknown point format")}static fromString(t){let n=$(t,"hex");return T._assertOnCurve(T.fromDER(n))}static fromX(t,n){let i=Es(t);i=Ae(i);let s=Lr(B(ys(i),i),7n),o=Is(s);if(o===null)throw new Error("Invalid point");let a=o;(a&K)!==(n?K:C)&&(a=re(ie,a));let c=new m(i.toString(16),16),f=new m(a.toString(16),16);return T._assertOnCurve(new T(c,f))}static fromJSON(t,n){typeof t=="string"&&(t=JSON.parse(t));let i=new T(t[0],t[1],n);if(i=T._assertOnCurve(i),typeof t[2]!="object"||t[2]===null)return i;let s=t[2],o=a=>{let c=new T(a[0],a[1],n);return T._assertOnCurve(c)};return i.precomputed={beta:null,doubles:typeof s.doubles=="object"&&s.doubles!==null?{step:s.doubles.step,points:[i].concat(s.doubles.points.map(o))}:void 0,naf:typeof s.naf=="object"&&s.naf!==null?{wnd:s.naf.wnd,points:[i].concat(s.naf.points.map(o))}:void 0},i}validate(){if(this.inf||this.x==null||this.y==null)return!1;try{let t=BigInt("0x"+this.x.fromRed().toString(16)),n=BigInt("0x"+this.y.fromRed().toString(16)),i=B(n,n),s=Lr(B(B(t,t),t),7n);return i===s}catch{return!1}}encode(t=!0,n){if(this.inf)return n==="hex"?"00":[0];let i=this.curve.p.byteLength(),s=this.getX().toArray("be",i),o;return t?o=[this.getY().isEven()?2:3].concat(s):o=[4].concat(s,this.getY().toArray("be",i)),n==="hex"?Y(o):o}toString(){return this.encode(!0,"hex")}toJSON(){return this.precomputed==null?[this.x,this.y]:[this.x,this.y,typeof this.precomputed=="object"&&this.precomputed!==null?{doubles:this.precomputed.doubles==null?void 0:{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf==null?void 0:{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}:void 0]}inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+(this.x?.fromRed()?.toString(16,2)??"undefined")+" y: "+(this.y?.fromRed()?.toString(16,2)??"undefined")+">"}isInfinity(){return this.inf}add(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return new T(null,null);if(this.x?.cmp(t.x??new m(0))===0)return new T(null,null);let n={X:BigInt("0x"+this.x.fromRed().toString(16)),Y:BigInt("0x"+this.y.fromRed().toString(16)),Z:K},i={X:BigInt("0x"+t.x.fromRed().toString(16)),Y:BigInt("0x"+t.y.fromRed().toString(16)),Z:K},s=ze(n,i);if(s.Z===C)return new T(null,null);let o=_e(s.Z),a=B(o,o),c=B(s.X,a),f=B(s.Y,B(a,o));return new T(c.toString(16),f.toString(16))}dbl(){if(this.inf)return this;if(this.x===null||this.y===null)throw new Error("Point coordinates cannot be null");let t=BigInt("0x"+this.x.fromRed().toString(16)),n=BigInt("0x"+this.y.fromRed().toString(16));if(n===C)return new T(null,null);let i=it({X:t,Y:n,Z:K}),s=_e(i.Z),o=B(s,s),a=B(i.X,o),c=B(i.Y,B(o,s));return new T(a.toString(16),c.toString(16))}getX(){return(this.x??new m(0)).fromRed()}getY(){return(this.y??new m(0)).fromRed()}mul(t){if(m.isBN(t)||(t=new m(t,16)),t=t,this.inf)return this;let n=t.isNeg(),i=n?t.neg():t,s=BigInt("0x"+i.toString(16));if(s=Ae(s),s===C)return new T(null,null);if(s===C)return new T(null,null);if(this.x===null||this.y===null)throw new Error("Point coordinates cannot be null");let o,a;this===this.curve.g?(o=Ct,a=Ht):(o=BigInt("0x"+this.x.fromRed().toString(16)),a=BigInt("0x"+this.y.fromRed().toString(16)));let c=_t(s,{x:o,y:a});if(c.Z===C)return new T(null,null);let f=_e(c.Z),h=B(f,f),b=B(c.X,h),g=B(c.Y,B(h,f)),y=new m(b.toString(16),16),w=new m(g.toString(16),16),x=new T(y,w);return n?x.neg():x}mulCT(t){if(m.isBN(t)||(t=new m(t,16)),t=t,this.inf)return new T(null,null);let n=t.isNeg(),i=n?t.neg():t,s=BigInt("0x"+i.toString(16));if(s=Ae(s),s===0n)return new T(null,null);let o=this===this.curve.g?Ct:BigInt("0x"+this.getX().toString(16)),a=this===this.curve.g?Ht:BigInt("0x"+this.getY().toString(16)),c={X:0n,Y:1n,Z:0n},f={X:o,Y:a,Z:1n},h=s.toString(2);for(let k of h){let N=k==="1"?1n:0n;Mr(N,c,f),f=ze(c,f),c=it(c),Mr(N,c,f)}if(c.Z===0n)return new T(null,null);let b=_e(c.Z),g=B(b,b),y=B(c.X,g),w=B(c.Y,B(g,b)),x=new T(y.toString(16),w.toString(16));return n?x.neg():x}mulAdd(t,n,i){let s=[this,n],o=[t,i];return d(this,F,xn).call(this,s,o)}jmulAdd(t,n,i){let s=[this,n],o=[t,i];return d(this,F,xn).call(this,s,o,!0)}eq(t){return this===t||this.inf===t.inf&&(this.inf||(this.x??new m(0)).cmp(t.x??new m(0))===0&&(this.y??new m(0)).cmp(t.y??new m(0))===0)}neg(t){if(this.inf)return this;let n=new T(this.x,(this.y??new m(0)).redNeg());if(t===!0&&this.precomputed!=null){let i=this.precomputed,s=o=>o.neg();n.precomputed={naf:i.naf==null?void 0:{wnd:i.naf.wnd,points:i.naf.points.map(s)},doubles:i.doubles==null?void 0:{step:i.doubles.step,points:i.doubles.points.map(o=>o.neg())},beta:void 0}}return n}dblp(t){let n;for(let i=0;i<t;i++)n=(n??this).dbl();return n??this}toJ(){return this.inf?new Ee(null,null,null):new Ee(this.x,this.y,this.curve.one)}_combineWnafPair(t,n,i){let{points:s,coeffs:o,wndWidth:a,wnd:c,naf:f,currentMax:h}=i;if(a[t]!==1||a[n]!==1)return f[t]=this.curve.getNAF(o[t],a[t],this.curve._bitLength),f[n]=this.curve.getNAF(o[n],a[n],this.curve._bitLength),Math.max(h,f[t].length,f[n].length);let b=[s[t],null,null,s[n]],g=s[t].y??new m(0),y=s[n].y??new m(0);g.cmp(y)===0?(b[1]=s[t].add(s[n]),b[2]=s[t].toJ().mixedAdd(s[n].neg())):g.cmp(y.redNeg())===0?(b[1]=s[t].toJ().mixedAdd(s[n]),b[2]=s[t].add(s[n].neg())):(b[1]=s[t].toJ().mixedAdd(s[n]),b[2]=s[t].toJ().mixedAdd(s[n].neg()));let w=[-3,-1,-5,-7,0,7,5,1,3],x=this.curve.getJSF(o[t],o[n]),k=Math.max(h,x[0].length);f[t]=Array.from({length:k}),f[n]=Array.from({length:k});for(let N=0;N<k;N++){let L=Math.trunc(x[0][N]),_=Math.trunc(x[1][N]);f[t][N]=w[(L+1)*3+(_+1)],f[n][N]=0,c[t]=b}return k}_collectWnafStep(t,n,i,s){let o=t,a=0;for(;o>=0;){let c=!0;for(let f=0;f<n;f++)s[f]=new m(typeof i[f][o]=="number"?i[f][o]:0),s[f].isZero()||(c=!1);if(!c)break;a++,o--}return o>=0&&a++,{index:o,doubles:a}}_getDoubles(t,n){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.doubles=="object"&&this.precomputed.doubles!==null)return this.precomputed.doubles;let i=[this],s;for(let o=0;o<(n??0);o+=t??1){for(let a=0;a<(t??1);a++)s=(s??this).dbl();i.push(s)}return{step:t??1,points:i}}};F=new WeakSet,Ur=function(){if(typeof this.curve.endo!="object")return;let t=this.precomputed;if(typeof t=="object"&&t!==null&&typeof t.beta=="object"&&t.beta!==null)return t.beta;let n=new T((this.x??new m(0)).redMul(this.curve.endo.beta),this.y);if(t!=null){let i=this.curve,s=o=>{let a=o;if(a.x===null)throw new Error("p.x is null");if(i.endo===void 0||i.endo===null)throw new Error("curve.endo is undefined");return new T(a.x.redMul(i.endo.beta),a.y)};t.beta=n,n.precomputed={beta:null,naf:t.naf==null?void 0:{wnd:t.naf.wnd,points:t.naf.points.map(s)},doubles:t.doubles==null?void 0:{step:t.doubles.step,points:t.doubles.points.map(s)}}}return n},Cr=function(t,n,i,s,o){var a;for(let c=0;c<i;c++){let f=d(a=n[c],F,Or).call(a,t);s[c]=f.wnd,o[c]=f.points}},Hr=function(t,n,i,s,o,a){let c=0;for(let f=i-1;f>=1;f-=2)c=this._combineWnafPair(f-1,f,{points:t,coeffs:n,wndWidth:s,wnd:o,naf:a,currentMax:c});return c},_r=function(t,n,i,s){let o=new m(1),a=new m(2),c=t;for(let f=0;f<n;f++){let h=i[f];if(h.cmpn(0)===0)continue;let b=h.isNeg()?s[f][h.neg().sub(o).div(a).toNumber()].neg():s[f][h.sub(o).div(a).toNumber()];c=b.type==="affine"?c.mixedAdd(b):c.add(b)}return c},zr=function(t,n,i,s,o){let a=this.curve._wnafT1.length,c=Array.from({length:a}),f=Array.from({length:a},()=>[]),h=Array.from({length:a},()=>[]);d(this,F,Cr).call(this,t,n,s,c,f);let b=d(this,F,Hr).call(this,n,i,s,c,f,h),g=new Ee(null,null,null),y=this.curve._wnafT4,w=b;for(;w>=0;){let x=this._collectWnafStep(w,s,h,y);if(w=x.index,g=g.dblp(x.doubles),w<0)break;g=d(this,F,_r).call(this,g,s,y,f),w--}for(let x=0;x<s;x++)f[x]=[];return o===!0?g:g.toP()},xn=function(t,n,i){var f;let s=Array.from({length:t.length*2}),o=Array.from({length:t.length*2}),a;for(a=0;a<t.length;a++){let h=this.curve._endoSplit(n[a]),b=t[a],g=d(f=b,F,Ur).call(f)??new T(null,null);h.k1.negative!==0&&(h.k1.ineg(),b=b.neg(!0)),h.k2.negative!==0&&(h.k2.ineg(),g=g.neg(!0)),s[a*2]=b,s[a*2+1]=g,o[a*2]=h.k1,o[a*2+1]=h.k2}let c=d(this,F,zr).call(this,1,s,o,a*2,i);for(let h=0;h<a*2;h++)s[h]=null,o[h]=null;return c},Or=function(t){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.naf=="object"&&this.precomputed.naf!==null)return this.precomputed.naf;let n=[this],i=(1<<t)-1,s=i===1?null:this.dbl();for(let o=1;o<i;o++)s!==null&&(n[o]=n[o-1].add(s));return{wnd:t,points:n}};var Z=T;var se=class r extends Z{static fromPrivateKey(e){let n=new H().g.mul(e);return new r(n.x,n.y)}static fromString(e){let t=Z.fromString(e);return new r(t.x,t.y)}static fromDER(e){let t=Z.fromDER(e);return new r(t.x,t.y)}constructor(e,t=null,n=!0){if(e instanceof Z)super(e.getX(),e.getY());else{if(t===null&&n&&typeof e=="string"&&(e.length===66||e.length===130))throw new Error('You are using the "new PublicKey()" constructor with a DER hex string. You need to use "PublicKey.fromString()" instead.');super(e,t,n)}}deriveSharedSecret(e){if(!this.validate())throw new Error("Public key not valid for ECDH secret derivation");return this.mulCT(e)}verify(e,t,n){let i=new m(ve(e,n),16);return Oe(i,t,this)}toDER(e){return e==="hex"?this.encode(!0,e):this.encode(!0)}toHash(e){let t=wr(this.encode(!0));return e==="hex"?Y(t):t}toAddress(e=[0]){if(typeof e=="string")if(e==="testnet"||e==="test")e=[111];else if(e==="mainnet"||e==="main")e=[0];else throw new Error(`Invalid prefix ${e}`);return Pt(this.toHash(),e)}deriveChild(e,t,n,i){let s;if(typeof i=="function"){let b=i(e,this);b===void 0?(s=this.deriveSharedSecret(e),typeof n=="function"&&n(e,this,s)):s=b}else s=this.deriveSharedSecret(e);let o=$(t,"utf8"),a=kt(s.encode(!0),o),f=new H().g.mul(new m(a)),h=this.add(f);return new r(h.x,h.y)}static fromMsgHashAndCompactSignature(e,t,n){let i=$(t,n);if(i.length!==65)throw new Error("Invalid Compact Signature");let s=i[0];if(s<27||s>=35)throw new Error("Invalid Compact Byte");let o=i[0]-27;return o>3&&(o-=4),new Ne(new m(i.slice(1,33)),new m(i.slice(33,65))).RecoverPublicKey(o,e)}};var Ne=class r{constructor(e,t){p(this,"r");p(this,"s");this.r=e,this.s=t}static fromDER(e,t){let n=(b,g)=>{let y=b[g.place++];if((y&128)===0)return y;throw new Error("Invalid DER entity length")};class i{constructor(){p(this,"place",0)}}e=$(e,t);let s=new i;if(e[s.place++]!==48)throw new Error("Signature DER must start with 0x30");if(n(e,s)+s.place!==e.length)throw new Error("Signature DER invalid");if(e[s.place++]!==2)throw new Error("Signature DER invalid");let a=n(e,s),c=e.slice(s.place,a+s.place);if(s.place+=a,e[s.place++]!==2)throw new Error("Signature DER invalid");let f=n(e,s);if(e.length!==f+s.place)throw new Error("Invalid R-length in signature DER");let h=e.slice(s.place,f+s.place);if(c[0]===0){if((c[1]&128)===0)throw new Error("Invalid R-value in signature DER");c=c.slice(1)}if(h[0]===0){if((h[1]&128)===0)throw new Error("Invalid S-value in signature DER");h=h.slice(1)}return new r(new m(c),new m(h))}static fromCompact(e,t){if(e=$(e,t),e.length!==65)throw new Error("Invalid Compact Signature");let n=e[0];if(n<27||n>=35)throw new Error("Invalid Compact Byte");return new r(new m(e.slice(1,33)),new m(e.slice(33,65)))}verify(e,t,n){let i=new m(ve(e,n),16);return Oe(i,this,t)}toString(e){return this.toDER(e)}toDER(e){let t=(f,h)=>{if(h<128)f.push(h);else throw new Error("len must be < 0x80")},n=f=>{let h=0,b=f.length-1;for(;f[h]===0&&(f[h+1]&128)===0&&h<b;)h++;return h===0?f:f.slice(h)},i=this.r.toArray(),s=this.s.toArray();for((i[0]&128)!==0&&(i=[0].concat(i)),(s[0]&128)!==0&&(s=[0].concat(s)),i=n(i),s=n(s);s[0]===0&&(s[1]&128)===0;)s=s.slice(1);let o=[2];t(o,i.length),o=o.concat(i),o.push(2),t(o,s.length);let a=o.concat(s),c=[48];return t(c,a.length),c=c.concat(a),e==="hex"?Y(c):e==="base64"?pn(c):c}toCompact(e,t,n){if(e<0||e>3)throw new Error("Invalid recovery param");if(typeof t!="boolean")throw new TypeError("Invalid compressed param");let i=27+e;t&&(i+=4);let s=[i];return s=s.concat(this.r.toArray("be",32)),s=s.concat(this.s.toArray("be",32)),n==="hex"?Y(s):n==="base64"?pn(s):s}RecoverPublicKey(e,t){let n=this.r,i=this.s,s=(e&1)!==0,o=e>>1,a=new H,c=a.n,f=a.g,h=o===0?n:n.add(c),b=Z.fromX(h,s);if(!b.mul(c).isInfinity())throw new Error("nR is not at infinity");let y=t.neg().umod(c),w=n.invm(c),x=w.mul(i).umod(c),k=w.mul(y).umod(c),N=f.mul(k).add(b.mul(x)),L=new se(N);return L.validate(),L}CalculateRecoveryFactor(e,t){for(let n=0;n<4;n++){let i;try{i=this.RecoverPublicKey(n,t)}catch{continue}if(e.eq(i))return n}throw new Error("Unable to find valid recovery factor")}};var ot=class{constructor(e,t){p(this,"K");p(this,"V");let n=$(e,"hex"),i=$(t,"hex");if(n.length!==32)throw new Error("Entropy must be exactly 32 bytes (256 bits)");if(i.length!==32)throw new Error("Nonce must be exactly 32 bytes (256 bits)");let s=n.concat(i);this.K=Array.from({length:32}),this.V=Array.from({length:32});for(let o=0;o<32;o++)this.K[o]=0,this.V[o]=1;this.update(s)}hmac(){return new tt(this.K)}update(e){let t=this.hmac().update(this.V).update([0]);e!==void 0&&(t=t.update(e)),this.K=t.digest(),this.V=this.hmac().update(this.V).digest(),e!==void 0&&(this.K=this.hmac().update(this.V).update([1]).update(e).digest(),this.V=this.hmac().update(this.V).digest())}generate(e){let t=[];for(;t.length<e;)this.V=this.hmac().update(this.V).digest(),t=t.concat(this.V);let n=t.slice(0,e);return this.update(),Y(n)}};function Fr(r,e,t=new H){let n=r.byteLength()*8-t.n.bitLength();return n>0&&r.iushrn(n),e!==!0&&r.cmp(t.n)>=0?r.sub(t.n):r}function ke(r){let e=r.toArray("be"),t=0n;for(let n of e)t=t<<8n|BigInt(n);return t}var at=new H,vn=at.n.byteLength(),ks=at.n.subn(1),Rs=be>>1n;function Ms(r,e,t){let n;if(typeof r=="function"?n=r(e):r!==void 0&&m.isBN(r)?n=r:n=new m(t.generate(vn),16),n==null)throw new Error("k is undefined");return Fr(n,!0)}function zt(r,e){if(r)throw new Error(e)}function Ts(r,e,t,n,i){if(r.cmpn(1)<0||r.cmp(ks)>0)return zt(i,"Invalid fixed custom K value (must be >1 and <N-1)");let s=at.g.mulCT(r);if(s.isInfinity())return zt(i,"Invalid fixed custom K value (k\xB7G at infinity)");let o=Be(BigInt("0x"+s.getX().toString(16)));if(o===0n)return zt(i,"Invalid fixed custom K value (r == 0)");let a=Sn(BigInt("0x"+r.toString(16))),c=Be(e+st(o,t)),f=st(a,c);return f===0n?zt(i,"Invalid fixed custom K value (s == 0)"):(n&&f>Rs&&(f=be-f),new Ne(new m(o.toString(16),16),new m(f.toString(16),16)))}var Wr=(r,e,t=!1,n)=>{let i=at.n.bitLength();if(r.bitLength()>i)throw new Error(`ECDSA message is too large: expected <= ${i} bits. Callers must hash messages before signing.`);r=Fr(r);let s=ke(r),o=ke(e),a=e.toArray("be",vn),c=r.toArray("be",vn),f=new ot(a,c),h=m.isBN(n);for(let b=0;;b++){let g=Ts(Ms(n,b,f),s,o,t,h);if(g!=null)return g}},Oe=(r,e,t)=>{let n=at.n.bitLength();if(r.bitLength()>n)return!1;let i=ke(r);if(t.x==null||t.y==null)throw new Error("Invalid public key: missing coordinates.");let s={x:ke(t.x),y:ke(t.y)},o={r:ke(e.r),s:ke(e.s)},{r:a,s:c}=o,f=i;if(a<=C||a>=be||c<=C||c>=be)return!1;let h=Sn(c);if(h===0n)return!1;let b=st(f,h),g=st(a,h),y=_t(b,{x:Ct,y:Ht}),w=_t(g,s),x=ze(y,w);if(x.Z===0n)return!1;let k=_e(x.Z),N=B(k,k),L=B(x.X,N);return Be(L)===a};var In=class{constructor(){p(this,"_rand");let e=()=>{throw new Error("No secure random number generator is available in this environment.")};if(this._rand=e,typeof globalThis<"u"&&typeof globalThis.crypto?.getRandomValues=="function"){this._rand=t=>this.getRandomValues(globalThis,t);return}if(globalThis.self!==void 0&&typeof globalThis.self.crypto?.getRandomValues=="function"){this._rand=t=>this.getRandomValues(globalThis.self,t);return}if(globalThis.window!==void 0&&typeof globalThis.window.crypto?.getRandomValues=="function"){this._rand=t=>this.getRandomValues(globalThis.window,t);return}if(typeof process<"u"&&typeof process.getBuiltinModule=="function"){let t=process.getBuiltinModule("node:crypto");if(typeof t?.randomBytes=="function"){this._rand=n=>Array.from(t.randomBytes(n));return}}this._rand=e}getRandomValues(e,t){let n=new Uint8Array(t);return e.crypto.getRandomValues(n),Array.from(n)}generate(e){return this._rand(e)}},Xr=null,Ls=r=>(Xr??(Xr=new In),Xr.generate(r)),Re=Ls;var q=255,Ps=129,qr=/^[1-9A-HJ-NP-Za-km-z]{1,64}$/;function Dr(r,e,t){if(!Number.isSafeInteger(r)||r<t||r>q)throw new TypeError(`threshold must be a safe integer from ${t} to ${q}`);if(r>e)throw new Error("threshold cannot exceed the number of points")}var j=class r{constructor(e,t){p(this,"x");p(this,"y");let n=new H().p;this.x=e.umod(n),this.y=t.umod(n)}toString(){return Lt(this.x.toArray())+"."+Lt(this.y.toArray())}static fromString(e){if(typeof e!="string"||e.length>Ps)throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");let[t,n,i]=e.split(".");if(i!==void 0||t===void 0||n===void 0||!qr.test(t)||!qr.test(n))throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");let s=new r(new m(Tt(t)),new m(Tt(n)));if(s.toString()!==e)throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");return s}},Fe=class r{constructor(e,t){p(this,"points");p(this,"threshold");if(!Array.isArray(e)||e.length===0||e.length>q)throw new TypeError(`points must contain from 1 to ${q} entries`);let n=t??e.length;Dr(n,e.length,1),this.points=e.slice(),this.threshold=n}static fromPrivateKey(e,t){if(!Number.isSafeInteger(t)||t<2||t>q)throw new TypeError(`threshold must be a safe integer from 2 to ${q}`);let n=new H().p,i=[new j(new m(0),new m(e.toArray()))];for(let s=1;s<t;s++){let o=new m(Re(32)).umod(n),a=new m(Re(32)).umod(n);i.push(new j(o,a))}return new r(i)}valueAt(e){if(Dr(this.threshold,this.points.length,1),!(e instanceof m))throw new TypeError("x must be a BigNumber");let t=new H().p,n=new Set;for(let o=0;o<this.threshold;o++){let a=this.points[o];if(!(a instanceof j)||!(a.x instanceof m)||!(a.y instanceof m))throw new TypeError("points must contain finite-field points");if(a.x.isNeg()||a.y.isNeg()||a.x.gte(t)||a.y.gte(t))throw new TypeError("point coordinates must be canonical field elements");let c=a.x.toString(16);if(n.has(c))throw new Error("Polynomial points must have unique x coordinates");n.add(c)}let i=e.umod(t),s=new m(0);for(let o=0;o<this.threshold;o++){let a=this.points[o].y;for(let c=0;c<this.threshold;c++)if(o!==c){let f=this.points[c].x,h=this.points[o].x,b=i.sub(f).umod(t),y=h.sub(f).umod(t).invm(t),w=b.mul(y).umod(t);a=a.mul(w).umod(t)}s=s.add(a).umod(t)}return s}};var Us=256,$r=/^[1-9A-HJ-NP-Za-km-z]{1,64}$/,Cs=/^(?:[2-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/,Zr=/^[0-9a-f]{8}$/;function En(r,e,t){if(!Array.isArray(r)||r.length===0||r.length>q)throw new TypeError(`shares must contain from 1 to ${q} entries`);if(!Number.isSafeInteger(e)||e<2||e>q)throw new TypeError(`threshold must be a safe integer from 2 to ${q}`);if(typeof t!="string"||!Zr.test(t))throw new TypeError("integrity must be an 8-character lowercase hexadecimal string")}var ct=class r{constructor(e,t,n){p(this,"points");p(this,"threshold");p(this,"integrity");this.points=e,this.threshold=t,this.integrity=n}static fromBackupFormat(e){if(!Array.isArray(e)||e.length===0||e.length>q)throw new TypeError(`shares must contain from 1 to ${q} entries`);let t=0,n="",i=[];for(let s=0;s<e.length;s++){if(!Object.prototype.hasOwnProperty.call(e,s))throw new TypeError("shares must be a dense array");let o=e[s];if(typeof o!="string"||o.length>Us)throw new TypeError(`Invalid share format in share ${s.toString()}`);let a=o.split(".");if(a.length!==4)throw new Error(`Invalid share format in share ${s.toString()}. Expected format: "x.y.t.i"`);let[c,f,h,b]=a;if(c===void 0||f===void 0||h===void 0||b===void 0||!$r.test(c)||!$r.test(f)||!Cs.test(h)||!Zr.test(b))throw new TypeError(`Invalid canonical share data in share ${s.toString()}`);let g=Number(h);if(s!==0&&t!==g)throw new Error("Threshold mismatch in share "+s.toString());if(s!==0&&n!==b)throw new Error("Integrity mismatch in share "+s.toString());t=g,n=b,i.push(j.fromString(`${c}.${f}`))}return En(i,t,n),new r(i,t,n)}toBackupFormat(){En(this.points,this.threshold,this.integrity);let e=[];for(let t=0;t<this.points.length;t++){if(!Object.prototype.hasOwnProperty.call(this.points,t))throw new TypeError("shares must be a dense array");let n=this.points[t];if(!(n instanceof j))throw new TypeError("shares must contain finite-field points");let i=n.toString();if(j.fromString(i).toString()!==i)throw new TypeError("shares must contain canonical finite-field points");e.push(`${i}.${this.threshold.toString()}.${this.integrity}`)}return e}},Me=class r extends m{static fromRandom(){return new r(Re(32))}static fromString(e,t="hex"){return new r(super.fromString(e,t).toArray())}static fromHex(e){return new r(super.fromHex(e,"big"))}static fromWif(e,t=1){let n=Ar(e,void 0,t);if(n.data.length!==33)throw new Error("Invalid WIF length");if(n.data[32]!==1)throw new Error("Invalid WIF padding");return new r(n.data.slice(0,32))}constructor(e=0,t=10,n="be",i="apply"){if(e instanceof m?(super(),e.copy(this)):super(e,t,n),i!=="nocheck"){let s=this.checkInField();if(!s.inField){if(i==="error")throw new Error("Input is out of field");m.move(this,s.modN)}}}checkInField(){let e=new H,t=this.mod(e.n);return{inField:this.cmp(t)===0,modN:t}}isValid(){return this.checkInField().inField}sign(e,t,n=!0,i){let s=new m(ve(e,t),16);return Wr(s,this,n,i)}verify(e,t,n){let i=new m(ve(e,n),16);return Oe(i,t,this.toPublicKey())}toPublicKey(){let t=new H().g.mulCT(this);return new se(t.x,t.y)}toWif(e=[128]){if(!this.isValid())throw new Error("Value is out of field");return Pt([...this.toArray("be",32),1],e)}toAddress(e=[0]){return this.toPublicKey().toAddress(e)}toHex(){return super.toHex(32)}toString(e="hex",t=64){return super.toString(e,t)}deriveSharedSecret(e){if(!e.validate())throw new Error("Public key not valid for ECDH secret derivation");return e.mulCT(this)}deriveChild(e,t,n,i){let s;if(typeof i=="function"){let f=i(this,e);f===void 0?(s=this.deriveSharedSecret(e),typeof n=="function"&&n(this,e,s)):s=f}else s=this.deriveSharedSecret(e);let o=$(t,"utf8"),a=kt(s.encode(!0),o),c=new H;return new r(this.add(new m(a)).mod(c.n).toArray())}toKeyShares(e,t){if(typeof e!="number"||typeof t!="number")throw new TypeError("threshold and totalShares must be numbers");if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t))throw new TypeError("threshold and totalShares must be safe integers");if(e<2)throw new Error("threshold must be at least 2");if(t<2)throw new Error("totalShares must be at least 2");if(e>t)throw new Error("threshold should be less than or equal to totalShares");if(e>q||t>q)throw new RangeError(`threshold and totalShares cannot exceed ${q}`);let n=Fe.fromPrivateKey(this,e),i=[],s=new Set,o=new H,a=Re(64);for(let f=0;f<t;f++){let h,b=0;do{let y=[f,b,...Re(32)],w=xr(a,y);if(h=new m(w).umod(o.p),b++,b>5)throw new Error("Failed to generate unique x coordinate after 5 attempts")}while(h.isZero()||s.has(h.toString()));s.add(h.toString());let g=n.valueAt(h);i.push(new j(h,g))}let c=this.toPublicKey().toHash("hex").slice(0,8);return new ct(i,e,c)}toBackupShares(e,t){return this.toKeyShares(e,t).toBackupFormat()}static fromBackupShares(e){return r.fromKeyShares(ct.fromBackupFormat(e))}static fromKeyShares(e){if(e===null||typeof e!="object")throw new TypeError("keyShares must be an object");let t=e.points,n=e.threshold,i=e.integrity;if(En(t,n,i),t.length<n)throw new Error(`At least ${n} shares are required to reconstruct the private key`);let s=[],o=new H().p;for(let h=0;h<n;h++){if(!Object.prototype.hasOwnProperty.call(t,h))throw new TypeError("shares must be a dense array");let b=t[h];if(!(b instanceof j)||!(b.x instanceof m)||!(b.y instanceof m))throw new TypeError("shares must contain finite-field points");if(b.x.isNeg()||b.y.isNeg()||b.x.gte(o)||b.y.gte(o))throw new TypeError("share coordinates must be canonical field elements");s.push(new j(new m(b.x.toArray()),new m(b.y.toArray())))}for(let h=0;h<n;h++)for(let b=h+1;b<n;b++)if(s[h].x.eq(s[b].x))throw new Error("Duplicate share detected, each must be unique.");let a=new Fe(s,n),c=new r(a.valueAt(new m(0)).toArray());if(c.toPublicKey().toHash("hex").slice(0,8)!==i)throw new Error("Integrity hash mismatch");return c}};function ft(r,e){let t=Promise.resolve();return n=>(t=t.then(()=>r(n)).catch(i=>e?.(i)),t)}var Vr="1",Hs="bwallet-pair-v1",_s="www.bwallet.space";var Yr="relay.bwallet.space",Ft=120,Ot=new TextEncoder,zs=new TextDecoder,jr=r=>{let e="";for(let t=0;t<r.length;t+=32768)e+=String.fromCharCode(...r.subarray(t,t+32768));return e},Os=r=>btoa(jr(r)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),Fs=r=>{let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=atob(e+"=".repeat((4-e.length%4)%4));return Uint8Array.from(t,n=>n.charCodeAt(0))},Gr=r=>btoa(jr(r)),Kr=r=>Uint8Array.from(atob(r),e=>e.charCodeAt(0)),Jr=()=>Os(crypto.getRandomValues(new Uint8Array(16)));function Qr(r){let e=new URLSearchParams({v:r.v,r:r.r,c:r.c,k:r.k,o:r.o,e:String(r.e)});return`https://${_s}/pair?${e}`}var An=(r,e,t,n)=>{let i=/^(localhost|127\.0\.0\.1)(:\d+)?$/.test(r),s=new URLSearchParams({role:t});return n&&s.set("e",String(n)),`${i?"ws":"wss"}://${r}/v1/c/${e}?${s}`};async function Bn(r,e,t){let n=r.deriveSharedSecret(se.fromString(e)),i=new Uint8Array(n.encode(!0)),s=await crypto.subtle.importKey("raw",i,"HKDF",!1,["deriveBits"]),o=new Uint8Array(await crypto.subtle.deriveBits({name:"HKDF",hash:"SHA-256",salt:Fs(t),info:Ot.encode(Hs)},s,256)),a=await crypto.subtle.importKey("raw",o,"AES-GCM",!1,["encrypt","decrypt"]),c=new Uint8Array(await crypto.subtle.digest("SHA-256",o)),f=String((c[0]<<8|c[1])%1e4).padStart(4,"0");return{key:a,code:f}}var dt=class{constructor(e,t){p(this,"key",e);p(this,"me",t);p(this,"sent",0);p(this,"lastSeen",0)}async seal(e){let t=++this.sent,n=crypto.getRandomValues(new Uint8Array(12)),i=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:n,additionalData:Ot.encode(`${this.me}|${t}`)},this.key,Ot.encode(JSON.stringify(e))));return{s:t,n:Gr(n),d:Gr(i)}}async open(e){if(!Number.isInteger(e.s)||e.s<=this.lastSeen)return null;let t=this.me==="site"?"wallet":"site";try{let n=await crypto.subtle.decrypt({name:"AES-GCM",iv:Kr(e.n),additionalData:Ot.encode(`${t}|${e.s}`)},this.key,Kr(e.d));return this.lastSeen=e.s,JSON.parse(zs.decode(n))}catch{return null}}get counters(){return{sent:this.sent,lastSeen:this.lastSeen}}restore(e){this.sent=e.sent,this.lastSeen=e.lastSeen}},Nn=r=>!!r&&typeof r=="object"&&"d"in r&&"n"in r&&"s"in r;var kn="bwalletx.connect.pairing.v1",ei=1;function Xt(){let r=new Map;return{getItem:e=>r.get(e)??null,setItem:(e,t)=>{r.set(e,t)},removeItem:e=>{r.delete(e)}}}function Rn(){try{if(typeof localStorage<"u")return localStorage}catch{}return Xt()}function ti(){return r=>{if(typeof WebSocket>"u")throw new Error("No WebSocket here. Pass options.socket.");return new WebSocket(r)}}function Ws(r){if(!r)return null;try{let e=JSON.parse(r),t=n=>Number.isInteger(n)&&n>=0;return e.v!==1||typeof e.c!="string"||!/^[A-Za-z0-9_-]{22}$/.test(e.c)||typeof e.r!="string"||!/^[a-z0-9.-]+(:\d+)?$/i.test(e.r)||typeof e.s!="string"||!/^[0-9a-f]{64}$/i.test(e.s)||typeof e.k!="string"||!/^0[23][0-9a-f]{64}$/i.test(e.k)||!t(e.sent)||!t(e.lastSeen)||!t(e.pairedAt)?null:e}catch{return null}}var Wt=class{constructor(e,t,n,i,s,o){p(this,"p",e);p(this,"sealer",t);p(this,"storage",n);p(this,"key",i);p(this,"socket",s);p(this,"timeoutMs",o);p(this,"ws",null);p(this,"opening",null);p(this,"waiting",new Map);p(this,"forgotten",!1)}adopt(e){this.ws=e,this.wire(e)}wire(e){e.onmessage=ft(t=>this.onFrame(String(t.data))),e.onerror=null,e.onclose=()=>{this.ws===e&&(this.ws=null),this.failAll(new Error("The connection to bWalletX closed"))}}persist(){this.forgotten||(this.p={...this.p,...this.sealer.counters},Promise.resolve(this.storage.setItem(this.key,JSON.stringify(this.p))).catch(()=>{}))}failAll(e){for(let t of this.waiting.values())clearTimeout(t.timer),t.reject(e);this.waiting.clear()}async ensure(){if(this.forgotten)throw new Error("This pairing was removed. Pair again.");this.ws&&this.ws.readyState===ei||(this.opening??(this.opening=this.reopen().finally(()=>this.opening=null)),await this.opening)}reopen(){let e=this.socket(An(this.p.r,this.p.c,"site",Math.floor(Date.now()/1e3)+Ft-10));return new Promise((t,n)=>{e.onopen=()=>{this.ws=e,this.wire(e),t()},e.onerror=()=>n(new Error("Could not reach the bWalletX pairing service")),e.onclose=()=>n(new Error("Could not reach the bWalletX pairing service"))})}async onFrame(e){let t;try{t=JSON.parse(e)}catch{return}if(t.t==="relay"&&t.error)return this.failAll(new Error(`bWalletX pairing service: ${t.error}`));if(!Nn(t))return;let i=await this.sealer.open(t);if(i)if(this.persist(),i.t==="res"){let s=this.waiting.get(i.id);if(!s)return;clearTimeout(s.timer),this.waiting.delete(i.id),i.error?s.reject(Object.assign(new Error(i.error.message),{code:i.error.code})):s.resolve(i.result)}else i.t==="close"&&(this.drop(),this.failAll(new Error("bWalletX disconnected this site. Pair again.")))}async call(e,t){await this.ensure();let n=this.ws,i=`${e}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`,s=new Promise((o,a)=>{let c=setTimeout(()=>{this.waiting.delete(i)&&a(new Error("No answer from bWalletX. Open it, unlocked, and approve."))},this.timeoutMs);this.waiting.set(i,{resolve:o,reject:a,timer:c})});return n.send(JSON.stringify(await this.sealer.seal({t:"req",id:i,action:e,params:t}))),this.persist(),s}close(){let e=this.ws;this.ws=null,e?.close()}drop(){this.forgotten=!0,Promise.resolve(this.storage.removeItem(this.key)).catch(()=>{}),this.close()}async forget(){if(!this.forgotten){try{this.ws&&this.ws.readyState===ei&&this.ws.send(JSON.stringify(await this.sealer.seal({t:"close",reason:"site unpaired"})))}catch{}this.drop()}}wallet(){return new Proxy({},{get:(e,t)=>{if(t==="close")return()=>this.close();if(t==="forget")return()=>this.forget();if(!(typeof t!="string"||t==="then"||t==="toJSON"))return n=>this.call(t,n??{})}})}};function qt(r){let e=r.storage===void 0?Rn():r.storage??Xt(),t=r.storageKey??kn,n=r.socket??ti(),i=r.relay??Yr,s=r.origin??(typeof location<"u"?location.origin:"");if(!s)return Promise.reject(new Error("pairBwalletX needs options.origin outside a browser"));let o=Me.fromRandom(),a=Jr(),c=Math.floor(Date.now()/1e3)+Ft;return new Promise((f,h)=>{if(r.signal?.aborted)return h(new Error("cancelled"));let b;try{b=n(An(i,a,"site",c))}catch(N){return h(N)}let g=null,y="",w=!1,x=N=>{w||(w=!0,clearTimeout(k),b.close(),h(N))},k=setTimeout(()=>x(new Error("The pairing code expired. Show a new one.")),Ft*1e3);r.signal?.addEventListener("abort",()=>x(new Error("cancelled"))),b.onerror=()=>x(new Error("Could not reach the bWalletX pairing service")),b.onclose=()=>x(new Error("The connection to bWalletX closed before pairing finished")),b.onmessage=ft(async N=>{if(w)return;let L;try{L=JSON.parse(String(N.data))}catch{return}if(L.t==="hello"&&!g){y=L.k;let R=await Bn(o,y,a);g=new dt(R.key,"site"),r.onCode(R.code);return}if(!g||!Nn(L))return;let _=await g.open(L);if(_)if(_.t==="ready"){w=!0,clearTimeout(k);let R={v:1,c:a,r:i,s:o.toHex(),k:y,...g.counters,pairedAt:Date.now()};await Promise.resolve(e.setItem(t,JSON.stringify(R))).catch(()=>{});let O=new Wt(R,g,e,t,n,r.callTimeoutMs??12e4);O.adopt(b),f(O.wallet())}else _.t==="close"&&x(new Error("Pairing was declined in bWalletX"))}),r.onLink(Qr({v:Vr,r:i,c:a,k:o.toPublicKey().toString(),o:s,e:c}))})}async function Dt(r={}){let e=r.storage===void 0?Rn():r.storage??Xt(),t=r.storageKey??kn,n=Ws(await Promise.resolve(e.getItem(t)).catch(()=>null));if(!n)return null;let{key:i}=await Bn(Me.fromHex(n.s),n.k,n.c),s=new dt(i,"site");return s.restore({sent:n.sent,lastSeen:n.lastSeen}),new Wt(n,s,e,t,r.socket??ti(),r.callTimeoutMs??12e4).wallet()}async function ni(r={}){let e=r.storage===void 0?Rn():r.storage??Xt();await Promise.resolve(e.removeItem(r.storageKey??kn)).catch(()=>{})}var Mn=[2,"bwallet sign in"];async function Tn(r={}){if(r.wallet)return{wallet:r.wallet,method:"wallet"};let e=await pe(r.discoverMs);if(e)return{wallet:e.wallet,method:e.method};if(r.reusePairing!==!1){let t=await Dt(r.pairing??{});if(t)return{wallet:t,method:"pairing"}}if(!r.pairing)throw Object.assign(new Error("bWalletX was not found in this browser"),{code:"NOT_FOUND"});return{wallet:await qt(r.pairing),method:"pairing"}}async function $t(r){let{wallet:e,method:t}=await Tn(r);t!=="pairing"&&await e.waitForAuthentication({}).catch(()=>{});let{publicKey:n}=await e.getPublicKey({identityKey:!0}),i=await r.challenge(n),{signature:s}=await e.createSignature({protocolID:i.protocolID??Mn,keyID:i.keyID,counterparty:"anyone",data:Array.from(new TextEncoder().encode(i.message))});return{identityKey:n,signature:Array.from(s),nonce:i.nonce,method:t,wallet:e}}var Pn="bwalletx-signin",Un="https://bwalletx.com/get",Cn="https://web.bwalletx.com",ri={signin:"Sign in with",continue:"Continue with",connect:"Connect"};function Hn(r="signin",e="bWalletX"){return`${ri[r]??ri.signin} ${e}`}var Xs=0;function _n(r=20){let e=++Xs;return`<svg viewBox="23 8 74 100" width="${Math.round(r*.74)}" height="${r}" aria-hidden="true" focusable="false"><defs><linearGradient id="bwxg${e}" gradientUnits="userSpaceOnUse" x1="0" y1="12" x2="0" y2="105"><stop offset="0" stop-color="#FFE58A"/><stop offset=".55" stop-color="#FFD24D"/><stop offset="1" stop-color="#C98F00"/></linearGradient><mask id="bwxh${e}"><rect width="140" height="140" fill="#fff"/><circle cx="60" cy="72" r="15" fill="#000"/></mask></defs><g fill="url(#bwxg${e})" mask="url(#bwxh${e})"><polygon points="45,12 45,76 27,76 27,30"/><circle cx="60" cy="72" r="33"/></g></svg>`}var zn=`
2
+ :host{display:inline-block;vertical-align:middle;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
3
+ :host([full-width]){display:block;width:100%}
4
+ :host([hidden]){display:none}
5
+ button{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:12px;width:100%;cursor:pointer;
6
+ padding:16px 20px;border-radius:12px;font-size:16px;font-weight:700;line-height:1.2;text-align:left;
7
+ background:linear-gradient(180deg,#fcd34d,#f59e0b);color:#000;
8
+ box-shadow:0 10px 15px -3px rgba(245,158,11,.2),0 4px 6px -4px rgba(245,158,11,.2);
9
+ transition:background .15s,transform .1s,box-shadow .15s,border-color .15s;-webkit-tap-highlight-color:transparent}
10
+ button:hover{background:linear-gradient(180deg,#fde68a,#fbbf24)}
11
+ button:active{transform:translateY(1px);background:linear-gradient(180deg,#fbbf24,#d97706)}
12
+ button:focus-visible{outline:2px solid #b45309;outline-offset:3px}
13
+ button:disabled{opacity:.6;cursor:not-allowed;transform:none}
14
+ button[aria-busy=true]{cursor:wait}
15
+ .mark{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:50%;background:#000}
16
+ .txt{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
17
+ .txt b{font-weight:700;white-space:nowrap}
18
+ .txt small{font-size:11px;font-weight:500;color:rgba(0,0,0,.65);white-space:nowrap}
19
+ .spin{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,210,77,.35);border-top-color:#ffd24d;animation:r .8s linear infinite}
20
+ @keyframes r{to{transform:rotate(360deg)}}
21
+ @media (prefers-reduced-motion:reduce){button{transition:none}button:active{transform:none}.spin{animation:none;border-color:#ffd24d;border-right-color:transparent}}
22
+ /* sizes */
23
+ :host([size=md]) button{padding:10px 16px;border-radius:10px;font-size:15px;gap:10px}
24
+ :host([size=md]) .mark{width:24px;height:24px}
25
+ :host([size=md]) .txt small{font-size:10.5px}
26
+ :host([size=sm]) button{padding:6px 12px 6px 6px;border-radius:8px;font-size:13px;gap:8px;min-height:36px}
27
+ :host([size=sm]) .mark{width:22px;height:22px}
28
+ :host([size=icon]) button{width:48px;height:48px;padding:0;border-radius:50%;gap:0}
29
+ :host([size=icon]) .mark{width:34px;height:34px}
30
+ /* themes */
31
+ :host([theme=dark]) button{background:#0a0a0a;color:#fafafa;border:1px solid #3f3f46;box-shadow:none}
32
+ :host([theme=dark]) button:hover{background:#18181b;border-color:rgba(251,191,36,.6)}
33
+ :host([theme=dark]) button:active{background:#000}
34
+ :host([theme=dark]) button:focus-visible{outline-color:#fcd34d}
35
+ :host([theme=dark]) .mark{box-shadow:inset 0 0 0 1px #3f3f46}
36
+ :host([theme=dark]) .txt small{color:rgba(255,255,255,.65)}
37
+ :host([theme=light]) button{background:#fff;color:#09090b;border:1px solid #d4d4d8;box-shadow:0 1px 2px rgba(0,0,0,.06)}
38
+ :host([theme=light]) button:hover{background:#fafafa;border-color:#f59e0b}
39
+ :host([theme=light]) button:active{background:#f4f4f5}
40
+ :host([theme=light]) .txt small{color:#52525b}
41
+ /* not found */
42
+ .nf{margin-top:8px;font-size:12px;line-height:1.4;color:#71717a;text-align:center}
43
+ .nf a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px}
44
+ .nf a:focus-visible{outline:2px solid #b45309;outline-offset:2px;border-radius:2px}
45
+ :host([theme=dark]) .nf,:host-context(.dark) .nf{color:#a1a1aa}
46
+ .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
47
+ `;function ii(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function On(r){let e=c=>ii(crypto.getRandomValues(new Uint8Array(c))),t=e(32),n=e(16),i=e(16),s=new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(t))),o=new URL(r.authorizeUrl,typeof location<"u"?location.href:void 0),a=(c,f)=>{f&&o.searchParams.set(c,f)};a("response_type","code"),a("client_id",r.clientId),a("redirect_uri",r.redirectUri),a("scope",r.scope||"openid profile"),a("state",n),a("nonce",i),a("code_challenge",ii(s)),a("code_challenge_method","S256");try{sessionStorage.setItem("bwalletx:oauth",JSON.stringify({verifier:t,state:n,nonce:i}))}catch{}return o.toString()}async function si(r,e){let t=await fetch(r,{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));if(!t.ok)throw new Error(n.error??`HTTP ${t.status}`);return n}var qs=["size","theme","label","brand","subtitle","loading","disabled","full-width","aria-label","get-url","web-url"];function Ds(){var r,e,t,n,D,Zt,lt,Ln,oi,f;return f=class extends HTMLElement{constructor(){super();P(this,n);P(this,r);P(this,e,!1);P(this,t,!1);I(this,r,this.attachShadow({mode:"open"}))}static get observedAttributes(){return qs}connectedCallback(){d(this,n,Zt).call(this)}attributeChangedCallback(){this.isConnected&&d(this,n,Zt).call(this)}get button(){return u(this,r).querySelector("button")}get notFound(){return u(this,e)}focus(g){this.button?.focus(g)}},r=new WeakMap,e=new WeakMap,t=new WeakMap,n=new WeakSet,D=function(g){return this.getAttribute(g)},Zt=function(){let g=d(this,n,D).call(this,"size")??"lg",y=d(this,n,D).call(this,"brand")==="bWallet"?"bWallet":"bWalletX",w=Hn(d(this,n,D).call(this,"label")??"signin",y),x=d(this,n,D).call(this,"subtitle"),N=x===null||x===""||x==="on"?x==="on"?"also works with bWallet":y==="bWalletX"&&(g==="lg"||g==="md")?"also works with bWallet":null:x==="off"?null:x,L=this.hasAttribute("loading")||u(this,t),_=this.hasAttribute("disabled"),R=g==="icon"?24:g==="sm"?15:g==="md"?17:20,O=d(this,n,D).call(this,"aria-label")??(N&&g!=="icon"?`${w}, ${N}`:w),V=d(this,n,D).call(this,"get-url")??Un,We=d(this,n,D).call(this,"web-url")??Cn,ee=Xe=>Xe.replace(/[&<>"]/g,Le=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[Le]),J=g==="icon"?"":`<span class="txt" part="text"><b part="label">${ee(w)}</b>${N?`<small part="subtitle">${ee(N)}</small>`:""}</span>`,Q=L?'<span class="spin" aria-hidden="true"></span>':_n(R),Te=u(this,e)?`<p class="nf" part="not-found" role="status">bWalletX wasn't found in this browser. <a href="${ee(V)}" target="_blank" rel="noopener">Get ${y}</a> or <a href="${ee(We)}" target="_blank" rel="noopener">use the web wallet</a>.</p>`:"";u(this,r).innerHTML=`<style>${zn}</style><button type="button" part="button" aria-label="${ee(O)}" title="${ee(N?`${w} (${N})`:w)}"${_?" disabled":""}${L?' aria-busy="true"':""}><span class="mark" part="mark">${Q}</span>${J}</button>${L?'<span class="sr" role="status">Connecting to bWalletX\u2026</span>':""}${Te}`,this.button.addEventListener("click",()=>{d(this,n,oi).call(this)})},lt=function(g,y,w=!1){return this.dispatchEvent(new CustomEvent(g,{detail:y,bubbles:!0,composed:!0,cancelable:w}))},Ln=function(g){I(this,t,g),d(this,n,Zt).call(this)},oi=async function(){if(this.hasAttribute("disabled")||this.hasAttribute("loading")||u(this,t)||!d(this,n,lt).call(this,"bwalletx-signin",{element:this},!0))return;let g=d(this,n,D).call(this,"href"),y=d(this,n,D).call(this,"authorize-url");if(y){location.assign(await On({authorizeUrl:y,clientId:d(this,n,D).call(this,"client-id"),redirectUri:d(this,n,D).call(this,"redirect-uri"),scope:d(this,n,D).call(this,"scope")}));return}if(g){location.assign(g);return}let w=d(this,n,D).call(this,"challenge-url");if(w){I(this,e,!1),d(this,n,Ln).call(this,!0);try{let x=Number(d(this,n,D).call(this,"discover-ms"))||1200,k=await pe(x);if(!k){I(this,e,!0),d(this,n,lt).call(this,"bwalletx-not-found");return}let N=await $t({wallet:k.wallet,challenge:R=>si(w,{identityKey:R})}),L=d(this,n,D).call(this,"verify-url"),_=L?await si(L,{identityKey:N.identityKey,nonce:N.nonce,signature:N.signature}):null;d(this,n,lt).call(this,"bwalletx-signed-in",{identityKey:N.identityKey,method:k.method,nonce:N.nonce,signature:N.signature,response:_})}catch(x){d(this,n,lt).call(this,"bwalletx-error",{error:x})}finally{d(this,n,Ln).call(this,!1)}}},f}function Gt(r=Pn){if(typeof window>"u"||typeof customElements>"u")return;let e=customElements.get(r);if(e)return e;let t=Ds();return customElements.define(r,t),t}var $s=`
48
+ .bwx-signin{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:10px 22px 10px 10px;border:0;border-radius:12px;cursor:pointer;background:linear-gradient(180deg,#fcd34d,#f59e0b);color:#000;text-align:left;font:700 16px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;box-shadow:0 8px 24px rgba(245,158,11,.2)}
49
+ .bwx-signin:hover{background:linear-gradient(180deg,#fde68a,#fbbf24)}
50
+ .bwx-signin:focus-visible{outline:2px solid #ffd24d;outline-offset:3px}
51
+ .bwx-signin:disabled{opacity:.6;cursor:wait}
52
+ .bwx-signin .bwx-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#000;flex:none}
53
+ .bwx-signin small{display:block;font-size:11px;font-weight:500;color:rgba(0,0,0,.6)}`,Fn="https://bwalletx.com/logo.svg";function ai(r,e={}){let t=typeof r=="string"?document.querySelector(r):r;if(!t)throw new Error(`renderButton: no element ${String(r)}`);if(!document.getElementById("bwx-signin-css")){let c=document.createElement("style");c.id="bwx-signin-css",c.textContent=$s,document.head.appendChild(c)}let n=document.createElement("button");n.type="button",n.className="bwx-signin";let i=document.createElement("span");i.className="bwx-mark";let s=document.createElement("img");s.src=Fn,s.alt="",s.width=15,s.height=20,i.appendChild(s);let o=document.createElement("span");o.className="bwx-label",o.textContent="Sign in with bWalletX";let a=e.subtitle===void 0?"also works with bWallet":e.subtitle;if(a){let c=document.createElement("small");c.textContent=a,o.appendChild(c)}return n.append(i,o),e.onClick&&n.addEventListener("click",()=>e.onClick(n)),t.replaceChildren(n),n}Gt();return pi(Zs);})();
54
+ //# sourceMappingURL=bwalletx-connect.global.js.map