UNPKG

@smartpy/smartml

Version:

SmartML

3 lines 8.45 MB
var global=void 0!==global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e=void 0!==global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function t(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}var r=t,i=n;function a(a){if(r===setTimeout)return setTimeout(a,0);if((r===t||!r)&&setTimeout)return r=setTimeout,setTimeout(a,0);try{return r(a,0)}catch(e){try{return r.call(null,a,0)}catch(e){return r.call(this,a,0)}}}"function"==typeof e.setTimeout&&(r=setTimeout),"function"==typeof e.clearTimeout&&(i=clearTimeout);var f,u=[],c=!1,o=-1;function l(){c&&f&&(c=!1,f.length?u=f.concat(u):o=-1,u.length&&s$1())}function s$1(){if(!c){var r=a(l);c=!0;for(var e=u.length;e;){for(f=u,u=[];++o<e;)f&&f[o].run();o=-1,e=u.length}f=null,c=!1,function(r){if(i===clearTimeout)return clearTimeout(r);if((i===n||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(r);try{i(r)}catch(a){try{return i.call(null,r)}catch(a){return i.call(this,r)}}}(r)}}function d(r,a){this.fun=r,this.array=a}function b(){}d.prototype.run=function(){this.fun.apply(null,this.array)};var p=b,y=b,m=b,h=b,w=b,E=b,g=b,x=e.performance||{},v=x.now||x.mozNow||x.msNow||x.oNow||x.webkitNow||function(){return(new Date).getTime()},O=new Date,R={nextTick:function(r){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];u.push(new d(r,e)),1!==u.length||c||a(s$1)},title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:p,addListener:y,once:m,off:h,removeListener:w,removeAllListeners:E,emit:g,binding:function(r){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(r){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(r){var a=.001*v.call(x),e=Math.floor(a),n=Math.floor(a%1*1e9);return r&&(e-=r[0],(n-=r[1])<0&&(e--,n+=1e9)),[e,n]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-O)/1e3}};function q(r){if(r.__esModule)return r;var a=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(r).forEach((function(e){var n=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(a,e,n.get?n:{enumerable:!0,get:function(){return r[e]}})})),a}function F(r){var a={exports:{}};return r(a,a.exports),a.exports}var P=F((function(r,a){Object.defineProperty(a,"__esModule",{value:!0}),a.isogenyCoefficients=a.psi2=a.psi=a.millerLoop=a.calcPairingPrecomputes=a.isogenyMapG2=a.map_to_curve_SSWU_G2=a.ProjectivePoint=a.Fq12=a.Fq6=a.Fq2=a.Fr=a.Fq=a.powMod=a.mod=a.DST_LABEL=a.CURVE=void 0,a.CURVE={P:0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn,r:0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001n,h:0x396c8c005555e1568c00aaab0000aaabn,Gx:0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbn,Gy:0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1n,b:4n,P2:0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn**2n-1n,h2:0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5n,G2x:[0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8n,0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7en],G2y:[0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801n,0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79ben],b2:[4n,4n],x:0xd201000000010000n,h_eff:0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551n},a.DST_LABEL="BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_";const e=i(a.CURVE.x);function n(r,a){const e=r%a;return e>=0n?e:a+e}function t(r,a,e){let n=1n;for(;a>0n;)1n&a&&(n=n*r%e),r=r*r%e,a>>=1n;return n}function i(r){let a;for(a=0;r>0n;r>>=1n,a+=1);return a}function c(r,a){return r>>BigInt(a)&1n}function u(r,e=a.CURVE.P){if(0n===r||e<=0n)throw new Error("invert: expected positive integers");let t=n(r,e),i=e,[c,u,f,o]=[0n,1n,1n,0n];for(;0n!==t;){const r=i/t,a=i%t,e=c-f*r,n=u-o*r;[i,t]=[t,a],[c,u]=[f,o],[f,o]=[e,n]}if(1n!==i)throw new Error("invert: does not exist");return n(c,e)}a.mod=n,a.powMod=t;class f{constructor(r){this.value=n(r,f.ORDER)}isZero(){return 0n===this.value}equals(r){return this.value===r.value}negate(){return new f(-this.value)}invert(){return new f(u(this.value,f.ORDER))}add(r){return new f(this.value+r.value)}square(){return new f(this.value*this.value)}pow(r){return new f(t(this.value,r,f.ORDER))}subtract(r){return new f(this.value-r.value)}multiply(r){return r instanceof f&&(r=r.value),new f(this.value*r)}div(r){const a="bigint"==typeof r?new f(r).invert().value:r.invert();return this.multiply(a)}toString(){const r=this.value.toString(16).padStart(96,"0");return r.slice(0,2)+"."+r.slice(-2)}}a.Fq=f,f.ORDER=a.CURVE.P,f.MAX_BITS=i(a.CURVE.P),f.ZERO=new f(0n),f.ONE=new f(1n);class o{constructor(r){this.value=n(r,o.ORDER)}static isValid(r){return r<=o.ORDER}isZero(){return 0n===this.value}equals(r){return this.value===r.value}negate(){return new o(-this.value)}invert(){return new o(u(this.value,o.ORDER))}add(r){return new o(this.value+r.value)}square(){return new o(this.value*this.value)}pow(r){return new o(t(this.value,r,o.ORDER))}subtract(r){return new o(this.value-r.value)}multiply(r){return r instanceof o&&(r=r.value),new o(this.value*r)}div(r){const a="bigint"==typeof r?new o(r).invert().value:r.invert();return this.multiply(a)}legendre(){return this.pow((o.ORDER-1n)/2n)}sqrt(){if(!this.legendre().equals(o.ONE))return;const r=o.ORDER;let a,e,i;for(a=r-1n,e=0;a%2n===0n;a/=2n,e++);if(1===e)return this.pow((r+1n)/4n);for(i=2n;i<r&&new o(i).legendre().value!==r-1n;i++);let c=t(i,a,r),u=t(this.value,(a+1n)/2n,r),f=t(this.value,a,r),b=0n;for(;0n!==n(f-1n,r);){let a;for(b=n(f*f,r),a=1;a<e&&0n!==n(b-1n,r);a++)b=n(b*b,r);let i=t(c,BigInt(1<<e-a-1),r);u=n(u*i,r),c=n(i*i,r),f=n(f*c,r),e=a}return new o(u)}toString(){return"0x"+this.value.toString(16).padStart(64,"0")}}a.Fr=o,o.ORDER=a.CURVE.r,o.ZERO=new o(0n),o.ONE=new o(1n);class b{zip(r,a){const e=this.c,n=r.c,t=[];for(let r=0;r<e.length;r++)t.push(a(e[r],n[r]));return t}map(r){return this.c.map(r)}isZero(){return this.c.every((r=>r.isZero()))}equals(r){return this.zip(r,((r,a)=>r.equals(a))).every((r=>r))}negate(){return this.init(this.map((r=>r.negate())))}add(r){return this.init(this.zip(r,((r,a)=>r.add(a))))}subtract(r){return this.init(this.zip(r,((r,a)=>r.subtract(a))))}conjugate(){return this.init([this.c[0],this.c[1].negate()])}one(){const r=this;let a;return r instanceof g&&(a=g.ONE),r instanceof p&&(a=p.ONE),r instanceof m&&(a=m.ONE),a}pow(r){const a=this.one();if(0n===r)return a;if(1n===r)return this;let e=a,n=this;for(;r>0n;)1n&r&&(e=e.multiply(n)),r>>=1n,n=n.square();return e}div(r){const a="bigint"==typeof r?new f(r).invert().value:r.invert();return this.multiply(a)}}const s=0x6af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09n,v=0x699be3b8c6870965e5bf892ad5d2cc7b0e85a117402dfd83b7f4a947e02d978498255a2aaec0ac627b5afbdf1bf1c90n,d=0x8157cd83046453f5dd0972b6e3949e4288020b5b8a9cc99ca07e27089a2ce2436d965026adad3ef7baba37f2183e9b5n,l=0xab1c2ffdd6c253ca155231eb3e71ba044fd562f6f72bc5bad5ec46a0b7a3b0247cf08ce6c6317f40edbc653a72dee17n,h=0xaa404866706722864480885d68ad0ccac1967c7544b447873cc37e0181271e006df72162a3d3e0287bf597fbf7f8fc1n;class g extends b{constructor(r){if(super(),2!==r.length)throw new Error("Expected array with 2 elements");r.forEach(((a,e)=>{"bigint"==typeof a&&(r[e]=new f(a))})),this.c=r}init(r){return new g(r)}toString(){return`Fq2(${this.c[0]} + ${this.c[1]}×i)`}get values(){return this.c.map((r=>r.value))}multiply(r){if("bigint"==typeof r)return new g(this.map((a=>a.multiply(r))));const[a,e]=this.c,[n,t]=r.c;let i=a.multiply(n),c=e.multiply(t);return new g([i.subtract(c),a.add(e).multiply(n.add(t)).subtract(i.add(c))])}mulByNonresidue(){const r=this.c[0],a=this.c[1];return new g([r.subtract(a),r.add(a)])}square(){const r=this.c[0],a=this.c[1],e=r.add(a),n=r.subtract(a),t=r.add(r);return new g([e.multiply(n),t.multiply(a)])}sqrt(){const r=this.pow((g.ORDER+8n)/16n),a=r.square().div(this),e=g.ROOTS_OF_UNITY,n=[e[0],e[2],e[4],e[6]].find((r=>r.equals(a)));if(!n)return;const t=e.indexOf(n),i=e[t/2];if(!i)throw new Error("Invalid root");const c=r.div(i),u=c.negate(),[f,o]=c.values,[b,s]=u.values;return o>s||o===s&&f>b?c:u}invert(){const[r,a]=this.values,e=new f(r*r+a*a).invert();return new g([e.multiply(new f(r)),e.multiply(new f(-a))])}frobeniusMap(r){return new g([this.c[0],this.c[1].multiply(g.FROBENIUS_COEFFICIENTS[r%2])])}multiplyByB(){let[r,a]=this.c,e=r.multiply(4n),n=a.multiply(4n);return new g([e.subtract(n),e.add(n)])}}a.Fq2=g,g.ORDER=a.CURVE.P2,g.MAX_BITS=i(a.CURVE.P2),g.ROOT=new f(-1n),g.ZERO=new g([0n,0n]),g.ONE=new g([1n,0n]),g.COFACTOR=a.CURVE.h2,g.ROOTS_OF_UNITY=[new g([1n,0n]),new g([s,-s]),new g([0n,1n]),new g([s,s]),new g([-1n,0n]),new g([-s,s]),new g([0n,-1n]),new g([-s,-s])],g.ETAs=[new g([v,d]),new g([-d,v]),new g([l,h]),new g([-h,l])],g.FROBENIUS_COEFFICIENTS=[new f(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001n),new f(0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaaan)];class p extends b{constructor(r){if(super(),this.c=r,3!==r.length)throw new Error("Expected array with 3 elements")}static fromTuple(r){return new p([new g(r.slice(0,2)),new g(r.slice(2,4)),new g(r.slice(4,6))])}init(r){return new p(r)}toString(){return`Fq6(${this.c[0]} + ${this.c[1]} * v, ${this.c[2]} * v^2)`}conjugate(){throw new TypeError("No conjugate on Fq6")}multiply(r){if("bigint"==typeof r)return new p([this.c[0].multiply(r),this.c[1].multiply(r),this.c[2].multiply(r)]);let[a,e,n]=this.c;const[t,i,c]=r.c;let u=a.multiply(t),f=e.multiply(i),o=n.multiply(c);return new p([u.add(e.add(n).multiply(i.add(c)).subtract(f.add(o)).mulByNonresidue()),a.add(e).multiply(t.add(i)).subtract(u.add(f)).add(o.mulByNonresidue()),f.add(a.add(n).multiply(t.add(c)).subtract(u.add(o)))])}mulByNonresidue(){return new p([this.c[2].mulByNonresidue(),this.c[0],this.c[1]])}multiplyBy1(r){return new p([this.c[2].multiply(r).mulByNonresidue(),this.c[0].multiply(r),this.c[1].multiply(r)])}multiplyBy01(r,a){let[e,n,t]=this.c,i=e.multiply(r),c=n.multiply(a);return new p([n.add(t).multiply(a).subtract(c).mulByNonresidue().add(i),r.add(a).multiply(e.add(n)).subtract(i).subtract(c),e.add(t).multiply(r).subtract(i).add(c)])}multiplyByFq2(r){return new p(this.map((a=>a.multiply(r))))}square(){let[r,a,e]=this.c,n=r.square(),t=r.multiply(a).multiply(2n),i=a.multiply(e).multiply(2n),c=e.square();return new p([i.mulByNonresidue().add(n),c.mulByNonresidue().add(t),t.add(r.subtract(a).add(e).square()).add(i).subtract(n).subtract(c)])}invert(){let[r,a,e]=this.c,n=r.square().subtract(e.multiply(a).mulByNonresidue()),t=e.square().mulByNonresidue().subtract(r.multiply(a)),i=a.square().subtract(r.multiply(e)),c=e.multiply(t).add(a.multiply(i)).mulByNonresidue().add(r.multiply(n)).invert();return new p([c.multiply(n),c.multiply(t),c.multiply(i)])}frobeniusMap(r){return new p([this.c[0].frobeniusMap(r),this.c[1].frobeniusMap(r).multiply(p.FROBENIUS_COEFFICIENTS_1[r%6]),this.c[2].frobeniusMap(r).multiply(p.FROBENIUS_COEFFICIENTS_2[r%6])])}}a.Fq6=p,p.ZERO=new p([g.ZERO,g.ZERO,g.ZERO]),p.ONE=new p([g.ONE,g.ZERO,g.ZERO]),p.FROBENIUS_COEFFICIENTS_1=[new g([0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001n,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n,0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaacn]),new g([0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffen,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001n]),new g([0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaacn,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n,0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffen])],p.FROBENIUS_COEFFICIENTS_2=[new g([0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001n,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaadn,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaacn,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaaan,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffen,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffeffffn,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n])];class m extends b{constructor(r){if(super(),this.c=r,2!==r.length)throw new Error("Expected array with 2 elements")}static fromTuple(r){return new m([p.fromTuple(r.slice(0,6)),p.fromTuple(r.slice(6,12))])}init(r){return new m(r)}toString(){return`Fq12(${this.c[0]} + ${this.c[1]} * w)`}multiply(r){if("bigint"==typeof r)return new m([this.c[0].multiply(r),this.c[1].multiply(r)]);let[a,e]=this.c;const[n,t]=r.c;let i=a.multiply(n),c=e.multiply(t);return new m([i.add(c.mulByNonresidue()),a.add(e).multiply(n.add(t)).subtract(i.add(c))])}multiplyBy014(r,a,e){let[n,t]=this.c,[i,c]=[n.multiplyBy01(r,a),t.multiplyBy1(e)];return new m([c.mulByNonresidue().add(i),t.add(n).multiplyBy01(r,a.add(e)).subtract(i).subtract(c)])}multiplyByFq2(r){return this.init(this.map((a=>a.multiplyByFq2(r))))}square(){let[r,a]=this.c,e=r.multiply(a);return new m([a.mulByNonresidue().add(r).multiply(r.add(a)).subtract(e).subtract(e.mulByNonresidue()),e.add(e)])}invert(){let[r,a]=this.c,e=r.square().subtract(a.square().mulByNonresidue()).invert();return new m([r.multiply(e),a.multiply(e).negate()])}frobeniusMap(r){const[a,e]=this.c;let n=a.frobeniusMap(r),[t,i,c]=e.frobeniusMap(r).c;return new m([n,new p([t.multiply(m.FROBENIUS_COEFFICIENTS[r%12]),i.multiply(m.FROBENIUS_COEFFICIENTS[r%12]),c.multiply(m.FROBENIUS_COEFFICIENTS[r%12])])])}Fq4Square(r,a){const e=r.square(),n=a.square();return[n.mulByNonresidue().add(e),r.add(a).square().subtract(e).subtract(n)]}cyclotomicSquare(){const[r,a]=this.c,[e,n,t]=r.c,[i,c,u]=a.c;let[f,o]=this.Fq4Square(e,c),[b,s]=this.Fq4Square(i,t),[v,d]=this.Fq4Square(n,u),l=d.mulByNonresidue();return new m([new p([f.subtract(e).multiply(2n).add(f),b.subtract(n).multiply(2n).add(b),v.subtract(t).multiply(2n).add(v)]),new p([l.add(i).multiply(2n).add(l),o.add(c).multiply(2n).add(o),s.add(u).multiply(2n).add(s)])])}cyclotomicExp(r){let a=m.ONE;for(let n=e-1;n>=0;n--)a=a.cyclotomicSquare(),c(r,n)&&(a=a.multiply(this));return a}finalExponentiate(){const{x:r}=a.CURVE,e=this.frobeniusMap(6).div(this),n=e.frobeniusMap(2).multiply(e),t=n.cyclotomicExp(r).conjugate(),i=n.cyclotomicSquare().conjugate().multiply(t),c=i.cyclotomicExp(r).conjugate(),u=c.cyclotomicExp(r).conjugate(),f=u.cyclotomicExp(r).conjugate().multiply(t.cyclotomicSquare()),o=f.cyclotomicExp(r).conjugate(),b=t.multiply(u).frobeniusMap(2),s=c.multiply(n).frobeniusMap(3),v=f.multiply(n.conjugate()).frobeniusMap(1),d=o.multiply(i.conjugate()).multiply(n);return b.multiply(s).multiply(v).multiply(d)}}function _(r){const[a,e]=r.values;return BigInt(a%2n||0n===a&&e%2n)}a.Fq12=m,m.ZERO=new m([p.ZERO,p.ZERO]),m.ONE=new m([p.ONE,p.ZERO]),m.FROBENIUS_COEFFICIENTS=[new g([0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001n,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x1904d3bf02bb0667c231beb4202c0d1f0fd603fd3cbd5f4f7b2443d784bab9c4f67ea53d63e7813d8d0775ed92235fb8n,0x00fc3e2b36c4e03288e9e902231f9fb854a14787b6c7b36fec0c8ec971f63c5f282d5ac14d6c7ec22cf78a126ddc4af3n]),new g([0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffeffffn,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x135203e60180a68ee2e9c448d77a2cd91c3dedd930b1cf60ef396489f61eb45e304466cf3e67fa0af1ee7b04121bdea2n,0x06af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09n]),new g([0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffen,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x144e4211384586c16bd3ad4afa99cc9170df3560e77982d0db45f3536814f0bd5871c1908bd478cd1ee605167ff82995n,0x05b2cfd9013a5fd8df47fa6b48b1e045f39816240c0b8fee8beadf4d8e9c0566c63a3e6e257f87329b18fae980078116n]),new g([0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaaan,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x00fc3e2b36c4e03288e9e902231f9fb854a14787b6c7b36fec0c8ec971f63c5f282d5ac14d6c7ec22cf78a126ddc4af3n,0x1904d3bf02bb0667c231beb4202c0d1f0fd603fd3cbd5f4f7b2443d784bab9c4f67ea53d63e7813d8d0775ed92235fb8n]),new g([0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaacn,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x06af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09n,0x135203e60180a68ee2e9c448d77a2cd91c3dedd930b1cf60ef396489f61eb45e304466cf3e67fa0af1ee7b04121bdea2n]),new g([0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaadn,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n]),new g([0x05b2cfd9013a5fd8df47fa6b48b1e045f39816240c0b8fee8beadf4d8e9c0566c63a3e6e257f87329b18fae980078116n,0x144e4211384586c16bd3ad4afa99cc9170df3560e77982d0db45f3536814f0bd5871c1908bd478cd1ee605167ff82995n])],a.ProjectivePoint=class{constructor(r,a,e,n){this.x=r,this.y=a,this.z=e,this.C=n}isZero(){return this.z.isZero()}getPoint(r,a,e){return new this.constructor(r,a,e)}getZero(){return this.getPoint(this.C.ONE,this.C.ONE,this.C.ZERO)}equals(r){if(this.constructor!==r.constructor)throw new Error(`ProjectivePoint#equals: this is ${this.constructor}, but rhs is ${r.constructor}`);const a=this,e=r,n=a.x.multiply(e.z).equals(e.x.multiply(a.z)),t=a.y.multiply(e.z).equals(e.y.multiply(a.z));return n&&t}negate(){return this.getPoint(this.x,this.y.negate(),this.z)}toString(r=!0){if(!r)return`Point<x=${this.x}, y=${this.y}, z=${this.z}>`;const[a,e]=this.toAffine();return`Point<x=${a}, y=${e}>`}fromAffineTuple(r){return this.getPoint(r[0],r[1],this.C.ONE)}toAffine(r=this.z.invert()){return[this.x.multiply(r),this.y.multiply(r)]}toAffineBatch(r){const a=function(r,a){const e=a.length,n=new Array(e);let t=r.ONE;for(let r=0;r<e;r++)a[r].isZero()||(n[r]=t,t=t.multiply(a[r]));t=t.invert();for(let r=e-1;r>=0;r--){if(a[r].isZero())continue;let e=t.multiply(a[r]);a[r]=t.multiply(n[r]),t=e}return a}(this.C,r.map((r=>r.z)));return r.map(((r,e)=>r.toAffine(a[e])))}normalizeZ(r){return this.toAffineBatch(r).map((r=>this.fromAffineTuple(r)))}double(){const{x:r,y:a,z:e}=this,n=r.multiply(r).multiply(3n),t=a.multiply(e),i=t.multiply(t),c=i.multiply(t),u=r.multiply(a).multiply(t),f=n.multiply(n).subtract(u.multiply(8n)),o=f.multiply(t).multiply(2n),b=n.multiply(u.multiply(4n).subtract(f)).subtract(a.multiply(a).multiply(8n).multiply(i)),s=c.multiply(8n);return this.getPoint(o,b,s)}add(r){if(this.constructor!==r.constructor)throw new Error(`ProjectivePoint#add: this is ${this.constructor}, but rhs is ${r.constructor}`);const a=this,e=r;if(a.isZero())return e;if(e.isZero())return a;const n=a.x,t=a.y,i=a.z,c=e.x,u=e.y,f=e.z,o=u.multiply(i),b=t.multiply(f),s=c.multiply(i),v=n.multiply(f);if(s.equals(v)&&o.equals(b))return this.double();if(s.equals(v))return this.getZero();const d=o.subtract(b),l=s.subtract(v),h=l.multiply(l),g=h.multiply(l),p=v.multiply(h),m=i.multiply(f),_=d.multiply(d).multiply(m).subtract(g).subtract(p.multiply(2n)),y=l.multiply(_),k=d.multiply(p.subtract(_)).subtract(g.multiply(b)),j=g.multiply(m);return this.getPoint(y,k,j)}subtract(r){if(this.constructor!==r.constructor)throw new Error(`ProjectivePoint#subtract: this is ${this.constructor}, but rhs is ${r.constructor}`);return this.add(r.negate())}multiplyUnsafe(r){let a=r;if(a instanceof f&&(a=a.value),"number"==typeof a&&(a=BigInt(a)),a<0)throw new Error("Point#multiply: invalid scalar, expected positive integer");let e=this.getZero(),n=this;for(;a>0n;)1n&a&&(e=e.add(n)),n=n.double(),a>>=1n;return e}multiply(r){let a=r;if("bigint"!=typeof a||a<0)throw new Error("Point#multiply: invalid scalar, expected positive integer");let e=this.getZero(),n=this,t=this.getZero(),i=f.ORDER;if(a>i)throw new Error("higher:"+a);for(;i>0n;)1n&a?e=e.add(n):t=t.add(n),n=n.double(),a>>=1n,i>>=1n;return e}maxBits(){return this.C.MAX_BITS}precomputeWindow(r){const a=Math.ceil(this.maxBits()/r),e=2**(r-1);let n=[],t=this,i=t;for(let r=0;r<a;r++){i=t,n.push(i);for(let r=1;r<e;r++)i=i.add(t),n.push(i);t=i.double()}return n}calcMultiplyPrecomputes(r){if(this._MPRECOMPUTES)throw new Error("This point already has precomputes");this._MPRECOMPUTES=[r,this.normalizeZ(this.precomputeWindow(r))]}clearMultiplyPrecomputes(){this._MPRECOMPUTES=void 0}wNAF(r){let a,e;this._MPRECOMPUTES?[a,e]=this._MPRECOMPUTES:(a=1,e=this.precomputeWindow(a));let[n,t]=[this.getZero(),this.getZero()];const i=Math.ceil(this.maxBits()/a),c=2**(a-1),u=BigInt(2**a-1),f=2**a,o=BigInt(a);for(let a=0;a<i;a++){const i=a*c;let b=Number(r&u);if(r>>=o,b>c&&(b-=f,r+=1n),0===b)t=t.add(a%2?e[i].negate():e[i]);else{const r=e[i+Math.abs(b)-1];n=n.add(b<0?r.negate():r)}}return[n,t]}multiplyPrecomputed(r){if("bigint"!=typeof r||r<1n)throw new Error("ProjectivePoint#multiply: invalid scalar, expected positive integer");return this.wNAF(r)[0]}};const y=(a.CURVE.P**2n-9n)/16n;a.map_to_curve_SSWU_G2=function(r){const a=new g([0n,240n]),e=new g([1012n,1012n]),n=new g([-2n,-1n]);Array.isArray(r)&&(r=new g(r));const t=r.pow(2n),i=n.multiply(t),c=i.add(i.pow(2n));let u=a.multiply(c).negate(),f=e.multiply(c.add(g.ONE));u.isZero()&&(u=n.multiply(a));let o=u.pow(3n),b=f.pow(3n).add(a.multiply(f).multiply(u.pow(2n))).add(e.multiply(o));const[s,v]=function(r,a){const e=a.pow(7n),n=r.multiply(e),t=n.multiply(e.multiply(a)).pow(y).multiply(n);let i=!1,c=t;const u=g.ROOTS_OF_UNITY.slice(0,4);for(const e of u){const n=e.multiply(t);n.pow(2n).multiply(a).subtract(r).isZero()&&!i&&(i=!0,c=n)}return[i,c]}(b,o);let d;s&&(d=v);const l=v.multiply(r.pow(3n));b=i.pow(3n).multiply(b);let h=!1;for(const r of g.ETAs){const a=r.multiply(l);!a.pow(2n).multiply(o).subtract(b).isZero()||s||h||(d=a,h=!0)}if(!s&&!h)throw new Error("Hash to Curve - Optimized SWU failure");return h&&(f=f.multiply(i)),d=d,_(r)!==_(d)&&(d=d.negate()),d=d.multiply(u),[f,d,u]},a.isogenyMapG2=function(r){const[e,n,t]=r,i=[g.ZERO,g.ZERO,g.ZERO,g.ZERO],c=[t,t.pow(2n),t.pow(3n)];for(let r=0;r<a.isogenyCoefficients.length;r++){const n=a.isogenyCoefficients[r];i[r]=n.slice(-1)[0];const t=n.slice(0,-1).reverse();for(let a=0;a<t.length;a++){const n=t[a];i[r]=i[r].multiply(e).add(c[a].multiply(n))}}i[2]=i[2].multiply(n),i[3]=i[3].multiply(t);const u=i[1].multiply(i[3]);return[i[0].multiply(i[3]),i[1].multiply(i[2]),u]},a.calcPairingPrecomputes=function(r,n){const[t,i,u]=[r,n,g.ONE];let[f,o,b]=[t,i,u],s=[];for(let r=e-2;r>=0;r--){let e=o.square(),n=b.square(),u=n.multiply(3n).multiplyByB(),v=u.multiply(3n),d=o.add(b).square().subtract(n).subtract(e);if(s.push([u.subtract(e),f.square().multiply(3n),d.negate()]),f=e.subtract(v).multiply(f).multiply(o).div(2n),o=e.add(v).div(2n).square().subtract(u.square().multiply(3n)),b=e.multiply(d),c(a.CURVE.x,r)){let r=o.subtract(i.multiply(b)),a=f.subtract(t.multiply(b));s.push([r.multiply(t).subtract(a.multiply(i)),r.negate(),a]);let e=a.square(),n=e.multiply(a),c=e.multiply(f),u=n.subtract(c.multiply(2n)).add(r.square().multiply(b));f=a.multiply(u),o=c.subtract(u).multiply(r).subtract(n.multiply(o)),b=b.multiply(n)}}return s},a.millerLoop=function(r,n){let t=m.ONE;const[i,u]=n,[f,o]=[i,u];for(let n=0,i=e-2;i>=0;i--,n++)t=t.multiplyBy014(r[n][0],r[n][1].multiply(f.value),r[n][2].multiply(o.value)),c(a.CURVE.x,i)&&(n+=1,t=t.multiplyBy014(r[n][0],r[n][1].multiply(f.value),r[n][2].multiply(o.value))),0!==i&&(t=t.square());return t.conjugate()};const k=new p([g.ZERO,g.ONE,g.ZERO]),j=new m([k,p.ZERO]),w=j.invert(),x=new m([p.ZERO,k]),A=x.invert();a.psi=function(r,a){return[w.multiplyByFq2(r).frobeniusMap(1).multiply(j).c[0].c[0],A.multiplyByFq2(a).frobeniusMap(1).multiply(x).c[0].c[0]]};const E=0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaacn;a.psi2=function(r,a){return[r.multiply(E),a.negate()]};const S=[new g([0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6n,0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6n]),new g([0x0n,0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71an]),new g([0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71en,0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38dn]),new g([0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1n,0x0n])],C=[new g([0x0n,0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63n]),new g([0xcn,0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9fn]),g.ONE,g.ZERO],T=[new g([0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706n,0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706n]),new g([0x0n,0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97ben]),new g([0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71cn,0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38fn]),new g([0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10n,0x0n])],B=[new g([0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fbn,0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fbn]),new g([0x0n,0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3n]),new g([0x12n,0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99n]),new g([0x1n,0x0n])];a.isogenyCoefficients=[S,C,T,B]})),S=q(Object.freeze({__proto__:null,default:{}})),B=F((function(r,a){ /*! noble-bls12-381 - MIT License (c) Paul Miller (paulmillr.com) */ Object.defineProperty(a,"__esModule",{value:!0}),a.verifyBatch=a.aggregateSignatures=a.aggregatePublicKeys=a.verify=a.sign=a.getPublicKey=a.pairing=a.PointG2=a.clearCofactorG2=a.PointG1=a.hash_to_field=a.utils=a.CURVE=a.Fq12=a.Fq2=a.Fr=a.Fq=a.DST_LABEL=void 0,Object.defineProperty(a,"Fq",{enumerable:!0,get:function(){return P.Fq}}),Object.defineProperty(a,"Fr",{enumerable:!0,get:function(){return P.Fr}}),Object.defineProperty(a,"Fq2",{enumerable:!0,get:function(){return P.Fq2}}),Object.defineProperty(a,"Fq12",{enumerable:!0,get:function(){return P.Fq12}}),Object.defineProperty(a,"CURVE",{enumerable:!0,get:function(){return P.CURVE}});const e=P.CURVE.P;a.DST_LABEL="BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_";const n=2n**381n,t=2n*n,i=2n*t,c=48;function u(r){let a=0n;for(let e=r.length-1,n=0;e>=0;e--,n++)a+=(255n&BigInt(r[e]))<<8n*BigInt(n);return a}function f(r){let a="";for(let e=0;e<r.length;e++)a+=r[e].toString(16).padStart(2,"0");return a}function o(r){if("string"!=typeof r||r.length%2)throw new Error("Expected valid hex");const a=new Uint8Array(r.length/2);for(let e=0;e<a.length;e++){const n=2*e;a[e]=Number.parseInt(r.slice(n,n+2),16)}return a}function b(r,a){if(r<0n)throw new Error("Expected valid number");if("number"!=typeof a)throw new TypeError("Expected valid padding");return r.toString(16).padStart(2*a,"0")}function s(r){if("string"!=typeof r&&!(r instanceof Uint8Array))throw new TypeError("Expected hex string or Uint8Array")}function v(...r){if(1===r.length)return r[0];const a=r.reduce(((r,a)=>r+a.length),0),e=new Uint8Array(a);for(let a=0,n=0;a<r.length;a++){const t=r[a];e.set(t,n),n+=t.length}return e}function d(r){let a=0n;for(let e=0;e<r.length;e++)a<<=8n,a+=BigInt(r[e]);return a}function l(r,a){if(r<0||r>=1<<8*a)throw new Error(`bad I2OSP call: value=${r} length=${a}`);const e=Array.from({length:a}).fill(0);for(let n=a-1;n>=0;n--)e[n]=255&r,r>>>=8;return new Uint8Array(e)}function h(r,a){const e=new Uint8Array(r.length);for(let n=0;n<r.length;n++)e[n]=r[n]^a[n];return e}async function g(r,e,n=!0){const t=n?2:1,i=e,c=t*i*64,u=function(r){const a=new Uint8Array(r.length);for(let e=0;e<r.length;e++)a[e]=r.charCodeAt(e);return a}(a.DST_LABEL),f=await async function(r,e,n){const t=a.utils.sha256,i=Math.ceil(n/32);if(i>255)throw new Error("Invalid xmd length");const c=v(e,l(e.length,1)),u=l(0,64),f=l(n,2),o=new Array(i),b=await t(v(u,r,f,l(0,1),c));o[0]=await t(v(b,l(1,1),c));for(let r=1;r<=i;r++){const a=[h(b,o[r-1]),l(r+1,1),c];o[r]=await t(v(...a))}return v(...o).slice(0,n)}(r,u,c),o=new Array(t);for(let r=0;r<t;r++){const a=new Array(i);for(let e=0;e<i;e++){const n=64*(e+r*i),t=f.slice(n,n+64);a[e]=P.mod(d(t),P.CURVE.P)}o[r]=a}return o}function p(r){let a;if(r instanceof Uint8Array&&32===r.length)a=u(r);else if("string"==typeof r&&64===r.length)a=BigInt(`0x${r}`);else if("number"==typeof r&&r>0&&Number.isSafeInteger(r))a=BigInt(r);else{if(!("bigint"==typeof r&&r>0n))throw new TypeError("Expected valid private key");a=r}if(a=P.mod(a,P.CURVE.r),a<1n)throw new Error("Private key must be 0 < key < CURVE.r");return a}a.utils={async sha256(r){if("object"==typeof window&&"crypto"in window){const a=await window.crypto.subtle.digest("SHA-256",r.buffer);return new Uint8Array(a)}if("object"==typeof R&&"node"in R.versions){const{createHash:a}=S,e=a("sha256");return e.update(r),Uint8Array.from(e.digest())}throw new Error("The environment doesn't have sha256 function")},randomPrivateKey:(r=32)=>{if("object"==typeof window&&"crypto"in window)return window.crypto.getRandomValues(new Uint8Array(r));if("object"==typeof R&&"node"in R.versions){const{randomBytes:a}=S;return new Uint8Array(a(r).buffer)}throw new Error("The environment doesn't have randomBytes function")},mod:P.mod},a.hash_to_field=g;class m extends P.ProjectivePoint{constructor(r,a,e){super(r,a,e,P.Fq)}static fromHex(r){let a;if(s(r),"string"==typeof r&&(r=o(r)),48===r.length){const c=u(r);if(1n===P.mod(c,i)/t)return this.ZERO;const f=P.mod(c,n),o=P.mod(f**3n+new P.Fq(P.CURVE.b).value,e);let b=P.powMod(o,(e+1n)/4n,e);if(P.powMod(b,2n,e)-o!==0n)throw new Error("The given point is not on G1: y**2 = x**3 + b");const s=P.mod(c,t)/n;2n*b/e!==s&&(b=e-b),a=new m(new P.Fq(f),new P.Fq(b),new P.Fq(1n))}else{if(96!==r.length)throw new Error("Invalid point G1, expected 48/96 bytes");{if(0!=(64&r[0]))return m.ZERO;const e=u(r.slice(0,c)),n=u(r.slice(c));a=new m(new P.Fq(e),new P.Fq(n),P.Fq.ONE)}}return a.assertValidity(),a}static fromPrivateKey(r){return this.BASE.multiplyPrecomputed(p(r))}toRawBytes(r=!1){return o(this.toHex(r))}toHex(r=!1){if(r){let r;if(this.equals(m.ZERO))r=i+t;else{const[a,t]=this.toAffine(),c=2n*t.value/e;r=a.value+c*n+i}return b(r,c)}if(this.equals(m.ZERO))return"4".padEnd(192,"0");{const[r,a]=this.toAffine();return b(r.value,c)+b(a.value,c)}}assertValidity(){const r=new P.Fq(P.CURVE.b);if(this.isZero())return;const{x:a,y:e,z:n}=this,t=e.pow(2n).multiply(n).subtract(a.pow(3n)),i=r.multiply(n.pow(3n));if(!t.subtract(i).equals(P.Fq.ZERO))throw new Error("Invalid point: not on curve Fq")}toRepr(){return[this.x,this.y,this.z].map((r=>r.value))}millerLoop(r){return P.millerLoop(r.pairingPrecomputes(),this.toAffine())}}function _(r){const a=r.multiplyUnsafe(P.CURVE.x).negate(),e=r.fromAffineTuple(P.psi(...r.toAffine()));return r.fromAffineTuple(P.psi2(...r.double().toAffine())).subtract(e).add(a.add(e).multiplyUnsafe(P.CURVE.x).negate()).subtract(a).subtract(r)}a.PointG1=m,m.BASE=new m(new P.Fq(P.CURVE.Gx),new P.Fq(P.CURVE.Gy),P.Fq.ONE),m.ZERO=new m(P.Fq.ONE,P.Fq.ONE,P.Fq.ZERO),a.clearCofactorG2=_;class y extends P.ProjectivePoint{constructor(r,a,e){super(r,a,e,P.Fq2)}static async hashToCurve(r){s(r),"string"==typeof r&&(r=o(r));const a=await g(r,2),e=new y(...P.isogenyMapG2(P.map_to_curve_SSWU_G2(a[0]))),n=new y(...P.isogenyMapG2(P.map_to_curve_SSWU_G2(a[1])));return _(e.add(n))}static fromSignature(r){s(r),"string"==typeof r&&(r=o(r));const a=r.length/2;if(48!==a&&96!==a)throw new Error("Invalid compressed signature length, must be 96 or 192");const c=u(r.slice(0,a)),f=u(r.slice(a));if(1n===P.mod(c,i)/t)return this.ZERO;const b=c%n,v=f,d=new P.Fq2([v,b]);let l=d.pow(3n).add(new P.Fq2(P.CURVE.b2)).sqrt();if(!l)throw new Error("Failed to find a square root");const[h,g]=l.values,p=c%t/n;(g>0n&&2n*g/e!==p||0n===g&&2n*h/e!==p)&&(l=l.multiply(-1n));const m=new y(d,l,P.Fq2.ONE);return m.assertValidity(),m}static fromHex(r){let a;if(s(r),"string"==typeof r&&(r=o(r)),96===r.length)throw new Error("Compressed format not supported yet.");if(192!==r.length)throw new Error("Invalid uncompressed point G2, expected 192 bytes");{if(0!=(64&r[0]))return y.ZERO;const e=u(r.slice(0,c)),n=u(r.slice(c,96)),t=u(r.slice(96,144)),i=u(r.slice(144));a=new y(new P.Fq2([n,e]),new P.Fq2([i,t]),P.Fq2.ONE)}return a.assertValidity(),a}static fromPrivateKey(r){return this.BASE.multiplyPrecomputed(p(r))}toSignature(){if(this.equals(y.ZERO))return b(i+t,c)+b(0n,c);this.assertValidity();const[[r,a],[e,u]]=this.toAffine().map((r=>r.values)),f=r;return b(a+(u>0n?2n*u:2n*e)/P.CURVE.P*n+i,c)+b(f,c)}toRawBytes(r=!1){return o(this.toHex(r))}toHex(r=!1){if(r)throw new Error("Not supported");if(this.equals(y.ZERO))return"4".padEnd(384,"0");{this.assertValidity();const[[r,a],[e,n]]=this.toAffine().map((r=>r.values));return b(a,c)+b(r,c)+b(n,c)+b(e,c)}}assertValidity(){const r=new P.Fq2(P.CURVE.b2);if(this.isZero())return;const{x:a,y:e,z:n}=this,t=e.pow(2n).multiply(n).subtract(a.pow(3n)),i=r.multiply(n.pow(3n));if(!t.subtract(i).equals(P.Fq2.ZERO))throw new Error("Invalid point: not on curve Fq2")}toRepr(){return[this.x,this.y,this.z].map((r=>r.values))}clearPairingPrecomputes(){this._PPRECOMPUTES=void 0}pairingPrecomputes(){return this._PPRECOMPUTES||(this._PPRECOMPUTES=P.calcPairingPrecomputes(...this.toAffine())),this._PPRECOMPUTES}}function k(r,a,e=!0){if(r.isZero()||a.isZero())throw new Error("No pairings at point of Infinity");r.assertValidity(),a.assertValidity();const n=r.millerLoop(a);return e?n.finalExponentiate():n}function j(r){return r instanceof m?r:(s(r),m.fromHex(r))}function w(r){return r instanceof y?r:(s(r),y.fromSignature(r))}async function x(r){return r instanceof y?r:(s(r),await y.hashToCurve(r))}a.PointG2=y,y.BASE=new y(new P.Fq2(P.CURVE.G2x),new P.Fq2(P.CURVE.G2y),P.Fq2.ONE),y.ZERO=new y(P.Fq2.ONE,P.Fq2.ONE,P.Fq2.ZERO),a.pairing=k,a.getPublicKey=function(r){const a=m.fromPrivateKey(r).toRawBytes(!0);return"string"==typeof r?f(a):a},a.sign=async function(r,a){const e=await x(r);e.assertValidity();const n=e.multiply(p(a));if(r instanceof y)return n;const t=n.toSignature();return"string"==typeof r?t:o(t)},a.verify=async function(r,a,e){const n=j(e),t=await x(a),i=m.BASE,c=w(r),u=k(n.negate(),t,!1);return k(i,c,!1).multiply(u).finalExponentiate().equals(P.Fq12.ONE)},a.aggregatePublicKeys=function(r){if(!r.length)throw new Error("Expected non-empty array");const a=r.map(j).reduce(((r,a)=>r.add(a)),m.ZERO);if(r[0]instanceof m)return a;const e=a.toRawBytes(!0);return r[0]instanceof Uint8Array?e:f(e)},a.aggregateSignatures=function(r){if(!r.length)throw new Error("Expected non-empty array");const a=r.map(w).reduce(((r,a)=>r.add(a)),y.ZERO);if(r[0]instanceof y)return a;const e=a.toSignature();return r[0],e},a.verifyBatch=async function(r,a,e){if(!a.length)throw new Error("Expected non-empty messages array");if(e.length!==a.length)throw new Error("Pubkey count should equal msg count");const n=w(r),t=await Promise.all(a.map(x)),i=e.map(j);try{const r=[];for(const a of new Set(t)){const e=t.reduce(((r,e,n)=>e===a?r.add(i[n]):r),m.ZERO);r.push(k(e,a,!1))}r.push(k(m.BASE.negate(),n,!1));const a=r.reduce(((r,a)=>r.multiply(a)),P.Fq12.ONE);return a.finalExponentiate().equals(P.Fq12.ONE)}catch{return!1}},m.BASE.calcMultiplyPrecomputes(4)}));const N=r=>new B.Fr(C(_(r))),_=r=>{r.startsWith("0x")&&(r=r.slice(2));const a=r.length;let e="";for(let n=0;n<a/2;n++)e+=r.substring(a-2*(n+1),a-2*n);return e},C=r=>BigInt(`0x${r}`),U={addG1:(r,a)=>{const e=B.PointG1.fromHex(r);e.assertValidity();const n=B.PointG1.fromHex(a);return n.assertValidity(),e.add(n).toHex()},addG2:(r,a)=>{const e=B.PointG2.fromHex(r);e.assertValidity();const n=B.PointG2.fromHex(a);return n.assertValidity(),e.add(n).toHex()},addFr:(r,a)=>{const e=N(r),n=N(a);return _(e.add(n).toString())},multiplyG1ByFr:(r,a)=>{const e=B.PointG1.fromHex(r);return e.assertValidity(),e.multiply(C(_(a))).toHex()},multiplyG2ByFr:(r,a)=>{const e=B.PointG2.fromHex(r);return e.assertValidity(),e.multiply(C(_(a))).toHex()},multiplyFrByFr:(r,a)=>{const e=N(r),n=N(a);return _(e.multiply(n).toString())},multiplyFrByInt:(r,a)=>_(N(r).multiply(BigInt(a)).toString()),negateG1:r=>{const a=B.PointG1.fromHex(r).negate();return a.assertValidity(),a.toHex()},negateG2:r=>{const a=B.PointG2.fromHex(r).negate();return a.assertValidity(),a.toHex()},negateFr:r=>{const a=N(r);return _(a.negate().toString())},convertFrToInt:r=>C(_(r)).toString(10),pairingCheck:r=>{let a=!0;if(r.length>0){const e=B.PointG1.fromHex(r[0][0]);e.assertValidity();const n=B.PointG2.fromHex(r[0][1]);n.assertValidity();const t=B.PointG1.fromHex(r[1][0]);t.assertValidity();const i=B.PointG2.fromHex(r[1][1]);i.assertValidity();const c=B.pairing(e,n),u=B.pairing(t,i);a=c.multiply(u).equals(B.Fq12.ONE)}return a}};function getAugmentedNamespace(r){if(r.__esModule)return r;var a=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(r).forEach((function(e){var n=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(a,e,n.get?n:{enumerable:!0,get:function(){return r[e]}})})),a}function commonjsRequire(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var _polyfillNode_crypto={},_polyfillNode_crypto$1=Object.freeze({__proto__:null,default:_polyfillNode_crypto}),require$$0$3=getAugmentedNamespace(_polyfillNode_crypto$1),_polyfillNode_fs={},_polyfillNode_fs$1=Object.freeze({__proto__:null,default:_polyfillNode_fs}),require$$0$2=getAugmentedNamespace(_polyfillNode_fs$1),RTLD_LAZY=1,RTLD_NOW=2,RTLD_GLOBAL=8,RTLD_LOCAL=4,E2BIG=7,EACCES=13,EADDRINUSE=48,EADDRNOTAVAIL=49,EAFNOSUPPORT=47,EAGAIN=35,EALREADY=37,EBADF=9,EBADMSG=94,EBUSY=16,ECANCELED=89,ECHILD=10,ECONNABORTED=53,ECONNREFUSED=61,ECONNRESET=54,EDEADLK=11,EDESTADDRREQ=39,EDOM=33,EDQUOT=69,EEXIST=17,EFAULT=14,EFBIG=27,EHOSTUNREACH=65,EIDRM=90,EILSEQ=92,EINPROGRESS=36,EINTR=4,EINVAL=22,EIO=5,EISCONN=56,EISDIR=21,ELOOP=62,EMFILE=24,EMLINK=31,EMSGSIZE=40,EMULTIHOP=95,ENAMETOOLONG=63,ENETDOWN=50,ENETRESET=52,ENETUNREACH=51,ENFILE=23,ENOBUFS=55,ENODATA=96,ENODEV=19,ENOENT=2,ENOEXEC=8,ENOLCK=77,ENOLINK=97,ENOMEM=12,ENOMSG=91,ENOPROTOOPT=42,ENOSPC=28,ENOSR=98,ENOSTR=99,ENOSYS=78,ENOTCONN=57,ENOTDIR=20,ENOTEMPTY=66,ENOTSOCK=38,ENOTSUP=45,ENOTTY=25,ENXIO=6,EOPNOTSUPP=102,EOVERFLOW=84,EPERM=1,EPIPE=32,EPROTO=100,EPROTONOSUPPORT=43,EPROTOTYPE=41,ERANGE=34,EROFS=30,ESPIPE=29,ESRCH=3,ESTALE=70,ETIME=101,ETIMEDOUT=60,ETXTBSY=26,EWOULDBLOCK=35,EXDEV=18,PRIORITY_LOW=19,PRIORITY_BELOW_NORMAL=10,PRIORITY_NORMAL=0,PRIORITY_ABOVE_NORMAL=-7,PRIORITY_HIGH=-14,PRIORITY_HIGHEST=-20,SIGHUP=1,SIGINT=2,SIGQUIT=3,SIGILL=4,SIGTRAP=5,SIGABRT=6,SIGIOT=6,SIGBUS=10,SIGFPE=8,SIGKILL=9,SIGUSR1=30,SIGSEGV=11,SIGUSR2=31,SIGPIPE=13,SIGALRM=14,SIGTERM=15,SIGCHLD=20,SIGCONT=19,SIGSTOP=17,SIGTSTP=18,SIGTTIN=21,SIGTTOU=22,SIGURG=16,SIGXCPU=24,SIGXFSZ=25,SIGVTALRM=26,SIGPROF=27,SIGWINCH=28,SIGIO=23,SIGINFO=29,SIGSYS=12,UV_FS_SYMLINK_DIR=1,UV_FS_SYMLINK_JUNCTION=2,O_RDONLY=0,O_WRONLY=1,O_RDWR=2,UV_DIRENT_UNKNOWN=0,UV_DIRENT_FILE=1,UV_DIRENT_DIR=2,UV_DIRENT_LINK=3,UV_DIRENT_FIFO=4,UV_DIRENT_SOCKET=5,UV_DIRENT_CHAR=6,UV_DIRENT_BLOCK=7,S_IFMT=61440,S_IFREG=32768,S_IFDIR=16384,S_IFCHR=8192,S_IFBLK=24576,S_IFIFO=4096,S_IFLNK=40960,S_IFSOCK=49152,O_CREAT=512,O_EXCL=2048,UV_FS_O_FILEMAP=0,O_NOCTTY=131072,O_TRUNC=1024,O_APPEND=8,O_DIRECTORY=1048576,O_NOFOLLOW=256,O_SYNC=128,O_DSYNC=4194304,O_SYMLINK=2097152,O_NONBLOCK=4,S_IRWXU=448,S_IRUSR=256,S_IWUSR=128,S_IXUSR=64,S_IRWXG=56,S_IRGRP=32,S_IWGRP=16,S_IXGRP=8,S_IRWXO=7,S_IROTH=4,S_IWOTH=2,S_IXOTH=1,F_OK=0,R_OK=4,W_OK=2,X_OK=1,UV_FS_COPYFILE_EXCL=1,COPYFILE_EXCL=1,UV_FS_COPYFILE_FICLONE=2,COPYFILE_FICLONE=2,UV_FS_COPYFILE_FICLONE_FORCE=4,COPYFILE_FICLONE_FORCE=4,OPENSSL_VERSION_NUMBER=269488319,SSL_OP_ALL=2147485780,SSL_OP_ALLOW_NO_DHE_KEX=1024,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION=262144,SSL_OP_CIPHER_SERVER_PREFERENCE=4194304,SSL_OP_CISCO_ANYCONNECT=32768,SSL_OP_COOKIE_EXCHANGE=8192,SSL_OP_CRYPTOPRO_TLSEXT_BUG=2147483648,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS=2048,SSL_OP_EPHEMERAL_RSA=0,SSL_OP_LEGACY_SERVER_CONNECT=4,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER=0,SSL_OP_MICROSOFT_SESS_ID_BUG=0,SSL_OP_MSIE_SSLV2_RSA_PADDING=0,SSL_OP_NETSCAPE_CA_DN_BUG=0,SSL_OP_NETSCAPE_CHALLENGE_BUG=0,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG=0,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG=0,SSL_OP_NO_COMPRESSION=131072,SSL_OP_NO_ENCRYPT_THEN_MAC=524288,SSL_OP_NO_QUERY_MTU=4096,SSL_OP_NO_RENEGOTIATION=1073741824,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION=65536,SSL_OP_NO_SSLv2=0,SSL_OP_NO_SSLv3=33554432,SSL_OP_NO_TICKET=16384,SSL_OP_NO_TLSv1=67108864,SSL_OP_NO_TLSv1_1=268435456,SSL_OP_NO_TLSv1_2=134217728,SSL_OP_NO_TLSv1_3=536870912,SSL_OP_PKCS1_CHECK_1=0,SSL_OP_PKCS1_CHECK_2=0,SSL_OP_PRIORITIZE_CHACHA=2097152,SSL_OP_SINGLE_DH_USE=0,SSL_OP_SINGLE_ECDH_USE=0,SSL_OP_SSLEAY_080_CLIENT_DH_BUG=0,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG=0,SSL_OP_TLS_BLOCK_PADDING_BUG=0,SSL_OP_TLS_D5_BUG=0,SSL_OP_TLS_ROLLBACK_BUG=8388608,ENGINE_METHOD_RSA=1,ENGINE_METHOD_DSA=2,ENGINE_METHOD_DH=4,ENGINE_METHOD_RAND=8,ENGINE_METHOD_EC=2048,ENGINE_METHOD_CIPHERS=64,ENGINE_METHOD_DIGESTS=128,ENGINE_METHOD_PKEY_METHS=512,ENGINE_METHOD_PKEY_ASN1_METHS=1024,ENGINE_METHOD_ALL=65535,ENGINE_METHOD_NONE=0,DH_CHECK_P_NOT_SAFE_PRIME=2,DH_CHECK_P_NOT_PRIME=1,DH_UNABLE_TO_CHECK_GENERATOR=4,DH_NOT_SUITABLE_GENERATOR=8,ALPN_ENABLED=1,RSA_PKCS1_PADDING=1,RSA_SSLV23_PADDING=2,RSA_NO_PADDING=3,RSA_PKCS1_OAEP_PADDING=4,RSA_X931_PADDING=5,RSA_PKCS1_PSS_PADDING=6,RSA_PSS_SALTLEN_DIGEST=-1,RSA_PSS_SALTLEN_MAX_SIGN=-2,RSA_PSS_SALTLEN_AUTO=-2,defaultCoreCipherList="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA",TLS1_VERSION=769,TLS1_1_VERSION=770,TLS1_2_VERSION=771,TLS1_3_VERSION=772,POINT_CONVERSION_COMPRESSED=2,POINT_CONVERSION_UNCOMPRESSED=4,POINT_CONVERSION_HYBRID=6,_polyfillNode_constants={RTLD_LAZY:RTLD_LAZY,RTLD_NOW:RTLD_NOW,RTLD_GLOBAL:RTLD_GLOBAL,RTLD_LOCAL:RTLD_LOCAL,E2BIG:E2BIG,EACCES:EACCES,EADDRINUSE:EADDRINUSE,EADDRNOTAVAIL:EADDRNOTAVAIL,EAFNOSUPPORT:EAFNOSUPPORT,EAGAIN:EAGAIN,EALREADY:EALREADY,EBADF:EBADF,EBADMSG:EBADMSG,EBUSY:EBUSY,ECANCELED:ECANCELED,ECHILD:ECHILD,ECONNABORTED:ECONNABORTED,ECONNREFUSED:ECONNREFUSED,ECONNRESET:ECONNRESET,EDEADLK:EDEADLK,EDESTADDRREQ:EDESTADDRREQ,EDOM:EDOM,EDQUOT:EDQUOT,EEXIST:EEXIST,EFAULT:EFAULT,EFBIG:EFBIG,EHOSTUNREACH:EHOSTUNREACH,EIDRM:EIDRM,EILSEQ:EILSEQ,EINPROGRESS:EINPROGRESS,EINTR:EINTR,EINVAL:EINVAL,EIO:EIO,EISCONN:EISCONN,EISDIR:EISDIR,ELOOP:ELOOP,EMFILE:EMFILE,EMLINK:EMLINK,EMSGSIZE:EMSGSIZE,EMULTIHOP:EMULTIHOP,ENAMETOOLONG:ENAMETOOLONG,ENETDOWN:ENETDOWN,ENETRESET:ENETRESET,ENETUNREACH:ENETUNREACH,ENFILE:ENFILE,ENOBUFS:ENOBUFS,ENODATA:ENODATA,ENODEV:ENODEV,ENOENT:ENOENT,ENOEXEC:ENOEXEC,ENOLCK:ENOLCK,ENOLINK:ENOLINK,ENOMEM:ENOMEM,ENOMSG:ENOMSG,ENOPROTOOPT:ENOPROTOOPT,ENOSPC:ENOSPC,ENOSR:ENOSR,ENOSTR:ENOSTR,ENOSYS:ENOSYS,ENOTCONN:ENOTCONN,ENOTDIR:ENOTDIR,ENOTEMPTY:ENOTEMPTY,ENOTSOCK:ENOTSOCK,ENOTSUP:ENOTSUP,ENOTTY:ENOTTY,ENXIO:ENXIO,EOPNOTSUPP:EOPNOTSUPP,EOVERFLOW:EOVERFLOW,EPERM:EPERM,EPIPE:EPIPE,EPROTO:EPROTO,EPROTONOSUPPORT:EPROTONOSUPPORT,EPROTOTYPE:EPROTOTYPE,ERANGE:ERANGE,EROFS:EROFS,ESPIPE:ESPIPE,ESRCH:ESRCH,ESTALE:ESTALE,ETIME:ETIME,ETIMEDOUT:ETIMEDOUT,ETXTBSY:ETXTBSY,EWOULDBLOCK:EWOULDBLOCK,EXDEV:EXDEV,PRIORITY_LOW:PRIORITY_LOW,PRIORITY_BELOW_NORMAL:PRIORITY_BELOW_NORMAL,PRIORITY_NORMAL:PRIORITY_NORMAL,PRIORITY_ABOVE_NORMAL:PRIORITY_ABOVE_NORMAL,PRIORITY_HIGH:PRIORITY_HIGH,PRIORITY_HIGHEST:PRIORITY_HIGHEST,SIGHUP:SIGHUP,SIGINT:SIGINT,SIGQUIT:SIGQUIT,SIGILL:SIGILL,SIGTRAP:SIGTRAP,SIGABRT:SIGABRT,SIGIOT:SIGIOT,SIGBUS:SIGBUS,SIGFPE:SIGFPE,SIGKILL:SIGKILL,SIGUSR1:SIGUSR1,SIGSEGV:SIGSEGV,SIGUSR2:SIGUSR2,SIGPIPE:SIGPIPE,SIGALRM:SIGALRM,SIGTERM:SIGTERM,SIGCHLD:SIGCHLD,SIGCONT:SIGCONT,SIGSTOP:SIGSTOP,SIGTSTP:SIGTSTP,SIGTTIN:SIGTTIN,SIGTTOU:SIGTTOU,SIGURG:SIGURG,SIGXCPU:SIGXCPU,SIGXFSZ:SIGXFSZ,SIGVTALRM:SIGVTALRM,SIGPROF:SIGPROF,SIGWINCH:SIGWINCH,SIGIO:SIGIO,SIGINFO:SIGINFO,SIGSYS:SIGSYS,UV_FS_SYMLINK_DIR:UV_FS_SYMLINK_DIR,UV_FS_SYMLINK_JUNCTION:UV_FS_SYMLINK_JUNCTION,O_RDONLY:O_RDONLY,O_WRONLY:O_WRONLY,O_RDWR:O_RDWR,UV_DIRENT_UNKNOWN:UV_DIRENT_UNKNOWN,UV_DIRENT_FILE:UV_DIRENT_FILE,UV_DIRENT_DIR:UV_DIRENT_DIR,UV_DIRENT_LINK:UV_DIRENT_LINK,UV_DIRENT_FIFO:UV_DIRENT_FIFO,UV_DIRENT_SOCKET:UV_DIRENT_SOCKET,UV_DIRENT_CHAR:UV_DIRENT_CHAR,UV_DIRENT_BLOCK:UV_DIRENT_BLOCK,S_IFMT:S_IFMT,S_IFREG:S_IFREG,S_IFDIR:S_IFDIR,S_IFCHR:S_IFCHR,S_IFBLK:S_IFBLK,S_IFIFO:S_IFIFO,S_IFLNK:S_IFLNK,S_IFSOCK:S_IFSOCK,O_CREAT:O_CREAT,O_EXCL:O_EXCL,UV_FS_O_FILEMAP:UV_FS_O_FILEMAP,O_NOCTTY:O_NOCTTY,O_TRUNC:O_TRUNC,O_APPEND:O_APPEND,O_DIRECTORY:O_DIRECTORY,O_NOFOLLOW:O_NOFOLLOW,O_SYNC:O_SYNC,O_DSYNC:O_DSYNC,O_SYMLINK:O_SYMLINK,O_NONBLOCK:O_NONBLOCK,S_IRWXU:S_IRWXU,S_IRUSR:S_IRUSR,S_IWUSR:S_IWUSR,S_IXUSR:S_IXUSR,S_IRWXG:S_IRWXG,S_IRGRP:S_IRGRP,S_IWGRP:S_IWGRP,S_IXGRP:S_IXGRP,S_IRWXO:S_IRWXO,S_IROTH:S_IROTH,S_IWOTH:S_IWOTH,S_IXOTH:S_IXOTH,F_OK:F_OK,R_OK:R_OK,W_OK:W_OK,X_OK:X_OK,UV_FS_COPYFILE_EXCL:UV_FS_COPYFILE_EXCL,COPYFILE_EXCL:COPYFILE_EXCL,UV_FS_COPYFILE_FICLONE:UV_FS_COPYFILE_FICLONE,COPYFILE_FICLONE:COPYFILE_FICLONE,UV_FS_COPYFILE_FICLONE_FORCE:UV_FS_COPYFILE_FICLONE_FORCE,COPYFILE_FICLONE_FORCE:COPYFILE_FICLONE_FORCE,OPENSSL_VERSION_NUMBER:OPENSSL_VERSION_NUMBER,SSL_OP_ALL:SSL_OP_ALL,SSL_OP_ALLOW_NO_DHE_KEX:SSL_OP_ALLOW_NO_DHE_KEX,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION,SSL_OP_CIPHER_SERVER_PREFERENCE:SSL_OP_CIPHER_SERVER_PREFERENCE,SSL_OP_CISCO_ANYCONNECT:SSL_OP_CISCO_ANYCONNECT,SSL_OP_COOKIE_EXCHANGE:SSL_OP_COOKIE_EXCHANGE,SSL_OP_CRYPTOPRO_TLSEXT_BUG:SSL_OP_CRYPTOPRO_TLSEXT_BUG,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS,SSL_OP_EPHEMERAL_RSA:SSL_OP_EPHEMERAL_RSA,SSL_OP_LEGACY_SERVER_CONNECT:SSL_OP_LEGACY_SERVER_CONNECT,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER,SSL_OP_MICROSOFT_SESS_ID_BUG:SSL_OP_MICROSOFT_SESS_ID_BUG,SSL_OP_MSIE_SSLV2_RSA_PADDING:SSL_OP_MSIE_SSLV2_RSA_PADDING,SSL_OP_NETSCAPE_CA_DN_BUG:SSL_OP_NETSCAPE_CA_DN_BUG,SSL_OP_NETSCAPE_CHALLENGE_BUG:SSL_OP_NETSCAPE_CHALLENGE_BUG,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG,SSL_OP_NO_COMPRESSION:SSL_OP_NO_COMPRESSION,SSL_OP_NO_ENCRYPT_THEN_MAC:SSL_OP_NO_ENCRYPT_THEN_MAC,SSL_OP_NO_QUERY_MTU:SSL_OP_NO_QUERY_MTU,SSL_OP_NO_RENEGOTIATION:SSL_OP_NO_RENEGOTIATION,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION,SSL_OP_NO_SSLv2:SSL_OP_NO_SS