@lightprotocol/stateless.js 0.22.1-alpha.7 → 0.23.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@solana/web3.js"),t="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s=0;function i(){s=1;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)r[t]=e[t],n[e.charCodeAt(t)]=t;n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63}function a(e,t,n){for(var o,s,i=[],a=t;a<n;a+=3)o=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(r[(s=o)>>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return i.join("")}function u(e){var t;s||i();for(var n=e.length,o=n%3,u="",c=[],l=16383,d=0,h=n-o;d<h;d+=l)c.push(a(e,d,d+l>h?h:d+l));return 1===o?(t=e[n-1],u+=r[t>>2],u+=r[t<<4&63],u+="=="):2===o&&(t=(e[n-2]<<8)+e[n-1],u+=r[t>>10],u+=r[t>>4&63],u+=r[t<<2&63],u+="="),c.push(u),c.join("")}function c(e,t,r,n,o){var s,i,a=8*o-n-1,u=(1<<a)-1,c=u>>1,l=-7,d=r?o-1:0,h=r?-1:1,p=e[t+d];for(d+=h,s=p&(1<<-l)-1,p>>=-l,l+=a;l>0;s=256*s+e[t+d],d+=h,l-=8);for(i=s&(1<<-l)-1,s>>=-l,l+=n;l>0;i=256*i+e[t+d],d+=h,l-=8);if(0===s)s=1-c;else{if(s===u)return i?NaN:Infinity*(p?-1:1);i+=Math.pow(2,n),s-=c}return(p?-1:1)*i*Math.pow(2,s-n)}function l(e,t,r,n,o,s){var i,a,u,c=8*s-o-1,l=(1<<c)-1,d=l>>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||Infinity===t?(a=isNaN(t)?1:0,i=l):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),(t+=i+d>=1?h/u:h*Math.pow(2,1-d))*u>=2&&(i++,u/=2),i+d>=l?(a=0,i=l):i+d>=1?(a=(t*u-1)*Math.pow(2,o),i+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,o),i=0));o>=8;e[r+p]=255&a,p+=f,a/=256,o-=8);for(i=i<<o|a,c+=o;c>0;e[r+p]=255&i,p+=f,i/=256,c-=8);e[r+p-f]|=128*m}var d={}.toString,h=Array.isArray||function(e){return"[object Array]"==d.call(e)};y.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:1;var p=f();function f(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function m(e,t){if(f()<t)throw new RangeError("Invalid typed array length");return y.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=y.prototype:(null===e&&(e=new y(t)),e.length=t),e}function y(e,t,r){if(!(y.TYPED_ARRAY_SUPPORT||this instanceof y))return new y(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return v(this,e)}return g(this,e,t,r)}function g(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n),y.TYPED_ARRAY_SUPPORT?(e=t).__proto__=y.prototype:e=x(e,t),e}(e,t,r,n):"string"==typeof t?function(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!y.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|E(t,r),o=(e=m(e,n)).write(t,r);return o!==n&&(e=e.slice(0,o)),e}(e,t,r):function(e,t){if(I(t)){var r=0|b(t.length);return 0===(e=m(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?m(e,0):x(e,t);if("Buffer"===t.type&&h(t.data))return x(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function w(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function v(e,t){if(w(t),e=m(e,t<0?0:0|b(t)),!y.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function x(e,t){var r=t.length<0?0:0|b(t.length);e=m(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function b(e){if(e>=f())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f().toString(16)+" bytes");return 0|e}function I(e){return!(null==e||!e._isBuffer)}function E(e,t){if(I(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=0;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Y(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return G(e).length;default:if(n)return Y(e).length;t=(""+t).toLowerCase(),n=1}}function A(e,t,r){var n=0;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return V(this,t,r);case"utf8":case"utf-8":return B(this,t,r);case"ascii":return D(this,t,r);case"latin1":case"binary":return U(this,t,r);case"base64":return L(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=1}}function T(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function M(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=y.from(t,n)),I(t))return 0===t.length?-1:S(e,t,r,n,o);if("number"==typeof t)return t&=255,y.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):S(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function S(e,t,r,n,o){var s,i=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,a/=2,u/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var l=-1;for(s=r;s<a;s++)if(c(e,s)===c(t,-1===l?0:s-l)){if(-1===l&&(l=s),s-l+1===u)return l*i}else-1!==l&&(s-=s-l),l=-1}else for(r+u>a&&(r=a-u),s=r;s>=0;s--){for(var d=1,h=0;h<u;h++)if(c(e,s+h)!==c(t,h)){d=0;break}if(d)return s}return-1}function _(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var i=0;i<n;++i){var a=parseInt(t.substr(2*i,2),16);if(isNaN(a))return i;e[r+i]=a}return i}function C(e,t,r,n){return Q(Y(t,e.length-r),e,r,n)}function k(e,t,r,n){return Q(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function P(e,t,r,n){return k(e,t,r,n)}function R(e,t,r,n){return Q(G(t),e,r,n)}function O(e,t,r,n){return Q(function(e,t){for(var r,n,o,s=[],i=0;i<e.length&&!((t-=2)<0);++i)n=(r=e.charCodeAt(i))>>8,o=r%256,s.push(o),s.push(n);return s}(t,e.length-r),e,r,n)}function L(e,t,r){return 0===t&&r===e.length?u(e):u(e.slice(t,r))}function B(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o<r;){var s,i,a,u,c=e[o],l=null,d=c>239?4:c>223?3:c>191?2:1;if(o+d<=r)switch(d){case 1:c<128&&(l=c);break;case 2:128==(192&(s=e[o+1]))&&(u=(31&c)<<6|63&s)>127&&(l=u);break;case 3:s=e[o+1],i=e[o+2],128==(192&s)&&128==(192&i)&&(u=(15&c)<<12|(63&s)<<6|63&i)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:s=e[o+1],i=e[o+2],a=e[o+3],128==(192&s)&&128==(192&i)&&128==(192&a)&&(u=(15&c)<<18|(63&s)<<12|(63&i)<<6|63&a)>65535&&u<1114112&&(l=u)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),o+=d}return function(e){var t=e.length;if(t<=N)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=N));return r}(n)}y.poolSize=8192,y._augment=function(e){return e.__proto__=y.prototype,e},y.from=function(e,t,r){return g(null,e,t,r)},y.TYPED_ARRAY_SUPPORT&&(y.prototype.__proto__=Uint8Array.prototype,y.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&y[Symbol.species]),y.alloc=function(e,t,r){return function(e,t,r,n){return w(t),t<=0?m(e,t):void 0!==r?"string"==typeof n?m(e,t).fill(r,n):m(e,t).fill(r):m(e,t)}(null,e,t,r)},y.allocUnsafe=function(e){return v(null,e)},y.allocUnsafeSlow=function(e){return v(null,e)},y.isBuffer=J,y.compare=function(e,t){if(!I(e)||!I(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,s=Math.min(r,n);o<s;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},y.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 1;default:return 0}},y.concat=function(e,t){if(!h(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return y.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=y.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var s=e[r];if(!I(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,o),o+=s.length}return n},y.byteLength=E,y.prototype._isBuffer=1,y.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)T(this,t,t+1);return this},y.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)T(this,t,t+3),T(this,t+1,t+2);return this},y.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)T(this,t,t+7),T(this,t+1,t+6),T(this,t+2,t+5),T(this,t+3,t+4);return this},y.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?B(this,0,e):A.apply(this,arguments)},y.prototype.equals=function(e){if(!I(e))throw new TypeError("Argument must be a Buffer");return this===e?1:0===y.compare(this,e)},y.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},y.prototype.compare=function(e,t,r,n,o){if(!I(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var s=(o>>>=0)-(n>>>=0),i=(r>>>=0)-(t>>>=0),a=Math.min(s,i),u=this.slice(n,o),c=e.slice(t,r),l=0;l<a;++l)if(u[l]!==c[l]){s=u[l],i=c[l];break}return s<i?-1:i<s?1:0},y.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},y.prototype.indexOf=function(e,t,r){return M(this,e,t,r,1)},y.prototype.lastIndexOf=function(e,t,r){return M(this,e,t,r,0)},y.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=0;;)switch(n){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return C(this,e,t,r);case"ascii":return k(this,e,t,r);case"latin1":case"binary":return P(this,e,t,r);case"base64":return R(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=1}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var N=4096;function D(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}function U(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}function V(e,t,r){var n,o=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>o)&&(r=o);for(var s="",i=t;i<r;++i)s+=(n=e[i])<16?"0"+n.toString(16):n.toString(16);return s}function F(e,t,r){for(var n=e.slice(t,r),o="",s=0;s<n.length;s+=2)o+=String.fromCharCode(n[s]+256*n[s+1]);return o}function q(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function K(e,t,r,n,o,s){if(!I(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<s)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function H(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,s=Math.min(e.length-r,2);o<s;++o)e[r+o]=(t&255<<8*(n?o:1-o))>>>8*(n?o:1-o)}function W(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,s=Math.min(e.length-r,4);o<s;++o)e[r+o]=t>>>8*(n?o:3-o)&255}function j(e,t,r,n){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function $(e,t,r,n,o){return o||j(e,0,r,4),l(e,t,r,n,23,4),r+4}function z(e,t,r,n,o){return o||j(e,0,r,8),l(e,t,r,n,52,8),r+8}y.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),y.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=y.prototype;else{var o=t-e;r=new y(o,void 0);for(var s=0;s<o;++s)r[s]=this[s+e]}return r},y.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e],o=1,s=0;++s<t&&(o*=256);)n+=this[e+s]*o;return n},y.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},y.prototype.readUInt8=function(e,t){return t||q(e,1,this.length),this[e]},y.prototype.readUInt16LE=function(e,t){return t||q(e,2,this.length),this[e]|this[e+1]<<8},y.prototype.readUInt16BE=function(e,t){return t||q(e,2,this.length),this[e]<<8|this[e+1]},y.prototype.readUInt32LE=function(e,t){return t||q(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},y.prototype.readUInt32BE=function(e,t){return t||q(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},y.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e],o=1,s=0;++s<t&&(o*=256);)n+=this[e+s]*o;return n>=(o*=128)&&(n-=Math.pow(2,8*t)),n},y.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=t,o=1,s=this[e+--n];n>0&&(o*=256);)s+=this[e+--n]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*t)),s},y.prototype.readInt8=function(e,t){return t||q(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},y.prototype.readInt16LE=function(e,t){t||q(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},y.prototype.readInt16BE=function(e,t){t||q(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},y.prototype.readInt32LE=function(e,t){return t||q(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},y.prototype.readInt32BE=function(e,t){return t||q(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},y.prototype.readFloatLE=function(e,t){return t||q(e,4,this.length),c(this,e,1,23,4)},y.prototype.readFloatBE=function(e,t){return t||q(e,4,this.length),c(this,e,0,23,4)},y.prototype.readDoubleLE=function(e,t){return t||q(e,8,this.length),c(this,e,1,52,8)},y.prototype.readDoubleBE=function(e,t){return t||q(e,8,this.length),c(this,e,0,52,8)},y.prototype.writeUIntLE=function(e,t,r,n){e=+e,t|=0,r|=0,n||K(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,s=0;for(this[t]=255&e;++s<r&&(o*=256);)this[t+s]=e/o&255;return t+r},y.prototype.writeUIntBE=function(e,t,r,n){e=+e,t|=0,r|=0,n||K(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,s=1;for(this[t+o]=255&e;--o>=0&&(s*=256);)this[t+o]=e/s&255;return t+r},y.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,1,255,0),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},y.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,1),t+2},y.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,0),t+2},y.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):W(this,e,t,1),t+4},y.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,0),t+4},y.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);K(this,e,t,r,o-1,-o)}var s=0,i=1,a=0;for(this[t]=255&e;++s<r&&(i*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/i>>0)-a&255;return t+r},y.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);K(this,e,t,r,o-1,-o)}var s=r-1,i=1,a=0;for(this[t+s]=255&e;--s>=0&&(i*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/i>>0)-a&255;return t+r},y.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,1,127,-128),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},y.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,1),t+2},y.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,0),t+2},y.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,4,2147483647,-2147483648),y.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):W(this,e,t,1),t+4},y.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,0),t+4},y.prototype.writeFloatLE=function(e,t,r){return $(this,e,t,1,r)},y.prototype.writeFloatBE=function(e,t,r){return $(this,e,t,0,r)},y.prototype.writeDoubleLE=function(e,t,r){return z(this,e,t,1,r)},y.prototype.writeDoubleBE=function(e,t,r){return z(this,e,t,0,r)},y.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var o,s=n-r;if(this===e&&r<t&&t<n)for(o=s-1;o>=0;--o)e[o+t]=this[o+r];else if(s<1e3||!y.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+s),t);return s},y.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!y.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var s;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(s=t;s<r;++s)this[s]=e;else{var i=I(e)?e:Y(new y(e,n).toString()),a=i.length;for(s=0;s<r-t;++s)this[s+t]=i[s%a]}return this};var Z=/[^+\/0-9A-Za-z-_]/g;function Y(e,t){var r;t=t||Infinity;for(var n=e.length,o=null,s=[],i=0;i<n;++i){if((r=e.charCodeAt(i))>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&s.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&s.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function G(e){return function(e){var t,r,a,u,c,l;s||i();var d=e.length;if(d%4>0)throw new Error("Invalid string. Length must be a multiple of 4");c="="===e[d-2]?2:"="===e[d-1]?1:0,l=new o(3*d/4-c),a=c>0?d-4:d;var h=0;for(t=0,r=0;t<a;t+=4,r+=3)u=n[e.charCodeAt(t)]<<18|n[e.charCodeAt(t+1)]<<12|n[e.charCodeAt(t+2)]<<6|n[e.charCodeAt(t+3)],l[h++]=u>>16&255,l[h++]=u>>8&255,l[h++]=255&u;return 2===c?(u=n[e.charCodeAt(t)]<<2|n[e.charCodeAt(t+1)]>>4,l[h++]=255&u):1===c&&(u=n[e.charCodeAt(t)]<<10|n[e.charCodeAt(t+1)]<<4|n[e.charCodeAt(t+2)]>>2,l[h++]=u>>8&255,l[h++]=255&u),l}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Q(e,t,r,n){for(var o=0;o<n&&!(o+r>=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function J(e){return null!=e&&(!!e._isBuffer||X(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&X(e.slice(0,0))}(e))}function X(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var ee=Object.freeze({__proto__:null,Buffer:y,INSPECT_MAX_BYTES:50,SlowBuffer:function(e){return+e!=e&&(e=0),y.alloc(+e)},isBuffer:J,kMaxLength:p}),te="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function re(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function ne(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:1}),Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:1,get:function(){return e[t]}})})),r}var oe={},se={};class ie{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}decode(e,t){throw new Error("Layout is abstract")}encode(e,t,r){throw new Error("Layout is abstract")}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}}function ae(e,t){return t.property?e+"["+t.property+"]":e}se.Layout=ie,se.nameWithProperty=ae,se.bindConstructorLayout=function(e,t){if("function"!=typeof e)throw new TypeError("Class must be constructor");if(e.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(t&&t instanceof ie))throw new TypeError("layout must be a Layout");if(t.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");e.layout_=t,t.boundConstructor_=e,t.makeDestinationObject=()=>new e,Object.defineProperty(e.prototype,"encode",{value:function(e,r){return t.encode(this,e,r)},writable:1}),Object.defineProperty(e,"decode",{value:function(e,r){return t.decode(e,r)},writable:1})};class ue extends ie{isCount(){throw new Error("ExternalLayout is abstract")}}class ce extends ue{constructor(e,t){if(void 0===e&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,t),this.elementSpan=e}isCount(){return 1}decode(e,t){void 0===t&&(t=0);const r=e.length-t;return Math.floor(r/this.elementSpan)}encode(e,t,r){return 0}}class le extends ue{constructor(e,t,r){if(!(e instanceof ie))throw new TypeError("layout must be a Layout");if(void 0===t)t=0;else if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof de||this.layout instanceof he}decode(e,t){return void 0===t&&(t=0),this.layout.decode(e,t+this.offset)}encode(e,t,r){return void 0===r&&(r=0),this.layout.encode(e,t,r+this.offset)}}class de extends ie{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntLE(e,r,this.span),this.span}}class he extends ie{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntBE(e,r,this.span),this.span}}class pe extends ie{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntLE(e,r,this.span),this.span}}class fe extends ie{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntBE(e,r,this.span),this.span}}const me=Math.pow(2,32);function ye(e){const t=Math.floor(e/me);return{hi32:t,lo32:e-t*me}}function ge(e,t){return e*me+t}class we extends ie{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return ge(e.readUInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const n=ye(e);return t.writeUInt32LE(n.lo32,r),t.writeUInt32LE(n.hi32,r+4),8}}class ve extends ie{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),ge(e.readUInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const n=ye(e);return t.writeUInt32BE(n.hi32,r),t.writeUInt32BE(n.lo32,r+4),8}}class xe extends ie{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return ge(e.readInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const n=ye(e);return t.writeUInt32LE(n.lo32,r),t.writeInt32LE(n.hi32,r+4),8}}class be extends ie{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),ge(e.readInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const n=ye(e);return t.writeInt32BE(n.hi32,r),t.writeUInt32BE(n.lo32,r+4),8}}class Ie extends ie{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatLE(e,r),4}}class Ee extends ie{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatBE(e,r),4}}class Ae extends ie{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleLE(e,r),8}}class Te extends ie{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleBE(e,r),8}}class Me extends ie{constructor(e,t,r){if(!(e instanceof ie))throw new TypeError("elementLayout must be a Layout");if(!(t instanceof ue&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let n=-1;!(t instanceof ue)&&0<e.span&&(n=t*e.span),super(n,r),this.elementLayout=e,this.count=t}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0,n=this.count;if(n instanceof ue&&(n=n.decode(e,t)),0<this.elementLayout.span)r=n*this.elementLayout.span;else{let o=0;for(;o<n;)r+=this.elementLayout.getSpan(e,t+r),++o}return r}decode(e,t){void 0===t&&(t=0);const r=[];let n=0,o=this.count;for(o instanceof ue&&(o=o.decode(e,t));n<o;)r.push(this.elementLayout.decode(e,t)),t+=this.elementLayout.getSpan(e,t),n+=1;return r}encode(e,t,r){void 0===r&&(r=0);const n=this.elementLayout,o=e.reduce(((e,o)=>e+n.encode(o,t,r+e)),0);return this.count instanceof ue&&this.count.encode(e.length,t,r),o}}class Se extends ie{constructor(e,t,r){if(!Array.isArray(e)||!e.reduce(((e,t)=>e&&t instanceof ie),1))throw new TypeError("fields must be array of Layout instances");"boolean"==typeof t&&void 0===r&&(r=t,t=void 0);for(const t of e)if(0>t.span&&void 0===t.property)throw new Error("fields cannot contain unnamed variable-length layout");let n=-1;try{n=e.reduce(((e,t)=>e+t.getSpan()),0)}catch(e){}super(n,t),this.fields=e,this.decodePrefixes=!!r}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;try{r=this.fields.reduce(((r,n)=>{const o=n.getSpan(e,t);return t+=o,r+o}),0)}catch(e){throw new RangeError("indeterminate span")}return r}decode(e,t){void 0===t&&(t=0);const r=this.makeDestinationObject();for(const n of this.fields)if(void 0!==n.property&&(r[n.property]=n.decode(e,t)),t+=n.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return r}encode(e,t,r){void 0===r&&(r=0);const n=r;let o=0,s=0;for(const n of this.fields){let i=n.span;if(s=0<i?i:0,void 0!==n.property){const o=e[n.property];void 0!==o&&(s=n.encode(o,t,r),0>i&&(i=n.getSpan(t,r)))}o=r,r+=i}return o+s-n}fromArray(e){const t=this.makeDestinationObject();for(const r of this.fields)void 0!==r.property&&0<e.length&&(t[r.property]=e.shift());return t}layoutFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}offsetOf(e){if("string"!=typeof e)throw new TypeError("property must be string");let t=0;for(const r of this.fields){if(r.property===e)return t;0>r.span?t=-1:0<=t&&(t+=r.span)}}}class _e{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class Ce extends _e{constructor(e,t){if(!(e instanceof ue&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(t||e.property||"variant"),this.layout=e}decode(e,t){return this.layout.decode(e,t)}encode(e,t,r){return this.layout.encode(e,t,r)}}class ke extends ie{constructor(e,t,r){const n=e instanceof de||e instanceof he;if(n)e=new Ce(new le(e));else if(e instanceof ue&&e.isCount())e=new Ce(e);else if(!(e instanceof _e))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(void 0===t&&(t=null),!(null===t||t instanceof ie))throw new TypeError("defaultLayout must be null or a Layout");if(null!==t){if(0>t.span)throw new Error("defaultLayout must have constant span");void 0===t.property&&(t=t.replicate("content"))}let o=-1;t&&(o=t.span,0<=o&&n&&(o+=e.layout.span)),super(o,r),this.discriminator=e,this.usesPrefixDiscriminator=n,this.defaultLayout=t,this.registry={};let s=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(e){return s(e)},this.configGetSourceVariant=function(e){s=e.bind(this)}}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);const r=this.getVariant(e,t);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(e,t)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const t=this.registry[e[this.discriminator.property]];if(t&&(!t.layout||e.hasOwnProperty(t.property)))return t}else for(const t in this.registry){const r=this.registry[t];if(e.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(e,t){let r;void 0===t&&(t=0);const n=this.discriminator,o=n.decode(e,t);let s=this.registry[o];if(void 0===s){let i=0;s=this.defaultLayout,this.usesPrefixDiscriminator&&(i=n.layout.span),r=this.makeDestinationObject(),r[n.property]=o,r[s.property]=this.defaultLayout.decode(e,t+i)}else r=s.decode(e,t);return r}encode(e,t,r){void 0===r&&(r=0);const n=this.getSourceVariant(e);if(void 0===n){const n=this.discriminator,o=this.defaultLayout;let s=0;return this.usesPrefixDiscriminator&&(s=n.layout.span),n.encode(e[n.property],t,r),s+o.encode(e[o.property],t,r+s)}return n.encode(e,t,r)}addVariant(e,t,r){const n=new Pe(this,e,t,r);return this.registry[e]=n,n}getVariant(e,t){let r=e;return Buffer.isBuffer(e)&&(void 0===t&&(t=0),r=this.discriminator.decode(e,t)),this.registry[r]}}class Pe extends ie{constructor(e,t,r,n){if(!(e instanceof ke))throw new TypeError("union must be a Union");if(!Number.isInteger(t)||0>t)throw new TypeError("variant must be a (non-negative) integer");if("string"==typeof r&&void 0===n&&(n=r,r=null),r){if(!(r instanceof ie))throw new TypeError("layout must be a Layout");if(null!==e.defaultLayout&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if("string"!=typeof n)throw new TypeError("variant must have a String property")}let o=e.span;0>e.span&&(o=r?r.span:0,0<=o&&e.usesPrefixDiscriminator&&(o+=e.discriminator.layout.span)),super(o,n),this.union=e,this.variant=t,this.layout=r||null}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(e,t+r)}decode(e,t){const r=this.makeDestinationObject();if(void 0===t&&(t=0),this!==this.union.getVariant(e,t))throw new Error("variant mismatch");let n=0;return this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,t+n):this.property?r[this.property]=1:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,t,r){void 0===r&&(r=0);let n=0;if(this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,t,r);let o=n;if(this.layout&&(this.layout.encode(e[this.property],t,r+n),o+=this.layout.getSpan(t,r+n),0<=this.union.span&&o>this.union.span))throw new Error("encoded variant overruns containing union");return o}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}function Re(e){return 0>e&&(e+=4294967296),e}class Oe extends ie{constructor(e,t,r){if(!(e instanceof de||e instanceof he))throw new TypeError("word must be a UInt or UIntBE layout");if("string"==typeof t&&void 0===r&&(r=t,t=void 0),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,r),this.word=e,this.msb=!!t,this.fields=[];let n=0;this._packedSetValue=function(e){return n=Re(e),this},this._packedGetValue=function(){return n}}decode(e,t){const r=this.makeDestinationObject();void 0===t&&(t=0);const n=this.word.decode(e,t);this._packedSetValue(n);for(const e of this.fields)void 0!==e.property&&(r[e.property]=e.decode(n));return r}encode(e,t,r){void 0===r&&(r=0);const n=this.word.decode(t,r);this._packedSetValue(n);for(const t of this.fields)if(void 0!==t.property){const r=e[t.property];void 0!==r&&t.encode(r)}return this.word.encode(this._packedGetValue(),t,r)}addField(e,t){const r=new Le(this,e,t);return this.fields.push(r),r}addBoolean(e){const t=new Be(this,e);return this.fields.push(t),t}fieldFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}}class Le{constructor(e,t,r){if(!(e instanceof Oe))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(t)||0>=t)throw new TypeError("bits must be positive integer");const n=8*e.span,o=e.fields.reduce(((e,t)=>e+t.bits),0);if(t+o>n)throw new Error("bits too long for span remainder ("+(n-o)+" of "+n+" remain)");this.container=e,this.bits=t,this.valueMask=(1<<t)-1,32===t&&(this.valueMask=4294967295),this.start=o,this.container.msb&&(this.start=n-o-t),this.wordMask=Re(this.valueMask<<this.start),this.property=r}decode(){return Re(this.container._packedGetValue()&this.wordMask)>>>this.start}encode(e){if(!Number.isInteger(e)||e!==Re(e&this.valueMask))throw new TypeError(ae("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const t=this.container._packedGetValue(),r=Re(e<<this.start);this.container._packedSetValue(Re(t&~this.wordMask)|r)}}let Be=class extends Le{constructor(e,t){super(e,1,t)}decode(e,t){return!!Le.prototype.decode.call(this,e,t)}encode(e){return"boolean"==typeof e&&(e=+e),Le.prototype.encode.call(this,e)}};class Ne extends ie{constructor(e,t){if(!(e instanceof ue&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof ue||(r=e),super(r,t),this.length=e}getSpan(e,t){let r=this.span;return 0>r&&(r=this.length.decode(e,t)),r}decode(e,t){void 0===t&&(t=0);let r=this.span;return 0>r&&(r=this.length.decode(e,t)),e.slice(t,t+r)}encode(e,t,r){let n=this.length;if(this.length instanceof ue&&(n=e.length),!Buffer.isBuffer(e)||n!==e.length)throw new TypeError(ae("Blob.encode",this)+" requires (length "+n+") Buffer as src");if(r+n>t.length)throw new RangeError("encoding overruns Buffer");return t.write(e.toString("hex"),r,n,"hex"),this.length instanceof ue&&this.length.encode(n,t,r),n}}class De extends ie{constructor(e){super(-1,e)}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");void 0===t&&(t=0);let r=t;for(;r<e.length&&0!==e[r];)r+=1;return 1+r-t}decode(e,t,r){void 0===t&&(t=0);let n=this.getSpan(e,t);return e.slice(t,t+n-1).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const n=new Buffer(e,"utf8"),o=n.length;if(r+o>t.length)throw new RangeError("encoding overruns Buffer");return n.copy(t,r),t[r+o]=0,o+1}}class Ue extends ie{constructor(e,t){if("string"==typeof e&&void 0===t&&(t=e,e=void 0),void 0===e)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,t),this.maxSpan=e}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");return void 0===t&&(t=0),e.length-t}decode(e,t,r){void 0===t&&(t=0);let n=this.getSpan(e,t);if(0<=this.maxSpan&&this.maxSpan<n)throw new RangeError("text length exceeds maxSpan");return e.slice(t,t+n).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const n=new Buffer(e,"utf8"),o=n.length;if(0<=this.maxSpan&&this.maxSpan<o)throw new RangeError("text length exceeds maxSpan");if(r+o>t.length)throw new RangeError("encoding overruns Buffer");return n.copy(t,r),o}}class Ve extends ie{constructor(e,t){super(0,t),this.value=e}decode(e,t,r){return this.value}encode(e,t,r){return 0}}se.ExternalLayout=ue,se.GreedyCount=ce,se.OffsetLayout=le,se.UInt=de,se.UIntBE=he,se.Int=pe,se.IntBE=fe,se.Float=Ie,se.FloatBE=Ee,se.Double=Ae,se.DoubleBE=Te,se.Sequence=Me,se.Structure=Se,se.UnionDiscriminator=_e,se.UnionLayoutDiscriminator=Ce,se.Union=ke,se.VariantLayout=Pe,se.BitStructure=Oe,se.BitField=Le,se.Boolean=Be,se.Blob=Ne,se.CString=De,se.UTF8=Ue,se.Constant=Ve,se.greedy=(e,t)=>new ce(e,t),se.offset=(e,t,r)=>new le(e,t,r),se.u8=e=>new de(1,e),se.u16=e=>new de(2,e),se.u24=e=>new de(3,e),se.u32=e=>new de(4,e),se.u40=e=>new de(5,e),se.u48=e=>new de(6,e),se.nu64=e=>new we(e),se.u16be=e=>new he(2,e),se.u24be=e=>new he(3,e),se.u32be=e=>new he(4,e),se.u40be=e=>new he(5,e),se.u48be=e=>new he(6,e),se.nu64be=e=>new ve(e),se.s8=e=>new pe(1,e),se.s16=e=>new pe(2,e),se.s24=e=>new pe(3,e),se.s32=e=>new pe(4,e),se.s40=e=>new pe(5,e),se.s48=e=>new pe(6,e),se.ns64=e=>new xe(e),se.s16be=e=>new fe(2,e),se.s24be=e=>new fe(3,e),se.s32be=e=>new fe(4,e),se.s40be=e=>new fe(5,e),se.s48be=e=>new fe(6,e),se.ns64be=e=>new be(e),se.f32=e=>new Ie(e),se.f32be=e=>new Ee(e),se.f64=e=>new Ae(e),se.f64be=e=>new Te(e),se.struct=(e,t,r)=>new Se(e,t,r),se.bits=(e,t,r)=>new Oe(e,t,r),se.seq=(e,t,r)=>new Me(e,t,r),se.union=(e,t,r)=>new ke(e,t,r),se.unionLayoutDiscriminator=(e,t)=>new Ce(e,t),se.blob=(e,t)=>new Ne(e,t),se.cstr=e=>new De(e),se.utf8=(e,t)=>new Ue(e,t),se.const=(e,t)=>new Ve(e,t);var Fe={exports:{}},qe=ne(ee);!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"==typeof Fe?Fe.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:qe.Buffer}catch(e){}function i(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(0,"Invalid character in "+e)}function a(e,t,r){var n=i(e,r);return r-1>=t&&(n|=i(e,r-1)<<4),n}function u(e,t,n,o){for(var s=0,i=0,a=Math.min(e.length,n),u=t;u<a;u++){var c=e.charCodeAt(u)-48;s*=o,i=c>=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&i<o,"Invalid character"),s+=i}return s}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(o.isBN=function(e){return e instanceof o?1:null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o<e.length&&(16===t?this._parseHex(e,o,n):(this._parseBase(e,t,o),"le"===n&&this._initArray(this.toArray(),t,n)))},o.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var o=0;o<this.length;o++)this.words[o]=0;var s,i,a=0;if("be"===n)for(o=e.length-1,s=0;o>=0;o-=3)i=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===n)for(o=0,s=0;o<e.length;o+=3)i=e[o]|e[o+1]<<8|e[o+2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,s=0,i=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)o=a(e,t,n)<<s,this.words[i]|=67108863&o,s>=18?(s-=18,i+=1,this.words[i]|=o>>>26):s+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)o=a(e,t,n)<<s,this.words[i]|=67108863&o,s>=18?(s-=18,i+=1,this.words[i]|=o>>>26):s+=8;this._strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var s=e.length-r,i=s%n,a=Math.min(s,s-i)+r,c=0,l=r;l<a;l+=n)c=u(e,l,l+n,t),this.imuln(o),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==i){var d=1;for(c=u(e,l,e.length,t),l=0;l<i;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype._move=function(e){c(e,this)},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){o.prototype.inspect=l}else o.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","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"],h=[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=[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];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],s=0|t.words[0],i=o*s,a=67108863&i,u=i/67108864|0;r.words[0]=a;for(var c=1;c<n;c++){for(var l=u>>>26,d=67108863&u,h=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=h;p++){var f=c-p|0;l+=(i=(o=0|e.words[f])*(s=0|t.words[p])+d)/67108864|0,d=67108863&i}r.words[c]=0|d,u=0|l}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,s=0,i=0;i<this.length;i++){var a=this.words[i],u=(16777215&(a<<o|s)).toString(16);s=a>>>24-o&16777215,(o+=2)>=26&&(o-=26,i--),n=0!==s||i!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==s&&(n=s.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(l).toString(e);n=(f=f.idivn(l)).isZero()?m+n:d[c-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(0,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(0,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){this._strip();var o=this.byteLength(),s=n||Math.max(1,o);r(o<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0");var i=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](i,o),i},o.prototype._toArrayLikeLE=function(e){for(var t=0,r=0,n=0,o=0;n<this.length;n++){var s=this.words[n]<<o|r;e[t++]=255&s,t<e.length&&(e[t++]=s>>8&255),t<e.length&&(e[t++]=s>>16&255),6===o?(t<e.length&&(e[t++]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(t<e.length)for(e[t++]=r;t<e.length;)e[t++]=0},o.prototype._toArrayLikeBE=function(e){for(var t=e.length-1,r=0,n=0,o=0;n<this.length;n++){var s=this.words[n]<<o|r;e[t--]=255&s,t>=0&&(e[t--]=s>>8&255),t>=0&&(e[t--]=s>>16&255),6===o?(t>=0&&(e[t--]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(t>=0)for(e[t--]=r;t>=0;)e[t--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},o.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},o.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},o.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o<t;o++)this.words[o]=67108863&~this.words[o];return n>0&&(this.words[o]=~this.words[o]&67108863>>26-n),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<o:this.words[n]&~(1<<o),this._strip()},o.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)t=(0|r.words[s])+(0|n.words[s])+o,this.words[s]=67108863&t,o=t>>>26;for(;0!==o&&s<r.length;s++)t=(0|r.words[s])+o,this.words[s]=67108863&t,o=t>>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var s=0,i=0;i<n.length;i++)s=(t=(0|r.words[i])-(0|n.words[i])+s)>>26,this.words[i]=67108863&t;for(;0!==s&&i<r.length;i++)s=(t=(0|r.words[i])+s)>>26,this.words[i]=67108863&t;if(0===s&&i<r.length&&r!==this)for(;i<r.length;i++)this.words[i]=r.words[i];return this.length=Math.max(this.length,i),r!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,o,s,i=e.words,a=t.words,u=r.words,c=0,l=0|i[0],d=8191&l,h=l>>>13,p=0|i[1],f=8191&p,m=p>>>13,y=0|i[2],g=8191&y,w=y>>>13,v=0|i[3],x=8191&v,b=v>>>13,I=0|i[4],E=8191&I,A=I>>>13,T=0|i[5],M=8191&T,S=T>>>13,_=0|i[6],C=8191&_,k=_>>>13,P=0|i[7],R=8191&P,O=P>>>13,L=0|i[8],B=8191&L,N=L>>>13,D=0|i[9],U=8191&D,V=D>>>13,F=0|a[0],q=8191&F,K=F>>>13,H=0|a[1],W=8191&H,j=H>>>13,$=0|a[2],z=8191&$,Z=$>>>13,Y=0|a[3],G=8191&Y,Q=Y>>>13,J=0|a[4],X=8191&J,ee=J>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],se=8191&oe,ie=oe>>>13,ae=0|a[7],ue=8191&ae,ce=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(c+(n=Math.imul(d,q))|0)+((8191&(o=(o=Math.imul(d,K))+Math.imul(h,q)|0))<<13)|0;c=((s=Math.imul(h,K))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,q),o=(o=Math.imul(f,K))+Math.imul(m,q)|0,s=Math.imul(m,K);var ge=(c+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,j)|0)+Math.imul(h,W)|0))<<13)|0;c=((s=s+Math.imul(h,j)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,q),o=(o=Math.imul(g,K))+Math.imul(w,q)|0,s=Math.imul(w,K),n=n+Math.imul(f,W)|0,o=(o=o+Math.imul(f,j)|0)+Math.imul(m,W)|0,s=s+Math.imul(m,j)|0;var we=(c+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,Z)|0)+Math.imul(h,z)|0))<<13)|0;c=((s=s+Math.imul(h,Z)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,q),o=(o=Math.imul(x,K))+Math.imul(b,q)|0,s=Math.imul(b,K),n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,j)|0)+Math.imul(w,W)|0,s=s+Math.imul(w,j)|0,n=n+Math.imul(f,z)|0,o=(o=o+Math.imul(f,Z)|0)+Math.imul(m,z)|0,s=s+Math.imul(m,Z)|0;var ve=(c+(n=n+Math.imul(d,G)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,G)|0))<<13)|0;c=((s=s+Math.imul(h,Q)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,q),o=(o=Math.imul(E,K))+Math.imul(A,q)|0,s=Math.imul(A,K),n=n+Math.imul(x,W)|0,o=(o=o+Math.imul(x,j)|0)+Math.imul(b,W)|0,s=s+Math.imul(b,j)|0,n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,Z)|0)+Math.imul(w,z)|0,s=s+Math.imul(w,Z)|0,n=n+Math.imul(f,G)|0,o=(o=o+Math.imul(f,Q)|0)+Math.imul(m,G)|0,s=s+Math.imul(m,Q)|0;var xe=(c+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;c=((s=s+Math.imul(h,ee)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(M,q),o=(o=Math.imul(M,K))+Math.imul(S,q)|0,s=Math.imul(S,K),n=n+Math.imul(E,W)|0,o=(o=o+Math.imul(E,j)|0)+Math.imul(A,W)|0,s=s+Math.imul(A,j)|0,n=n+Math.imul(x,z)|0,o=(o=o+Math.imul(x,Z)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,Z)|0,n=n+Math.imul(g,G)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(w,G)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(f,X)|0,o=(o=o+Math.imul(f,ee)|0)+Math.imul(m,X)|0,s=s+Math.imul(m,ee)|0;var be=(c+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;c=((s=s+Math.imul(h,ne)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(C,q),o=(o=Math.imul(C,K))+Math.imul(k,q)|0,s=Math.imul(k,K),n=n+Math.imul(M,W)|0,o=(o=o+Math.imul(M,j)|0)+Math.imul(S,W)|0,s=s+Math.imul(S,j)|0,n=n+Math.imul(E,z)|0,o=(o=o+Math.imul(E,Z)|0)+Math.imul(A,z)|0,s=s+Math.imul(A,Z)|0,n=n+Math.imul(x,G)|0,o=(o=o+Math.imul(x,Q)|0)+Math.imul(b,G)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(w,X)|0,s=s+Math.imul(w,ee)|0,n=n+Math.imul(f,re)|0,o=(o=o+Math.imul(f,ne)|0)+Math.imul(m,re)|0,s=s+Math.imul(m,ne)|0;var Ie=(c+(n=n+Math.imul(d,se)|0)|0)+((8191&(o=(o=o+Math.imul(d,ie)|0)+Math.imul(h,se)|0))<<13)|0;c=((s=s+Math.imul(h,ie)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(R,q),o=(o=Math.imul(R,K))+Math.imul(O,q)|0,s=Math.imul(O,K),n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,j)|0)+Math.imul(k,W)|0,s=s+Math.imul(k,j)|0,n=n+Math.imul(M,z)|0,o=(o=o+Math.imul(M,Z)|0)+Math.imul(S,z)|0,s=s+Math.imul(S,Z)|0,n=n+Math.imul(E,G)|0,o=(o=o+Math.imul(E,Q)|0)+Math.imul(A,G)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(x,X)|0,o=(o=o+Math.imul(x,ee)|0)+Math.imul(b,X)|0,s=s+Math.imul(b,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(w,re)|0,s=s+Math.imul(w,ne)|0,n=n+Math.imul(f,se)|0,o=(o=o+Math.imul(f,ie)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,ie)|0;var Ee=(c+(n=n+Math.imul(d,ue)|0)|0)+((8191&(o=(o=o+Math.imul(d,ce)|0)+Math.imul(h,ue)|0))<<13)|0;c=((s=s+Math.imul(h,ce)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(B,q),o=(o=Math.imul(B,K))+Math.imul(N,q)|0,s=Math.imul(N,K),n=n+Math.imul(R,W)|0,o=(o=o+Math.imul(R,j)|0)+Math.imul(O,W)|0,s=s+Math.imul(O,j)|0,n=n+Math.imul(C,z)|0,o=(o=o+Math.imul(C,Z)|0)+Math.imul(k,z)|0,s=s+Math.imul(k,Z)|0,n=n+Math.imul(M,G)|0,o=(o=o+Math.imul(M,Q)|0)+Math.imul(S,G)|0,s=s+Math.imul(S,Q)|0,n=n+Math.imul(E,X)|0,o=(o=o+Math.imul(E,ee)|0)+Math.imul(A,X)|0,s=s+Math.imul(A,ee)|0,n=n+Math.imul(x,re)|0,o=(o=o+Math.imul(x,ne)|0)+Math.imul(b,re)|0,s=s+Math.imul(b,ne)|0,n=n+Math.imul(g,se)|0,o=(o=o+Math.imul(g,ie)|0)+Math.imul(w,se)|0,s=s+Math.imul(w,ie)|0,n=n+Math.imul(f,ue)|0,o=(o=o+Math.imul(f,ce)|0)+Math.imul(m,ue)|0,s=s+Math.imul(m,ce)|0;var Ae=(c+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;c=((s=s+Math.imul(h,he)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,K))+Math.imul(V,q)|0,s=Math.imul(V,K),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,j)|0)+Math.imul(N,W)|0,s=s+Math.imul(N,j)|0,n=n+Math.imul(R,z)|0,o=(o=o+Math.imul(R,Z)|0)+Math.imul(O,z)|0,s=s+Math.imul(O,Z)|0,n=n+Math.imul(C,G)|0,o=(o=o+Math.imul(C,Q)|0)+Math.imul(k,G)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(M,X)|0,o=(o=o+Math.imul(M,ee)|0)+Math.imul(S,X)|0,s=s+Math.imul(S,ee)|0,n=n+Math.imul(E,re)|0,o=(o=o+Math.imul(E,ne)|0)+Math.imul(A,re)|0,s=s+Math.imul(A,ne)|0,n=n+Math.imul(x,se)|0,o=(o=o+Math.imul(x,ie)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,ie)|0,n=n+Math.imul(g,ue)|0,o=(o=o+Math.imul(g,ce)|0)+Math.imul(w,ue)|0,s=s+Math.imul(w,ce)|0,n=n+Math.imul(f,de)|0,o=(o=o+Math.imul(f,he)|0)+Math.imul(m,de)|0,s=s+Math.imul(m,he)|0;var Te=(c+(n=n+Math.imul(d,fe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;c=((s=s+Math.imul(h,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,j))+Math.imul(V,W)|0,s=Math.imul(V,j),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,Z)|0)+Math.imul(N,z)|0,s=s+Math.imul(N,Z)|0,n=n+Math.imul(R,G)|0,o=(o=o+Math.imul(R,Q)|0)+Math.imul(O,G)|0,s=s+Math.imul(O,Q)|0,n=n+Math.imul(C,X)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(k,X)|0,s=s+Math.imul(k,ee)|0,n=n+Math.imul(M,re)|0,o=(o=o+Math.imul(M,ne)|0)+Math.imul(S,re)|0,s=s+Math.imul(S,ne)|0,n=n+Math.imul(E,se)|0,o=(o=o+Math.imul(E,ie)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ie)|0,n=n+Math.imul(x,ue)|0,o=(o=o+Math.imul(x,ce)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,ce)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(w,de)|0,s=s+Math.imul(w,he)|0;var Me=(c+(n=n+Math.imul(f,fe)|0)|0)+((8191&(o=(o=o+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;c=((s=s+Math.imul(m,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,z),o=(o=Math.imul(U,Z))+Math.imul(V,z)|0,s=Math.imul(V,Z),n=n+Math.imul(B,G)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(N,G)|0,s=s+Math.imul(N,Q)|0,n=n+Math.imul(R,X)|0,o=(o=o+Math.imul(R,ee)|0)+Math.imul(O,X)|0,s=s+Math.imul(O,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(k,re)|0,s=s+Math.imul(k,ne)|0,n=n+Math.imul(M,se)|0,o=(o=o+Math.imul(M,ie)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,ie)|0,n=n+Math.imul(E,ue)|0,o=(o=o+Math.imul(E,ce)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,ce)|0,n=n+Math.imul(x,de)|0,o=(o=o+Math.imul(x,he)|0)+Math.imul(b,de)|0,s=s+Math.imul(b,he)|0;var Se=(c+(n=n+Math.imul(g,fe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(w,fe)|0))<<13)|0;c=((s=s+Math.imul(w,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(U,G),o=(o=Math.imul(U,Q))+Math.imul(V,G)|0,s=Math.imul(V,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(N,X)|0,s=s+Math.imul(N,ee)|0,n=n+Math.imul(R,re)|0,o=(o=o+Math.imul(R,ne)|0)+Math.imul(O,re)|0,s=s+Math.imul(O,ne)|0,n=n+Math.imul(C,se)|0,o=(o=o+Math.imul(C,ie)|0)+Math.imul(k,se)|0,s=s+Math.imul(k,ie)|0,n=n+Math.imul(M,ue)|0,o=(o=o+Math.imul(M,ce)|0)+Math.imul(S,ue)|0,s=s+Math.imul(S,ce)|0,n=n+Math.imul(E,de)|0,o=(o=o+Math.imul(E,he)|0)+Math.imul(A,de)|0,s=s+Math.imul(A,he)|0;var _e=(c+(n=n+Math.imul(x,fe)|0)|0)+((8191&(o=(o=o+Math.imul(x,me)|0)+Math.imul(b,fe)|0))<<13)|0;c=((s=s+Math.imul(b,me)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(U,X),o=(o=Math.imul(U,ee))+Math.imul(V,X)|0,s=Math.imul(V,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(N,re)|0,s=s+Math.imul(N,ne)|0,n=n+Math.imul(R,se)|0,o=(o=o+Math.imul(R,ie)|0)+Math.imul(O,se)|0,s=s+Math.imul(O,ie)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(k,ue)|0,s=s+Math.imul(k,ce)|0,n=n+Math.imul(M,de)|0,o=(o=o+Math.imul(M,he)|0)+Math.imul(S,de)|0,s=s+Math.imul(S,he)|0;var Ce=(c+(n=n+Math.imul(E,fe)|0)|0)+((8191&(o=(o=o+Math.imul(E,me)|0)+Math.imul(A,fe)|0))<<13)|0;c=((s=s+Math.imul(A,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(V,re)|0,s=Math.imul(V,ne),n=n+Math.imul(B,se)|0,o=(o=o+Math.imul(B,ie)|0)+Math.imul(N,se)|0,s=s+Math.imul(N,ie)|0,n=n+Math.imul(R,ue)|0,o=(o=o+Math.imul(R,ce)|0)+Math.imul(O,ue)|0,s=s+Math.imul(O,ce)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,he)|0)+Math.imul(k,de)|0,s=s+Math.imul(k,he)|0;var ke=(c+(n=n+Math.imul(M,fe)|0)|0)+((8191&(o=(o=o+Math.imul(M,me)|0)+Math.imul(S,fe)|0))<<13)|0;c=((s=s+Math.imul(S,me)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,se),o=(o=Math.imul(U,ie))+Math.imul(V,se)|0,s=Math.imul(V,ie),n=n+Math.imul(B,ue)|0,o=(o=o+Math.imul(B,ce)|0)+Math.imul(N,ue)|0,s=s+Math.imul(N,ce)|0,n=n+Math.imul(R,de)|0,o=(o=o+Math.imul(R,he)|0)+Math.imul(O,de)|0,s=s+Math.imul(O,he)|0;var Pe=(c+(n=n+Math.imul(C,fe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(k,fe)|0))<<13)|0;c=((s=s+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(V,ue)|0,s=Math.imul(V,ce),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(N,de)|0,s=s+Math.imul(N,he)|0;var Re=(c+(n=n+Math.imul(R,fe)|0)|0)+((8191&(o=(o=o+Math.imul(R,me)|0)+Math.imul(O,fe)|0))<<13)|0;c=((s=s+Math.imul(O,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(U,de),o=(o=Math.imul(U,he))+Math.imul(V,de)|0,s=Math.imul(V,he);var Oe=(c+(n=n+Math.imul(B,fe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(N,fe)|0))<<13)|0;c=((s=s+Math.imul(N,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863;var Le=(c+(n=Math.imul(U,fe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(V,fe)|0))<<13)|0;return c=((s=Math.imul(V,me))+(o>>>13)|0)+(Le>>>26)|0,Le&=67108863,u[0]=ye,u[1]=ge,u[2]=we,u[3]=ve,u[4]=xe,u[5]=be,u[6]=Ie,u[7]=Ee,u[8]=Ae,u[9]=Te,u[10]=Me,u[11]=Se,u[12]=_e,u[13]=Ce,u[14]=ke,u[15]=Pe,u[16]=Re,u[17]=Oe,u[18]=Le,0!==c&&(u[19]=c,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,s=0;s<r.length-1;s++){var i=o;o=0;for(var a=67108863&n,u=Math.min(s,t.length-1),c=Math.max(0,s-e.length+1);c<=u;c++){var l=s-c,d=(0|e.words[l])*(0|t.words[c]),h=67108863&d;a=67108863&(h=h+a|0),o+=(i=(i=i+(d/67108864|0)|0)+(h>>>26)|0)>>>26,i&=67108863}r.words[s]=a,n=i,i=o}return 0!==n?r.words[s]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=f),o.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?y(this,e,t):g(this,e,t)},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),g(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,o=0;o<this.length;o++){var s=(0|this.words[o])*e,i=(67108863&s)+(67108863&n);n>>=26,n+=s/67108864|0,n+=i>>>26,this.words[o]=67108863&i}return 0!==n&&(this.words[o]=n,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var n=r/26|0,o=r%26;t[r]=e.words[n]>>>o&1}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var s=r.sqr();n<t.length;n++,s=s.sqr())0!==t[n]&&(r=r.mul(s));return r},o.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,o=(e-n)/26,s=67108863>>>26-n<<26-n;if(0!==n){var i=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,u=(0|this.words[t])-a<<n;this.words[t]=u|i,i=a>>>26-n}i&&(this.words[t]=i,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t<o;t++)this.words[t]=0;this.length+=o}return this._strip()},o.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,n){var o;r("number"==typeof e&&e>=0),o=t?(t-t%26)/26:0;var s=e%26,i=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,u=n;if(o-=i,o=Math.max(0,o),u){for(var c=0;c<i;c++)u.words[c]=this.words[c];u.length=i}if(0===i);else if(this.length>i)for(this.length-=i,c=0;c<this.length;c++)this.words[c]=this.words[c+i];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=o);c--){var d=0|this.words[c];this.words[c]=l<<26-s|d>>>s,l=d&a}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<<t;return this.length<=n?0:!!(this.words[n]&o)},o.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<<t;this.words[this.length-1]&=o}return this._strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,n){var o,s,i=e.length+n;this._expand(i);var a=0;for(o=0;o<e.length;o++){s=(0|this.words[o+n])+a;var u=(0|e.words[o])*t;a=((s-=67108863&u)>>26)-(u/67108864|0),this.words[o+n]=67108863&s}for(;o<this.length-n;o++)a=(s=(0|this.words[o+n])+a)>>26,this.words[o+n]=67108863&s;if(0===a)return this._strip();for(r(-1===a),a=0,o=0;o<this.length;o++)a=(s=-(0|this.words[o])+a)>>26,this.words[o]=67108863&s;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),s=e,i=0|s.words[s.length-1];0!=(r=26-this._countBits(i))&&(s=s.ushln(r),n.iushln(r),i=0|s.words[s.length-1]);var a,u=n.length-s.length;if("mod"!==t){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c<a.length;c++)a.words[c]=0}var l=n.clone()._ishlnsubmul(s,1,u);0===l.negative&&(n=l,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|n.words[s.length+d])+(0|n.words[s.length+d-1]);for(h=Math.min(h/i|0,67108863),n._ishlnsubmul(s,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(s,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(s=a.div.neg()),"div"!==t&&(i=a.mod.neg(),n&&0!==i.negative&&i.iadd(e)),{div:s,mod:i}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(s=a.div.neg()),{div:s,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(i=a.mod.neg(),n&&0!==i.negative&&i.isub(e)),{div:a.div,mod:i}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,i,a},o.prototype.div=function(e){return this.divmod(e,"div",0).div},o.prototype.mod=function(e){return this.divmod(e,"mod",0).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",1).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),s=r.cmp(n);return s<0||1===o&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,o=0,s=this.length-1;s>=0;s--)o=(n*o+(0|this.words[s]))%e;return t?-o:o},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,o=this.length-1;o>=0;o--){var s=(0|this.words[o])+67108864*n;this.words[o]=s/e|0,n=s%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new o(1),i=new o(0),a=new o(0),u=new o(1),c=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++c;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(s.isOdd()||i.isOdd())&&(s.iadd(l),i.isub(d)),s.iushrn(1),i.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(l),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a),i.isub(u)):(n.isub(t),a.isub(s),u.isub(i))}return{a:a,b:u,gcd:n.iushln(c)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,i=new o(1),a=new o(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)i.isOdd()&&i.iadd(u),i.iushrn(1);for(var d=0,h=1;0==(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a)):(n.isub(t),a.isub(i))}return(s=0===t.cmpn(1)?i:a).cmpn(0)<0&&s.iadd(e),s},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var s=t;t=r,r=s}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=o,this;for(var s=o,i=n;0!==s&&i<this.length;i++){var a=0|this.words[i];s=(a+=s)>>>26,a&=67108863,this.words[i]=a}return 0!==s&&(this.words[i]=s,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:o<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){n<o?t=-1:n>o&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new A(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function I(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(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)}v.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(x,v),x.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o<n;o++)t.words[o]=e.words[o];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&r,o=10;o<e.length;o++){var i=0|e.words[o];e.words[o-10]=(i&r)<<4|s>>>22,s=i}s>>>=22,e.words[o-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},x.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];t+=977*n,e.words[r]=67108863&t,t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(b,v),n(I,v),n(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,o=67108863&n;n>>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new x;else if("p224"===e)t=new b;else if("p192"===e)t=new I;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return w[e]=t,t},A.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var s=this.m.subn(1),i=0;!s.isZero()&&0===s.andln(1);)i++,s.iushrn(1);r(!s.isZero());var a=new o(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,s),h=this.pow(e,s.addn(1).iushrn(1)),p=this.pow(e,s),f=i;0!==p.cmp(a);){for(var m=p,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<f);var g=this.pow(d,new o(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},A.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},A.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var s=r[0],i=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var c=t.words[n],l=u-1;l>=0;l--){var d=c>>l&1;s!==r[0]&&(s=this.sqr(s)),0!==d||0!==i?(i<<=1,i|=d,(4==++a||0===n&&0===l)&&(s=this.mul(s,r[i]),a=0,i=0)):a=0}u=26}return s},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,A),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=r.isub(n).iushrn(this.shift),i=s;return s.cmp(this.m)>=0?i=s.isub(this.m):s.cmpn(0)<0&&(i=s.iadd(this.m)),i._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(0,te);var Ke,He,We=Fe.exports,je=re(We);!function(t){var r=te&&te.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:1}),t.map=t.array=t.rustEnum=t.str=t.vecU8=t.tagged=t.vec=t.bool=t.option=t.publicKey=t.i256=t.u256=t.i128=t.u128=t.i64=t.u64=t.struct=t.f64=t.f32=t.i32=t.u32=t.i16=t.u16=t.i8=t.u8=void 0;const n=se,o=e,s=r(We);var i=se;Object.defineProperty(t,"u8",{enumerable:1,get:function(){return i.u8}}),Object.defineProperty(t,"i8",{enumerable:1,get:function(){return i.s8}}),Object.defineProperty(t,"u16",{enumerable:1,get:function(){return i.u16}}),Object.defineProperty(t,"i16",{enumerable:1,get:function(){return i.s16}}),Object.defineProperty(t,"u32",{enumerable:1,get:function(){return i.u32}}),Object.defineProperty(t,"i32",{enumerable:1,get:function(){return i.s32}}),Object.defineProperty(t,"f32",{enumerable:1,get:function(){return i.f32}}),Object.defineProperty(t,"f64",{enumerable:1,get:function(){return i.f64}}),Object.defineProperty(t,"struct",{enumerable:1,get:function(){return i.struct}});class a extends n.Layout{constructor(e,t,r){super(e,r),this.blob=(0,n.blob)(e),this.signed=t}decode(e,t=0){const r=new s.default(this.blob.decode(e,t),10,"le");return this.signed?r.fromTwos(8*this.span).clone():r}encode(e,t,r=0){return this.signed&&(e=e.toTwos(8*this.span)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}}function u(e){return new a(8,0,e)}t.u64=u,t.i64=function(e){return new a(8,1,e)},t.u128=function(e){return new a(16,0,e)},t.i128=function(e){return new a(16,1,e)},t.u256=function(e){return new a(32,0,e)},t.i256=function(e){return new a(32,1,e)};class c extends n.Layout{constructor(e,t,r,n){super(e.span,n),this.layout=e,this.decoder=t,this.encoder=r}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,r){return this.layout.encode(this.encoder(e),t,r)}getSpan(e,t){return this.layout.getSpan(e,t)}}t.publicKey=function(e){return new c((0,n.blob)(32),(e=>new o.PublicKey(e)),(e=>e.toBuffer()),e)};class l extends n.Layout{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=(0,n.u8)()}encode(e,t,r=0){return null==e?this.discriminator.encode(0,t,r):(this.discriminator.encode(1,t,r),this.layout.encode(e,t,r+1)+1)}decode(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return null;if(1===r)return this.layout.decode(e,t+1);throw new Error("Invalid option "+this.property)}getSpan(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return 1;if(1===r)return this.layout.getSpan(e,t+1)+1;throw new Error("Invalid option "+this.property)}}function d(e){if(0===e)return 0;if(1===e)return 1;throw new Error("Invalid bool: "+e)}function h(e){return e?1:0}function p(e){const t=(0,n.u32)("length"),r=(0,n.struct)([t,(0,n.blob)((0,n.offset)(t,-t.span),"data")]);return new c(r,(({data:e})=>e),(e=>({data:e})),e)}t.option=function(e,t){return new l(e,t)},t.bool=function(e){return new c((0,n.u8)(),d,h,e)},t.vec=function(e,t){const r=(0,n.u32)("length"),o=(0,n.struct)([r,(0,n.seq)(e,(0,n.offset)(r,-r.span),"values")]);return new c(o,(({values:e})=>e),(e=>({values:e})),t)},t.tagged=function(e,t,r){const o=(0,n.struct)([u("tag"),t.replicate("data")]);return new c(o,(function({tag:t,data:r}){if(!t.eq(e))throw new Error("Invalid tag, expected: "+e.toString("hex")+", got: "+t.toString("hex"));return r}),(t=>({tag:e,data:t})),r)},t.vecU8=p,t.str=function(e){return new c(p(),(e=>e.toString("utf-8")),(e=>Buffer.from(e,"utf-8")),e)},t.rustEnum=function(e,t,r){const o=(0,n.union)(null!=r?r:(0,n.u8)(),t);return e.forEach(((e,t)=>o.addVariant(t,e,e.property))),o},t.array=function(e,t,r){const o=(0,n.struct)([(0,n.seq)(e,t,"values")]);return new c(o,(({values:e})=>e),(e=>({values:e})),r)};class f extends n.Layout{constructor(e,t,r){super(e.span+t.span,r),this.keyLayout=e,this.valueLayout=t}decode(e,t){return t=t||0,[this.keyLayout.decode(e,t),this.valueLayout.decode(e,t+this.keyLayout.getSpan(e,t))]}encode(e,t,r){r=r||0;const n=this.keyLayout.encode(e[0],t,r);return n+this.valueLayout.encode(e[1],t,r+n)}getSpan(e,t){return this.keyLayout.getSpan(e,t)+this.valueLayout.getSpan(e,t)}}t.map=function(e,t,r){const o=(0,n.u32)("length"),s=(0,n.struct)([o,(0,n.seq)(new f(e,t),(0,n.offset)(o,-o.span),"values")]);return new c(s,(({values:e})=>new Map(e)),(e=>({values:Array.from(e.entries())})),r)}}(oe),exports.TreeType=void 0,(Ke=exports.TreeType||(exports.TreeType={}))[Ke.StateV1=1]="StateV1",Ke[Ke.AddressV1=2]="AddressV1",Ke[Ke.StateV2=3]="StateV2",Ke[Ke.AddressV2=4]="AddressV2",exports.VERSION=void 0,(He=exports.VERSION||(exports.VERSION={})).V1="V1",He.V2="V2";const $e={version:'"V2"',isV2:()=>"V2"===$e.version.replace(/['"]/g,"").toUpperCase()},ze=e=>$e.isV2()?`${e}V2`:e,Ze=new je("21888242871839275222246405745257275088548364400416034343698204186575808495617"),Ye=new je("452312848583266388373324160190187140051835877600158453279131187530910662655"),Ge=[2,64,66,15,0],Qe=y.from([26,16,169,7,21,202,242,25]),Je=y.from([49,212,191,129,39,194,43,196]),Xe=y.from([86,47,163,166,21,223,92,8]),et=y.from([228,34,128,84,47,139,86,240]),tt=y.from([180,143,159,153,35,46,248,163]),rt="noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",nt="SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7",ot="compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq",st=()=>new e.PublicKey("35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh"),it=()=>e.PublicKey.findProgramAddressSync([y.from("cpi_authority")],new e.PublicKey(nt))[0],at=()=>({registeredProgramPda:new e.PublicKey(st()),noopProgram:new e.PublicKey(rt),accountCompressionProgram:new e.PublicKey(ot),accountCompressionAuthority:new e.PublicKey(it()),cpiSignatureAccount:null}),ut=()=>({mainnet:[{stateTreeLookupTable:new e.PublicKey(yt),nullifyLookupTable:new e.PublicKey(gt)}],devnet:[{stateTreeLookupTable:new e.PublicKey(wt),nullifyLookupTable:new e.PublicKey(vt)}]}),ct=e=>e.includes("localhost")||e.includes("127.0.0.1"),lt=()=>ht(),dt=()=>$e.isV2()?ht():{tree:new e.PublicKey(Et),queue:new e.PublicKey(At),cpiContext:void 0,treeType:exports.TreeType.AddressV1,nextTreeInfo:null},ht=()=>({tree:new e.PublicKey(Ht),queue:new e.PublicKey(Ht),cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}),pt=()=>({nullifierQueue:new e.PublicKey(xt),merkleTree:new e.PublicKey(It),merkleTreeHeight:zt,addressTree:new e.PublicKey(Et),addressQueue:new e.PublicKey(At)}),ft=new e.PublicKey("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"),mt=ft,yt="7i86eQs3GSqHjN47WdWLTCGMW6gde1q96G2EVnUyK2st",gt="H9QD4u1fG7KmkAzn2tDXhheushxFe1EcrjGGyEFXeMqT",wt="Dk9mNkbiZXJZ4By8DfSP6HEE4ojZzRvucwpawLeuwq8q",vt="AXbHzp1NgjLvpfnD6JRTTovXZ7APUCdtWZFCRr5tCxse",xt="nfq1NvQDJ2GEgnS8zt9prAe8rjjpAW1zFkrvZoBR148",bt="cpi1uHzrEhBG733DoEJNgHCyRS3XmmyVNZx5fonubE4",It="smt1NamzXdq4AMqS2fS2F1i5KTYPZRhoHgWx38d8WsT",Et="amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2",At="aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F",Tt="smt2rJAFdyJJupwMKAqTNAJwvjhmiZ4JYGZmbVRw1Ho",Mt="nfq2hgS7NYemXsFaFUCe3EMXSDSfnZnAe27jC6aPP1X",St="cpi2cdhkH5roePvcudTgUL8ppEBfTay1desGh8G8QxK",_t="bmt1LryLZUMmF7ZtqESaw7wifBXLfXHQYoE4GAmrahU",Ct="oq1na8gojfdUhsfCpyjNt6h4JaDWtHf1yQj4koBWfto",kt="cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y",Pt="bmt2UxoBxB9xWev4BkLvkGdapsz6sZGkzViPNph7VFi",Rt="oq2UkeMsJLfXt2QHzim242SUi3nvjJs8Pn7Eac9H9vg",Ot="cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B",Lt="bmt3ccLd4bqSVZVeCJnH1F6C8jNygAhaDfxDwePyyGb",Bt="oq3AxjekBWgo64gpauB6QtuZNesuv19xrhaC1ZM1THQ",Nt="cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf",Dt="bmt4d3p1a4YQgk9PeZv5s4DBUmbF5NxqYpk9HGjQsd8",Ut="oq4ypwvVGzCUMoiKKHWh4S1SgZJ9vCvKpcz6RT6A8dq",Vt="cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc",Ft="bmt5yU97jC88YXTuSukYHa8Z5Bi2ZDUtmzfkDTA2mG2",qt="oq5oh5ZR3yGomuQgFduNDzjtGvVWfDRGLuDVjv9a96P",Kt="cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6",Ht="amt2kaJA14v3urZbZvnc5v2np8jqvc4Z8zDep5wbtzx",Wt=_t,jt=Ct,$t=()=>{const t=[[_t,Ct,kt],[Pt,Rt,Ot],[Lt,Bt,Nt],[Dt,Ut,Vt],[Ft,qt,Kt]],r=Ht,n=[[It,xt,bt],[Tt,Mt,St]].map((([t,r,n])=>({tree:new e.PublicKey(t),queue:new e.PublicKey(r),cpiContext:new e.PublicKey(n),treeType:exports.TreeType.StateV1,nextTreeInfo:null}))),o=t.map((([t,r,n])=>({tree:new e.PublicKey(t),queue:new e.PublicKey(r),cpiContext:new e.PublicKey(n),treeType:exports.TreeType.StateV2,nextTreeInfo:null}))),s={tree:new e.PublicKey(r),queue:new e.PublicKey(r),cpiContext:e.PublicKey.default,treeType:exports.TreeType.AddressV2,nextTreeInfo:null};return $e.isV2()?[...n,...o,s]:n},zt=26,Zt=new je(Math.floor(2**zt*.95)),Yt=$e.isV2()?new je(1):new je(300),Gt=($e.isV2(),new je(392)),Qt=new je(5e3),Jt=new je(5e3),Xt=new je(1e4);var er=function(e){const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let r=0;r<58;r++){const n=e.charAt(r),o=n.charCodeAt(0);if(255!==t[o])throw new TypeError(n+" is ambiguous");t[o]=r}const r=e.charAt(0),n=Math.log(58)/Math.log(256),o=Math.log(256)/Math.log(58);function s(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let o=0,s=0,i=0;for(;e[o]===r;)s++,o++;const a=(e.length-o)*n+1>>>0,u=new Uint8Array(a);for(;e[o];){let r=t[e.charCodeAt(o)];if(255===r)return;let n=0;for(let e=a-1;(0!==r||n<i)&&-1!==e;e--,n++)r+=58*u[e]>>>0,u[e]=r%256>>>0,r=r/256>>>0;if(0!==r)throw new Error("Non-zero carry");i=n,o++}let c=a-i;for(;c!==a&&0===u[c];)c++;const l=new Uint8Array(s+(a-c));let d=s;for(;c!==a;)l[d++]=u[c++];return l}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let n=0,s=0,i=0;const a=t.length;for(;i!==a&&0===t[i];)i++,n++;const u=(a-i)*o+1>>>0,c=new Uint8Array(u);for(;i!==a;){let e=t[i],r=0;for(let t=u-1;(0!==e||r<s)&&-1!==t;t--,r++)e+=256*c[t]>>>0,c[t]=e%58>>>0,e=e/58>>>0;if(0!==e)throw new Error("Non-zero carry");s=r,i++}let l=u-s;for(;l!==u&&0===c[l];)l++;let d=r.repeat(n);for(;l<u;++l)d+=e.charAt(c[l]);return d},decodeUnsafe:s,decode:function(e){const t=s(e);if(t)return t;throw new Error("Non-base58 character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");const tr=(e,t)=>{if("base58"===t){if("string"!=typeof e)throw new Error("Must be a base58 string");return tr(er.decode(e))}return function(e){if(e.gte(Ze))throw new Error("Value is too large. Max <254 bits");return e}(new je(e,t))};function rr(e){const t=tr(e).toArrayLike(y,void 0,32);return er.encode(new Uint8Array(t))}const nr=(e,t,r)=>e instanceof Uint8Array&&!(e instanceof y)?new je(y.from(e),t,r):new je(e,t,r),or=(e,t,r,n)=>({owner:e,lamports:null!=t?t:new je(0),address:null!=n?n:null,data:null!=r?r:null}),sr=(e,t,r,n,o)=>Object.assign(Object.assign({},e),{owner:t,lamports:null!=r?r:new je(0),address:null!=o?o:null,data:null!=n?n:null,readOnly:0}),ir=(e,t,r,n=0)=>({treeInfo:e,hash:t,leafIndex:r,proveByIndex:n}),ar=oe.struct([oe.publicKey("owner"),oe.u64("lamports"),oe.option(oe.array(oe.u8(),32),"address"),oe.option(oe.struct([oe.array(oe.u8(),8,"discriminator"),oe.vecU8("data"),oe.array(oe.u8(),32,"dataHash")]),"data")],"compressedAccount"),ur=oe.struct([oe.u8("merkleTreePubkeyIndex"),oe.u8("queuePubkeyIndex"),oe.u32("leafIndex"),oe.bool("proveByIndex")],"merkleContext"),cr=oe.struct([oe.array(oe.u8(),32,"seed"),oe.u8("addressQueueAccountIndex"),oe.u8("addressMerkleTreeAccountIndex"),oe.u16("addressMerkleTreeRootIndex")],"newAddressParams"),lr=oe.struct([oe.option(oe.struct([oe.array(oe.u8(),32,"a"),oe.array(oe.u8(),64,"b"),oe.array(oe.u8(),32,"c")]),"proof"),oe.vec(oe.struct([ar,ur,oe.u16("rootIndex"),oe.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),oe.vec(oe.struct([ar,oe.u8("merkleTreeIndex")]),"outputCompressedAccounts"),oe.option(oe.u64(),"relayFee"),oe.vec(cr,"newAddressParams"),oe.option(oe.u64(),"compressOrDecompressLamports"),oe.bool("isCompress")]);function dr(e){const t=y.alloc(1e3),r=lr.encode(e,t),n=y.from(new Uint8Array(t.slice(0,r))),o=y.alloc(4);return o.writeUInt32LE(r,0),y.concat([new Uint8Array(Qe),new Uint8Array(o),new Uint8Array(n)])}const hr=oe.struct([oe.option(oe.struct([oe.array(oe.u8(),32,"a"),oe.array(oe.u8(),64,"b"),oe.array(oe.u8(),32,"c")]),"proof"),oe.vec(cr,"newAddressParams"),oe.vec(oe.struct([ar,ur,oe.u16("rootIndex"),oe.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),oe.vec(oe.struct([ar,oe.u8("merkleTreeIndex")]),"outputCompressedAccounts"),oe.option(oe.u64(),"relayFee"),oe.option(oe.u64(),"compressOrDecompressLamports"),oe.bool("isCompress"),oe.option(oe.struct([oe.bool("set_context"),oe.bool("first_set_context"),oe.u8("cpi_context_account_index")]),"compressedCpiContext")]),pr=oe.struct([oe.array(oe.u8(),32,"a"),oe.array(oe.u8(),64,"b"),oe.array(oe.u8(),32,"c")],"compressedProof"),fr=oe.struct([oe.bool("set_context"),oe.bool("first_set_context"),oe.u8("cpi_context_account_index")],"compressedCpiContext"),mr=oe.struct([oe.array(oe.u8(),32,"seed"),oe.u8("address_queue_account_index"),oe.u8("address_merkle_tree_account_index"),oe.u16("address_merkle_tree_root_index"),oe.bool("assigned_to_account"),oe.u8("assigned_account_index")],"newAddressParamsAssignedPacked"),yr=oe.struct([oe.u8("merkle_tree_pubkey_index"),oe.u8("queue_pubkey_index"),oe.u32("leaf_index"),oe.bool("prove_by_index")],"packedMerkleContext"),gr=oe.struct([oe.array(oe.u8(),8,"discriminator"),oe.array(oe.u8(),32,"data_hash"),yr,oe.u16("root_index"),oe.u64("lamports"),oe.option(oe.array(oe.u8(),32),"address")],"inAccount"),wr=oe.struct([oe.array(oe.u8(),32,"address"),oe.u16("address_merkle_tree_root_index"),oe.u8("address_merkle_tree_account_index")],"packedReadOnlyAddress"),vr=oe.struct([oe.array(oe.u8(),32,"account_hash"),yr,oe.u16("root_index")],"packedReadOnlyCompressedAccount"),xr=oe.struct([oe.u8("mode"),oe.u8("bump"),oe.publicKey("invoking_program_id"),oe.u64("compress_or_decompress_lamports"),oe.bool("is_compress"),oe.bool("with_cpi_context"),oe.bool("with_transaction_hash"),fr,oe.option(pr,"proof"),oe.vec(mr,"new_address_params"),oe.vec(gr,"input_compressed_accounts"),oe.vec(oe.struct([ar,oe.u8("merkleTreeIndex")]),"output_compressed_accounts"),oe.vec(wr,"read_only_addresses"),oe.vec(vr,"read_only_accounts")]);function br(e){return xr.decode(e.slice(Xe.length))}function Ir(e){return lr.decode(e.slice(Qe.length+4))}function Er(e){return hr.decode(e.slice(Je.length+4))}const Ar=e=>{const t=po.programId,{feePayer:r,authority:n,registeredProgramPda:o,noopProgram:s,accountCompressionAuthority:i,accountCompressionProgram:a,solPoolPda:u,decompressionRecipient:c,systemProgram:l}=e;return[{pubkey:r,isSigner:1,isWritable:1},{pubkey:n,isSigner:1,isWritable:0},{pubkey:o,isSigner:0,isWritable:0},{pubkey:s,isSigner:0,isWritable:0},{pubkey:i,isSigner:0,isWritable:0},{pubkey:a,isSigner:0,isWritable:0},{pubkey:null!=u?u:t,isSigner:0,isWritable:null!==u},{pubkey:null!=c?c:t,isSigner:0,isWritable:1},{pubkey:l,isSigner:0,isWritable:0}]},Tr=oe.struct([oe.vec(oe.array(oe.u8(),32),"inputCompressedAccountHashes"),oe.vec(oe.array(oe.u8(),32),"outputCompressedAccountHashes"),oe.vec(oe.struct([oe.struct([oe.publicKey("owner"),oe.u64("lamports"),oe.option(oe.array(oe.u8(),32),"address"),oe.option(oe.struct([oe.array(oe.u8(),8,"discriminator"),oe.vecU8("data"),oe.array(oe.u8(),32,"dataHash")]),"data")],"compressedAccount"),oe.u8("merkleTreeIndex")]),"outputCompressedAccounts"),oe.vec(oe.u32(),"outputLeafIndices"),oe.vec(oe.struct([oe.publicKey("tree_pubkey"),oe.publicKey("queue_pubkey"),oe.u64("tree_type"),oe.u64("seq")]),"sequenceNumbers"),oe.option(oe.u64(),"relayFee"),oe.bool("isCompress"),oe.option(oe.u64(),"compressOrDecompressLamports"),oe.vec(oe.publicKey(),"pubkeyArray"),oe.option(oe.vecU8(),"message")]);function Mr(e){return Tr.decode(e)}const Sr=oe.struct([oe.u8("is_invoked_by_program"),oe.u8("bump"),oe.u8("num_queues"),oe.u8("num_output_queues"),oe.u8("start_output_appends"),oe.u8("num_address_queues"),oe.array(oe.u8(),32,"tx_hash")],"appendNullifyCreateAddressInputsMeta"),_r=oe.struct([oe.u8("index"),oe.array(oe.u8(),32,"leaf")],"appendLeavesInput"),Cr=oe.struct([oe.array(oe.u8(),32,"account_hash"),oe.u32("leaf_index"),oe.u8("prove_by_index"),oe.u8("tree_index"),oe.u8("queue_index")],"insertNullifierInput"),kr=oe.struct([oe.array(oe.u8(),32,"address"),oe.u8("tree_index"),oe.u8("queue_index")],"insertAddressInput"),Pr=oe.struct([oe.publicKey("tree_pubkey"),oe.publicKey("queue_pubkey"),oe.u64("tree_type"),oe.u64("seq")],"merkleTreeSequenceNumber");function Rr(e){let t=0;const r=Sr.decode(e,t);t+=Sr.span;const n=e.readUInt8(t);t+=1;const o=[];for(let r=0;r<n;r++){const r=_r.decode(e,t);o.push(r),t+=_r.span}const s=e.readUInt8(t);t+=1;const i=[];for(let r=0;r<s;r++){const r=Cr.decode(e,t);i.push(r),t+=Cr.span}const a=e.readUInt8(t);t+=1;const u=[];for(let r=0;r<a;r++){const r=kr.decode(e,t);u.push(r),t+=kr.span}const c=e.readUInt8(t);t+=1;const l=[];for(let r=0;r<c;r++){const r=Pr.decode(e,t);l.push(r),t+=Pr.span}const d=e.readUInt8(t);t+=1;for(let r=0;r<d;r++)Pr.decode(e,t),t+=Pr.span;const h=e.readUInt8(t);t+=1;for(let r=0;r<h;r++)Pr.decode(e,t),t+=Pr.span;const p=e.readUInt8(t);t+=1;const f=[];for(let r=0;r<p;r++){const r=oe.u32().decode(e,t);f.push(r),t+=4}return{meta:r,leaves:o,nullifiers:i,addresses:u,sequence_numbers:l,output_leaf_indices:f}}function Or(t,r,n){const o=e=>Array.from(e instanceof y?new Uint8Array(e):e);return{inputCompressedAccountHashes:t.nullifiers.map((e=>o(e.account_hash))),outputCompressedAccountHashes:t.leaves.map((e=>o(e.leaf))),outputCompressedAccounts:t.leaves.map(((t,r)=>{var s,i,a,u,c,l;return{compressedAccount:{owner:new e.PublicKey((null===(s=null==n?void 0:n.outputCompressedAccounts[r])||void 0===s?void 0:s.compressedAccount.owner)||e.PublicKey.default),lamports:nr((null===(i=null==n?void 0:n.outputCompressedAccounts[r])||void 0===i?void 0:i.compressedAccount.lamports)||0),address:null==n?void 0:n.outputCompressedAccounts[r].compressedAccount.address,data:(null===(a=null==n?void 0:n.outputCompressedAccounts[r])||void 0===a?void 0:a.compressedAccount.data)?{discriminator:o(y.from(null===(u=n.outputCompressedAccounts[r].compressedAccount.data)||void 0===u?void 0:u.discriminator)),data:null!==(c=o(y.from(new Uint8Array(n.outputCompressedAccounts[r].compressedAccount.data.data))))&&void 0!==c?c:[],dataHash:o(y.from(null===(l=n.outputCompressedAccounts[r].compressedAccount.data)||void 0===l?void 0:l.dataHash))}:null},merkleTreeIndex:t.index}})),outputLeafIndices:t.output_leaf_indices,sequenceNumbers:t.sequence_numbers.map((e=>({tree_pubkey:e.tree_pubkey,queue_pubkey:e.queue_pubkey,tree_type:e.tree_type,seq:e.seq}))),pubkeyArray:r.slice(2).filter((t=>!t.equals(e.PublicKey.default))),isCompress:(null==n?void 0:n.isCompress)||0,relayFee:(null==n?void 0:n.relayFee)?nr(n.relayFee):null,compressOrDecompressLamports:(null==n?void 0:n.compressOrDecompressLamports)?nr(n.compressOrDecompressLamports):null,message:null}}function Lr(e,t){const r=e.findIndex((e=>e.equals(t)));return-1===r?(e.push(t),e.length-1):r}function Br(e,t){return t<=0?[]:new Array(t).fill(e)}function Nr(e){return e.map((e=>({pubkey:e,isWritable:1,isSigner:0})))}function Dr(e,t,r,n,o=[]){const s=o.slice(),i=[],a=[];if(e.forEach(((e,r)=>{const n=Lr(s,e.treeInfo.tree),o=Lr(s,e.treeInfo.queue);i.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleContext:{merkleTreePubkeyIndex:n,queuePubkeyIndex:o,leafIndex:e.leafIndex,proveByIndex:e.proveByIndex},rootIndex:t[r],readOnly:0})})),e.length>0&&n)throw new Error("Cannot specify both input accounts and outputStateTreeInfo");let u;if(e.length>0)u=e[0].treeInfo;else{if(!n)throw new Error("Neither input accounts nor outputStateTreeInfo are available");u=n}const c=u.nextTreeInfo||u;let l=c.tree;if(c.treeType===exports.TreeType.StateV2){if(!$e.isV2())throw new Error("V2 trees are not supported yet");l=c.queue}const d=Br(l,r.length);return r.forEach(((e,t)=>{const r=Lr(s,d[t]);a.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleTreeIndex:r})})),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:s}}const Ur=e=>{if(e.lt(nr(0)))throw new Error("Insufficient balance for transfer")},Vr=e=>{if(0===e.length)throw new Error("No accounts provided for validation");const t=e[0].owner;if(!e.every((e=>e.owner.equals(t))))throw new Error("All input accounts must have the same owner")},Fr=(e,t)=>{if(e>0&&t>0){if(8===e)throw new Error(`Invalid number of compressed accounts for proof: ${e}. Allowed numbers: ${[1,2,3,4].join(", ")}`);Hr(e,[1,2,3,4],"compressed accounts"),Kr(t)}else e>0?qr(e):Kr(t)},qr=e=>{Hr(e,[1,2,3,4,8],"compressed accounts")},Kr=e=>{Hr(e,[1,2],"new addresses")},Hr=(e,t,r)=>{if(!t.includes(e))throw new Error(`Invalid number of ${r}: ${e}. Allowed numbers: ${t.join(", ")}`)};function Wr(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function jr(e,...t){if(!((r=e)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function $r(e,t=1){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const zr=BigInt(2**32-1),Zr=BigInt(32);function Yr(e,t=0){return t?{h:Number(e&zr),l:Number(e>>Zr&zr)}:{h:0|Number(e>>Zr&zr),l:0|Number(e&zr)}}function Gr(e,t=0){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;o<e.length;o++){const{h:s,l:i}=Yr(e[o],t);[r[o],n[o]]=[s,i]}return[r,n]}const Qr=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0];function Jr(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function Xr(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),jr(e),e}class en{clone(){return this._cloneInto()}}const tn=[],rn=[],nn=[],on=BigInt(0),sn=BigInt(1),an=BigInt(2),un=BigInt(7),cn=BigInt(256),ln=BigInt(113);for(let e=0,t=sn,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],tn.push(2*(5*n+r)),rn.push((e+1)*(e+2)/2%64);let o=on;for(let e=0;e<7;e++)t=(t<<sn^(t>>un)*ln)%cn,t&an&&(o^=sn<<(sn<<BigInt(e))-sn);nn.push(o)}const[dn,hn]=Gr(nn,1),pn=(e,t,r)=>r>32?((e,t,r)=>t<<r-32|e>>>64-r)(e,t,r):((e,t,r)=>e<<r|t>>>32-r)(e,t,r),fn=(e,t,r)=>r>32?((e,t,r)=>e<<r-32|t>>>64-r)(e,t,r):((e,t,r)=>t<<r|e>>>32-r)(e,t,r);class mn extends en{constructor(e,t,r,n=0,o=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=o,this.pos=0,this.posOut=0,this.finished=0,this.destroyed=0,Wr(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}keccak(){Qr||Jr(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,o=(t+2)%10,s=r[o],i=r[o+1],a=pn(s,i,1)^r[n],u=fn(s,i,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=u}let t=e[2],o=e[3];for(let r=0;r<24;r++){const n=rn[r],s=pn(t,o,n),i=fn(t,o,n),a=tn[r];t=e[a],o=e[a+1],e[a]=s,e[a+1]=i}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=dn[n],e[1]^=hn[n]}r.fill(0)}(this.state32,this.rounds),Qr||Jr(this.state32),this.posOut=0,this.pos=0}update(e){$r(this);const{blockLen:t,state:r}=this,n=(e=Xr(e)).length;for(let o=0;o<n;){const s=Math.min(t-this.pos,n-o);for(let t=0;t<s;t++)r[this.pos++]^=e[o++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=1;const{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,0!=(128&t)&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){$r(this,0),jr(e),this.finish();const t=this.state,{blockLen:r}=this;for(let n=0,o=e.length;n<o;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,o-n);e.set(t.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Wr(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(function(e,t){jr(e);const r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=1,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:o,enableXOF:s}=this;return e||(e=new mn(t,r,n,s,o)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=o,e.suffix=r,e.outputLen=n,e.enableXOF=s,e.destroyed=this.destroyed,e}}const yn=(()=>function(e){const t=t=>e().update(Xr(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}((()=>new mn(136,1,32))))(),gn=e=>"object"==typeof e&&null!==e,wn=e=>gn(e)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Date),vn=Symbol("mapObjectSkip"),xn=(e,t,r,n=new WeakMap)=>{if(r={deep:0,target:{},...r},n.has(e))return n.get(e);n.set(e,r.target);const{target:o}=r;delete r.target;const s=e=>e.map((e=>wn(e)?xn(e,t,r,n):e));if(Array.isArray(e))return s(e);for(const[i,a]of Object.entries(e)){const u=t(i,a,e);if(u===vn)continue;let[c,l,{shouldRecurse:d=1}={}]=u;"__proto__"!==c&&(r.deep&&d&&wn(l)&&(l=Array.isArray(l)?s(l):xn(l,t,r,n)),o[c]=l)}return o};function bn(e,t,r){if(!gn(e))throw new TypeError(`Expected an object, got \`${e}\` (${typeof e})`);return xn(e,t,r)}const In=/[\p{Lu}]/u,En=/[\p{Ll}]/u,An=/^[\p{Lu}](?![\p{Lu}])/gu,Tn=/([\p{Alpha}\p{N}_]|$)/u,Mn=/[_.\- ]+/,Sn=new RegExp("^"+Mn.source),_n=new RegExp(Mn.source+Tn.source,"gu"),Cn=new RegExp("\\d+"+Tn.source,"gu");class kn extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,r]of e)this.onEviction(t,r.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()?("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e)):0}_getOrDeleteIfExpired(e,t){if(0==this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const r=t.get(e);return this._getItemValue(e,r)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,r]=e;this.cache.has(t)||0==this._deleteIfExpired(t,r)&&(yield e)}for(const e of this.cache){const[t,r]=e;0==this._deleteIfExpired(t,r)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(0==this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:r=this.maxAge}={}){const n="number"==typeof r&&r!==Number.POSITIVE_INFINITY?Date.now()+r:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:n}):this._set(e,{value:t,expiry:n}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):0}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],r=t.length-e;r<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(r>0&&this._emitEvictions(t.slice(0,r)),this.oldCache=new Map(t.slice(r)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,r]=e;0==this._deleteIfExpired(t,r)&&(yield[t,r.value])}for(const e of this.oldCache){const[t,r]=e;this.cache.has(t)||0==this._deleteIfExpired(t,r)&&(yield[t,r.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const r=e[t],[n,o]=r;0==this._deleteIfExpired(n,o)&&(yield[n,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const r=e[t],[n,o]=r;this.cache.has(n)||0==this._deleteIfExpired(n,o)&&(yield[n,o.value])}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[r,n]of this.entriesAscending())e.call(t,n,r,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}const Pn=new kn({maxSize:1e5}),Rn=e=>!("object"!=typeof e||null===e||e instanceof RegExp||e instanceof Error||e instanceof Date),On=(e,t={})=>{if(!Rn(e))return e;const{exclude:r,pascalCase:n=0,stopPaths:o,deep:s=0,preserveConsecutiveUppercase:i=0}=t,a=new Set(o),u=e=>(t,o)=>{if(s&&Rn(o)){const r=void 0===e?t:`${e}.${t}`;a.has(r)||(o=bn(o,u(r)))}if(!r||!((e,t)=>e.some((e=>"string"==typeof e?e===t:(e.lastIndex=0,e.test(t)))))(r,t)){const e=n?`${t}_`:t;if(Pn.has(e))t=Pn.get(e);else{const r=function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:0,preserveConsecutiveUppercase:0,...t},0===(e=Array.isArray(e)?e.map((e=>e.trim())).filter((e=>e.length)).join("-"):e.trim()).length)return"";const r=0==t.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t.locale),n=0==t.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t.locale);return 1===e.length?Mn.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=((e,t,r,n)=>{let o=0,s=0,i=0,a=0;for(let u=0;u<e.length;u++){const c=e[u];a=u>2?"-"===e[u-3]:1,o&&In.test(c)?(e=e.slice(0,u)+"-"+e.slice(u),o=0,i=s,s=1,u++):s&&i&&En.test(c)&&(!a||n)?(e=e.slice(0,u-1)+"-"+e.slice(u-1),i=s,s=0,o=1):(o=t(c)===c&&r(c)!==c,i=s,s=r(c)===c&&t(c)!==c)}return e})(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(Sn,""),e=t.preserveConsecutiveUppercase?((e,t)=>(An.lastIndex=0,e.replaceAll(An,(e=>t(e)))))(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),((e,t)=>(_n.lastIndex=0,Cn.lastIndex=0,e.replaceAll(Cn,((r,n,o)=>["_","-"].includes(e.charAt(o+r.length))?r:t(r))).replaceAll(_n,((e,r)=>t(r)))))(e,n))}(t,{pascalCase:n,locale:0,preserveConsecutiveUppercase:i});t.length<100&&Pn.set(e,r),t=r}}return[t,o]};return bn(e,u(void 0))};function Ln(e){return"0x"+e.toString("hex")}function Bn(e){return nr(e,void 0,"be").lt(Ze)}const Nn=e=>{return t=e,r={deep:1},Array.isArray(t)?Object.keys(t).map((e=>On(t[e],r))):On(t,r);var t,r};function Dn(e){let t=255;for(;t>=0;){const r=y.concat([e,y.from([t])]),n=yn(r);if(32!==n.length)throw new Error("Invalid hash length");if(n[0]=0,Bn(y.from(n)))return[y.from(n),t];t-=1}return null}function Un(e){const t=yn.create();for(const r of e)t.update(r);t.update(Uint8Array.from([255]));const r=t.digest();return r[0]=0,r}function Vn(e){const t=yn.create();for(const r of e)t.update(r);const r=t.digest();return r[0]=0,r}function Fn(t){const r=t.proof?{a:t.proof.a,b:t.proof.b,c:t.proof.c}:null,n=t.new_address_params.map((e=>({seed:e.seed,addressMerkleTreeRootIndex:e.address_merkle_tree_root_index,addressMerkleTreeAccountIndex:e.address_merkle_tree_account_index,addressQueueAccountIndex:e.address_queue_account_index})));return{proof:r,inputCompressedAccountsWithMerkleContext:t.input_compressed_accounts.map((t=>({compressedAccount:{owner:new e.PublicKey(y.alloc(32)),lamports:nr(t.lamports),address:t.address,data:null},merkleContext:{merkleTreePubkeyIndex:t.packedMerkleContext.merkle_tree_pubkey_index,queuePubkeyIndex:t.packedMerkleContext.queue_pubkey_index,leafIndex:t.packedMerkleContext.leaf_index,proveByIndex:t.packedMerkleContext.prove_by_index},rootIndex:t.root_index,readOnly:0}))),outputCompressedAccounts:t.output_compressed_accounts.map((e=>({compressedAccount:{owner:e.compressedAccount.owner,lamports:e.compressedAccount.lamports,address:e.compressedAccount.address,data:e.compressedAccount.data},merkleTreeIndex:e.merkleTreeIndex}))),relayFee:null,newAddressParams:n,compressOrDecompressLamports:t.compress_or_decompress_lamports,isCompress:t.is_compress}}function qn(e,t){return Vn([t.toBytes(),...e])}function Kn(t,r=pt().addressTree){if(32!=t.length)throw new Error("Seed length is not 32 bytes.");const n=r.toBytes(),o=Dn(Buffer.from([...n,...t]));if(null===o)throw new Error("DeriveAddressError");const s=o[0];return new e.PublicKey(s)}function Hn(t,r,n){if(32!=t.length)throw new Error("Address seed length is not 32 bytes.");const o=r.toBytes(),s=n.toBytes(),i=Un([Uint8Array.from(t),Uint8Array.from(o),Uint8Array.from(s)]);return new e.PublicKey(i)}function Wn(e,t){const r=t.slice(),n=e.map((e=>({seed:Array.from(e.seed),addressMerkleTreeRootIndex:e.addressMerkleTreeRootIndex,addressMerkleTreeAccountIndex:0,addressQueueAccountIndex:0})));return e.forEach(((e,t)=>{n[t].addressMerkleTreeAccountIndex=Lr(r,e.addressMerkleTreePubkey)})),e.forEach(((e,t)=>{n[t].addressQueueAccountIndex=Lr(r,e.addressQueuePubkey)})),{newAddressParamsPacked:n,remainingAccounts:r}}async function jn(e,t,r="confirmed"){const n=await e.getLatestBlockhash(r),o={signature:t.toString(),lastValidBlockHeight:n.lastValidBlockHeight,blockhash:n.blockhash};return await e.confirmTransaction(o,r)}function $n(e,t){return t.includes(e)?t.filter((t=>t.publicKey.toString()!==e.publicKey.toString())):t}class zn{constructor(){this.preAccounts=[],this.systemAccounts=[],this.nextIndex=0,this.map=new Map}static newWithSystemAccounts(e){const t=new zn;return t.addSystemAccounts(e),t}static newWithSystemAccountsV2(e){const t=new zn;return t.addSystemAccountsV2(e),t}addPreAccountsSigner(e){this.preAccounts.push({pubkey:e,isSigner:1,isWritable:0})}addPreAccountsSignerMut(e){this.preAccounts.push({pubkey:e,isSigner:1,isWritable:1})}addPreAccountsMeta(e){this.preAccounts.push(e)}addSystemAccounts(e){this.systemAccounts.push(...Yn(e))}addSystemAccountsV2(e){this.systemAccounts.push(...Gn(e))}insertOrGet(e){return this.insertOrGetConfig(e,0,1)}insertOrGetReadOnly(e){return this.insertOrGetConfig(e,0,0)}insertOrGetConfig(e,t,r){const n=this.map.get(e);if(n)return n[0];const o=this.nextIndex++,s={pubkey:e,isSigner:t,isWritable:r};return this.map.set(e,[o,s]),o}hashSetAccountsToMetas(){const e=Array.from(this.map.entries());return e.sort(((e,t)=>e[1][0]-t[1][0])),e.map((([,[,e]])=>e))}getOffsets(){const e=this.preAccounts.length;return[e,e+this.systemAccounts.length]}toAccountMetas(){const e=this.hashSetAccountsToMetas(),[t,r]=this.getOffsets();return{remainingAccounts:[...this.preAccounts,...this.systemAccounts,...e],systemStart:t,packedStart:r}}}class Zn{constructor(e,t,r,n){this.selfProgram=e,this.cpiContext=t,this.solCompressionRecipient=r,this.solPoolPda=n}static new(e){return new Zn(e)}static newWithCpiContext(e,t){return new Zn(e,t)}}function Yn(t){let r=(new TextEncoder).encode("cpi_authority");const n=e.PublicKey.findProgramAddressSync([r],t.selfProgram)[0],o=at(),s=[{pubkey:po.programId,isSigner:0,isWritable:0},{pubkey:n,isSigner:0,isWritable:0},{pubkey:o.registeredProgramPda,isSigner:0,isWritable:0},{pubkey:o.noopProgram,isSigner:0,isWritable:0},{pubkey:o.accountCompressionAuthority,isSigner:0,isWritable:0},{pubkey:o.accountCompressionProgram,isSigner:0,isWritable:0},{pubkey:t.selfProgram,isSigner:0,isWritable:0}];return t.solPoolPda&&s.push({pubkey:t.solPoolPda,isSigner:0,isWritable:1}),t.solCompressionRecipient&&s.push({pubkey:t.solCompressionRecipient,isSigner:0,isWritable:1}),s.push({pubkey:e.SystemProgram.programId,isSigner:0,isWritable:0}),t.cpiContext&&s.push({pubkey:t.cpiContext,isSigner:0,isWritable:1}),s}function Gn(t){let r=(new TextEncoder).encode("cpi_authority");const n=e.PublicKey.findProgramAddressSync([r],t.selfProgram)[0],o=at(),s=[{pubkey:po.programId,isSigner:0,isWritable:0},{pubkey:n,isSigner:0,isWritable:0},{pubkey:o.registeredProgramPda,isSigner:0,isWritable:0},{pubkey:o.accountCompressionAuthority,isSigner:0,isWritable:0},{pubkey:o.accountCompressionProgram,isSigner:0,isWritable:0},{pubkey:e.SystemProgram.programId,isSigner:0,isWritable:0}];return t.solPoolPda&&s.push({pubkey:t.solPoolPda,isSigner:0,isWritable:1}),t.solCompressionRecipient&&s.push({pubkey:t.solCompressionRecipient,isSigner:0,isWritable:1}),t.cpiContext&&s.push({pubkey:t.cpiContext,isSigner:0,isWritable:1}),s}function Qn(e){const t=Xn(e.ar[0]),r=Xn(e.ar[1]),n=new Uint8Array([...t,...r]),o=Xn(e.bs[0][0]),s=Xn(e.bs[0][1]),i=Xn(e.bs[1][0]),a=Xn(e.bs[1][1]),u=new Uint8Array([...o,...s,...i,...a]),c=Xn(e.krs[0]),l=Xn(e.krs[1]);return{a:n,b:u,c:new Uint8Array([...c,...l])}}function Jn(e){const t=e.a,r=e.b,n=e.c,o=t.slice(0,32),s=eo(nr(t.slice(32,64),32,"be"))?0:1;o[0]=to(o[0],s);const i=r.slice(0,64),a=r.slice(64,128),u=function(e,t){const r=Ze.div(nr(2));return e.lt(r)?1:e.gt(r)?0:t.lt(r)}(nr(a.slice(0,32),32,"be"),nr(a.slice(32,64),32,"be"));i[0]=to(i[0],u);const c=n.slice(0,32),l=n.slice(32,64),d=eo(nr(l,32,"be"));return c[0]=to(c[0],d),{a:Array.from(o),b:Array.from(i),c:Array.from(c)}}function Xn(e){const t=nr(e.startsWith("0x")?e.substring(2):e,"hex");return new Uint8Array(t.toArray("be",32))}function eo(e){return e.lte(Ze.sub(e))}function to(e,t){return t?e:128|e}function ro(t,r,n,o){const s=new e.TransactionMessage({payerKey:r,recentBlockhash:n,instructions:t}).compileToV0Message(o);return new e.VersionedTransaction(s)}async function no(e,t,r){const n=await e.sendTransaction(t,r);return await oo(e,n,r),n}async function oo(e,t,r){const n=(null==r?void 0:r.commitment)||e.commitment||"confirmed",o=ct(e.rpcEndpoint)?200:1e3;let s=0;await new Promise(((r,i)=>{const a=setInterval((async()=>{var u;s+=o,s>=8e4&&(clearInterval(a),i(new Error(`Transaction ${t}'s confirmation timed out`)));const c=await e.getSignatureStatuses([t]);(null===(u=null==c?void 0:c.value[0])||void 0===u?void 0:u.confirmationStatus)===n&&(clearInterval(a),r(t))}),o)}));const i=await e.getSlot();return await e.confirmTransactionIndexed(i),{context:{slot:i},value:{err:null}}}function so(e,t,r,n=[],o){if(n.includes(t))throw new Error("payer must not be in additionalSigners");const s=[t,...n],i=ro(e,t.publicKey,r,o);return i.sign(s),i}function io(e,t){return ao(e,t)}function ao(e,t){const r=e.find((e=>e.tree.equals(t)||e.queue.equals(t)));if(!r)throw new Error(`No associated TreeInfo found for tree or queue. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: ${t.toBase58()}`);if(!r.queue)throw new Error("Queue must not be null for state tree. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: "+t.toBase58());return r}function uo(e,t=($e.isV2()?exports.TreeType.StateV2:exports.TreeType.StateV1),r=0){const n=e.filter((e=>!e.nextTreeInfo)).filter((e=>e.treeType===t));if(0===n.length)throw new Error("No active state tree infos found for the specified tree type");const o=r?n.length:Math.min(5,n.length),s=Math.floor(Math.random()*o);if(!n[s].queue)throw new Error("Queue must not be null for state tree");return n[s]}async function co({connection:t,stateTreeLUTPairs:r}){var n;const o=await Promise.all(r.map((async e=>({stateTreeLookupTable:await t.getAddressLookupTable(e.stateTreeLookupTable),nullifyLookupTable:await t.getAddressLookupTable(e.nullifyLookupTable)})))),s=[];for(const{stateTreeLookupTable:t,nullifyLookupTable:r}of o){if(!t.value)throw new Error("State tree lookup table not found");if(!r.value)throw new Error("Nullify table not found");const o=t.value.state.addresses,i=r.value.state.addresses;if(o.length%3!=0)throw new Error("State tree lookup table must have a multiple of 3 addresses");for(let t=0;t<o.length;t+=3){const r=o[t],n=o[t+1],a=o[t+2];let u=null;if(!r||!n||!a)throw new Error("Invalid state tree pubkeys structure");const c=r.toBase58();let l;l=c.startsWith("bmt")?exports.TreeType.StateV2:c.startsWith("amt2")?exports.TreeType.AddressV2:c.startsWith("amt")?exports.TreeType.AddressV1:exports.TreeType.StateV1,i.map((e=>e.toBase58())).includes(r.toBase58())&&(u={tree:e.PublicKey.default,queue:e.PublicKey.default,cpiContext:e.PublicKey.default,treeType:l,nextTreeInfo:null}),s.push({tree:r,queue:n,cpiContext:a,treeType:l,nextTreeInfo:u})}for(const t of s)if(null===(n=t.nextTreeInfo)||void 0===n?void 0:n.tree.equals(e.PublicKey.default)){const e=s.find((e=>!e.nextTreeInfo));if(!e)throw new Error("No available tree info found to assign as next tree");t.nextTreeInfo=e}}return s}const lo=e=>e.reduce(((e,t)=>e.add(nr(t.lamports))),nr(0)),ho=y.from("sol_pool_pda");class po{constructor(){}static deriveCompressedSolPda(){const t=[ho],[r,n]=e.PublicKey.findProgramAddressSync(t,this.programId);return r}static createTransferOutputState(e,t,r){r=nr(r);const n=lo(e).sub(r);return Ur(n),n.eq(nr(0))?[or(t,r)]:(Vr(e),[or(e[0].owner,n),or(t,r)])}static createDecompressOutputState(e,t){t=nr(t);const r=lo(e).sub(t);return Ur(r),r.eq(nr(0))?[]:(Vr(e),[or(e[0].owner,r)])}static createNewAddressOutputState(e,t,r,n){r=nr(null!=r?r:0);const o=lo(null!=n?n:[]).sub(r);return Ur(o),o.eq(nr(0))||!n?[or(t,r,void 0,e)]:(Vr(n),[or(n[0].owner,o),or(t,r,void 0,e)])}static async createAccount({payer:t,newAddressParams:r,newAddress:n,recentValidityProof:o,outputStateTreeInfo:s,inputCompressedAccounts:i,inputStateRootIndices:a,lamports:u}){const c=this.createNewAddressOutputState(n,t,u,i),{packedInputCompressedAccounts:l,packedOutputCompressedAccounts:d,remainingAccounts:h}=Dr(null!=i?i:[],null!=a?a:[],c,i&&0!==i.length?void 0:s),{newAddressParamsPacked:p,remainingAccounts:f}=Wn([r],h),m=dr({proof:o,inputCompressedAccountsWithMerkleContext:l,outputCompressedAccounts:d,relayFee:null,newAddressParams:p,compressOrDecompressLamports:null,isCompress:0}),y=[...Ar(Object.assign(Object.assign({},at()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Nr(f)];return new e.TransactionInstruction({programId:this.programId,keys:y,data:m})}static async transfer({payer:t,inputCompressedAccounts:r,toAddress:n,lamports:o,recentInputStateRootIndices:s,recentValidityProof:i}){const a=this.createTransferOutputState(r,n,o),{packedInputCompressedAccounts:u,packedOutputCompressedAccounts:c,remainingAccounts:l}=Dr(r,s,a),d=dr({proof:i,inputCompressedAccountsWithMerkleContext:u,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:null,isCompress:0}),h=[...Ar(Object.assign(Object.assign({},at()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Nr(l)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:d})}static async compress({payer:t,toAddress:r,lamports:n,outputStateTreeInfo:o}){n=nr(n);const s=or(r,n),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:u}=Dr([],[],[s],o),c=dr({proof:null,inputCompressedAccountsWithMerkleContext:i,outputCompressedAccounts:a,relayFee:null,newAddressParams:[],compressOrDecompressLamports:n,isCompress:1}),l=[...Ar(Object.assign(Object.assign({},at()),{feePayer:t,authority:t,solPoolPda:po.deriveCompressedSolPda(),decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Nr(u)];return new e.TransactionInstruction({programId:this.programId,keys:l,data:c})}static async decompress({payer:t,inputCompressedAccounts:r,toAddress:n,lamports:o,recentInputStateRootIndices:s,recentValidityProof:i}){o=nr(o);const a=this.createDecompressOutputState(r,o),{packedInputCompressedAccounts:u,packedOutputCompressedAccounts:c,remainingAccounts:l}=Dr(r,s,a),d=dr({proof:i,inputCompressedAccountsWithMerkleContext:u,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:o,isCompress:0}),h=[...Ar(Object.assign(Object.assign({},at()),{feePayer:t,authority:t,solPoolPda:po.deriveCompressedSolPda(),decompressionRecipient:n,systemProgram:e.SystemProgram.programId})),...Nr(l)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:d})}}function fo(e,t){let r=nr(0);t=nr(t);const n=[];e.sort(((e,t)=>t.lamports.cmp(e.lamports)));for(const o of e){if(r.gte(nr(t)))break;r=r.add(o.lamports),n.push(o)}if(r.lt(nr(t)))throw new Error(`Insufficient balance for transfer. Required: ${t.toString()}, available: ${r.toString()}`);return[n,r]}po.programId=new e.PublicKey("SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7");class mo{constructor(e,t,r){this.index=e,this.value=t,this.nextIndex=r}equals(e){return this.value.eq(e.value)}compareTo(e){return this.value.cmp(e.value)}hash(e,t){try{return e.poseidonHash([nr(this.value.toArray("be",32)).toString(),nr(this.nextIndex).toString(),nr(t.toArray("be",32)).toString()])}catch(e){throw new Error("Hashing failed")}}}class yo{constructor(e,t,r){this.newLowElement=e,this.newElement=t,this.newElementNextValue=r}}class go{constructor(e,t,r){this.elements=e,this.currentNodeIndex=t,this.highestElementIndex=r}static default(){return new go([new mo(0,nr(0),0)],0,0)}get(e){return this.elements[e]}length(){return Number(this.currentNodeIndex)}isEmpty(){return 0===this.currentNodeIndex}findElement(e){return this.elements.slice(0,this.length()+1).find((t=>t.value===e))}init(){try{const e=Ye;return this.append(e)}catch(e){throw new Error(`Failed to initialize IndexedArray: ${e}`)}}findLowElementIndex(e){for(let t=0;t<=this.length();t++){const r=this.elements[t];if(this.elements[r.nextIndex].value.gt(e)&&r.value.lt(e))return t;if(r.value.eq(e))throw new Error("Element already exists in the array")}return this.highestElementIndex}findLowElement(e){const t=this.findLowElementIndex(e);if(void 0===t)return[void 0,void 0];const r=this.elements[t];return[r,this.elements[r.nextIndex].value]}hashElement(e,t){const r=this.elements[t];if(!r)return;const n=this.elements[r.nextIndex];return n?e.poseidonHash([nr(r.value.toArray("be",32)).toString(),nr(r.nextIndex).toString(),nr(n.value.toArray("be",32)).toString()]):void 0}append(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.appendWithLowElementIndex(t,e)}appendWithLowElementIndex(e,t){const r=this.elements[e];if(0===r.nextIndex){if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.")}else{const e=this.elements[r.nextIndex];if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.");if(t.gte(e.value))throw new Error("New element value must be less than the next element value.")}const n=this.newElementWithLowElementIndex(e,t);return 0===r.nextIndex&&(this.highestElementIndex=n.newElement.index),this.currentNodeIndex=n.newElement.index,this.elements[this.length()]=n.newElement,this.elements[e]=n.newLowElement,n}lowest(){return this.elements.length>0?this.elements[0]:void 0}newElementWithLowElementIndex(e,t){const r=this.elements[e],n=this.currentNodeIndex+1,o=new mo(n,t,r.nextIndex);r.nextIndex=n;const s=this.elements[o.nextIndex].value;return new yo(r,o,s)}newElement(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.newElementWithLowElementIndex(t,e)}}class wo{constructor(e,t,r=[],{zeroElement:n="0"}={}){if(this.levels=e,this.capacity=2**e,this.zeroElement=n,this._lightWasm=t,r.length>this.capacity)throw new Error("Tree is full");this._zeros=[],this._layers=[],this._layers[0]=r,this._zeros[0]=this.zeroElement;for(let t=1;t<=e;t++)this._zeros[t]=this._lightWasm.poseidonHashString([this._zeros[t-1],this._zeros[t-1]]);this._rebuild()}_rebuild(){for(let e=1;e<=this.levels;e++){this._layers[e]=[];for(let t=0;t<Math.ceil(this._layers[e-1].length/2);t++)this._layers[e][t]=this._lightWasm.poseidonHashString([this._layers[e-1][2*t],2*t+1<this._layers[e-1].length?this._layers[e-1][2*t+1]:this._zeros[e-1]])}}root(){return this._layers[this.levels].length>0?this._layers[this.levels][0]:this._zeros[this.levels]}insert(e){if(this._layers[0].length>=this.capacity)throw new Error("Tree is full");this.update(this._layers[0].length,e)}bulkInsert(e){if(this._layers[0].length+e.length>this.capacity)throw new Error("Tree is full");this._layers[0].push(...e),this._rebuild()}update(e,t){if(isNaN(Number(e))||e<0||e>this._layers[0].length||e>=this.capacity)throw new Error("Insert index out of bounds: "+e);this._layers[0][e]=t;for(let t=1;t<=this.levels;t++)e>>=1,this._layers[t][e]=this._lightWasm.poseidonHashString([this._layers[t-1][2*e],2*e+1<this._layers[t-1].length?this._layers[t-1][2*e+1]:this._zeros[t-1]])}path(e){if(isNaN(Number(e))||e<0||e>=this._layers[0].length)throw new Error("Index out of bounds: "+e);const t=[],r=[];for(let n=0;n<this.levels;n++)r[n]=e%2,t[n]=(1^e)<this._layers[n].length?this._layers[n][1^e]:this._zeros[n],e>>=1;return{pathElements:t,pathIndices:r}}indexOf(e,t=null){return t?this._layers[0].findIndex((r=>t(e,r))):this._layers[0].indexOf(e)}elements(){return this._layers[0].slice()}serialize(){return{levels:this.levels,_zeros:this._zeros,_layers:this._layers}}static deserialize(e,t){const r=Object.assign(Object.create(this.prototype),e);return r._hash=t,r.capacity=2**r.levels,r.zeroElement=r._zeros[0],r}}async function vo(e){const t=[],{noopProgram:r,accountCompressionProgram:n}=at(),o=(await e.getSignaturesForAddress(n,void 0,"confirmed")).map((e=>e.signature)),s=[];for(let t=0;t<o.length;t+=100){const r=o.slice(t,t+100),n=await e.getParsedTransactions(r,{maxSupportedTransactionVersion:0,commitment:"confirmed"});s.push(...n)}for(const r of s){if(!r||!r.transaction||!r.meta)continue;if(!r.meta.innerInstructions||0==r.meta.innerInstructions.length)continue;const n=r.transaction.message.accountKeys.map((e=>e.pubkey)),o=[],s=await e.getTransaction(r.transaction.signatures[0],{commitment:"confirmed",maxSupportedTransactionVersion:0});for(const e of(null==s?void 0:s.transaction.message.compiledInstructions)||[])if(e.data&&e.data.length>0){const t=Uint8Array.from(e.data);if(t.length===Ge.length&&Ge.every(((e,r)=>e===t[r])))continue;o.push(t)}const i=[];if(s.meta.innerInstructions&&s.meta.innerInstructions.length>0)for(const e of s.meta.innerInstructions)for(const t of e.instructions){const e=t.accounts.map((e=>n[e]));if(i.push(e),t.data&&t.data.length>0){const e=er.decode(t.data);o.push(e)}}const a=Io(o,i);a&&t.push(a)}if(t.length>0)return t;const i=s.filter((e=>e?e.transaction.message.accountKeys.some((e=>("string"==typeof e?e:e.pubkey.toBase58())===r.toBase58())):0));return xo(i,bo)}const xo=(e,t)=>{const{noopProgram:r}=at(),n=[];return e.forEach((e=>{!e||!e.meta||e.meta.err||!e.meta.innerInstructions||e.meta.innerInstructions.length<=0||e.meta.innerInstructions.forEach((o=>{if(o.instructions.length>0){const s=o.instructions[o.instructions.length-1];if("data"in s&&s.data&&s.programId.toBase58()===r.toBase58()){const r=er.decode(s.data),o=t(y.from(r),e);null!=o&&n.push(o)}}}))})),n},bo=e=>{const t=y.from(e.map((e=>e)));try{return Mr(t)}catch(e){return console.error("Error deserializing event:",e),null}};function Io(e,t){let r=0,n=null,o=null;for(const t of e){const e=t.slice(0,8),o=er.encode(e),s=er.encode(Qe),i=er.encode(Je),a=er.encode(Xe);if(o===s){n=Ir(y.from(t)),r=1;break}if(o==i){n=Er(y.from(t)),r=1;break}if(o==a){n=Fn(br(y.from(t))),r=1;break}}if(!r)return null;for(const t of e){const e=t.slice(0,8);if(er.encode(e)===er.encode(tt)){const e=t.slice(12);o=Rr(y.from(e))}}return n?Or(o,t[t.length-1],n):null}async function Eo(e,t){return(await Ao(e)).find((e=>nr(e.hash).eq(t)))}async function Ao(e){var t,r;const n=(await vo(e)).reverse(),o=[],s=[],i=await e.getStateTreeInfos();for(const e of n){for(let n=0;n<e.outputCompressedAccounts.length;n++){const s=io(i,e.pubkeyArray[e.outputCompressedAccounts[n].merkleTreeIndex]),a=e.outputCompressedAccounts[n],u={treeInfo:s,hash:nr(e.outputCompressedAccountHashes[n]),leafIndex:e.outputLeafIndices[n],proveByIndex:s.treeType===exports.TreeType.StateV2},c=sr(u,a.compressedAccount.owner,a.compressedAccount.lamports,null!==(t=a.compressedAccount.data)&&void 0!==t?t:void 0,null!==(r=a.compressedAccount.address)&&void 0!==r?r:void 0);o.push(c)}for(let t=0;t<e.inputCompressedAccountHashes.length;t++){const r=e.inputCompressedAccountHashes[t];s.push(nr(r))}}const a=o.filter((e=>!s.some((t=>t.eq(nr(e.hash))))));return a.sort(((e,t)=>t.leafIndex-e.leafIndex)),a}function To(t,r=ft){if(null===t.data)return null;const{data:n}=t.data;if(0===n.length)return null;if(t.owner.toBase58()!==r.toBase58())throw new Error(`Invalid owner ${t.owner.toBase58()} for token layout`);try{const t=Buffer.from(n);let r=0;const o=new e.PublicKey(t.slice(r,r+32));r+=32;const s=new e.PublicKey(t.slice(r,r+32));r+=32;const i=new je(t.slice(r,r+8),"le");r+=8;const a=t[r];r+=1;const u=a?new e.PublicKey(t.slice(r,r+32)):null;r+=32;const c=t[r];r+=1;const l=t[r];return r+=1,{mint:o,owner:s,amount:i,delegate:u,state:c,tlv:l?t.slice(r):null}}catch(e){throw console.error("Decoding error:",e),e}}async function Mo(e,t){const r=await Promise.all(e.map((e=>async function(e,t){const r=e.pubkeyArray,n=await t.getStateTreeInfos(),o=e.outputCompressedAccountHashes,s=e.outputCompressedAccounts.map(((t,s)=>{var i;const a=r[e.outputCompressedAccounts[s].merkleTreeIndex],u=io(n,a);if(!(u.tree.equals(r[e.outputCompressedAccounts[s].merkleTreeIndex])||$e.isV2()&&u.queue.equals(r[e.outputCompressedAccounts[s].merkleTreeIndex])))throw new Error("Invalid tree");const c={treeInfo:u,hash:nr(o[s]),leafIndex:e.outputLeafIndices[s],proveByIndex:u.treeType===exports.TreeType.StateV2};if(!t.compressedAccount.data)throw new Error("No data");const l=To(t.compressedAccount);if(!l)throw new Error("Invalid token data");return{compressedAccount:sr(c,t.compressedAccount.owner,t.compressedAccount.lamports,t.compressedAccount.data,null!==(i=t.compressedAccount.address)&&void 0!==i?i:void 0),parsed:l}}));return{inputCompressedAccountHashes:e.inputCompressedAccountHashes,outputCompressedAccounts:s}}(e,t)))),n=r.flatMap((e=>e.outputCompressedAccounts)),o=r.flatMap((e=>e.inputCompressedAccountHashes));return n.filter((e=>!o.some((t=>nr(t).eq(e.compressedAccount.hash)))))}async function So(e,t,r){const n=await vo(e);return{items:(await Mo(n,e)).filter((e=>e.parsed.owner.equals(t)&&e.parsed.mint.equals(r))).sort(((e,t)=>e.compressedAccount.leafIndex-t.compressedAccount.leafIndex)),cursor:null}}async function _o(e,t,r){const n=await vo(e);return{items:(await Mo(n,e)).filter((e=>{var n;return(null===(n=e.parsed.delegate)||void 0===n?void 0:n.equals(t))&&e.parsed.mint.equals(r)})),cursor:null}}async function Co(e,t){const r=await vo(e),n=(await Mo(r,e)).filter((e=>nr(e.compressedAccount.hash).eq(t)));if(0===n.length)throw new Error("No compressed account found");return n[0]}class ko extends TypeError{constructor(e,t){let r;const{message:n,explanation:o,...s}=e,{path:i}=e,a=0===i.length?n:`At path: ${i.join(".")} -- ${n}`;super(o??a),null!=o&&(this.cause=a),Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...t()])}}function Po(e){return"object"==typeof e&&null!=e}function Ro(e){return Po(e)&&!Array.isArray(e)}function Oo(e){return"symbol"==typeof e?e.toString():"string"==typeof e?JSON.stringify(e):`${e}`}function Lo(e,t,r,n){if(1==e)return;0==e?e={}:"string"==typeof e&&(e={message:e});const{path:o,branch:s}=t,{type:i}=r,{refinement:a,message:u=`Expected a value of type \`${i}\`${a?` with refinement \`${a}\``:""}, but received: \`${Oo(n)}\``}=e;return{value:n,type:i,refinement:a,key:o[o.length-1],path:o,branch:s,...e,message:u}}function*Bo(e,t,r,n){var o;Po(o=e)&&"function"==typeof o[Symbol.iterator]||(e=[e]);for(const o of e){const e=Lo(o,t,r,n);e&&(yield e)}}function*No(e,t,r={}){const{path:n=[],branch:o=[e],coerce:s=0,mask:i=0}=r,a={path:n,branch:o,mask:i};s&&(e=t.coercer(e,a));let u="valid";for(const n of t.validator(e,a))n.explanation=r.message,u="not_valid",yield[n,void 0];for(let[c,l,d]of t.entries(e,a)){const t=No(l,d,{path:void 0===c?n:[...n,c],branch:void 0===c?o:[...o,l],coerce:s,mask:i,message:r.message});for(const r of t)r[0]?(u=null!=r[0].refinement?"not_refined":"not_valid",yield[r[0],void 0]):s&&(l=r[1],void 0===c?e=l:e instanceof Map?e.set(c,l):e instanceof Set?e.add(l):Po(e)&&(void 0!==l||c in e)&&(e[c]=l))}if("not_valid"!==u)for(const n of t.refiner(e,a))n.explanation=r.message,u="not_refined",yield[n,void 0];"valid"===u&&(yield[void 0,e])}class Do{constructor(e){const{type:t,schema:r,validator:n,refiner:o,coercer:s=(e=>e),entries:i=function*(){}}=e;this.type=t,this.schema=r,this.entries=i,this.coercer=s,this.validator=n?(e,t)=>Bo(n(e,t),t,this,e):()=>[],this.refiner=o?(e,t)=>Bo(o(e,t),t,this,e):()=>[]}assert(e,t){return function(e,t,r){const n=Fo(e,t,{message:r});if(n[0])throw n[0]}(e,this,t)}create(e,t){return Uo(e,this,t)}is(e){return Vo(e,this)}mask(e,t){return function(e,t,r){const n=Fo(e,t,{coerce:1,mask:1,message:r});if(n[0])throw n[0];return n[1]}(e,this,t)}validate(e,t={}){return Fo(e,this,t)}}function Uo(e,t,r){const n=Fo(e,t,{coerce:1,message:r});if(n[0])throw n[0];return n[1]}function Vo(e,t){return!Fo(e,t)[0]}function Fo(e,t,r={}){const n=No(e,t,r),o=function(e){const{done:t,value:r}=e.next();return t?void 0:r}(n);return o[0]?[new ko(o[0],(function*(){for(const e of n)e[0]&&(yield e[0])})),void 0]:[void 0,o[1]]}function qo(e,t){return new Do({type:e,schema:null,validator:t})}function Ko(){return qo("any",(()=>1))}function Ho(e){return new Do({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t))for(const[r,n]of t.entries())yield[r,n,e]},coercer:e=>Array.isArray(e)?e.slice():e,validator:e=>Array.isArray(e)||`Expected an array value, but received: ${Oo(e)}`})}function Wo(){return qo("boolean",(e=>"boolean"==typeof e))}function jo(e){return qo("instance",(t=>t instanceof e||`Expected a \`${e.name}\` instance, but received: ${Oo(t)}`))}function $o(e){const t=Oo(e);return new Do({type:"literal",schema:e,validator:r=>r===e||`Expected the literal \`${t}\`, but received: ${Oo(r)}`})}function zo(e){return new Do({...e,validator:(t,r)=>null===t||e.validator(t,r),refiner:(t,r)=>null===t||e.refiner(t,r)})}function Zo(){return qo("number",(e=>"number"==typeof e&&!isNaN(e)||`Expected a number, but received: ${Oo(e)}`))}function Yo(){return qo("string",(e=>"string"==typeof e||`Expected a string, but received: ${Oo(e)}`))}function Go(e){const t=Object.keys(e);return new Do({type:"type",schema:e,*entries(r){if(Po(r))for(const n of t)yield[n,r[n],e[n]]},validator:e=>Ro(e)||`Expected an object, but received: ${Oo(e)}`,coercer:e=>Ro(e)?{...e}:e})}function Qo(e){const t=e.map((e=>e.type)).join(" | ");return new Do({type:"union",schema:null,coercer(t,r){for(const n of e){const[e,o]=n.validate(t,{coerce:1,mask:r.mask});if(!e)return o}return t},validator(r,n){const o=[];for(const t of e){const[...e]=No(r,t,n),[s]=e;if(!s[0])return[];for(const[t]of e)t&&o.push(t)}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${Oo(r)}`,...o]}})}function Jo(){return qo("unknown",(()=>1))}function Xo(e,t,r){return new Do({...e,coercer:(n,o)=>Vo(n,t)?e.coercer(r(n,o),o):e.coercer(n,o)})}var es;exports.DerivationMode=void 0,(es=exports.DerivationMode||(exports.DerivationMode={})).compressible="compressible",es.standard="standard";const ts=Xo(jo(e.PublicKey),Yo(),(t=>new e.PublicKey(t))),rs=Xo(jo(Array),Yo(),(t=>Array.from(new e.PublicKey(t).toBytes()))),ns=Xo(jo(je),Yo(),(e=>tr(e,"base58"))),os=Xo(Wo(),Qo([Zo(),Wo()]),(e=>Boolean(e))),ss=Xo(jo(je),Qo([Yo(),Zo()]),(e=>{if("number"==typeof e){if(!Number.isSafeInteger(e))throw new Error(`Unsafe integer. Precision loss: ${e}`);return nr(e)}return nr(e,10)})),is=Yo();function as(e){return Qo([Go({jsonrpc:$o("2.0"),id:Yo(),result:e}),Go({jsonrpc:$o("2.0"),id:Yo(),error:Go({code:Jo(),message:Yo(),data:zo(Ko())})})])}const us=as(Jo());function cs(e){return Xo(as(e),us,(t=>"error"in t?t:Object.assign(Object.assign({},t),{result:Uo(t.result,e)})))}function ls(e){return cs(Go({context:Go({slot:Zo()}),value:e}))}const ds=Go({treeType:Zo(),tree:ts,queue:ts,cpiContext:zo(ts)}),hs=Go({treeType:Zo(),tree:ts,queue:ts,cpiContext:zo(ts),nextTreeContext:(ps=zo(ds),new Do({...ps,validator:(e,t)=>void 0===e||ps.validator(e,t),refiner:(e,t)=>void 0===e||ps.refiner(e,t)}))});var ps;const fs=Go({address:zo(rs),hash:ns,data:zo(Go({data:is,dataHash:ns,discriminator:ss})),lamports:ss,owner:ts,leafIndex:Zo(),tree:ts,seq:zo(ss),slotCreated:ss}),ms=Go({address:zo(rs),hash:ns,data:zo(Go({data:is,dataHash:ns,discriminator:ss})),lamports:ss,owner:ts,leafIndex:Zo(),seq:zo(ss),slotCreated:ss,merkleContext:hs,proveByIndex:os}),ys=Go({mint:ts,owner:ts,amount:ss,delegate:zo(ts),state:Yo()}),gs=Go({tokenData:ys,account:fs}),ws=Go({tokenData:ys,account:ms}),vs=Go({items:Ho(fs)}),xs=Go({items:Ho(ms)}),bs=Go({items:Ho(fs),cursor:zo(Yo())}),Is=Go({items:Ho(ms),cursor:zo(Yo())}),Es=Go({items:Ho(gs),cursor:zo(Yo())}),As=Go({items:Ho(ws),cursor:zo(Yo())}),Ts=Zo(),Ms=Yo(),Ss=Go({items:Ho(Go({signature:Yo(),slot:Zo(),blockTime:Zo(),error:zo(Yo())}))}),_s=Go({items:Ho(Go({signature:Yo(),slot:Zo(),blockTime:Zo()})),cursor:zo(Yo())}),Cs=Go({hash:ns,leafIndex:Zo(),merkleTree:ts,proof:Ho(ns),rootSeq:Zo(),root:ns}),ks=Go({hash:ns,leafIndex:Zo(),proof:Ho(ns),root:ns,rootSeq:Zo(),proveByIndex:os,treeContext:hs}),Ps=Go({address:ns,nextIndex:Zo(),merkleTree:ts,proof:Ho(ns),rootSeq:Zo(),root:ns,lowerRangeAddress:ns,higherRangeAddress:ns,lowElementLeafIndex:Zo()}),Rs=Go({a:Ho(Zo()),b:Ho(Zo()),c:Ho(Zo())}),Os=Go({rootIndex:Zo(),proveByIndex:os}),Ls=Go({compressedProof:Rs,leafIndices:Ho(Zo()),leaves:Ho(ns),rootIndices:Ho(Zo()),roots:Ho(ns),merkleTrees:Ho(ts)}),Bs=Go({hash:ns,root:ns,rootIndex:Os,merkleContext:hs,leafIndex:Zo()}),Ns=Go({address:ns,root:ns,rootIndex:Zo(),merkleContext:hs}),Ds=Go({compressedProof:zo(Rs),accounts:Ho(Bs),addresses:Ho(Ns)}),Us=Ho(Cs),Vs=Ho(ks),Fs=Go({amount:ss}),qs=ss,Ks=Go({balance:ss,mint:ts}),Hs=Go({tokenBalances:Ho(Ks),cursor:zo(Yo())}),Ws=Go({items:Ho(Ks),cursor:zo(Yo())}),js=Go({cursor:zo(Yo()),items:Ho(Go({balance:ss,owner:ts}))}),$s=Go({hash:Ho(Zo()),root:Ho(Zo()),proof:Ho(Ho(Zo()))}),zs=Go({items:Ho(Go({blockTime:Zo(),signature:Yo(),slot:Zo()}))}),Zs=Go({items:Ho(Go({blockTime:Zo(),signature:Yo(),slot:Zo()})),cursor:zo(Yo())}),Ys=Go({account:ms,txHash:ns,nullifier:ns}),Gs=Go({compressionInfo:Go({closedAccounts:Ho(Go({account:fs,optionalTokenData:zo(ys)})),openedAccounts:Ho(Go({account:fs,optionalTokenData:zo(ys)}))}),transaction:Ko()}),Qs=Go({compressionInfo:Go({closedAccounts:Ho(Go({account:Ys,optionalTokenData:zo(ys)})),openedAccounts:Ho(Go({account:ms,optionalTokenData:zo(ys)}))}),transaction:Ko()}),Js={Solana:"solana",Compressed:"compressed"};let Xs=0;function ei({discriminator:e,data:t,dataHash:r}){return{discriminator:e.toArray("le",8),data:y.from(t,"base64"),dataHash:r.toArray("le",32)}}async function ti(t,r,n,o=0){var s,i;const a=ze(o?"getCompressedTokenAccountsByDelegate":"getCompressedTokenAccountsByOwner"),u=o?"delegate":"owner",c=await ni(t.compressionApiEndpoint,a,{[u]:r.toBase58(),mint:null===(s=n.mint)||void 0===s?void 0:s.toBase58(),limit:null===(i=n.limit)||void 0===i?void 0:i.toNumber(),cursor:n.cursor});let l;if(l=$e.isV2()?Uo(c,ls(As)):Uo(c,ls(Es)),"error"in l)throw new e.SolanaJSONRPCError(l.error,`failed to get info for compressed accounts by ${u} ${r.toBase58()}`);if(null===l.result.value)throw new Error("not implemented: NULL result");const d=[],h=await t.getStateTreeInfos();return l.result.value.items.map((e=>{var t;const n=e.account,o=e.tokenData,s=$e.isV2()?n.merkleContext.tree:n.tree,i=$e.isV2()?n.proveByIndex:0,a=io(h,s),c=sr(ir(a,n.hash,n.leafIndex,i),n.owner,nr(n.lamports),n.data?ei(n.data):void 0,n.address||void 0),l={mint:o.mint,owner:o.owner,amount:o.amount,delegate:o.delegate,state:["uninitialized","initialized","frozen"].indexOf(o.state),tlv:null};if((null===(t=l[u])||void 0===t?void 0:t.toBase58())!==r.toBase58())throw new Error(`RPC returned token account with ${u} different from requested ${u}`);d.push({compressedAccount:c,parsed:l})})),{items:d.sort(((e,t)=>t.compressedAccount.leafIndex-e.compressedAccount.leafIndex)),cursor:l.result.value.cursor}}function ri(e){return e.replace(/(":\s*)(-?\d+)(\s*[},])/g,((e,t,r,n)=>{const o=Number(r);return!Number.isNaN(o)&&(o>Number.MAX_SAFE_INTEGER||o<Number.MIN_SAFE_INTEGER)?`${t}"${r}"${n}`:e}))}const ni=async(e,t,r=[],n=1,o=0)=>{const s=JSON.stringify({jsonrpc:"2.0",id:"test-account",method:t,params:r});if(o){const t=()=>{const t=s.replace(/"/g,'\\"');return`curl -X POST ${e} \\\n -H "Content-Type: application/json" \\\n -d "${t}"`};console.log("Debug: Stack trace:"),console.log((new Error).stack),console.log("\nDebug: curl:"),console.log(t()),console.log("\n")}const i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:s});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);const a=ri(await i.text());return n?Nn(JSON.parse(a)):JSON.parse(a)},oi=async(e,t,r=[],n=0)=>{let o,s="";n&&(s=`Proof generation for method:${t}`,console.time(s)),"inclusion"===t?o=JSON.stringify({circuitType:"inclusion",stateTreeHeight:26,inputCompressedAccounts:r}):"new-address"===t?o=JSON.stringify({circuitType:"non-inclusion",addressTreeHeight:26,newAddresses:r}):"combined"===t&&(o=JSON.stringify({circuitType:"combined",stateTreeHeight:26,addressTreeHeight:26,inputCompressedAccounts:r[0],newAddresses:r[1]}));const i=await fetch(`${e}/prove`,{method:"POST",headers:{"Content-Type":"application/json"},body:o});if(!i.ok)throw new Error(`Error fetching proof: ${i.statusText}`);const a=Jn(Qn(await i.json()));return n&&console.timeEnd(s),a};function si(e){const t=[];for(let r=0;r<e.length;r++){const n={root:Ln(e[r].root),pathIndex:e[r].leafIndex,pathElements:e[r].merkleProof.map((e=>Ln(e))),leaf:Ln(nr(e[r].hash))};t.push(n)}return t}function ii(e){const t=[];for(let r=0;r<e.length;r++){const n={root:Ln(e[r].root),value:Ln(e[r].value),pathIndex:e[r].indexHashedIndexedElementLeaf.toNumber(),pathElements:e[r].merkleProofHashedIndexedElementLeaf.map((e=>Ln(e))),nextIndex:e[r].nextIndex.toNumber(),leafLowerRangeValue:Ln(e[r].leafLowerRangeValue),leafHigherRangeValue:Ln(e[r].leafHigherRangeValue)};t.push(n)}return t}function ai(e,t,r){if(e.length!==t.length)throw new Error("Input lengths must match.");if(0===e.length)return nr(0);let n=r.poseidonHashBN([e[0].toString(),t[0].toString()]);for(let o=1;o<e.length;o++)n=r.poseidonHashBN([n.toString(),e[o].toString(),t[o].toString()]);return n}function ui(e){const t=e.account,r=e.optionalTokenData,n=sr(ir(t.treeInfo,t.hash.toArray("be",32),t.leafIndex,t.proveByIndex),t.owner,nr(t.lamports),t.data?ei(t.data):void 0,t.address||void 0);return null===r?{account:n,maybeTokenData:null}:{account:n,maybeTokenData:{mint:r.mint,owner:r.owner,amount:r.amount,delegate:r.delegate,state:["uninitialized","initialized","frozen"].indexOf(r.state),tlv:null}}}function ci(e,t){var r,n,o,s;const i=new Map;for(const e of t)i.set(e.signature,{signature:e.signature,slot:e.slot,blockTime:e.blockTime,err:null,memo:null,confirmationStatus:void 0,sources:[Js.Compressed]});for(const t of e)i.get(t.signature)?i.set(t.signature,{signature:t.signature,slot:t.slot,blockTime:null!==(r=t.blockTime)&&void 0!==r?r:null,err:t.err,memo:null!==(n=t.memo)&&void 0!==n?n:null,confirmationStatus:t.confirmationStatus,sources:[Js.Solana,Js.Compressed]}):i.set(t.signature,{signature:t.signature,slot:t.slot,blockTime:null!==(o=t.blockTime)&&void 0!==o?o:null,err:t.err,memo:null!==(s=t.memo)&&void 0!==s?s:null,confirmationStatus:t.confirmationStatus,sources:[Js.Solana]});return Array.from(i.values()).sort(((e,t)=>t.slot-e.slot))}class li extends e.Connection{constructor(e,t,r,n){super(e,n||"confirmed"),this.allStateTreeInfos=null,this.lastStateTreeFetchTime=null,this.CACHE_TTL=36e5,this.fetchPromise=null,this.compressionApiEndpoint=t,this.proverEndpoint=r}async getCachedActiveStateTreeInfo(){}async getCachedActiveStateTreeInfos(){}async getStateTreeInfos(){if(ct(this.rpcEndpoint))return $t();if(this.allStateTreeInfos&&this.lastStateTreeFetchTime&&Date.now()-this.lastStateTreeFetchTime<=this.CACHE_TTL)return this.allStateTreeInfos;if(this.fetchPromise)return this.fetchPromise;let e;try{return this.fetchPromise=this.doFetch(),e=await this.fetchPromise,this.allStateTreeInfos=e,this.lastStateTreeFetchTime=Date.now(),e}finally{this.fetchPromise=null}}async doFetch(){const{mainnet:e,devnet:t}=ut();try{return await co({connection:this,stateTreeLUTPairs:[e[0]]})}catch(e){try{return await co({connection:this,stateTreeLUTPairs:[t[0]]})}catch(t){throw new Error(`Failed to fetch state tree infos from both mainnet and devnet. Mainnet error: ${e}. Devnet error: ${t}`)}}}async getAddressTreeInfoV2(){const t=new e.PublicKey(Ht);return{tree:t,queue:t,cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}}async getCompressedAccount(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const n=await this.getStateTreeInfos(),o=await ni(this.compressionApiEndpoint,ze("getCompressedAccount"),{hash:r?rr(r):void 0,address:t?rr(t):void 0});let s;if(s=$e.isV2()?Uo(o,ls(zo(ms))):Uo(o,ls(zo(fs))),"error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed account ${r?r.toString():t?t.toString():""}`);if(null===s.result.value)return null;const i=io(n,$e.isV2()?s.result.value.merkleContext.tree:s.result.value.tree),a=s.result.value;return sr(ir(i,a.hash,a.leafIndex),a.owner,nr(a.lamports),a.data?ei(a.data):void 0,a.address||void 0)}async getCompressedBalance(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const n=Uo(await ni(this.compressionApiEndpoint,"getCompressedBalance",{hash:r?rr(r):void 0,address:t?rr(t):void 0}),ls(qs));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get balance for compressed account ${r?r.toString():t?t.toString():""}`);return null===n.result.value?nr(0):nr(n.result.value)}async getCompressedBalanceByOwner(t){const r=Uo(await ni(this.compressionApiEndpoint,"getCompressedBalanceByOwner",{owner:t.toBase58()}),ls(qs));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed account ${t.toBase58()}`);return null===r.result.value?nr(0):nr(r.result.value)}async getCompressedAccountProof(t){const r=await ni(this.compressionApiEndpoint,ze("getCompressedAccountProof"),{hash:rr(t)});let n;if(n=$e.isV2()?Uo(r,ls(ks)):Uo(r,ls(Cs)),"error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get proof for compressed account ${t.toString()}`);if(null===n.result.value)throw new Error(`failed to get proof for compressed account ${t.toString()}`);const o=io(await this.getStateTreeInfos(),$e.isV2()?n.result.value.treeContext.tree:n.result.value.tree);return{hash:nr(n.result.value.hash.toArray("be",32)),treeInfo:o,leafIndex:n.result.value.leafIndex,merkleProof:n.result.value.proof,rootIndex:n.result.value.rootSeq%2400,root:n.result.value.root,proveByIndex:$e.isV2()?n.result.value.proveByIndex:0}}async getMultipleCompressedAccounts(t){const r=await ni(this.compressionApiEndpoint,ze("getMultipleCompressedAccounts"),{hashes:t.map((e=>rr(e)))});let n;if(n=$e.isV2()?Uo(r,ls(xs)):Uo(r,ls(vs)),"error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get info for compressed accounts ${t.map((e=>rr(e))).join(", ")}`);if(null===n.result.value)throw new Error(`failed to get info for compressed accounts ${t.map((e=>rr(e))).join(", ")}`);const o=await this.getStateTreeInfos(),s=[];return n.result.value.items.map((e=>{const t=$e.isV2()?e.merkleContext.tree:e.tree,r=io(o,t),n=sr(ir(r,nr(e.hash.toArray("be",32)),e.leafIndex),e.owner,nr(e.lamports),e.data?ei(e.data):void 0,e.address||void 0);s.push(n)})),s.sort(((e,t)=>t.leafIndex-e.leafIndex))}async getMultipleCompressedAccountProofs(t){const r=await ni(this.compressionApiEndpoint,ze("getMultipleCompressedAccountProofs"),t.map((e=>rr(e))));let n;if(n=$e.isV2()?Uo(r,ls(Ho(ks))):Uo(r,ls(Ho(Cs))),"error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get proofs for compressed accounts ${t.map((e=>rr(e))).join(", ")}`);if(null===n.result.value)throw new Error(`failed to get proofs for compressed accounts ${t.map((e=>rr(e))).join(", ")}`);const o=[],s=await this.getStateTreeInfos();for(const e of n.result.value){const t=io(s,$e.isV2()?e.treeContext.tree:e.merkleTree),r={hash:nr(e.hash.toArray("be",32)),treeInfo:t,leafIndex:e.leafIndex,merkleProof:e.proof,rootIndex:e.rootSeq%2400,root:e.root,proveByIndex:$e.isV2()?e.proveByIndex:0};o.push(r)}return o}async getCompressedAccountsByOwner(t,r){var n;const o=await ni(this.compressionApiEndpoint,ze("getCompressedAccountsByOwner"),{owner:t.toBase58(),filters:(null==r?void 0:r.filters)||[],dataSlice:null==r?void 0:r.dataSlice,cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()});let s;if(s=$e.isV2()?Uo(o,ls(Is)):Uo(o,ls(bs)),"error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed accounts owned by ${t.toBase58()}`);if(null===s.result.value)return{items:[],cursor:null};const i=[],a=await this.getStateTreeInfos();return s.result.value.items.map((e=>{const t=io(a,$e.isV2()?e.merkleContext.tree:e.tree),r=sr(ir(t,nr(e.hash.toArray("be",32)),e.leafIndex,$e.isV2()?e.proveByIndex:0),e.owner,nr(e.lamports),e.data?ei(e.data):void 0,e.address||void 0);i.push(r)})),{items:i.sort(((e,t)=>t.leafIndex-e.leafIndex)),cursor:s.result.value.cursor}}async getCompressedTokenAccountsByOwner(e,t){return t||(t={}),await ti(this,e,t,0)}async getCompressedTokenAccountsByDelegate(e,t){return t||(t={}),await ti(this,e,t,1)}async getCompressedTokenAccountBalance(t){const r=Uo(await ni(this.compressionApiEndpoint,"getCompressedTokenAccountBalance",{hash:rr(t)}),ls(Fs));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed token account ${t.toString()}`);if(null===r.result.value)throw new Error(`failed to get balance for compressed token account ${t.toString()}`);return{amount:nr(r.result.value.amount)}}async getCompressedTokenBalancesByOwner(t,r){var n,o;r||(r={});const s=Uo(await ni(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwner",{owner:t.toBase58(),mint:null===(n=r.mint)||void 0===n?void 0:n.toBase58(),limit:null===(o=r.limit)||void 0===o?void 0:o.toNumber(),cursor:r.cursor}),ls(Hs));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);return{items:r.mint?s.result.value.tokenBalances.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.tokenBalances,cursor:s.result.value.cursor}}async getCompressedTokenBalancesByOwnerV2(t,r){var n,o;r||(r={});const s=Uo(await ni(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwnerV2",{owner:t.toBase58(),mint:null===(n=r.mint)||void 0===n?void 0:n.toBase58(),limit:null===(o=r.limit)||void 0===o?void 0:o.toNumber(),cursor:r.cursor}),ls(Ws));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);const i=r.mint?s.result.value.items.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.items;return{context:s.result.context,value:{items:i,cursor:s.result.value.cursor}}}async getCompressionSignaturesForAccount(t){const r=Uo(await ni(this.compressionApiEndpoint,"getCompressionSignaturesForAccount",{hash:rr(t)}),ls(zs));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get signatures for compressed account ${t.toString()}`);return r.result.value.items}async getTransactionWithCompressionInfo(t){const r=await ni(this.compressionApiEndpoint,ze("getTransactionWithCompressionInfo"),{signature:t});let n;if(n=$e.isV2()?Uo(r,cs(Qs)):Uo(r,cs(Gs)),"error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get slot");if(null===n.result.transaction)return null;const o=[],s=[],i=await this.getStateTreeInfos();$e.isV2()?(n.result.compressionInfo.closedAccounts.map((e=>{o.push(function(e){const t={account:e.account.account,optionalTokenData:e.optionalTokenData},r={nullifier:e.account.nullifier,txHash:e.account.txHash},n=ui(t);return{account:n.account,maybeTokenData:n.maybeTokenData,maybeNullifierMetadata:r}}(e))})),n.result.compressionInfo.openedAccounts.map((e=>{s.push(ui(e))}))):(n.result.compressionInfo.closedAccounts.map((e=>{const t=io(i,e.account.tree),r=sr(ir(t,nr(e.account.hash.toArray("be",32)),e.account.leafIndex),e.account.owner,nr(e.account.lamports),e.account.data?ei(e.account.data):void 0,e.account.address||void 0);o.push({account:r,maybeTokenData:e.optionalTokenData})})),n.result.compressionInfo.openedAccounts.map((e=>{const t=io(i,e.account.tree),r=sr(ir(t,nr(e.account.hash.toArray("be",32)),e.account.leafIndex),e.account.owner,nr(e.account.lamports),e.account.data?ei(e.account.data):void 0,e.account.address||void 0);s.push({account:r,maybeTokenData:e.optionalTokenData})})));const a=e=>{const t=Object.values(e.reduce(((e,{maybeTokenData:t})=>{if(t){const{owner:r,mint:n,amount:o}=t,s=`${r.toBase58()}_${n.toBase58()}`;s in e?e[s].amount=e[s].amount.add(o):e[s]={owner:r,mint:n,amount:o}}return e}),{}));return t.length>0?t:void 0},u=a(o),c=a(s);return{compressionInfo:{closedAccounts:o,openedAccounts:s,preTokenBalances:u,postTokenBalances:c},transaction:n.result.transaction}}async getCompressionSignaturesForAddress(t,r){var n;const o=Uo(await ni(this.compressionApiEndpoint,"getCompressionSignaturesForAddress",{address:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),ls(Zs));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for address ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for address ${t.toBase58()}`);return o.result.value}async getCompressionSignaturesForOwner(t,r){var n;const o=Uo(await ni(this.compressionApiEndpoint,"getCompressionSignaturesForOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),ls(Zs));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return o.result.value}async getCompressionSignaturesForTokenOwner(t,r){var n;const o=Uo(await ni(this.compressionApiEndpoint,"getCompressionSignaturesForTokenOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),ls(Zs));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return o.result.value}async getIndexerHealth(){const t=Uo(await ni(this.compressionApiEndpoint,"getIndexerHealth"),cs(Ms));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get health");return t.result}async confirmTransactionIndexed(e){const t=ct(this.rpcEndpoint)?1e4:2e4,r=ct(this.rpcEndpoint)?100:200,n=Date.now();for(;;){if(await this.getIndexerSlot()>=e)return 1;if(Date.now()-n>t)throw new Error(`Timeout: Indexer slot did not reach the required slot within ${t/1e3}s`);await new Promise((e=>setTimeout(e,r)))}}async getIndexerSlot(){const t=Uo(await ni(this.compressionApiEndpoint,"getIndexerSlot"),cs(Ts));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get slot");return t.result}async getCompressedMintTokenHolders(t,r){var n;const o=Uo(await ni(this.compressionApiEndpoint,"getCompressedMintTokenHolders",{mint:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),ls(js));if("error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get mint token holders");return o.result}async getLatestCompressionSignatures(t,r){const n=Uo(await ni(this.compressionApiEndpoint,"getLatestCompressionSignatures",{limit:r,cursor:t}),ls(_s));if("error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get latest non-voting signatures");return n.result}async getLatestNonVotingSignatures(t,r){const n=Uo(await ni(this.compressionApiEndpoint,"getLatestNonVotingSignatures",{limit:t,cursor:r}),ls(Ss));if("error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get latest non-voting signatures");return n.result}async getMultipleNewAddressProofs(t){const r=Uo(await ni(this.compressionApiEndpoint,"getMultipleNewAddressProofs",t.map((e=>rr(e)))),ls(Ho(Ps)));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get proofs for new addresses ${t.map((e=>rr(e))).join(", ")}`);if(null===r.result.value)throw new Error(`failed to get proofs for new addresses ${t.map((e=>rr(e))).join(", ")}`);const n=[];for(const e of r.result.value){const t={root:e.root,rootIndex:e.rootSeq%2400,value:e.address,leafLowerRangeValue:e.lowerRangeAddress,leafHigherRangeValue:e.higherRangeAddress,nextIndex:nr(e.nextIndex),merkleProofHashedIndexedElementLeaf:e.proof,indexHashedIndexedElementLeaf:nr(e.lowElementLeafIndex),treeInfo:{tree:e.merkleTree,queue:pt().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}};n.push(t)}return n}async getValidityProof(e=[],t=[]){const r=await this.getMultipleCompressedAccounts(e),n=r.map((e=>e.treeInfo.tree)),o=r.map((e=>e.treeInfo.queue)),s=pt().addressTree,i=pt().addressQueue,a=e.map(((e,t)=>({hash:e,tree:n[t],queue:o[t]}))),u=t.map((e=>({address:e,tree:s,queue:i})));return this.getValidityProofV0(a,u)}async getValidityProofV0(e=[],t=[]){const{value:r}=await this.getValidityProofAndRpcContext(e,t);return r}async getValidityProofV2(e=[],t=[],r){const n=e.filter((e=>void 0!==e)).map((e=>({hash:e.hash,tree:e.treeInfo.tree,queue:e.treeInfo.queue}))),o=t.map((e=>{let t;if(r===exports.DerivationMode.compressible||void 0===r){const r=Hn(Uint8Array.from(e.address),e.treeInfo.tree,mt);t=nr(r.toBytes())}else t=nr(e.address);return{address:t,tree:e.treeInfo.tree,queue:e.treeInfo.queue}})),{value:s}=await this.getValidityProofAndRpcContext(n,o);return s}async getValidityProofAndRpcContext(t=[],r=[]){Fr(t.length,r.length);const n=await ni(this.compressionApiEndpoint,ze("getValidityProof"),{hashes:t.map((({hash:e})=>rr(e))),newAddressesWithTrees:r.map((({address:e,tree:t})=>({address:rr(e),tree:t.toBase58()})))});let o;if(o=$e.isV2()?Uo(n,ls(Ds)):Uo(n,ls(Ls)),"error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get validity proof for hashes ${t.map((e=>e.hash.toString())).join(", ")}`);if(null===o.result.value)throw new Error(`failed to get validity proof for hashes ${t.map((e=>e.hash.toString())).join(", ")}`);const s=o.result.value;if($e.isV2())return{value:{compressedProof:s.compressedProof,leaves:s.accounts.map((e=>e.hash)).concat(s.addresses.map((e=>e.address))),roots:s.accounts.map((e=>e.root)).concat(s.addresses.map((e=>e.root))),rootIndices:s.accounts.map((e=>e.rootIndex.rootIndex)).concat(s.addresses.map((e=>e.rootIndex))),proveByIndices:s.accounts.map((e=>e.rootIndex.proveByIndex)).concat(s.addresses.map((()=>0))),treeInfos:s.accounts.map((e=>e.merkleContext)).concat(s.addresses.map((e=>e.merkleContext))),leafIndices:s.accounts.map((e=>e.leafIndex)).concat(s.addresses.map((()=>0)))},context:o.result.context};{const e=await this.getStateTreeInfos(),t=s.merkleTrees.map((t=>t.equals(pt().addressTree)?{tree:t,queue:pt().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}:ao(e,t)));return{value:{compressedProof:s.compressedProof,roots:s.roots,rootIndices:s.rootIndices.map((e=>e)),leafIndices:s.leafIndices,leaves:s.leaves,treeInfos:t,proveByIndices:s.rootIndices.map((e=>e.proveByIndex))},context:o.result.context}}}async getAccountInfoInterface(e,t,r,n){if(!$e.isV2())throw new Error("getAccountInfoInterface requires feature flag V2");n=null!=n?n:lt();const o=Hn(e.toBytes(),n.tree,t),[s,i]=await Promise.allSettled([this.getAccountInfo(e,r),this.getCompressedAccount(nr(o.toBytes()))]),a="fulfilled"===s.status?s.value:null,u="fulfilled"===i.status?i.value:null;return a?u?{accountInfo:a,loadContext:{treeInfo:u.treeInfo,hash:u.hash,leafIndex:u.leafIndex,proveByIndex:u.proveByIndex},isCold:0}:{accountInfo:a,loadContext:void 0,isCold:0}:u&&u.data&&u.data.data.length>0?{accountInfo:{executable:0,owner:u.owner,lamports:u.lamports.toNumber(),data:y.concat([y.from(u.data.discriminator),u.data.data])},loadContext:{treeInfo:u.treeInfo,hash:u.hash,leafIndex:u.leafIndex,proveByIndex:u.proveByIndex},isCold:1}:null}async getSignaturesForAddressInterface(e,t,r){const[n,o]=await Promise.allSettled([this.getSignaturesForAddress(e,t),this.getCompressionSignaturesForAddress(e,r)]),s="fulfilled"===n.status?n.value:[],i="fulfilled"===o.status?o.value.items:[];return{signatures:ci(s,i),solana:s,compressed:i}}async getSignaturesForOwnerInterface(e,t,r){const[n,o]=await Promise.allSettled([this.getSignaturesForAddress(e,t),this.getCompressionSignaturesForOwner(e,r)]),s="fulfilled"===n.status?n.value:[],i="fulfilled"===o.status?o.value.items:[];return{signatures:ci(s,i),solana:s,compressed:i}}async getTokenAccountBalanceInterface(e,t,r,n){const[o,s]=await Promise.allSettled([this.getTokenAccountBalance(e,n),this.getCompressedTokenBalancesByOwner(t,{mint:r})]);let i=nr(0),a=0,u=null;if("fulfilled"===o.status&&o.value){const e=o.value.value;i=nr(e.amount),a=e.decimals,u=e}let c=nr(0);if("fulfilled"===s.status){const e=s.value.items.filter((e=>e.mint.equals(r)));for(const t of e)c=c.add(t.balance)}return{amount:i.add(c),hasColdBalance:!c.isZero(),decimals:a,solana:u}}async getBalanceInterface(e,t){const[r,n]=await Promise.allSettled([this.getBalance(e,t),this.getCompressedBalanceByOwner(e)]),o="fulfilled"===r.status?nr(r.value):nr(0),s="fulfilled"===n.status?n.value:nr(0);return{total:o.isZero()?s:o,hasColdBalance:!s.isZero()}}}class di extends e.Connection{constructor(e,t,r,n,o,s){super(e,o||{commitment:"confirmed"}),this.log=0,this.allStateTreeInfos=null,this.lastStateTreeFetchTime=null,this.fetchPromise=null,this.CACHE_TTL=36e5,this.compressionApiEndpoint=r,this.proverEndpoint=n;const{depth:i,log:a}=null!=s?s:{},{merkleTreeHeight:u}=pt();this.lightWasm=t,this.depth=null!=i?i:u,this.log=null!=a?a:0}async getCachedActiveStateTreeInfo(){}async getCachedActiveStateTreeInfos(){}async getStateTreeInfos(){return $t()}async doFetch(){throw new Error("doFetch not supported in test-rpc")}async getAddressTreeInfoV2(){const t=new e.PublicKey(Ht);return{tree:t,queue:t,cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}}async getCompressedAccount(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await Eo(this,t);return null!=r?r:null}async getCompressedBalance(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await Eo(this,t);if(!r)throw new Error("Account not found");return nr(r.lamports)}async getCompressedBalanceByOwner(e){return(await this.getCompressedAccountsByOwner(e)).items.reduce(((e,t)=>e.add(t.lamports)),nr(0))}async getCompressedAccountProof(e){return(await this.getMultipleCompressedAccountProofs([e]))[0]}async getMultipleCompressedAccounts(e){return await async function(e,t){return(await Ao(e)).filter((e=>t.some((t=>nr(e.hash).eq(t))))).sort(((e,t)=>t.leafIndex-e.leafIndex))}(this,e)}async confirmTransactionIndexed(e){return 1}async getMultipleCompressedAccountProofs(t){const r=await vo(this).then((e=>e.reverse())),n=new Map,o=await this.getStateTreeInfos();for(const e of r)for(let t=0;t<e.outputCompressedAccounts.length;t++){const r=e.outputCompressedAccountHashes[t],s=io(o,e.pubkeyArray[e.outputCompressedAccounts[t].merkleTreeIndex]);n.has(s.tree.toBase58())||n.set(s.tree.toBase58(),{leaves:[],leafIndices:[],treeInfo:s});const i=n.get(s.tree.toBase58());if(!i)throw new Error(`Tree not found: ${s.tree.toBase58()}`);i.leaves.push(r),i.leafIndices.push(e.outputLeafIndices[t])}const s=new Map;for(const[r,{leaves:o,treeInfo:i}]of n.entries()){const a=new e.PublicKey(r);let u;if(i.treeType===exports.TreeType.StateV1)u=new wo(this.depth,this.lightWasm,o.map((e=>nr(e).toString())));else{if(i.treeType!==exports.TreeType.StateV2)throw new Error(`Invalid tree type: ${i.treeType} in test-rpc.ts`);u=new wo(32,this.lightWasm,[])}for(let e=0;e<t.length;e++){const r=o.findIndex((r=>nr(r).eq(t[e])));if(-1!==r)if(i.treeType===exports.TreeType.StateV1){const n=u.path(r).pathElements.map((e=>nr(e))),a=nr(u.root()),c={hash:nr(t[e].toArray("be",32)),treeInfo:i,leafIndex:r,merkleProof:n,proveByIndex:0,rootIndex:o.length,root:a};s.set(t[e].toString(),c)}else if(i.treeType===exports.TreeType.StateV2){const r=u._zeros.slice(0,-1).map((e=>nr(e))),o=nr(u.root()),c=n.get(a.toBase58()).leafIndices.findIndex((r=>t[e].eq(nr(n.get(a.toBase58()).leaves[r])))),l={hash:nr(t[e].toArray("be",32)),treeInfo:i,leafIndex:c,merkleProof:r,proveByIndex:1,rootIndex:0,root:o};s.set(t[e].toString(),l)}}}if(s.forEach(((e,t)=>{if(e.treeInfo.treeType===exports.TreeType.StateV1){const r=e.leafIndex,o=n.get(e.treeInfo.tree.toBase58()).leaves[r],s=nr(o);if(!s.eq(e.hash))throw new Error(`Mismatch at index ${t}: expected ${e.hash.toString()}, got ${s.toString()}`)}})),new Set(t.map((e=>{const t=s.get(e.toString());if(!t)throw new Error(`Proof not found for hash: ${e.toString()}`);return t.treeInfo.treeType}))).size>1)throw new Error("Requested hashes belong to different tree types (V1/V2)");return t.map((e=>{const t=s.get(e.toString());if(!t)throw new Error(`No proof found for hash: ${e.toString()}`);return t}))}async getCompressedAccountsByOwner(e,t){const r=await async function(e,t){return(await Ao(e)).filter((e=>e.owner.equals(t)))}(this,e);return{items:r,cursor:null}}async getLatestCompressionSignatures(e,t){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getLatestNonVotingSignatures(e){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getCompressedTokenAccountsByOwner(e,t){return await So(this,e,t.mint)}async getCompressedTokenAccountsByDelegate(e,t){return await _o(this,e,t.mint)}async getCompressedTokenAccountBalance(e){const t=await Co(this,e);return{amount:nr(t.parsed.amount)}}async getCompressedTokenBalancesByOwner(e,t){return{items:(await So(this,e,t.mint)).items.map((e=>({balance:nr(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}async getCompressedTokenBalancesByOwnerV2(e,t){return{context:{slot:1},value:{items:(await So(this,e,t.mint)).items.map((e=>({balance:nr(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}}async getCompressionSignaturesForAccount(e){throw new Error("getCompressionSignaturesForAccount not implemented in test-rpc")}async getTransactionWithCompressionInfo(e){throw new Error("getCompressedTransaction not implemented in test-rpc")}async getCompressionSignaturesForAddress(e,t){throw new Error("getSignaturesForAddress3 not implemented")}async getCompressionSignaturesForOwner(e,t){throw new Error("getSignaturesForOwner not implemented")}async getCompressionSignaturesForTokenOwner(e,t){throw new Error("getSignaturesForTokenOwner not implemented")}async getIndexerHealth(){return"ok"}async getIndexerSlot(){return 1}async getMultipleNewAddressProofs(e){const t=go.default(),r=[];t.init();const n=[];for(let e=0;e<r.length;e++)t.append(nr(r[e]));for(let e=0;e<t.elements.length;e++){const r=t.hashElement(this.lightWasm,e);n.push(nr(r))}const o=new wo(this.depth,this.lightWasm,n.map((e=>nr(e).toString()))),s=[];for(let r=0;r<e.length;r++){const[n]=t.findLowElement(e[r]);if(!n)throw new Error("Address not found");const i=n.index,a=o.path(i).pathElements.map((e=>nr(e))),u=t.get(n.nextIndex).value,c={root:nr(o.root()),rootIndex:3,value:e[r],leafLowerRangeValue:n.value,leafHigherRangeValue:u,nextIndex:nr(n.nextIndex),merkleProofHashedIndexedElementLeaf:a,indexHashedIndexedElementLeaf:nr(n.index),treeInfo:{tree:pt().addressTree,queue:pt().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}};s.push(c)}return s}async getCompressedMintTokenHolders(e,t){throw new Error("getCompressedMintTokenHolders not implemented in test-rpc")}async getValidityProofAndRpcContext(e=[],t=[]){if(t.some((e=>!(e instanceof je))))throw new Error("AddressWithTree is not supported in test-rpc");return{value:await this.getValidityProofV0(e,t),context:{slot:1}}}async getValidityProof(e=[],t=[]){if(t.some((e=>!(e instanceof je))))throw new Error("AddressWithTree is not supported in test-rpc");let r;const n=[];if(0===e.length&&0===t.length)throw new Error("Empty input. Provide hashes and/or new addresses.");if(e.length>0&&0===t.length){for(const t of e){const e=await this.getCompressedAccount(void 0,t);if(!e)throw new Error("Account not found");n.push(e.treeInfo)}const t=n.some((e=>e.treeType===exports.TreeType.StateV1)),o=await this.getMultipleCompressedAccountProofs(e);if(t){const e=si(o);r={compressedProof:await oi(this.proverEndpoint,"inclusion",e,this.log),roots:o.map((e=>e.root)),rootIndices:o.map((e=>e.rootIndex)),leafIndices:o.map((e=>e.leafIndex)),leaves:o.map((e=>nr(e.hash))),treeInfos:o.map((e=>e.treeInfo)),proveByIndices:o.map((e=>e.proveByIndex))}}else r={compressedProof:null,roots:o.map((()=>nr(0))),rootIndices:o.map((e=>e.rootIndex)),leafIndices:o.map((e=>e.leafIndex)),leaves:o.map((e=>nr(e.hash))),treeInfos:o.map((e=>e.treeInfo)),proveByIndices:o.map((e=>e.proveByIndex))}}else if(0===e.length&&t.length>0){const e=await this.getMultipleNewAddressProofs(t),n=ii(e);r={compressedProof:await oi(this.proverEndpoint,"new-address",n,this.log),roots:e.map((e=>e.root)),rootIndices:e.map((()=>3)),leafIndices:e.map((e=>e.indexHashedIndexedElementLeaf.toNumber())),leaves:e.map((e=>nr(e.value))),treeInfos:e.map((e=>e.treeInfo)),proveByIndices:e.map((()=>0))}}else{if(!(e.length>0&&t.length>0))throw new Error("Invalid input");{const n=await this.getMultipleCompressedAccountProofs(e),o=await this.getMultipleNewAddressProofs(t),s=n.map((e=>e.treeInfo)).some((e=>e.treeType===exports.TreeType.StateV1)),i=ii(o);let a;if(s){const e=si(n);a=await oi(this.proverEndpoint,"combined",[e,i],1)}else a=await oi(this.proverEndpoint,"new-address",i,1);r={compressedProof:a,roots:n.map((e=>s?e.root:nr(0))).concat(o.map((e=>e.root))),rootIndices:n.map((e=>e.rootIndex)).concat(o.map((()=>3))),leafIndices:n.map((e=>e.leafIndex)).concat(o.map((e=>e.indexHashedIndexedElementLeaf.toNumber()))),leaves:n.map((e=>nr(e.hash))).concat(o.map((e=>nr(e.value)))),treeInfos:n.map((e=>e.treeInfo)).concat(o.map((e=>e.treeInfo))),proveByIndices:n.map((e=>e.proveByIndex)).concat(o.map((()=>0)))}}}return r}async getValidityProofV0(e=[],t=[]){return this.getValidityProof(e.map((e=>e.hash)),t.map((e=>e.address)))}async getValidityProofV2(e=[],t=[],r){const n=e.filter((e=>void 0!==e)).map((e=>({hash:e.hash,tree:e.treeInfo.tree,queue:e.treeInfo.queue}))),o=t.map((e=>({address:e.address,tree:e.treeInfo.tree,queue:e.treeInfo.queue})));return this.getValidityProofV0(n,o)}async getAccountInfoInterface(e,t,r){throw new Error("getAccountInfoInterface not implemented in TestRpc")}async getSignaturesForAddressInterface(e,t,r){throw new Error("getSignaturesForAddressInterface not implemented in TestRpc")}async getSignaturesForOwnerInterface(e,t,r){throw new Error("getSignaturesForOwnerInterface not implemented in TestRpc")}async getTokenAccountBalanceInterface(e,t,r,n){throw new Error("getTokenAccountBalanceInterface not implemented in TestRpc")}async getBalanceInterface(e,t){throw new Error("getBalanceInterface not implemented in TestRpc")}}let hi=1;const pi=gi(255),fi=gi(254),mi=gi(253),yi=gi(252);function gi(t){if(t||(t=hi,hi++),t>255)return e.Keypair.generate();const r=new Uint8Array(32);return r[31]=t,e.Keypair.fromSeed(r)}var wi,vi,xi,bi,Ii,Ei,Ai,Ti;exports.UtxoErrorCode=void 0,(wi=exports.UtxoErrorCode||(exports.UtxoErrorCode={})).NEGATIVE_LAMPORTS="NEGATIVE_LAMPORTS",wi.NOT_U64="NOT_U64",wi.BLINDING_EXCEEDS_FIELD_SIZE="BLINDING_EXCEEDS_FIELD_SIZE",exports.SelectInUtxosErrorCode=void 0,(vi=exports.SelectInUtxosErrorCode||(exports.SelectInUtxosErrorCode={})).FAILED_TO_FIND_UTXO_COMBINATION="FAILED_TO_FIND_UTXO_COMBINATION",vi.INVALID_NUMBER_OF_IN_UTXOS="INVALID_NUMBER_OF_IN_UTXOS",exports.CreateUtxoErrorCode=void 0,(xi=exports.CreateUtxoErrorCode||(exports.CreateUtxoErrorCode={})).OWNER_UNDEFINED="OWNER_UNDEFINED",xi.INVALID_OUTPUT_UTXO_LENGTH="INVALID_OUTPUT_UTXO_LENGTH",xi.UTXO_DATA_UNDEFINED="UTXO_DATA_UNDEFINED",exports.RpcErrorCode=void 0,(bi=exports.RpcErrorCode||(exports.RpcErrorCode={})).CONNECTION_UNDEFINED="CONNECTION_UNDEFINED",bi.RPC_PUBKEY_UNDEFINED="RPC_PUBKEY_UNDEFINED",bi.RPC_METHOD_NOT_IMPLEMENTED="RPC_METHOD_NOT_IMPLEMENTED",bi.RPC_INVALID="RPC_INVALID",exports.LookupTableErrorCode=void 0,(Ii=exports.LookupTableErrorCode||(exports.LookupTableErrorCode={})).LOOK_UP_TABLE_UNDEFINED="LOOK_UP_TABLE_UNDEFINED",Ii.LOOK_UP_TABLE_NOT_INITIALIZED="LOOK_UP_TABLE_NOT_INITIALIZED",exports.HashErrorCode=void 0,(exports.HashErrorCode||(exports.HashErrorCode={})).NO_POSEIDON_HASHER_PROVIDED="NO_POSEIDON_HASHER_PROVIDED",exports.ProofErrorCode=void 0,(Ei=exports.ProofErrorCode||(exports.ProofErrorCode={})).INVALID_PROOF="INVALID_PROOF",Ei.PROOF_INPUT_UNDEFINED="PROOF_INPUT_UNDEFINED",Ei.PROOF_GENERATION_FAILED="PROOF_GENERATION_FAILED",exports.MerkleTreeErrorCode=void 0,(Ai=exports.MerkleTreeErrorCode||(exports.MerkleTreeErrorCode={})).MERKLE_TREE_NOT_INITIALIZED="MERKLE_TREE_NOT_INITIALIZED",Ai.SOL_MERKLE_TREE_UNDEFINED="SOL_MERKLE_TREE_UNDEFINED",Ai.MERKLE_TREE_UNDEFINED="MERKLE_TREE_UNDEFINED",Ai.INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE="INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE",Ai.MERKLE_TREE_INDEX_UNDEFINED="MERKLE_TREE_INDEX_UNDEFINED",Ai.MERKLE_TREE_SET_SPACE_UNDEFINED="MERKLE_TREE_SET_SPACE_UNDEFINED",exports.UtilsErrorCode=void 0,(Ti=exports.UtilsErrorCode||(exports.UtilsErrorCode={})).ACCOUNT_NAME_UNDEFINED_IN_IDL="ACCOUNT_NAME_UNDEFINED_IN_IDL",Ti.PROPERTY_UNDEFINED="PROPERTY_UNDEFINED",Ti.LOOK_UP_TABLE_CREATION_FAILED="LOOK_UP_TABLE_CREATION_FAILED",Ti.UNSUPPORTED_ARCHITECTURE="UNSUPPORTED_ARCHITECTURE",Ti.UNSUPPORTED_PLATFORM="UNSUPPORTED_PLATFORM",Ti.ACCOUNTS_UNDEFINED="ACCOUNTS_UNDEFINED",Ti.INVALID_NUMBER="INVALID_NUMBER";class Mi extends Error{constructor(e,t,r){super(`${e}: ${r}`),this.code=e,this.functionName=t,this.codeMessage=r}}exports.ADDRESS_QUEUE_ROLLOVER_FEE=Gt,exports.ADDRESS_TREE_NETWORK_FEE_V1=Jt,exports.ADDRESS_TREE_NETWORK_FEE_V2=Xt,exports.ALICE=pi,exports.AccountProofResult=$s,exports.AppendLeavesInputLayout=_r,exports.AppendNullifyCreateAddressInputsMetaLayout=Sr,exports.BOB=fi,exports.BalanceResult=Fs,exports.CHARLIE=mi,exports.COMPRESSED_TOKEN_PROGRAM_ID=ft,exports.COMPUTE_BUDGET_PATTERN=Ge,exports.CTOKEN_PROGRAM_ID=mt,exports.CompressedAccountLayout=ar,exports.CompressedAccountResult=fs,exports.CompressedAccountResultV2=ms,exports.CompressedAccountsByOwnerResult=bs,exports.CompressedAccountsByOwnerResultV2=Is,exports.CompressedCpiContextLayout=fr,exports.CompressedMintTokenHoldersResult=js,exports.CompressedProofLayout=pr,exports.CompressedTokenAccountResult=gs,exports.CompressedTokenAccountResultV2=ws,exports.CompressedTokenAccountsByOwnerOrDelegateResult=Es,exports.CompressedTokenAccountsByOwnerOrDelegateResultV2=As,exports.CompressedTransactionResult=Gs,exports.CompressedTransactionResultV2=Qs,exports.CreateUtxoError=class extends Mi{},exports.DAVE=yi,exports.DEFAULT_MERKLE_TREE_HEIGHT=zt,exports.DEFAULT_MERKLE_TREE_ROOTS=2800,exports.DEFAULT_ZERO="0",exports.FIELD_SIZE=Ze,exports.HIGHEST_ADDRESS_PLUS_ONE=Ye,exports.HashError=class extends Mi{},exports.HealthResult=Ms,exports.IDL={version:"1.2.0",name:"light_system_program",constants:[{name:"SOL_POOL_PDA_SEED",type:"bytes",value:"[115, 111, 108, 95, 112, 111, 111, 108, 95, 112, 100, 97]"}],instructions:[{name:"initCpiContextAccount",accounts:[{name:"feePayer",isMut:1,isSigner:1},{name:"cpiContextAccount",isMut:1,isSigner:0},{name:"associatedMerkleTree",isMut:0,isSigner:0}],args:[]},{name:"invoke",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpi",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpiWithReadOnly",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"stubIdlBuild",docs:["This function is a stub to allow Anchor to include the input types in","the IDL. It should not be included in production builds nor be called in","practice."],accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs1",type:{defined:"InstructionDataInvoke"}},{name:"inputs2",type:{defined:"InstructionDataInvokeCpi"}},{name:"inputs3",type:{defined:"PublicTransactionEvent"}}]}],accounts:[{name:"cpiContextAccount",docs:["Collects instruction data without executing a compressed transaction.","Signer checks are performed on instruction data.","Collected instruction data is combined with the instruction data of the executing cpi,","and executed as a single transaction.","This enables to use input compressed accounts that are owned by multiple programs,","with one zero-knowledge proof."],type:{kind:"struct",fields:[{name:"feePayer",type:"publicKey"},{name:"associatedMerkleTree",type:"publicKey"},{name:"context",type:{vec:{defined:"InstructionDataInvokeCpi"}}}]}}],types:[{name:"InstructionDataInvoke",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"}]}},{name:"NewAddressParamsPacked",type:{kind:"struct",fields:[{name:"seed",type:{array:["u8",32]}},{name:"addressQueueAccountIndex",type:"u8"},{name:"addressMerkleTreeAccountIndex",type:"u8"},{name:"addressMerkleTreeRootIndex",type:"u16"}]}},{name:"OutputCompressedAccountWithPackedContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleTreeIndex",type:"u8"}]}},{name:"CompressedProof",type:{kind:"struct",fields:[{name:"a",type:{array:["u8",32]}},{name:"b",type:{array:["u8",64]}},{name:"c",type:{array:["u8",32]}}]}},{name:"InstructionDataInvokeCpi",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"cpiContext",type:{option:{defined:"CompressedCpiContext"}}}]}},{name:"CompressedCpiContext",type:{kind:"struct",fields:[{name:"setContext",docs:["Is set by the program that is invoking the CPI to signal that is should","set the cpi context."],type:"bool"},{name:"firstSetContext",docs:["Is set to wipe the cpi context since someone could have set it before","with unrelated data."],type:"bool"},{name:"cpiContextAccountIndex",docs:["Index of cpi context account in remaining accounts."],type:"u8"}]}},{name:"CompressedAccount",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"lamports",type:"u64"},{name:"address",type:{option:{array:["u8",32]}}},{name:"data",type:{option:{defined:"CompressedAccountData"}}}]}},{name:"CompressedAccountData",type:{kind:"struct",fields:[{name:"discriminator",type:{array:["u8",8]}},{name:"data",type:"bytes"},{name:"dataHash",type:{array:["u8",32]}}]}},{name:"PackedCompressedAccountWithMerkleContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleContext",type:{defined:"PackedMerkleContext"}},{name:"rootIndex",docs:["Index of root used in inclusion validity proof."],type:"u16"},{name:"readOnly",docs:["Placeholder to mark accounts read-only unimplemented set to false."],type:"bool"}]}},{name:"PackedMerkleContext",type:{kind:"struct",fields:[{name:"merkleTreePubkeyIndex",type:"u8"},{name:"queuePubkeyIndex",type:"u8"},{name:"leafIndex",type:"u32"},{name:"proveByIndex",type:"bool"}]}},{name:"MerkleTreeSequenceNumber",type:{kind:"struct",fields:[{name:"pubkey",type:"publicKey"},{name:"seq",type:"u64"}]}},{name:"PublicTransactionEvent",type:{kind:"struct",fields:[{name:"inputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"outputLeafIndices",type:{vec:"u32"}},{name:"sequenceNumbers",type:{vec:{defined:"MerkleTreeSequenceNumber"}}},{name:"relayFee",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"pubkeyArray",type:{vec:"publicKey"}},{name:"message",type:{option:"bytes"}}]}}],errors:[{code:6e3,name:"SumCheckFailed",msg:"Sum check failed"},{code:6001,name:"SignerCheckFailed",msg:"Signer check failed"},{code:6002,name:"CpiSignerCheckFailed",msg:"Cpi signer check failed"},{code:6003,name:"ComputeInputSumFailed",msg:"Computing input sum failed."},{code:6004,name:"ComputeOutputSumFailed",msg:"Computing output sum failed."},{code:6005,name:"ComputeRpcSumFailed",msg:"Computing rpc sum failed."},{code:6006,name:"InvalidAddress",msg:"InvalidAddress"},{code:6007,name:"DeriveAddressError",msg:"DeriveAddressError"},{code:6008,name:"CompressedSolPdaUndefinedForCompressSol",msg:"CompressedSolPdaUndefinedForCompressSol"},{code:6009,name:"DecompressLamportsUndefinedForCompressSol",msg:"DecompressLamportsUndefinedForCompressSol"},{code:6010,name:"CompressedSolPdaUndefinedForDecompressSol",msg:"CompressedSolPdaUndefinedForDecompressSol"},{code:6011,name:"DeCompressLamportsUndefinedForDecompressSol",msg:"DeCompressLamportsUndefinedForDecompressSol"},{code:6012,name:"DecompressRecipientUndefinedForDecompressSol",msg:"DecompressRecipientUndefinedForDecompressSol"},{code:6013,name:"WriteAccessCheckFailed",msg:"WriteAccessCheckFailed"},{code:6014,name:"InvokingProgramNotProvided",msg:"InvokingProgramNotProvided"},{code:6015,name:"InvalidCapacity",msg:"InvalidCapacity"},{code:6016,name:"InvalidMerkleTreeOwner",msg:"InvalidMerkleTreeOwner"},{code:6017,name:"ProofIsNone",msg:"ProofIsNone"},{code:6018,name:"ProofIsSome",msg:"Proof is some but no input compressed accounts or new addresses provided."},{code:6019,name:"EmptyInputs",msg:"EmptyInputs"},{code:6020,name:"CpiContextAccountUndefined",msg:"CpiContextAccountUndefined"},{code:6021,name:"CpiContextEmpty",msg:"CpiContextEmpty"},{code:6022,name:"CpiContextMissing",msg:"CpiContextMissing"},{code:6023,name:"DecompressionRecipientDefined",msg:"DecompressionRecipientDefined"},{code:6024,name:"SolPoolPdaDefined",msg:"SolPoolPdaDefined"},{code:6025,name:"AppendStateFailed",msg:"AppendStateFailed"},{code:6026,name:"InstructionNotCallable",msg:"The instruction is not callable"},{code:6027,name:"CpiContextFeePayerMismatch",msg:"CpiContextFeePayerMismatch"},{code:6028,name:"CpiContextAssociatedMerkleTreeMismatch",msg:"CpiContextAssociatedMerkleTreeMismatch"},{code:6029,name:"NoInputs",msg:"NoInputs"},{code:6030,name:"InputMerkleTreeIndicesNotInOrder",msg:"Input merkle tree indices are not in ascending order."},{code:6031,name:"OutputMerkleTreeIndicesNotInOrder",msg:"Output merkle tree indices are not in ascending order."},{code:6032,name:"OutputMerkleTreeNotUnique"},{code:6033,name:"DataFieldUndefined"},{code:6034,name:"ReadOnlyAddressAlreadyExists"},{code:6035,name:"ReadOnlyAccountDoesNotExist"},{code:6036,name:"HashChainInputsLenghtInconsistent"},{code:6037,name:"InvalidAddressTreeHeight"},{code:6038,name:"InvalidStateTreeHeight"}]},exports.INSERT_INTO_QUEUES_DISCRIMINATOR=tt,exports.INVOKE_CPI_DISCRIMINATOR=Je,exports.INVOKE_CPI_WITH_ACCOUNT_INFO_DISCRIMINATOR=et,exports.INVOKE_CPI_WITH_READ_ONLY_DISCRIMINATOR=Xe,exports.INVOKE_DISCRIMINATOR=Qe,exports.InAccountLayout=gr,exports.IndexedArray=go,exports.IndexedElement=mo,exports.IndexedElementBundle=yo,exports.InsertAddressInputLayout=kr,exports.InsertNullifierInputLayout=Cr,exports.InstructionDataInvokeCpiLayout=hr,exports.InstructionDataInvokeCpiWithReadOnlyLayout=xr,exports.InstructionDataInvokeLayout=lr,exports.LatestNonVotingSignaturesResult=Ss,exports.LatestNonVotingSignaturesResultPaginated=_s,exports.LightSystemProgram=po,exports.LookupTableError=class extends Mi{},exports.MerkleContextLayout=ur,exports.MerkleProofResult=Cs,exports.MerkleProofResultV2=ks,exports.MerkleTree=wo,exports.MerkleTreeError=class extends Mi{},exports.MerkleTreeSequenceNumberLayout=Pr,exports.MultipleCompressedAccountsResult=vs,exports.MultipleCompressedAccountsResultV2=xs,exports.MultipleMerkleProofsResult=Us,exports.MultipleMerkleProofsResultV2=Vs,exports.NativeBalanceResult=qs,exports.NewAddressParamsAssignedPackedLayout=mr,exports.NewAddressParamsLayout=cr,exports.NewAddressProofResult=Ps,exports.PackedAccounts=zn,exports.PackedMerkleContextLayout=yr,exports.PackedReadOnlyAddressLayout=wr,exports.PackedReadOnlyCompressedAccountLayout=vr,exports.ProofError=class extends Mi{},exports.PublicTransactionEventLayout=Tr,exports.RootIndexResultV2=Os,exports.Rpc=li,exports.RpcError=class extends Mi{},exports.STATE_MERKLE_TREE_NETWORK_FEE=Qt,exports.STATE_MERKLE_TREE_ROLLOVER_FEE=Yt,exports.SelectInUtxosError=class extends Mi{},exports.SignatureListResult=zs,exports.SignatureListWithCursorResult=Zs,exports.SignatureSource=Js,exports.SlotResult=Ts,exports.SystemAccountMetaConfig=Zn,exports.TRANSACTION_MERKLE_TREE_ROLLOVER_THRESHOLD=Zt,exports.TestRpc=di,exports.TokenBalanceListResult=Hs,exports.TokenBalanceListResultV2=Ws,exports.TokenBalanceResult=Ks,exports.TokenDataResult=ys,exports.UTXO_MERGE_MAXIMUM=10,exports.UTXO_MERGE_THRESHOLD=20,exports.UtilsError=class extends Mi{},exports.UtxoError=class extends Mi{},exports.ValidityProofResult=Ls,exports.ValidityProofResultV2=Ds,exports.accountCompressionProgram=ot,exports.addressQueue=At,exports.addressTree=Et,exports.airdropSol=async function({connection:e,lamports:t,recipientPublicKey:r}){const n=await e.requestAirdrop(r,t);return await jn(e,n),n},exports.batchAddressTree=Ht,exports.batchCpiContext1=kt,exports.batchCpiContext2=Ot,exports.batchCpiContext3=Nt,exports.batchCpiContext4=Vt,exports.batchCpiContext5=Kt,exports.batchMerkleTree=Wt,exports.batchMerkleTree1=_t,exports.batchMerkleTree2=Pt,exports.batchMerkleTree3=Lt,exports.batchMerkleTree4=Dt,exports.batchMerkleTree5=Ft,exports.batchQueue=jt,exports.batchQueue1=Ct,exports.batchQueue2=Rt,exports.batchQueue3=Bt,exports.batchQueue4=Ut,exports.batchQueue5=qt,exports.bn=nr,exports.bufToDecStr=e=>tr(e).toString(),exports.buildAndSignTx=so,exports.buildTx=ro,exports.byteArrayToKeypair=function(t){return e.Keypair.fromSecretKey(Uint8Array.from(t))},exports.calculateComputeUnitPrice=function(e,t){return Math.ceil(1e6*e/t)},exports.checkValidityProofShape=e=>{if(32!==e.a.length||64!==e.b.length||32!==e.c.length)throw new Error("ValidityProof has invalid shape")},exports.compress=async function(t,r,n,o,s,i){const{blockhash:a}=await t.getLatestBlockhash();s||(s=uo(await t.getStateTreeInfos()));const u=await po.compress({payer:r.publicKey,toAddress:o,lamports:n,outputStateTreeInfo:s}),c=so([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),u],r,a,[]);return await no(t,c,i)},exports.confirmConfig={commitment:"confirmed",preflightCommitment:"confirmed"},exports.confirmTransaction=jn,exports.confirmTx=oo,exports.convertInvokeCpiWithReadOnlyToInvoke=Fn,exports.convertMerkleProofsWithContextToHex=si,exports.convertNonInclusionMerkleProofInputsToHex=ii,exports.convertToPublicTransactionEvent=Or,exports.cpiContext2Pubkey=St,exports.cpiContextPubkey=bt,exports.createAccount=async function(t,r,n,o,s,i,a){const{blockhash:u}=await t.getLatestBlockhash(),c=null!=s?s:dt(),{tree:l,queue:d}=c,h=c.treeType===exports.TreeType.AddressV2;if($e.isV2()||h)throw new Error("You are using V2. create-account/create-address is only supported via CPI.");const p=qn(n,o),f=Kn(p,l);i||(i=uo(await t.getStateTreeInfos()));const m=await t.getValidityProofV0(void 0,[{address:nr(f.toBytes()),tree:l,queue:d}]),y={seed:p,addressMerkleTreeRootIndex:m.rootIndices[0],addressMerkleTreePubkey:m.treeInfos[0].tree,addressQueuePubkey:m.treeInfos[0].queue},g=await po.createAccount({payer:r.publicKey,newAddressParams:y,newAddress:Array.from(f.toBytes()),recentValidityProof:m.compressedProof,programId:o,outputStateTreeInfo:i}),w=so([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),g],r,u,[]);return await no(t,w,a)},exports.createAccountWithLamports=async function(t,r,n,o,s,i,a,u){o=nr(o);const c=await t.getCompressedAccountsByOwner(r.publicKey),[l]=fo(c.items,o),{blockhash:d}=await t.getLatestBlockhash(),h=null!=i?i:dt(),{tree:p}=h,f=h.treeType===exports.TreeType.AddressV2;if($e.isV2()||f)throw new Error("You are using V2. create-account/create-address is only supported via CPI.");const m=qn(n,s),y=Kn(m,p),g=await t.getValidityProof(l.map((e=>e.hash)),[nr(y.toBytes())]),w={seed:m,addressMerkleTreeRootIndex:g.rootIndices[g.rootIndices.length-1],addressMerkleTreePubkey:g.treeInfos[g.treeInfos.length-1].tree,addressQueuePubkey:g.treeInfos[g.treeInfos.length-1].queue},v=await po.createAccount({payer:r.publicKey,newAddressParams:w,newAddress:Array.from(y.toBytes()),recentValidityProof:g.compressedProof,inputCompressedAccounts:l,inputStateRootIndices:g.rootIndices,outputStateTreeInfo:a}),x=so([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),v],r,d,[]);return await no(t,x,u)},exports.createBN254=tr,exports.createCompressedAccountLegacy=or,exports.createCompressedAccountMeta=(e,t,r,n)=>({treeInfo:e,outputStateTreeIndex:t,address:null!=r?r:null,lamports:null!=n?n:null}),exports.createCompressedAccountWithMerkleContextLegacy=sr,exports.createMerkleContextLegacy=ir,exports.createRpc=function(t,r,n,o){let s;if(t)if("string"==typeof t)s=t,r=r||s,n=n||s;else{if(!(t instanceof e.Connection))throw new Error("Invalid endpoint or connection type");s=t.rpcEndpoint,r=r||s,n=n||s}else s="http://127.0.0.1:8899",r=r||"http://127.0.0.1:8784",n=n||"http://127.0.0.1:3001";var i;return i=s.toLowerCase().includes("devnet"),Xs=i,new li(s,r,n,o)},exports.createRpcResult=as,exports.createStateTreeLookupTable=async function({connection:t,payer:r,authority:n,recentSlot:o}){const[s,i]=e.AddressLookupTableProgram.createLookupTable({payer:r.publicKey,authority:n.publicKey,recentSlot:o}),a=so([s],r,(await t.getLatestBlockhash()).blockhash,$n(r,[n]));return{address:i,txId:await no(t,a)}},exports.decodeInstructionDataInvoke=Ir,exports.decodeInstructionDataInvokeCpi=Er,exports.decodeInstructionDataInvokeCpiWithReadOnly=br,exports.decodePublicTransactionEvent=Mr,exports.decompress=async function(t,r,n,o,s){const i=(await t.getCompressedAccountsByOwner(r.publicKey)).items;n=nr(n);const a=lo(i);if(n.gt(a))throw new Error(`Not enough compressed lamports. Expected ${n}, got ${a}`);const u=await t.getValidityProof(i.map((e=>nr(e.hash)))),{blockhash:c}=await t.getLatestBlockhash(),l=await po.decompress({payer:r.publicKey,toAddress:o,inputCompressedAccounts:i,recentValidityProof:u.compressedProof,recentInputStateRootIndices:u.rootIndices,lamports:n}),d=so([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),l],r,c,[]);return await no(t,d,s)},exports.dedupeSigner=$n,exports.deepEqual=function e(t,r){if(typeof t!=typeof r)return console.log(`Type mismatch: ${typeof t} !== ${typeof r}`),0;if(t instanceof je&&r instanceof je)return t.eq(r);if("object"==typeof t&&null!==t&&null!==r){const n=Object.keys(t),o=Object.keys(r);if(n.length!==o.length)return console.log(`Key length mismatch: ${n.length} !== ${o.length}`),0;for(const s of n){if(!o.includes(s))return console.log(`Key ${s} not found in value`),0;if(!e(t[s],r[s]))return console.log(`Value mismatch at key ${s}`),0}return 1}return t!==r&&console.log(`Value mismatch: ${t} !== ${r}`),t===r},exports.defaultStateTreeLookupTables=ut,exports.defaultStaticAccounts=()=>[new e.PublicKey(st()),new e.PublicKey(rt),new e.PublicKey(ot),new e.PublicKey(it())],exports.defaultStaticAccountsStruct=at,exports.defaultTestStateTreeAccounts=pt,exports.defaultTestStateTreeAccounts2=()=>({nullifierQueue2:new e.PublicKey(Mt),merkleTree2:new e.PublicKey(Tt)}),exports.deriveAddress=Kn,exports.deriveAddressSeed=qn,exports.deriveAddressSeedV2=function(e){return Un(e.map((e=>Uint8Array.from(e))))},exports.deriveAddressV2=Hn,exports.deserializeAppendNullifyCreateAddressInputsIndexer=Rr,exports.encodeBN254toBase58=rr,exports.encodeInstructionDataInvoke=dr,exports.encodePublicTransactionEvent=function(e){const t=y.alloc(1e3),r=Tr.encode(e,t);return t.slice(0,r)},exports.extendStateTreeLookupTable=async function({connection:t,tableAddress:r,newStateTreeAddresses:n,newQueueAddresses:o,newCpiContextAddresses:s,payer:i,authority:a}){const u=await t.getAddressLookupTable(r);if(!u.value)throw new Error("Lookup table not found");if(u.value.state.addresses.length%3!=0)throw new Error("Lookup table must have a multiple of 3 addresses");if(n.length!==o.length||n.length!==s.length)throw new Error("Same number of newStateTreeAddresses, newQueueAddresses, and newCpiContextAddresses required");const c=so([e.AddressLookupTableProgram.extendLookupTable({payer:i.publicKey,authority:a.publicKey,lookupTable:r,addresses:n.flatMap(((e,t)=>[e,o[t],s[t]]))})],i,(await t.getLatestBlockhash()).blockhash,$n(i,[a]));return{tableAddress:r,txId:await no(t,c)}},exports.featureFlags=$e,exports.getAccountCompressionAuthority=it,exports.getAllStateTreeInfos=co,exports.getBatchAddressTreeInfo=ht,exports.getCompressedTokenAccountByHashTest=Co,exports.getCompressedTokenAccounts=Mo,exports.getCompressedTokenAccountsByDelegateTest=_o,exports.getCompressedTokenAccountsByOwnerTest=So,exports.getConnection=function(){return new e.Connection("http://127.0.0.1:8899","confirmed")},exports.getDefaultAddressSpace=lt,exports.getDefaultAddressTreeInfo=dt,exports.getIndexOrAdd=Lr,exports.getLightSystemAccountMetas=Yn,exports.getLightSystemAccountMetasV2=Gn,exports.getOutputQueue=function(e){var t,r;return null!==(r=null===(t=e.treeInfo.nextTreeInfo)||void 0===t?void 0:t.queue)&&void 0!==r?r:e.treeInfo.queue},exports.getOutputTreeInfo=function(e){var t;return null!==(t=e.treeInfo.nextTreeInfo)&&void 0!==t?t:e.treeInfo},exports.getParsedEvents=vo,exports.getPublicInputHash=function(e,t,r,n){const o=ai(e.map((e=>e.root)),t,n),s=r.map((e=>e.value)),i=ai(r.map((e=>e.root)),s,n);return i.isZero()?o.isZero()?ai([o],[i],n):o:i},exports.getRegisteredProgramPda=st,exports.getStateTreeInfoByPubkey=io,exports.getTestKeypair=gi,exports.getTestRpc=async function(e,t="http://127.0.0.1:8899",r="http://127.0.0.1:8784",n="http://127.0.0.1:3001",o,s=0){return new di(t,e,r,n,void 0,{depth:o||pt().merkleTreeHeight,log:s})},exports.getTreeInfoByPubkey=ao,exports.hashToBn254FieldSizeBe=Dn,exports.hashvToBn254FieldSizeBe=Vn,exports.hashvToBn254FieldSizeBeU8Array=Un,exports.invokeAccountsLayout=Ar,exports.isDevnetCompat=function(){return Xs},exports.isLocalTest=ct,exports.isSmallerThanBn254FieldSizeBe=Bn,exports.jsonRpcResult=cs,exports.jsonRpcResultAndContext=ls,exports.lightSystemProgram=nt,exports.localTestActiveStateTreeInfos=$t,exports.mergeSignatures=ci,exports.merkleTree2Pubkey=Tt,exports.merkletreePubkey=It,exports.negateAndCompressProof=Jn,exports.newAccountWithLamports=async function(e,t=1e9,r){(void 0===r||r>255)&&(r=256);const n=gi(r),o=await e.requestAirdrop(n.publicKey,t);return await oo(e,o),n},exports.noopProgram=rt,exports.nullifiedStateTreeLookupTableDevnet=vt,exports.nullifiedStateTreeLookupTableMainnet=gt,exports.nullifierQueue2Pubkey=Mt,exports.nullifierQueuePubkey=xt,exports.nullifyLookupTable=async function({connection:t,fullStateTreeAddress:r,nullifyLookupTableAddress:n,stateTreeLookupTableAddress:o,payer:s,authority:i}){const a=await t.getAddressLookupTable(o);if(!a.value)throw console.log("stateTreeLookupTable",a),new Error("State tree lookup table not found");if(!a.value.state.addresses.map((e=>e.toBase58())).includes(r.toBase58()))throw console.log("fullStateTreeAddress",r),console.log("stateTreeLookupTable.value.state.addresses",a.value.state.addresses),new Error("State tree address not found in lookup table. Pass correct address or stateTreeLookupTable");const u=await t.getAddressLookupTable(n);if(!u.value)throw new Error("Nullify table not found");if(u.value.state.addresses.map((e=>e.toBase58())).includes(r.toBase58()))throw new Error("Address already exists in nullify lookup table");const c=so([e.AddressLookupTableProgram.extendLookupTable({payer:s.publicKey,authority:i.publicKey,lookupTable:n,addresses:[r]})],s,(await t.getLatestBlockhash()).blockhash,$n(s,[i]));return{txId:await no(t,c)}},exports.packCompressedAccounts=Dr,exports.packDecompressAccountsIdempotent=async function(e,t,r,n){const o=[],s=new Map,i=(e,t)=>{const r=e.toBase58();if(!s.has(r)){const n=o.length;return o.push({pubkey:e,isSigner:0,isWritable:t}),s.set(r,n),n}return s.get(r)},a=r.map((e=>{const t=i(e.treeInfo.tree,1),r=i(e.treeInfo.queue,1);return{[e.key]:e.data,merkleContext:{merkleTreePubkeyIndex:t,queuePubkeyIndex:r}}})),u=o.length;return n.forEach((e=>{i(e,1)})),{proofOption:{0:t.compressedProof},compressedAccounts:a,systemAccountsOffset:u,remainingAccounts:o}},exports.packNewAddressParams=Wn,exports.packTreeInfos=function(e,t,r){const n=e.slice(),o=[],s=[];let i=-1;if(0===t.length&&0===r.length)return{stateTrees:void 0,addressTrees:s};if(t.forEach((e=>{const t=Lr(n,e.treeInfo.tree),r=Lr(n,e.treeInfo.queue);o.push({rootIndex:e.rootIndex,merkleTreePubkeyIndex:t,queuePubkeyIndex:r,leafIndex:e.leafIndex,proveByIndex:e.proveByIndex})})),o.length>0){const e=t[0].treeInfo.nextTreeInfo||t[0].treeInfo;let r=e.tree;if(e.treeType===exports.TreeType.StateV2){if(!$e.isV2())throw new Error("V2 trees are not supported yet");r=e.queue}i=Lr(n,r)}return r.forEach((e=>{const t=Lr(n,e.treeInfo.tree),r=Lr(n,e.treeInfo.queue);s.push({rootIndex:e.rootIndex,addressMerkleTreePubkeyIndex:t,addressQueuePubkeyIndex:r})})),{stateTrees:o.length>0?{packedTreeInfos:o,outputTreeIndex:i}:void 0,addressTrees:s}},exports.padOutputStateMerkleTrees=Br,exports.parseAccountData=ei,exports.parseEvents=xo,exports.parseLightTransaction=Io,exports.parsePublicTransactionEventWithIdl=bo,exports.parseTokenLayoutWithIdl=To,exports.pickRandomTreeAndQueue=function(e){const t=e.length,r=Math.floor(Math.random()*t);let n;if(void 0!==r){if(r<0||r>=e.length)throw new Error(`Index ${r} out of bounds for infos array of length ${e.length}`);n=r}else n=Math.floor(Math.random()*e.length);return e[n]},exports.pipe=function(e,...t){return r=>t.reduce(((e,t)=>t(e)),e(r))},exports.placeholderValidityProof=()=>({a:Array.from({length:32},((e,t)=>t+1)),b:Array.from({length:64},((e,t)=>t+1)),c:Array.from({length:32},((e,t)=>t+1))}),exports.proofFromJsonStruct=Qn,exports.proverRequest=oi,exports.pushUniqueItems=function(e,t){e.forEach((e=>{t.includes(e)||t.push(e)}))},exports.rpcRequest=ni,exports.selectMinCompressedSolAccountsForTransfer=fo,exports.selectStateTreeInfo=uo,exports.sendAndConfirmTx=no,exports.sleep=function(e){return new Promise((t=>setTimeout(t,e)))},exports.stateTreeLookupTableDevnet=wt,exports.stateTreeLookupTableMainnet=yt,exports.sumUpLamports=lo,exports.toAccountMetas=Nr,exports.toArray=e=>Array.isArray(e)?e:[e],exports.toCamelCase=Nn,exports.toHex=Ln,exports.toUnixTimestamp=e=>new Date(e).getTime(),exports.transfer=async function(t,r,n,o,s,i){var a;let u=nr(0);const c=[];let l;for(n=nr(n);u.lt(n);){const e={filters:void 0,dataSlice:void 0,cursor:l,limit:nr(1e3)},r=await t.getCompressedAccountsByOwner(o.publicKey,e);for(const e of r.items)e.lamports.gt(nr(0))&&(c.push(e),u=u.add(e.lamports));if(l=null!==(a=r.cursor)&&void 0!==a?a:void 0,r.items.length<1e3||u.gte(n))break}if(u.lt(n))throw new Error(`Insufficient balance for transfer. Required: ${n.toString()}, available: ${u.toString()}`);const[d]=fo(c,n),h=await t.getValidityProof(d.map((e=>nr(e.hash)))),p=await po.transfer({payer:r.publicKey,inputCompressedAccounts:d,toAddress:s,lamports:n,recentInputStateRootIndices:h.rootIndices,recentValidityProof:h.compressedProof}),{blockhash:f}=await t.getLatestBlockhash(),m=so([e.ComputeBudgetProgram.setComputeUnitLimit({units:35e4}),p],r,f);return await no(t,m,i)},exports.validateNumbers=Hr,exports.validateNumbersForInclusionProof=qr,exports.validateNumbersForNonInclusionProof=Kr,exports.validateNumbersForProof=Fr,exports.validateSameOwner=Vr,exports.validateSufficientBalance=Ur,exports.versionedEndpoint=ze,exports.wrapBigNumbersAsStrings=ri;
1
+ "use strict";var e=require("@solana/web3.js"),t="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s=0;function i(){s=1;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)r[t]=e[t],n[e.charCodeAt(t)]=t;n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63}function a(e,t,n){for(var o,s,i=[],a=t;a<n;a+=3)o=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(r[(s=o)>>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return i.join("")}function u(e){var t;s||i();for(var n=e.length,o=n%3,u="",c=[],l=16383,d=0,h=n-o;d<h;d+=l)c.push(a(e,d,d+l>h?h:d+l));return 1===o?(t=e[n-1],u+=r[t>>2],u+=r[t<<4&63],u+="=="):2===o&&(t=(e[n-2]<<8)+e[n-1],u+=r[t>>10],u+=r[t>>4&63],u+=r[t<<2&63],u+="="),c.push(u),c.join("")}function c(e,t,r,n,o){var s,i,a=8*o-n-1,u=(1<<a)-1,c=u>>1,l=-7,d=r?o-1:0,h=r?-1:1,p=e[t+d];for(d+=h,s=p&(1<<-l)-1,p>>=-l,l+=a;l>0;s=256*s+e[t+d],d+=h,l-=8);for(i=s&(1<<-l)-1,s>>=-l,l+=n;l>0;i=256*i+e[t+d],d+=h,l-=8);if(0===s)s=1-c;else{if(s===u)return i?NaN:Infinity*(p?-1:1);i+=Math.pow(2,n),s-=c}return(p?-1:1)*i*Math.pow(2,s-n)}function l(e,t,r,n,o,s){var i,a,u,c=8*s-o-1,l=(1<<c)-1,d=l>>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||Infinity===t?(a=isNaN(t)?1:0,i=l):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),(t+=i+d>=1?h/u:h*Math.pow(2,1-d))*u>=2&&(i++,u/=2),i+d>=l?(a=0,i=l):i+d>=1?(a=(t*u-1)*Math.pow(2,o),i+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,o),i=0));o>=8;e[r+p]=255&a,p+=f,a/=256,o-=8);for(i=i<<o|a,c+=o;c>0;e[r+p]=255&i,p+=f,i/=256,c-=8);e[r+p-f]|=128*m}var d={}.toString,h=Array.isArray||function(e){return"[object Array]"==d.call(e)};y.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:1;var p=f();function f(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function m(e,t){if(f()<t)throw new RangeError("Invalid typed array length");return y.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=y.prototype:(null===e&&(e=new y(t)),e.length=t),e}function y(e,t,r){if(!(y.TYPED_ARRAY_SUPPORT||this instanceof y))return new y(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return v(this,e)}return g(this,e,t,r)}function g(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n),y.TYPED_ARRAY_SUPPORT?(e=t).__proto__=y.prototype:e=x(e,t),e}(e,t,r,n):"string"==typeof t?function(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!y.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|E(t,r),o=(e=m(e,n)).write(t,r);return o!==n&&(e=e.slice(0,o)),e}(e,t,r):function(e,t){if(I(t)){var r=0|b(t.length);return 0===(e=m(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?m(e,0):x(e,t);if("Buffer"===t.type&&h(t.data))return x(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function w(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function v(e,t){if(w(t),e=m(e,t<0?0:0|b(t)),!y.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function x(e,t){var r=t.length<0?0:0|b(t.length);e=m(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function b(e){if(e>=f())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f().toString(16)+" bytes");return 0|e}function I(e){return!(null==e||!e._isBuffer)}function E(e,t){if(I(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=0;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Y(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return G(e).length;default:if(n)return Y(e).length;t=(""+t).toLowerCase(),n=1}}function A(e,t,r){var n=0;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return V(this,t,r);case"utf8":case"utf-8":return B(this,t,r);case"ascii":return D(this,t,r);case"latin1":case"binary":return U(this,t,r);case"base64":return L(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=1}}function T(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function M(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=y.from(t,n)),I(t))return 0===t.length?-1:S(e,t,r,n,o);if("number"==typeof t)return t&=255,y.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):S(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function S(e,t,r,n,o){var s,i=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,a/=2,u/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var l=-1;for(s=r;s<a;s++)if(c(e,s)===c(t,-1===l?0:s-l)){if(-1===l&&(l=s),s-l+1===u)return l*i}else-1!==l&&(s-=s-l),l=-1}else for(r+u>a&&(r=a-u),s=r;s>=0;s--){for(var d=1,h=0;h<u;h++)if(c(e,s+h)!==c(t,h)){d=0;break}if(d)return s}return-1}function _(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var i=0;i<n;++i){var a=parseInt(t.substr(2*i,2),16);if(isNaN(a))return i;e[r+i]=a}return i}function C(e,t,r,n){return Q(Y(t,e.length-r),e,r,n)}function k(e,t,r,n){return Q(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function P(e,t,r,n){return k(e,t,r,n)}function O(e,t,r,n){return Q(G(t),e,r,n)}function R(e,t,r,n){return Q(function(e,t){for(var r,n,o,s=[],i=0;i<e.length&&!((t-=2)<0);++i)n=(r=e.charCodeAt(i))>>8,o=r%256,s.push(o),s.push(n);return s}(t,e.length-r),e,r,n)}function L(e,t,r){return 0===t&&r===e.length?u(e):u(e.slice(t,r))}function B(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o<r;){var s,i,a,u,c=e[o],l=null,d=c>239?4:c>223?3:c>191?2:1;if(o+d<=r)switch(d){case 1:c<128&&(l=c);break;case 2:128==(192&(s=e[o+1]))&&(u=(31&c)<<6|63&s)>127&&(l=u);break;case 3:s=e[o+1],i=e[o+2],128==(192&s)&&128==(192&i)&&(u=(15&c)<<12|(63&s)<<6|63&i)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:s=e[o+1],i=e[o+2],a=e[o+3],128==(192&s)&&128==(192&i)&&128==(192&a)&&(u=(15&c)<<18|(63&s)<<12|(63&i)<<6|63&a)>65535&&u<1114112&&(l=u)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),o+=d}return function(e){var t=e.length;if(t<=N)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=N));return r}(n)}y.poolSize=8192,y._augment=function(e){return e.__proto__=y.prototype,e},y.from=function(e,t,r){return g(null,e,t,r)},y.TYPED_ARRAY_SUPPORT&&(y.prototype.__proto__=Uint8Array.prototype,y.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&y[Symbol.species]),y.alloc=function(e,t,r){return function(e,t,r,n){return w(t),t<=0?m(e,t):void 0!==r?"string"==typeof n?m(e,t).fill(r,n):m(e,t).fill(r):m(e,t)}(null,e,t,r)},y.allocUnsafe=function(e){return v(null,e)},y.allocUnsafeSlow=function(e){return v(null,e)},y.isBuffer=J,y.compare=function(e,t){if(!I(e)||!I(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,s=Math.min(r,n);o<s;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},y.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 1;default:return 0}},y.concat=function(e,t){if(!h(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return y.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=y.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var s=e[r];if(!I(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,o),o+=s.length}return n},y.byteLength=E,y.prototype._isBuffer=1,y.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)T(this,t,t+1);return this},y.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)T(this,t,t+3),T(this,t+1,t+2);return this},y.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)T(this,t,t+7),T(this,t+1,t+6),T(this,t+2,t+5),T(this,t+3,t+4);return this},y.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?B(this,0,e):A.apply(this,arguments)},y.prototype.equals=function(e){if(!I(e))throw new TypeError("Argument must be a Buffer");return this===e?1:0===y.compare(this,e)},y.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},y.prototype.compare=function(e,t,r,n,o){if(!I(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var s=(o>>>=0)-(n>>>=0),i=(r>>>=0)-(t>>>=0),a=Math.min(s,i),u=this.slice(n,o),c=e.slice(t,r),l=0;l<a;++l)if(u[l]!==c[l]){s=u[l],i=c[l];break}return s<i?-1:i<s?1:0},y.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},y.prototype.indexOf=function(e,t,r){return M(this,e,t,r,1)},y.prototype.lastIndexOf=function(e,t,r){return M(this,e,t,r,0)},y.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=0;;)switch(n){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return C(this,e,t,r);case"ascii":return k(this,e,t,r);case"latin1":case"binary":return P(this,e,t,r);case"base64":return O(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=1}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var N=4096;function D(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}function U(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}function V(e,t,r){var n,o=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>o)&&(r=o);for(var s="",i=t;i<r;++i)s+=(n=e[i])<16?"0"+n.toString(16):n.toString(16);return s}function F(e,t,r){for(var n=e.slice(t,r),o="",s=0;s<n.length;s+=2)o+=String.fromCharCode(n[s]+256*n[s+1]);return o}function q(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function K(e,t,r,n,o,s){if(!I(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<s)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function H(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,s=Math.min(e.length-r,2);o<s;++o)e[r+o]=(t&255<<8*(n?o:1-o))>>>8*(n?o:1-o)}function W(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,s=Math.min(e.length-r,4);o<s;++o)e[r+o]=t>>>8*(n?o:3-o)&255}function j(e,t,r,n){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function $(e,t,r,n,o){return o||j(e,0,r,4),l(e,t,r,n,23,4),r+4}function z(e,t,r,n,o){return o||j(e,0,r,8),l(e,t,r,n,52,8),r+8}y.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),y.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=y.prototype;else{var o=t-e;r=new y(o,void 0);for(var s=0;s<o;++s)r[s]=this[s+e]}return r},y.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e],o=1,s=0;++s<t&&(o*=256);)n+=this[e+s]*o;return n},y.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},y.prototype.readUInt8=function(e,t){return t||q(e,1,this.length),this[e]},y.prototype.readUInt16LE=function(e,t){return t||q(e,2,this.length),this[e]|this[e+1]<<8},y.prototype.readUInt16BE=function(e,t){return t||q(e,2,this.length),this[e]<<8|this[e+1]},y.prototype.readUInt32LE=function(e,t){return t||q(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},y.prototype.readUInt32BE=function(e,t){return t||q(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},y.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e],o=1,s=0;++s<t&&(o*=256);)n+=this[e+s]*o;return n>=(o*=128)&&(n-=Math.pow(2,8*t)),n},y.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=t,o=1,s=this[e+--n];n>0&&(o*=256);)s+=this[e+--n]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*t)),s},y.prototype.readInt8=function(e,t){return t||q(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},y.prototype.readInt16LE=function(e,t){t||q(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},y.prototype.readInt16BE=function(e,t){t||q(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},y.prototype.readInt32LE=function(e,t){return t||q(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},y.prototype.readInt32BE=function(e,t){return t||q(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},y.prototype.readFloatLE=function(e,t){return t||q(e,4,this.length),c(this,e,1,23,4)},y.prototype.readFloatBE=function(e,t){return t||q(e,4,this.length),c(this,e,0,23,4)},y.prototype.readDoubleLE=function(e,t){return t||q(e,8,this.length),c(this,e,1,52,8)},y.prototype.readDoubleBE=function(e,t){return t||q(e,8,this.length),c(this,e,0,52,8)},y.prototype.writeUIntLE=function(e,t,r,n){e=+e,t|=0,r|=0,n||K(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,s=0;for(this[t]=255&e;++s<r&&(o*=256);)this[t+s]=e/o&255;return t+r},y.prototype.writeUIntBE=function(e,t,r,n){e=+e,t|=0,r|=0,n||K(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,s=1;for(this[t+o]=255&e;--o>=0&&(s*=256);)this[t+o]=e/s&255;return t+r},y.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,1,255,0),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},y.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,1),t+2},y.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,0),t+2},y.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):W(this,e,t,1),t+4},y.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,0),t+4},y.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);K(this,e,t,r,o-1,-o)}var s=0,i=1,a=0;for(this[t]=255&e;++s<r&&(i*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/i>>0)-a&255;return t+r},y.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);K(this,e,t,r,o-1,-o)}var s=r-1,i=1,a=0;for(this[t+s]=255&e;--s>=0&&(i*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/i>>0)-a&255;return t+r},y.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,1,127,-128),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},y.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,1),t+2},y.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,0),t+2},y.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,4,2147483647,-2147483648),y.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):W(this,e,t,1),t+4},y.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||K(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,0),t+4},y.prototype.writeFloatLE=function(e,t,r){return $(this,e,t,1,r)},y.prototype.writeFloatBE=function(e,t,r){return $(this,e,t,0,r)},y.prototype.writeDoubleLE=function(e,t,r){return z(this,e,t,1,r)},y.prototype.writeDoubleBE=function(e,t,r){return z(this,e,t,0,r)},y.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var o,s=n-r;if(this===e&&r<t&&t<n)for(o=s-1;o>=0;--o)e[o+t]=this[o+r];else if(s<1e3||!y.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+s),t);return s},y.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!y.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var s;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(s=t;s<r;++s)this[s]=e;else{var i=I(e)?e:Y(new y(e,n).toString()),a=i.length;for(s=0;s<r-t;++s)this[s+t]=i[s%a]}return this};var Z=/[^+\/0-9A-Za-z-_]/g;function Y(e,t){var r;t=t||Infinity;for(var n=e.length,o=null,s=[],i=0;i<n;++i){if((r=e.charCodeAt(i))>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&s.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&s.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function G(e){return function(e){var t,r,a,u,c,l;s||i();var d=e.length;if(d%4>0)throw new Error("Invalid string. Length must be a multiple of 4");c="="===e[d-2]?2:"="===e[d-1]?1:0,l=new o(3*d/4-c),a=c>0?d-4:d;var h=0;for(t=0,r=0;t<a;t+=4,r+=3)u=n[e.charCodeAt(t)]<<18|n[e.charCodeAt(t+1)]<<12|n[e.charCodeAt(t+2)]<<6|n[e.charCodeAt(t+3)],l[h++]=u>>16&255,l[h++]=u>>8&255,l[h++]=255&u;return 2===c?(u=n[e.charCodeAt(t)]<<2|n[e.charCodeAt(t+1)]>>4,l[h++]=255&u):1===c&&(u=n[e.charCodeAt(t)]<<10|n[e.charCodeAt(t+1)]<<4|n[e.charCodeAt(t+2)]>>2,l[h++]=u>>8&255,l[h++]=255&u),l}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Q(e,t,r,n){for(var o=0;o<n&&!(o+r>=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function J(e){return null!=e&&(!!e._isBuffer||X(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&X(e.slice(0,0))}(e))}function X(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var ee=Object.freeze({__proto__:null,Buffer:y,INSPECT_MAX_BYTES:50,SlowBuffer:function(e){return+e!=e&&(e=0),y.alloc(+e)},isBuffer:J,kMaxLength:p}),te="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function re(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function ne(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:1}),Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:1,get:function(){return e[t]}})})),r}var oe={},se={};class ie{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}decode(e,t){throw new Error("Layout is abstract")}encode(e,t,r){throw new Error("Layout is abstract")}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}}function ae(e,t){return t.property?e+"["+t.property+"]":e}se.Layout=ie,se.nameWithProperty=ae,se.bindConstructorLayout=function(e,t){if("function"!=typeof e)throw new TypeError("Class must be constructor");if(e.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(t&&t instanceof ie))throw new TypeError("layout must be a Layout");if(t.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");e.layout_=t,t.boundConstructor_=e,t.makeDestinationObject=()=>new e,Object.defineProperty(e.prototype,"encode",{value:function(e,r){return t.encode(this,e,r)},writable:1}),Object.defineProperty(e,"decode",{value:function(e,r){return t.decode(e,r)},writable:1})};class ue extends ie{isCount(){throw new Error("ExternalLayout is abstract")}}class ce extends ue{constructor(e,t){if(void 0===e&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,t),this.elementSpan=e}isCount(){return 1}decode(e,t){void 0===t&&(t=0);const r=e.length-t;return Math.floor(r/this.elementSpan)}encode(e,t,r){return 0}}class le extends ue{constructor(e,t,r){if(!(e instanceof ie))throw new TypeError("layout must be a Layout");if(void 0===t)t=0;else if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof de||this.layout instanceof he}decode(e,t){return void 0===t&&(t=0),this.layout.decode(e,t+this.offset)}encode(e,t,r){return void 0===r&&(r=0),this.layout.encode(e,t,r+this.offset)}}class de extends ie{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntLE(e,r,this.span),this.span}}class he extends ie{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntBE(e,r,this.span),this.span}}class pe extends ie{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntLE(e,r,this.span),this.span}}class fe extends ie{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntBE(e,r,this.span),this.span}}const me=Math.pow(2,32);function ye(e){const t=Math.floor(e/me);return{hi32:t,lo32:e-t*me}}function ge(e,t){return e*me+t}class we extends ie{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return ge(e.readUInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const n=ye(e);return t.writeUInt32LE(n.lo32,r),t.writeUInt32LE(n.hi32,r+4),8}}class ve extends ie{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),ge(e.readUInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const n=ye(e);return t.writeUInt32BE(n.hi32,r),t.writeUInt32BE(n.lo32,r+4),8}}class xe extends ie{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return ge(e.readInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const n=ye(e);return t.writeUInt32LE(n.lo32,r),t.writeInt32LE(n.hi32,r+4),8}}class be extends ie{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),ge(e.readInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const n=ye(e);return t.writeInt32BE(n.hi32,r),t.writeUInt32BE(n.lo32,r+4),8}}class Ie extends ie{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatLE(e,r),4}}class Ee extends ie{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatBE(e,r),4}}class Ae extends ie{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleLE(e,r),8}}class Te extends ie{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleBE(e,r),8}}class Me extends ie{constructor(e,t,r){if(!(e instanceof ie))throw new TypeError("elementLayout must be a Layout");if(!(t instanceof ue&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let n=-1;!(t instanceof ue)&&0<e.span&&(n=t*e.span),super(n,r),this.elementLayout=e,this.count=t}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0,n=this.count;if(n instanceof ue&&(n=n.decode(e,t)),0<this.elementLayout.span)r=n*this.elementLayout.span;else{let o=0;for(;o<n;)r+=this.elementLayout.getSpan(e,t+r),++o}return r}decode(e,t){void 0===t&&(t=0);const r=[];let n=0,o=this.count;for(o instanceof ue&&(o=o.decode(e,t));n<o;)r.push(this.elementLayout.decode(e,t)),t+=this.elementLayout.getSpan(e,t),n+=1;return r}encode(e,t,r){void 0===r&&(r=0);const n=this.elementLayout,o=e.reduce(((e,o)=>e+n.encode(o,t,r+e)),0);return this.count instanceof ue&&this.count.encode(e.length,t,r),o}}class Se extends ie{constructor(e,t,r){if(!Array.isArray(e)||!e.reduce(((e,t)=>e&&t instanceof ie),1))throw new TypeError("fields must be array of Layout instances");"boolean"==typeof t&&void 0===r&&(r=t,t=void 0);for(const t of e)if(0>t.span&&void 0===t.property)throw new Error("fields cannot contain unnamed variable-length layout");let n=-1;try{n=e.reduce(((e,t)=>e+t.getSpan()),0)}catch(e){}super(n,t),this.fields=e,this.decodePrefixes=!!r}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;try{r=this.fields.reduce(((r,n)=>{const o=n.getSpan(e,t);return t+=o,r+o}),0)}catch(e){throw new RangeError("indeterminate span")}return r}decode(e,t){void 0===t&&(t=0);const r=this.makeDestinationObject();for(const n of this.fields)if(void 0!==n.property&&(r[n.property]=n.decode(e,t)),t+=n.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return r}encode(e,t,r){void 0===r&&(r=0);const n=r;let o=0,s=0;for(const n of this.fields){let i=n.span;if(s=0<i?i:0,void 0!==n.property){const o=e[n.property];void 0!==o&&(s=n.encode(o,t,r),0>i&&(i=n.getSpan(t,r)))}o=r,r+=i}return o+s-n}fromArray(e){const t=this.makeDestinationObject();for(const r of this.fields)void 0!==r.property&&0<e.length&&(t[r.property]=e.shift());return t}layoutFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}offsetOf(e){if("string"!=typeof e)throw new TypeError("property must be string");let t=0;for(const r of this.fields){if(r.property===e)return t;0>r.span?t=-1:0<=t&&(t+=r.span)}}}class _e{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class Ce extends _e{constructor(e,t){if(!(e instanceof ue&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(t||e.property||"variant"),this.layout=e}decode(e,t){return this.layout.decode(e,t)}encode(e,t,r){return this.layout.encode(e,t,r)}}class ke extends ie{constructor(e,t,r){const n=e instanceof de||e instanceof he;if(n)e=new Ce(new le(e));else if(e instanceof ue&&e.isCount())e=new Ce(e);else if(!(e instanceof _e))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(void 0===t&&(t=null),!(null===t||t instanceof ie))throw new TypeError("defaultLayout must be null or a Layout");if(null!==t){if(0>t.span)throw new Error("defaultLayout must have constant span");void 0===t.property&&(t=t.replicate("content"))}let o=-1;t&&(o=t.span,0<=o&&n&&(o+=e.layout.span)),super(o,r),this.discriminator=e,this.usesPrefixDiscriminator=n,this.defaultLayout=t,this.registry={};let s=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(e){return s(e)},this.configGetSourceVariant=function(e){s=e.bind(this)}}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);const r=this.getVariant(e,t);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(e,t)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const t=this.registry[e[this.discriminator.property]];if(t&&(!t.layout||e.hasOwnProperty(t.property)))return t}else for(const t in this.registry){const r=this.registry[t];if(e.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(e,t){let r;void 0===t&&(t=0);const n=this.discriminator,o=n.decode(e,t);let s=this.registry[o];if(void 0===s){let i=0;s=this.defaultLayout,this.usesPrefixDiscriminator&&(i=n.layout.span),r=this.makeDestinationObject(),r[n.property]=o,r[s.property]=this.defaultLayout.decode(e,t+i)}else r=s.decode(e,t);return r}encode(e,t,r){void 0===r&&(r=0);const n=this.getSourceVariant(e);if(void 0===n){const n=this.discriminator,o=this.defaultLayout;let s=0;return this.usesPrefixDiscriminator&&(s=n.layout.span),n.encode(e[n.property],t,r),s+o.encode(e[o.property],t,r+s)}return n.encode(e,t,r)}addVariant(e,t,r){const n=new Pe(this,e,t,r);return this.registry[e]=n,n}getVariant(e,t){let r=e;return Buffer.isBuffer(e)&&(void 0===t&&(t=0),r=this.discriminator.decode(e,t)),this.registry[r]}}class Pe extends ie{constructor(e,t,r,n){if(!(e instanceof ke))throw new TypeError("union must be a Union");if(!Number.isInteger(t)||0>t)throw new TypeError("variant must be a (non-negative) integer");if("string"==typeof r&&void 0===n&&(n=r,r=null),r){if(!(r instanceof ie))throw new TypeError("layout must be a Layout");if(null!==e.defaultLayout&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if("string"!=typeof n)throw new TypeError("variant must have a String property")}let o=e.span;0>e.span&&(o=r?r.span:0,0<=o&&e.usesPrefixDiscriminator&&(o+=e.discriminator.layout.span)),super(o,n),this.union=e,this.variant=t,this.layout=r||null}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(e,t+r)}decode(e,t){const r=this.makeDestinationObject();if(void 0===t&&(t=0),this!==this.union.getVariant(e,t))throw new Error("variant mismatch");let n=0;return this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,t+n):this.property?r[this.property]=1:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,t,r){void 0===r&&(r=0);let n=0;if(this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,t,r);let o=n;if(this.layout&&(this.layout.encode(e[this.property],t,r+n),o+=this.layout.getSpan(t,r+n),0<=this.union.span&&o>this.union.span))throw new Error("encoded variant overruns containing union");return o}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}function Oe(e){return 0>e&&(e+=4294967296),e}class Re extends ie{constructor(e,t,r){if(!(e instanceof de||e instanceof he))throw new TypeError("word must be a UInt or UIntBE layout");if("string"==typeof t&&void 0===r&&(r=t,t=void 0),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,r),this.word=e,this.msb=!!t,this.fields=[];let n=0;this._packedSetValue=function(e){return n=Oe(e),this},this._packedGetValue=function(){return n}}decode(e,t){const r=this.makeDestinationObject();void 0===t&&(t=0);const n=this.word.decode(e,t);this._packedSetValue(n);for(const e of this.fields)void 0!==e.property&&(r[e.property]=e.decode(n));return r}encode(e,t,r){void 0===r&&(r=0);const n=this.word.decode(t,r);this._packedSetValue(n);for(const t of this.fields)if(void 0!==t.property){const r=e[t.property];void 0!==r&&t.encode(r)}return this.word.encode(this._packedGetValue(),t,r)}addField(e,t){const r=new Le(this,e,t);return this.fields.push(r),r}addBoolean(e){const t=new Be(this,e);return this.fields.push(t),t}fieldFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}}class Le{constructor(e,t,r){if(!(e instanceof Re))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(t)||0>=t)throw new TypeError("bits must be positive integer");const n=8*e.span,o=e.fields.reduce(((e,t)=>e+t.bits),0);if(t+o>n)throw new Error("bits too long for span remainder ("+(n-o)+" of "+n+" remain)");this.container=e,this.bits=t,this.valueMask=(1<<t)-1,32===t&&(this.valueMask=4294967295),this.start=o,this.container.msb&&(this.start=n-o-t),this.wordMask=Oe(this.valueMask<<this.start),this.property=r}decode(){return Oe(this.container._packedGetValue()&this.wordMask)>>>this.start}encode(e){if(!Number.isInteger(e)||e!==Oe(e&this.valueMask))throw new TypeError(ae("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const t=this.container._packedGetValue(),r=Oe(e<<this.start);this.container._packedSetValue(Oe(t&~this.wordMask)|r)}}let Be=class extends Le{constructor(e,t){super(e,1,t)}decode(e,t){return!!Le.prototype.decode.call(this,e,t)}encode(e){return"boolean"==typeof e&&(e=+e),Le.prototype.encode.call(this,e)}};class Ne extends ie{constructor(e,t){if(!(e instanceof ue&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof ue||(r=e),super(r,t),this.length=e}getSpan(e,t){let r=this.span;return 0>r&&(r=this.length.decode(e,t)),r}decode(e,t){void 0===t&&(t=0);let r=this.span;return 0>r&&(r=this.length.decode(e,t)),e.slice(t,t+r)}encode(e,t,r){let n=this.length;if(this.length instanceof ue&&(n=e.length),!Buffer.isBuffer(e)||n!==e.length)throw new TypeError(ae("Blob.encode",this)+" requires (length "+n+") Buffer as src");if(r+n>t.length)throw new RangeError("encoding overruns Buffer");return t.write(e.toString("hex"),r,n,"hex"),this.length instanceof ue&&this.length.encode(n,t,r),n}}class De extends ie{constructor(e){super(-1,e)}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");void 0===t&&(t=0);let r=t;for(;r<e.length&&0!==e[r];)r+=1;return 1+r-t}decode(e,t,r){void 0===t&&(t=0);let n=this.getSpan(e,t);return e.slice(t,t+n-1).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const n=new Buffer(e,"utf8"),o=n.length;if(r+o>t.length)throw new RangeError("encoding overruns Buffer");return n.copy(t,r),t[r+o]=0,o+1}}class Ue extends ie{constructor(e,t){if("string"==typeof e&&void 0===t&&(t=e,e=void 0),void 0===e)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,t),this.maxSpan=e}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");return void 0===t&&(t=0),e.length-t}decode(e,t,r){void 0===t&&(t=0);let n=this.getSpan(e,t);if(0<=this.maxSpan&&this.maxSpan<n)throw new RangeError("text length exceeds maxSpan");return e.slice(t,t+n).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const n=new Buffer(e,"utf8"),o=n.length;if(0<=this.maxSpan&&this.maxSpan<o)throw new RangeError("text length exceeds maxSpan");if(r+o>t.length)throw new RangeError("encoding overruns Buffer");return n.copy(t,r),o}}class Ve extends ie{constructor(e,t){super(0,t),this.value=e}decode(e,t,r){return this.value}encode(e,t,r){return 0}}se.ExternalLayout=ue,se.GreedyCount=ce,se.OffsetLayout=le,se.UInt=de,se.UIntBE=he,se.Int=pe,se.IntBE=fe,se.Float=Ie,se.FloatBE=Ee,se.Double=Ae,se.DoubleBE=Te,se.Sequence=Me,se.Structure=Se,se.UnionDiscriminator=_e,se.UnionLayoutDiscriminator=Ce,se.Union=ke,se.VariantLayout=Pe,se.BitStructure=Re,se.BitField=Le,se.Boolean=Be,se.Blob=Ne,se.CString=De,se.UTF8=Ue,se.Constant=Ve,se.greedy=(e,t)=>new ce(e,t),se.offset=(e,t,r)=>new le(e,t,r),se.u8=e=>new de(1,e),se.u16=e=>new de(2,e),se.u24=e=>new de(3,e),se.u32=e=>new de(4,e),se.u40=e=>new de(5,e),se.u48=e=>new de(6,e),se.nu64=e=>new we(e),se.u16be=e=>new he(2,e),se.u24be=e=>new he(3,e),se.u32be=e=>new he(4,e),se.u40be=e=>new he(5,e),se.u48be=e=>new he(6,e),se.nu64be=e=>new ve(e),se.s8=e=>new pe(1,e),se.s16=e=>new pe(2,e),se.s24=e=>new pe(3,e),se.s32=e=>new pe(4,e),se.s40=e=>new pe(5,e),se.s48=e=>new pe(6,e),se.ns64=e=>new xe(e),se.s16be=e=>new fe(2,e),se.s24be=e=>new fe(3,e),se.s32be=e=>new fe(4,e),se.s40be=e=>new fe(5,e),se.s48be=e=>new fe(6,e),se.ns64be=e=>new be(e),se.f32=e=>new Ie(e),se.f32be=e=>new Ee(e),se.f64=e=>new Ae(e),se.f64be=e=>new Te(e),se.struct=(e,t,r)=>new Se(e,t,r),se.bits=(e,t,r)=>new Re(e,t,r),se.seq=(e,t,r)=>new Me(e,t,r),se.union=(e,t,r)=>new ke(e,t,r),se.unionLayoutDiscriminator=(e,t)=>new Ce(e,t),se.blob=(e,t)=>new Ne(e,t),se.cstr=e=>new De(e),se.utf8=(e,t)=>new Ue(e,t),se.const=(e,t)=>new Ve(e,t);var Fe={exports:{}},qe=ne(ee);!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"==typeof Fe?Fe.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:qe.Buffer}catch(e){}function i(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(0,"Invalid character in "+e)}function a(e,t,r){var n=i(e,r);return r-1>=t&&(n|=i(e,r-1)<<4),n}function u(e,t,n,o){for(var s=0,i=0,a=Math.min(e.length,n),u=t;u<a;u++){var c=e.charCodeAt(u)-48;s*=o,i=c>=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&i<o,"Invalid character"),s+=i}return s}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(o.isBN=function(e){return e instanceof o?1:null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o<e.length&&(16===t?this._parseHex(e,o,n):(this._parseBase(e,t,o),"le"===n&&this._initArray(this.toArray(),t,n)))},o.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var o=0;o<this.length;o++)this.words[o]=0;var s,i,a=0;if("be"===n)for(o=e.length-1,s=0;o>=0;o-=3)i=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===n)for(o=0,s=0;o<e.length;o+=3)i=e[o]|e[o+1]<<8|e[o+2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,s=0,i=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)o=a(e,t,n)<<s,this.words[i]|=67108863&o,s>=18?(s-=18,i+=1,this.words[i]|=o>>>26):s+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)o=a(e,t,n)<<s,this.words[i]|=67108863&o,s>=18?(s-=18,i+=1,this.words[i]|=o>>>26):s+=8;this._strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var s=e.length-r,i=s%n,a=Math.min(s,s-i)+r,c=0,l=r;l<a;l+=n)c=u(e,l,l+n,t),this.imuln(o),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==i){var d=1;for(c=u(e,l,e.length,t),l=0;l<i;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype._move=function(e){c(e,this)},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){o.prototype.inspect=l}else o.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","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"],h=[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=[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];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],s=0|t.words[0],i=o*s,a=67108863&i,u=i/67108864|0;r.words[0]=a;for(var c=1;c<n;c++){for(var l=u>>>26,d=67108863&u,h=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=h;p++){var f=c-p|0;l+=(i=(o=0|e.words[f])*(s=0|t.words[p])+d)/67108864|0,d=67108863&i}r.words[c]=0|d,u=0|l}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,s=0,i=0;i<this.length;i++){var a=this.words[i],u=(16777215&(a<<o|s)).toString(16);s=a>>>24-o&16777215,(o+=2)>=26&&(o-=26,i--),n=0!==s||i!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==s&&(n=s.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(l).toString(e);n=(f=f.idivn(l)).isZero()?m+n:d[c-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(0,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(0,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){this._strip();var o=this.byteLength(),s=n||Math.max(1,o);r(o<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0");var i=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](i,o),i},o.prototype._toArrayLikeLE=function(e){for(var t=0,r=0,n=0,o=0;n<this.length;n++){var s=this.words[n]<<o|r;e[t++]=255&s,t<e.length&&(e[t++]=s>>8&255),t<e.length&&(e[t++]=s>>16&255),6===o?(t<e.length&&(e[t++]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(t<e.length)for(e[t++]=r;t<e.length;)e[t++]=0},o.prototype._toArrayLikeBE=function(e){for(var t=e.length-1,r=0,n=0,o=0;n<this.length;n++){var s=this.words[n]<<o|r;e[t--]=255&s,t>=0&&(e[t--]=s>>8&255),t>=0&&(e[t--]=s>>16&255),6===o?(t>=0&&(e[t--]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(t>=0)for(e[t--]=r;t>=0;)e[t--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},o.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},o.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},o.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o<t;o++)this.words[o]=67108863&~this.words[o];return n>0&&(this.words[o]=~this.words[o]&67108863>>26-n),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<o:this.words[n]&~(1<<o),this._strip()},o.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)t=(0|r.words[s])+(0|n.words[s])+o,this.words[s]=67108863&t,o=t>>>26;for(;0!==o&&s<r.length;s++)t=(0|r.words[s])+o,this.words[s]=67108863&t,o=t>>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var s=0,i=0;i<n.length;i++)s=(t=(0|r.words[i])-(0|n.words[i])+s)>>26,this.words[i]=67108863&t;for(;0!==s&&i<r.length;i++)s=(t=(0|r.words[i])+s)>>26,this.words[i]=67108863&t;if(0===s&&i<r.length&&r!==this)for(;i<r.length;i++)this.words[i]=r.words[i];return this.length=Math.max(this.length,i),r!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,o,s,i=e.words,a=t.words,u=r.words,c=0,l=0|i[0],d=8191&l,h=l>>>13,p=0|i[1],f=8191&p,m=p>>>13,y=0|i[2],g=8191&y,w=y>>>13,v=0|i[3],x=8191&v,b=v>>>13,I=0|i[4],E=8191&I,A=I>>>13,T=0|i[5],M=8191&T,S=T>>>13,_=0|i[6],C=8191&_,k=_>>>13,P=0|i[7],O=8191&P,R=P>>>13,L=0|i[8],B=8191&L,N=L>>>13,D=0|i[9],U=8191&D,V=D>>>13,F=0|a[0],q=8191&F,K=F>>>13,H=0|a[1],W=8191&H,j=H>>>13,$=0|a[2],z=8191&$,Z=$>>>13,Y=0|a[3],G=8191&Y,Q=Y>>>13,J=0|a[4],X=8191&J,ee=J>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],se=8191&oe,ie=oe>>>13,ae=0|a[7],ue=8191&ae,ce=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(c+(n=Math.imul(d,q))|0)+((8191&(o=(o=Math.imul(d,K))+Math.imul(h,q)|0))<<13)|0;c=((s=Math.imul(h,K))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,q),o=(o=Math.imul(f,K))+Math.imul(m,q)|0,s=Math.imul(m,K);var ge=(c+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,j)|0)+Math.imul(h,W)|0))<<13)|0;c=((s=s+Math.imul(h,j)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,q),o=(o=Math.imul(g,K))+Math.imul(w,q)|0,s=Math.imul(w,K),n=n+Math.imul(f,W)|0,o=(o=o+Math.imul(f,j)|0)+Math.imul(m,W)|0,s=s+Math.imul(m,j)|0;var we=(c+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,Z)|0)+Math.imul(h,z)|0))<<13)|0;c=((s=s+Math.imul(h,Z)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,q),o=(o=Math.imul(x,K))+Math.imul(b,q)|0,s=Math.imul(b,K),n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,j)|0)+Math.imul(w,W)|0,s=s+Math.imul(w,j)|0,n=n+Math.imul(f,z)|0,o=(o=o+Math.imul(f,Z)|0)+Math.imul(m,z)|0,s=s+Math.imul(m,Z)|0;var ve=(c+(n=n+Math.imul(d,G)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,G)|0))<<13)|0;c=((s=s+Math.imul(h,Q)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,q),o=(o=Math.imul(E,K))+Math.imul(A,q)|0,s=Math.imul(A,K),n=n+Math.imul(x,W)|0,o=(o=o+Math.imul(x,j)|0)+Math.imul(b,W)|0,s=s+Math.imul(b,j)|0,n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,Z)|0)+Math.imul(w,z)|0,s=s+Math.imul(w,Z)|0,n=n+Math.imul(f,G)|0,o=(o=o+Math.imul(f,Q)|0)+Math.imul(m,G)|0,s=s+Math.imul(m,Q)|0;var xe=(c+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;c=((s=s+Math.imul(h,ee)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(M,q),o=(o=Math.imul(M,K))+Math.imul(S,q)|0,s=Math.imul(S,K),n=n+Math.imul(E,W)|0,o=(o=o+Math.imul(E,j)|0)+Math.imul(A,W)|0,s=s+Math.imul(A,j)|0,n=n+Math.imul(x,z)|0,o=(o=o+Math.imul(x,Z)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,Z)|0,n=n+Math.imul(g,G)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(w,G)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(f,X)|0,o=(o=o+Math.imul(f,ee)|0)+Math.imul(m,X)|0,s=s+Math.imul(m,ee)|0;var be=(c+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;c=((s=s+Math.imul(h,ne)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(C,q),o=(o=Math.imul(C,K))+Math.imul(k,q)|0,s=Math.imul(k,K),n=n+Math.imul(M,W)|0,o=(o=o+Math.imul(M,j)|0)+Math.imul(S,W)|0,s=s+Math.imul(S,j)|0,n=n+Math.imul(E,z)|0,o=(o=o+Math.imul(E,Z)|0)+Math.imul(A,z)|0,s=s+Math.imul(A,Z)|0,n=n+Math.imul(x,G)|0,o=(o=o+Math.imul(x,Q)|0)+Math.imul(b,G)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(w,X)|0,s=s+Math.imul(w,ee)|0,n=n+Math.imul(f,re)|0,o=(o=o+Math.imul(f,ne)|0)+Math.imul(m,re)|0,s=s+Math.imul(m,ne)|0;var Ie=(c+(n=n+Math.imul(d,se)|0)|0)+((8191&(o=(o=o+Math.imul(d,ie)|0)+Math.imul(h,se)|0))<<13)|0;c=((s=s+Math.imul(h,ie)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(O,q),o=(o=Math.imul(O,K))+Math.imul(R,q)|0,s=Math.imul(R,K),n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,j)|0)+Math.imul(k,W)|0,s=s+Math.imul(k,j)|0,n=n+Math.imul(M,z)|0,o=(o=o+Math.imul(M,Z)|0)+Math.imul(S,z)|0,s=s+Math.imul(S,Z)|0,n=n+Math.imul(E,G)|0,o=(o=o+Math.imul(E,Q)|0)+Math.imul(A,G)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(x,X)|0,o=(o=o+Math.imul(x,ee)|0)+Math.imul(b,X)|0,s=s+Math.imul(b,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(w,re)|0,s=s+Math.imul(w,ne)|0,n=n+Math.imul(f,se)|0,o=(o=o+Math.imul(f,ie)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,ie)|0;var Ee=(c+(n=n+Math.imul(d,ue)|0)|0)+((8191&(o=(o=o+Math.imul(d,ce)|0)+Math.imul(h,ue)|0))<<13)|0;c=((s=s+Math.imul(h,ce)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(B,q),o=(o=Math.imul(B,K))+Math.imul(N,q)|0,s=Math.imul(N,K),n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,j)|0)+Math.imul(R,W)|0,s=s+Math.imul(R,j)|0,n=n+Math.imul(C,z)|0,o=(o=o+Math.imul(C,Z)|0)+Math.imul(k,z)|0,s=s+Math.imul(k,Z)|0,n=n+Math.imul(M,G)|0,o=(o=o+Math.imul(M,Q)|0)+Math.imul(S,G)|0,s=s+Math.imul(S,Q)|0,n=n+Math.imul(E,X)|0,o=(o=o+Math.imul(E,ee)|0)+Math.imul(A,X)|0,s=s+Math.imul(A,ee)|0,n=n+Math.imul(x,re)|0,o=(o=o+Math.imul(x,ne)|0)+Math.imul(b,re)|0,s=s+Math.imul(b,ne)|0,n=n+Math.imul(g,se)|0,o=(o=o+Math.imul(g,ie)|0)+Math.imul(w,se)|0,s=s+Math.imul(w,ie)|0,n=n+Math.imul(f,ue)|0,o=(o=o+Math.imul(f,ce)|0)+Math.imul(m,ue)|0,s=s+Math.imul(m,ce)|0;var Ae=(c+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;c=((s=s+Math.imul(h,he)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,K))+Math.imul(V,q)|0,s=Math.imul(V,K),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,j)|0)+Math.imul(N,W)|0,s=s+Math.imul(N,j)|0,n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,Z)|0)+Math.imul(R,z)|0,s=s+Math.imul(R,Z)|0,n=n+Math.imul(C,G)|0,o=(o=o+Math.imul(C,Q)|0)+Math.imul(k,G)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(M,X)|0,o=(o=o+Math.imul(M,ee)|0)+Math.imul(S,X)|0,s=s+Math.imul(S,ee)|0,n=n+Math.imul(E,re)|0,o=(o=o+Math.imul(E,ne)|0)+Math.imul(A,re)|0,s=s+Math.imul(A,ne)|0,n=n+Math.imul(x,se)|0,o=(o=o+Math.imul(x,ie)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,ie)|0,n=n+Math.imul(g,ue)|0,o=(o=o+Math.imul(g,ce)|0)+Math.imul(w,ue)|0,s=s+Math.imul(w,ce)|0,n=n+Math.imul(f,de)|0,o=(o=o+Math.imul(f,he)|0)+Math.imul(m,de)|0,s=s+Math.imul(m,he)|0;var Te=(c+(n=n+Math.imul(d,fe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;c=((s=s+Math.imul(h,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,j))+Math.imul(V,W)|0,s=Math.imul(V,j),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,Z)|0)+Math.imul(N,z)|0,s=s+Math.imul(N,Z)|0,n=n+Math.imul(O,G)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(R,G)|0,s=s+Math.imul(R,Q)|0,n=n+Math.imul(C,X)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(k,X)|0,s=s+Math.imul(k,ee)|0,n=n+Math.imul(M,re)|0,o=(o=o+Math.imul(M,ne)|0)+Math.imul(S,re)|0,s=s+Math.imul(S,ne)|0,n=n+Math.imul(E,se)|0,o=(o=o+Math.imul(E,ie)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ie)|0,n=n+Math.imul(x,ue)|0,o=(o=o+Math.imul(x,ce)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,ce)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(w,de)|0,s=s+Math.imul(w,he)|0;var Me=(c+(n=n+Math.imul(f,fe)|0)|0)+((8191&(o=(o=o+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;c=((s=s+Math.imul(m,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,z),o=(o=Math.imul(U,Z))+Math.imul(V,z)|0,s=Math.imul(V,Z),n=n+Math.imul(B,G)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(N,G)|0,s=s+Math.imul(N,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(R,X)|0,s=s+Math.imul(R,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(k,re)|0,s=s+Math.imul(k,ne)|0,n=n+Math.imul(M,se)|0,o=(o=o+Math.imul(M,ie)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,ie)|0,n=n+Math.imul(E,ue)|0,o=(o=o+Math.imul(E,ce)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,ce)|0,n=n+Math.imul(x,de)|0,o=(o=o+Math.imul(x,he)|0)+Math.imul(b,de)|0,s=s+Math.imul(b,he)|0;var Se=(c+(n=n+Math.imul(g,fe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(w,fe)|0))<<13)|0;c=((s=s+Math.imul(w,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(U,G),o=(o=Math.imul(U,Q))+Math.imul(V,G)|0,s=Math.imul(V,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(N,X)|0,s=s+Math.imul(N,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(R,re)|0,s=s+Math.imul(R,ne)|0,n=n+Math.imul(C,se)|0,o=(o=o+Math.imul(C,ie)|0)+Math.imul(k,se)|0,s=s+Math.imul(k,ie)|0,n=n+Math.imul(M,ue)|0,o=(o=o+Math.imul(M,ce)|0)+Math.imul(S,ue)|0,s=s+Math.imul(S,ce)|0,n=n+Math.imul(E,de)|0,o=(o=o+Math.imul(E,he)|0)+Math.imul(A,de)|0,s=s+Math.imul(A,he)|0;var _e=(c+(n=n+Math.imul(x,fe)|0)|0)+((8191&(o=(o=o+Math.imul(x,me)|0)+Math.imul(b,fe)|0))<<13)|0;c=((s=s+Math.imul(b,me)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(U,X),o=(o=Math.imul(U,ee))+Math.imul(V,X)|0,s=Math.imul(V,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(N,re)|0,s=s+Math.imul(N,ne)|0,n=n+Math.imul(O,se)|0,o=(o=o+Math.imul(O,ie)|0)+Math.imul(R,se)|0,s=s+Math.imul(R,ie)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(k,ue)|0,s=s+Math.imul(k,ce)|0,n=n+Math.imul(M,de)|0,o=(o=o+Math.imul(M,he)|0)+Math.imul(S,de)|0,s=s+Math.imul(S,he)|0;var Ce=(c+(n=n+Math.imul(E,fe)|0)|0)+((8191&(o=(o=o+Math.imul(E,me)|0)+Math.imul(A,fe)|0))<<13)|0;c=((s=s+Math.imul(A,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(V,re)|0,s=Math.imul(V,ne),n=n+Math.imul(B,se)|0,o=(o=o+Math.imul(B,ie)|0)+Math.imul(N,se)|0,s=s+Math.imul(N,ie)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,ce)|0)+Math.imul(R,ue)|0,s=s+Math.imul(R,ce)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,he)|0)+Math.imul(k,de)|0,s=s+Math.imul(k,he)|0;var ke=(c+(n=n+Math.imul(M,fe)|0)|0)+((8191&(o=(o=o+Math.imul(M,me)|0)+Math.imul(S,fe)|0))<<13)|0;c=((s=s+Math.imul(S,me)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,se),o=(o=Math.imul(U,ie))+Math.imul(V,se)|0,s=Math.imul(V,ie),n=n+Math.imul(B,ue)|0,o=(o=o+Math.imul(B,ce)|0)+Math.imul(N,ue)|0,s=s+Math.imul(N,ce)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(R,de)|0,s=s+Math.imul(R,he)|0;var Pe=(c+(n=n+Math.imul(C,fe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(k,fe)|0))<<13)|0;c=((s=s+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(V,ue)|0,s=Math.imul(V,ce),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(N,de)|0,s=s+Math.imul(N,he)|0;var Oe=(c+(n=n+Math.imul(O,fe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(R,fe)|0))<<13)|0;c=((s=s+Math.imul(R,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(U,de),o=(o=Math.imul(U,he))+Math.imul(V,de)|0,s=Math.imul(V,he);var Re=(c+(n=n+Math.imul(B,fe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(N,fe)|0))<<13)|0;c=((s=s+Math.imul(N,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Le=(c+(n=Math.imul(U,fe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(V,fe)|0))<<13)|0;return c=((s=Math.imul(V,me))+(o>>>13)|0)+(Le>>>26)|0,Le&=67108863,u[0]=ye,u[1]=ge,u[2]=we,u[3]=ve,u[4]=xe,u[5]=be,u[6]=Ie,u[7]=Ee,u[8]=Ae,u[9]=Te,u[10]=Me,u[11]=Se,u[12]=_e,u[13]=Ce,u[14]=ke,u[15]=Pe,u[16]=Oe,u[17]=Re,u[18]=Le,0!==c&&(u[19]=c,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,s=0;s<r.length-1;s++){var i=o;o=0;for(var a=67108863&n,u=Math.min(s,t.length-1),c=Math.max(0,s-e.length+1);c<=u;c++){var l=s-c,d=(0|e.words[l])*(0|t.words[c]),h=67108863&d;a=67108863&(h=h+a|0),o+=(i=(i=i+(d/67108864|0)|0)+(h>>>26)|0)>>>26,i&=67108863}r.words[s]=a,n=i,i=o}return 0!==n?r.words[s]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=f),o.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?y(this,e,t):g(this,e,t)},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),g(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,o=0;o<this.length;o++){var s=(0|this.words[o])*e,i=(67108863&s)+(67108863&n);n>>=26,n+=s/67108864|0,n+=i>>>26,this.words[o]=67108863&i}return 0!==n&&(this.words[o]=n,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var n=r/26|0,o=r%26;t[r]=e.words[n]>>>o&1}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var s=r.sqr();n<t.length;n++,s=s.sqr())0!==t[n]&&(r=r.mul(s));return r},o.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,o=(e-n)/26,s=67108863>>>26-n<<26-n;if(0!==n){var i=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,u=(0|this.words[t])-a<<n;this.words[t]=u|i,i=a>>>26-n}i&&(this.words[t]=i,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t<o;t++)this.words[t]=0;this.length+=o}return this._strip()},o.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,n){var o;r("number"==typeof e&&e>=0),o=t?(t-t%26)/26:0;var s=e%26,i=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,u=n;if(o-=i,o=Math.max(0,o),u){for(var c=0;c<i;c++)u.words[c]=this.words[c];u.length=i}if(0===i);else if(this.length>i)for(this.length-=i,c=0;c<this.length;c++)this.words[c]=this.words[c+i];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=o);c--){var d=0|this.words[c];this.words[c]=l<<26-s|d>>>s,l=d&a}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<<t;return this.length<=n?0:!!(this.words[n]&o)},o.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<<t;this.words[this.length-1]&=o}return this._strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,n){var o,s,i=e.length+n;this._expand(i);var a=0;for(o=0;o<e.length;o++){s=(0|this.words[o+n])+a;var u=(0|e.words[o])*t;a=((s-=67108863&u)>>26)-(u/67108864|0),this.words[o+n]=67108863&s}for(;o<this.length-n;o++)a=(s=(0|this.words[o+n])+a)>>26,this.words[o+n]=67108863&s;if(0===a)return this._strip();for(r(-1===a),a=0,o=0;o<this.length;o++)a=(s=-(0|this.words[o])+a)>>26,this.words[o]=67108863&s;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),s=e,i=0|s.words[s.length-1];0!=(r=26-this._countBits(i))&&(s=s.ushln(r),n.iushln(r),i=0|s.words[s.length-1]);var a,u=n.length-s.length;if("mod"!==t){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c<a.length;c++)a.words[c]=0}var l=n.clone()._ishlnsubmul(s,1,u);0===l.negative&&(n=l,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|n.words[s.length+d])+(0|n.words[s.length+d-1]);for(h=Math.min(h/i|0,67108863),n._ishlnsubmul(s,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(s,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(s=a.div.neg()),"div"!==t&&(i=a.mod.neg(),n&&0!==i.negative&&i.iadd(e)),{div:s,mod:i}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(s=a.div.neg()),{div:s,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(i=a.mod.neg(),n&&0!==i.negative&&i.isub(e)),{div:a.div,mod:i}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,i,a},o.prototype.div=function(e){return this.divmod(e,"div",0).div},o.prototype.mod=function(e){return this.divmod(e,"mod",0).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",1).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),s=r.cmp(n);return s<0||1===o&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,o=0,s=this.length-1;s>=0;s--)o=(n*o+(0|this.words[s]))%e;return t?-o:o},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,o=this.length-1;o>=0;o--){var s=(0|this.words[o])+67108864*n;this.words[o]=s/e|0,n=s%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new o(1),i=new o(0),a=new o(0),u=new o(1),c=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++c;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(s.isOdd()||i.isOdd())&&(s.iadd(l),i.isub(d)),s.iushrn(1),i.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(l),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a),i.isub(u)):(n.isub(t),a.isub(s),u.isub(i))}return{a:a,b:u,gcd:n.iushln(c)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,i=new o(1),a=new o(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)i.isOdd()&&i.iadd(u),i.iushrn(1);for(var d=0,h=1;0==(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a)):(n.isub(t),a.isub(i))}return(s=0===t.cmpn(1)?i:a).cmpn(0)<0&&s.iadd(e),s},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var s=t;t=r,r=s}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=o,this;for(var s=o,i=n;0!==s&&i<this.length;i++){var a=0|this.words[i];s=(a+=s)>>>26,a&=67108863,this.words[i]=a}return 0!==s&&(this.words[i]=s,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:o<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){n<o?t=-1:n>o&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new A(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function I(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(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)}v.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(x,v),x.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o<n;o++)t.words[o]=e.words[o];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&r,o=10;o<e.length;o++){var i=0|e.words[o];e.words[o-10]=(i&r)<<4|s>>>22,s=i}s>>>=22,e.words[o-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},x.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];t+=977*n,e.words[r]=67108863&t,t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(b,v),n(I,v),n(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,o=67108863&n;n>>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new x;else if("p224"===e)t=new b;else if("p192"===e)t=new I;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return w[e]=t,t},A.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var s=this.m.subn(1),i=0;!s.isZero()&&0===s.andln(1);)i++,s.iushrn(1);r(!s.isZero());var a=new o(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,s),h=this.pow(e,s.addn(1).iushrn(1)),p=this.pow(e,s),f=i;0!==p.cmp(a);){for(var m=p,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<f);var g=this.pow(d,new o(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},A.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},A.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var s=r[0],i=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var c=t.words[n],l=u-1;l>=0;l--){var d=c>>l&1;s!==r[0]&&(s=this.sqr(s)),0!==d||0!==i?(i<<=1,i|=d,(4==++a||0===n&&0===l)&&(s=this.mul(s,r[i]),a=0,i=0)):a=0}u=26}return s},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,A),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=r.isub(n).iushrn(this.shift),i=s;return s.cmp(this.m)>=0?i=s.isub(this.m):s.cmpn(0)<0&&(i=s.iadd(this.m)),i._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(0,te);var Ke,He,We=Fe.exports,je=re(We);!function(t){var r=te&&te.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:1}),t.map=t.array=t.rustEnum=t.str=t.vecU8=t.tagged=t.vec=t.bool=t.option=t.publicKey=t.i256=t.u256=t.i128=t.u128=t.i64=t.u64=t.struct=t.f64=t.f32=t.i32=t.u32=t.i16=t.u16=t.i8=t.u8=void 0;const n=se,o=e,s=r(We);var i=se;Object.defineProperty(t,"u8",{enumerable:1,get:function(){return i.u8}}),Object.defineProperty(t,"i8",{enumerable:1,get:function(){return i.s8}}),Object.defineProperty(t,"u16",{enumerable:1,get:function(){return i.u16}}),Object.defineProperty(t,"i16",{enumerable:1,get:function(){return i.s16}}),Object.defineProperty(t,"u32",{enumerable:1,get:function(){return i.u32}}),Object.defineProperty(t,"i32",{enumerable:1,get:function(){return i.s32}}),Object.defineProperty(t,"f32",{enumerable:1,get:function(){return i.f32}}),Object.defineProperty(t,"f64",{enumerable:1,get:function(){return i.f64}}),Object.defineProperty(t,"struct",{enumerable:1,get:function(){return i.struct}});class a extends n.Layout{constructor(e,t,r){super(e,r),this.blob=(0,n.blob)(e),this.signed=t}decode(e,t=0){const r=new s.default(this.blob.decode(e,t),10,"le");return this.signed?r.fromTwos(8*this.span).clone():r}encode(e,t,r=0){return this.signed&&(e=e.toTwos(8*this.span)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}}function u(e){return new a(8,0,e)}t.u64=u,t.i64=function(e){return new a(8,1,e)},t.u128=function(e){return new a(16,0,e)},t.i128=function(e){return new a(16,1,e)},t.u256=function(e){return new a(32,0,e)},t.i256=function(e){return new a(32,1,e)};class c extends n.Layout{constructor(e,t,r,n){super(e.span,n),this.layout=e,this.decoder=t,this.encoder=r}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,r){return this.layout.encode(this.encoder(e),t,r)}getSpan(e,t){return this.layout.getSpan(e,t)}}t.publicKey=function(e){return new c((0,n.blob)(32),(e=>new o.PublicKey(e)),(e=>e.toBuffer()),e)};class l extends n.Layout{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=(0,n.u8)()}encode(e,t,r=0){return null==e?this.discriminator.encode(0,t,r):(this.discriminator.encode(1,t,r),this.layout.encode(e,t,r+1)+1)}decode(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return null;if(1===r)return this.layout.decode(e,t+1);throw new Error("Invalid option "+this.property)}getSpan(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return 1;if(1===r)return this.layout.getSpan(e,t+1)+1;throw new Error("Invalid option "+this.property)}}function d(e){if(0===e)return 0;if(1===e)return 1;throw new Error("Invalid bool: "+e)}function h(e){return e?1:0}function p(e){const t=(0,n.u32)("length"),r=(0,n.struct)([t,(0,n.blob)((0,n.offset)(t,-t.span),"data")]);return new c(r,(({data:e})=>e),(e=>({data:e})),e)}t.option=function(e,t){return new l(e,t)},t.bool=function(e){return new c((0,n.u8)(),d,h,e)},t.vec=function(e,t){const r=(0,n.u32)("length"),o=(0,n.struct)([r,(0,n.seq)(e,(0,n.offset)(r,-r.span),"values")]);return new c(o,(({values:e})=>e),(e=>({values:e})),t)},t.tagged=function(e,t,r){const o=(0,n.struct)([u("tag"),t.replicate("data")]);return new c(o,(function({tag:t,data:r}){if(!t.eq(e))throw new Error("Invalid tag, expected: "+e.toString("hex")+", got: "+t.toString("hex"));return r}),(t=>({tag:e,data:t})),r)},t.vecU8=p,t.str=function(e){return new c(p(),(e=>e.toString("utf-8")),(e=>Buffer.from(e,"utf-8")),e)},t.rustEnum=function(e,t,r){const o=(0,n.union)(null!=r?r:(0,n.u8)(),t);return e.forEach(((e,t)=>o.addVariant(t,e,e.property))),o},t.array=function(e,t,r){const o=(0,n.struct)([(0,n.seq)(e,t,"values")]);return new c(o,(({values:e})=>e),(e=>({values:e})),r)};class f extends n.Layout{constructor(e,t,r){super(e.span+t.span,r),this.keyLayout=e,this.valueLayout=t}decode(e,t){return t=t||0,[this.keyLayout.decode(e,t),this.valueLayout.decode(e,t+this.keyLayout.getSpan(e,t))]}encode(e,t,r){r=r||0;const n=this.keyLayout.encode(e[0],t,r);return n+this.valueLayout.encode(e[1],t,r+n)}getSpan(e,t){return this.keyLayout.getSpan(e,t)+this.valueLayout.getSpan(e,t)}}t.map=function(e,t,r){const o=(0,n.u32)("length"),s=(0,n.struct)([o,(0,n.seq)(new f(e,t),(0,n.offset)(o,-o.span),"values")]);return new c(s,(({values:e})=>new Map(e)),(e=>({values:Array.from(e.entries())})),r)}}(oe),exports.TreeType=void 0,(Ke=exports.TreeType||(exports.TreeType={}))[Ke.StateV1=1]="StateV1",Ke[Ke.AddressV1=2]="AddressV1",Ke[Ke.StateV2=3]="StateV2",Ke[Ke.AddressV2=4]="AddressV2",exports.VERSION=void 0,(He=exports.VERSION||(exports.VERSION={})).V1="V1",He.V2="V2";const $e={version:'"V2"',isV2:()=>"V2"===$e.version.replace(/['"]/g,"").toUpperCase(),isBeta:()=>{var e;if("undefined"!=typeof process&&(null===(e=process.env)||void 0===e?void 0:e.LIGHT_PROTOCOL_BETA)){const e=process.env.LIGHT_PROTOCOL_BETA.toLowerCase();return"true"===e||"1"===e}return 0}},ze="Interface methods require beta feature flag. These features are not yet deployed on mainnet (only localnet/devnet). Set LIGHT_PROTOCOL_BETA=true to enable.";function Ze(){if(!$e.isV2())throw new Error("Interface methods require V2. Set LIGHT_PROTOCOL_VERSION=V2.");if(!$e.isBeta())throw new Error(ze)}const Ye=e=>$e.isV2()?`${e}V2`:e,Ge=new je("21888242871839275222246405745257275088548364400416034343698204186575808495617"),Qe=new je("452312848583266388373324160190187140051835877600158453279131187530910662655"),Je=[2,64,66,15,0],Xe=y.from([26,16,169,7,21,202,242,25]),et=y.from([49,212,191,129,39,194,43,196]),tt=y.from([86,47,163,166,21,223,92,8]),rt=y.from([228,34,128,84,47,139,86,240]),nt=y.from([180,143,159,153,35,46,248,163]),ot="noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",st="SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7",it="compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq",at=()=>new e.PublicKey("35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh"),ut=()=>e.PublicKey.findProgramAddressSync([y.from("cpi_authority")],new e.PublicKey(st))[0],ct=()=>({registeredProgramPda:new e.PublicKey(at()),noopProgram:new e.PublicKey(ot),accountCompressionProgram:new e.PublicKey(it),accountCompressionAuthority:new e.PublicKey(ut()),cpiSignatureAccount:null}),lt=()=>({mainnet:[{stateTreeLookupTable:new e.PublicKey(wt),nullifyLookupTable:new e.PublicKey(vt)}],devnet:[{stateTreeLookupTable:new e.PublicKey(xt),nullifyLookupTable:new e.PublicKey(bt)}]}),dt=e=>e.includes("localhost")||e.includes("127.0.0.1"),ht=()=>ft(),pt=()=>$e.isV2()?ft():{tree:new e.PublicKey(Tt),queue:new e.PublicKey(Mt),cpiContext:void 0,treeType:exports.TreeType.AddressV1,nextTreeInfo:null},ft=()=>({tree:new e.PublicKey(jt),queue:new e.PublicKey(jt),cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}),mt=()=>({nullifierQueue:new e.PublicKey(It),merkleTree:new e.PublicKey(At),merkleTreeHeight:Yt,addressTree:new e.PublicKey(Tt),addressQueue:new e.PublicKey(Mt)}),yt=new e.PublicKey("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"),gt=yt,wt="7i86eQs3GSqHjN47WdWLTCGMW6gde1q96G2EVnUyK2st",vt="H9QD4u1fG7KmkAzn2tDXhheushxFe1EcrjGGyEFXeMqT",xt="Dk9mNkbiZXJZ4By8DfSP6HEE4ojZzRvucwpawLeuwq8q",bt="AXbHzp1NgjLvpfnD6JRTTovXZ7APUCdtWZFCRr5tCxse",It="nfq1NvQDJ2GEgnS8zt9prAe8rjjpAW1zFkrvZoBR148",Et="cpi1uHzrEhBG733DoEJNgHCyRS3XmmyVNZx5fonubE4",At="smt1NamzXdq4AMqS2fS2F1i5KTYPZRhoHgWx38d8WsT",Tt="amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2",Mt="aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F",St="smt2rJAFdyJJupwMKAqTNAJwvjhmiZ4JYGZmbVRw1Ho",_t="nfq2hgS7NYemXsFaFUCe3EMXSDSfnZnAe27jC6aPP1X",Ct="cpi2cdhkH5roePvcudTgUL8ppEBfTay1desGh8G8QxK",kt="bmt1LryLZUMmF7ZtqESaw7wifBXLfXHQYoE4GAmrahU",Pt="oq1na8gojfdUhsfCpyjNt6h4JaDWtHf1yQj4koBWfto",Ot="cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y",Rt="bmt2UxoBxB9xWev4BkLvkGdapsz6sZGkzViPNph7VFi",Lt="oq2UkeMsJLfXt2QHzim242SUi3nvjJs8Pn7Eac9H9vg",Bt="cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B",Nt="bmt3ccLd4bqSVZVeCJnH1F6C8jNygAhaDfxDwePyyGb",Dt="oq3AxjekBWgo64gpauB6QtuZNesuv19xrhaC1ZM1THQ",Ut="cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf",Vt="bmt4d3p1a4YQgk9PeZv5s4DBUmbF5NxqYpk9HGjQsd8",Ft="oq4ypwvVGzCUMoiKKHWh4S1SgZJ9vCvKpcz6RT6A8dq",qt="cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc",Kt="bmt5yU97jC88YXTuSukYHa8Z5Bi2ZDUtmzfkDTA2mG2",Ht="oq5oh5ZR3yGomuQgFduNDzjtGvVWfDRGLuDVjv9a96P",Wt="cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6",jt="amt2kaJA14v3urZbZvnc5v2np8jqvc4Z8zDep5wbtzx",$t=kt,zt=Pt,Zt=()=>{const t=[[kt,Pt,Ot],[Rt,Lt,Bt],[Nt,Dt,Ut],[Vt,Ft,qt],[Kt,Ht,Wt]],r=jt,n=[[At,It,Et],[St,_t,Ct]].map((([t,r,n])=>({tree:new e.PublicKey(t),queue:new e.PublicKey(r),cpiContext:new e.PublicKey(n),treeType:exports.TreeType.StateV1,nextTreeInfo:null}))),o=t.map((([t,r,n])=>({tree:new e.PublicKey(t),queue:new e.PublicKey(r),cpiContext:new e.PublicKey(n),treeType:exports.TreeType.StateV2,nextTreeInfo:null}))),s={tree:new e.PublicKey(r),queue:new e.PublicKey(r),cpiContext:e.PublicKey.default,treeType:exports.TreeType.AddressV2,nextTreeInfo:null};return $e.isV2()?[...n,...o,s]:n},Yt=26,Gt=new je(Math.floor(2**Yt*.95)),Qt=$e.isV2()?new je(1):new je(300),Jt=($e.isV2(),new je(392)),Xt=new je(5e3),er=new je(5e3),tr=new je(1e4);var rr=function(e){const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let r=0;r<58;r++){const n=e.charAt(r),o=n.charCodeAt(0);if(255!==t[o])throw new TypeError(n+" is ambiguous");t[o]=r}const r=e.charAt(0),n=Math.log(58)/Math.log(256),o=Math.log(256)/Math.log(58);function s(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let o=0,s=0,i=0;for(;e[o]===r;)s++,o++;const a=(e.length-o)*n+1>>>0,u=new Uint8Array(a);for(;e[o];){let r=t[e.charCodeAt(o)];if(255===r)return;let n=0;for(let e=a-1;(0!==r||n<i)&&-1!==e;e--,n++)r+=58*u[e]>>>0,u[e]=r%256>>>0,r=r/256>>>0;if(0!==r)throw new Error("Non-zero carry");i=n,o++}let c=a-i;for(;c!==a&&0===u[c];)c++;const l=new Uint8Array(s+(a-c));let d=s;for(;c!==a;)l[d++]=u[c++];return l}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let n=0,s=0,i=0;const a=t.length;for(;i!==a&&0===t[i];)i++,n++;const u=(a-i)*o+1>>>0,c=new Uint8Array(u);for(;i!==a;){let e=t[i],r=0;for(let t=u-1;(0!==e||r<s)&&-1!==t;t--,r++)e+=256*c[t]>>>0,c[t]=e%58>>>0,e=e/58>>>0;if(0!==e)throw new Error("Non-zero carry");s=r,i++}let l=u-s;for(;l!==u&&0===c[l];)l++;let d=r.repeat(n);for(;l<u;++l)d+=e.charAt(c[l]);return d},decodeUnsafe:s,decode:function(e){const t=s(e);if(t)return t;throw new Error("Non-base58 character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");const nr=(e,t)=>{if("base58"===t){if("string"!=typeof e)throw new Error("Must be a base58 string");return nr(rr.decode(e))}return function(e){if(e.gte(Ge))throw new Error("Value is too large. Max <254 bits");return e}(new je(e,t))};function or(e){const t=nr(e).toArrayLike(y,void 0,32);return rr.encode(new Uint8Array(t))}const sr=(e,t,r)=>e instanceof Uint8Array&&!(e instanceof y)?new je(y.from(e),t,r):new je(e,t,r),ir=(e,t,r,n)=>({owner:e,lamports:null!=t?t:new je(0),address:null!=n?n:null,data:null!=r?r:null}),ar=(e,t,r,n,o)=>Object.assign(Object.assign({},e),{owner:t,lamports:null!=r?r:new je(0),address:null!=o?o:null,data:null!=n?n:null,readOnly:0}),ur=(e,t,r,n=0)=>({treeInfo:e,hash:t,leafIndex:r,proveByIndex:n}),cr=oe.struct([oe.publicKey("owner"),oe.u64("lamports"),oe.option(oe.array(oe.u8(),32),"address"),oe.option(oe.struct([oe.array(oe.u8(),8,"discriminator"),oe.vecU8("data"),oe.array(oe.u8(),32,"dataHash")]),"data")],"compressedAccount"),lr=oe.struct([oe.u8("merkleTreePubkeyIndex"),oe.u8("queuePubkeyIndex"),oe.u32("leafIndex"),oe.bool("proveByIndex")],"merkleContext"),dr=oe.struct([oe.array(oe.u8(),32,"seed"),oe.u8("addressQueueAccountIndex"),oe.u8("addressMerkleTreeAccountIndex"),oe.u16("addressMerkleTreeRootIndex")],"newAddressParams"),hr=oe.struct([oe.option(oe.struct([oe.array(oe.u8(),32,"a"),oe.array(oe.u8(),64,"b"),oe.array(oe.u8(),32,"c")]),"proof"),oe.vec(oe.struct([cr,lr,oe.u16("rootIndex"),oe.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),oe.vec(oe.struct([cr,oe.u8("merkleTreeIndex")]),"outputCompressedAccounts"),oe.option(oe.u64(),"relayFee"),oe.vec(dr,"newAddressParams"),oe.option(oe.u64(),"compressOrDecompressLamports"),oe.bool("isCompress")]);function pr(e){const t=y.alloc(1e3),r=hr.encode(e,t),n=y.from(new Uint8Array(t.slice(0,r))),o=y.alloc(4);return o.writeUInt32LE(r,0),y.concat([new Uint8Array(Xe),new Uint8Array(o),new Uint8Array(n)])}const fr=oe.struct([oe.option(oe.struct([oe.array(oe.u8(),32,"a"),oe.array(oe.u8(),64,"b"),oe.array(oe.u8(),32,"c")]),"proof"),oe.vec(dr,"newAddressParams"),oe.vec(oe.struct([cr,lr,oe.u16("rootIndex"),oe.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),oe.vec(oe.struct([cr,oe.u8("merkleTreeIndex")]),"outputCompressedAccounts"),oe.option(oe.u64(),"relayFee"),oe.option(oe.u64(),"compressOrDecompressLamports"),oe.bool("isCompress"),oe.option(oe.struct([oe.bool("set_context"),oe.bool("first_set_context"),oe.u8("cpi_context_account_index")]),"compressedCpiContext")]),mr=oe.struct([oe.array(oe.u8(),32,"a"),oe.array(oe.u8(),64,"b"),oe.array(oe.u8(),32,"c")],"compressedProof"),yr=oe.struct([oe.bool("set_context"),oe.bool("first_set_context"),oe.u8("cpi_context_account_index")],"compressedCpiContext"),gr=oe.struct([oe.array(oe.u8(),32,"seed"),oe.u8("address_queue_account_index"),oe.u8("address_merkle_tree_account_index"),oe.u16("address_merkle_tree_root_index"),oe.bool("assigned_to_account"),oe.u8("assigned_account_index")],"newAddressParamsAssignedPacked"),wr=oe.struct([oe.u8("merkle_tree_pubkey_index"),oe.u8("queue_pubkey_index"),oe.u32("leaf_index"),oe.bool("prove_by_index")],"packedMerkleContext"),vr=oe.struct([oe.array(oe.u8(),8,"discriminator"),oe.array(oe.u8(),32,"data_hash"),wr,oe.u16("root_index"),oe.u64("lamports"),oe.option(oe.array(oe.u8(),32),"address")],"inAccount"),xr=oe.struct([oe.array(oe.u8(),32,"address"),oe.u16("address_merkle_tree_root_index"),oe.u8("address_merkle_tree_account_index")],"packedReadOnlyAddress"),br=oe.struct([oe.array(oe.u8(),32,"account_hash"),wr,oe.u16("root_index")],"packedReadOnlyCompressedAccount"),Ir=oe.struct([oe.u8("mode"),oe.u8("bump"),oe.publicKey("invoking_program_id"),oe.u64("compress_or_decompress_lamports"),oe.bool("is_compress"),oe.bool("with_cpi_context"),oe.bool("with_transaction_hash"),yr,oe.option(mr,"proof"),oe.vec(gr,"new_address_params"),oe.vec(vr,"input_compressed_accounts"),oe.vec(oe.struct([cr,oe.u8("merkleTreeIndex")]),"output_compressed_accounts"),oe.vec(xr,"read_only_addresses"),oe.vec(br,"read_only_accounts")]);function Er(e){return Ir.decode(e.slice(tt.length))}function Ar(e){return hr.decode(e.slice(Xe.length+4))}function Tr(e){return fr.decode(e.slice(et.length+4))}const Mr=e=>{const t=yo.programId,{feePayer:r,authority:n,registeredProgramPda:o,noopProgram:s,accountCompressionAuthority:i,accountCompressionProgram:a,solPoolPda:u,decompressionRecipient:c,systemProgram:l}=e;return[{pubkey:r,isSigner:1,isWritable:1},{pubkey:n,isSigner:1,isWritable:0},{pubkey:o,isSigner:0,isWritable:0},{pubkey:s,isSigner:0,isWritable:0},{pubkey:i,isSigner:0,isWritable:0},{pubkey:a,isSigner:0,isWritable:0},{pubkey:null!=u?u:t,isSigner:0,isWritable:null!==u},{pubkey:null!=c?c:t,isSigner:0,isWritable:1},{pubkey:l,isSigner:0,isWritable:0}]},Sr=oe.struct([oe.vec(oe.array(oe.u8(),32),"inputCompressedAccountHashes"),oe.vec(oe.array(oe.u8(),32),"outputCompressedAccountHashes"),oe.vec(oe.struct([oe.struct([oe.publicKey("owner"),oe.u64("lamports"),oe.option(oe.array(oe.u8(),32),"address"),oe.option(oe.struct([oe.array(oe.u8(),8,"discriminator"),oe.vecU8("data"),oe.array(oe.u8(),32,"dataHash")]),"data")],"compressedAccount"),oe.u8("merkleTreeIndex")]),"outputCompressedAccounts"),oe.vec(oe.u32(),"outputLeafIndices"),oe.vec(oe.struct([oe.publicKey("tree_pubkey"),oe.publicKey("queue_pubkey"),oe.u64("tree_type"),oe.u64("seq")]),"sequenceNumbers"),oe.option(oe.u64(),"relayFee"),oe.bool("isCompress"),oe.option(oe.u64(),"compressOrDecompressLamports"),oe.vec(oe.publicKey(),"pubkeyArray"),oe.option(oe.vecU8(),"message")]);function _r(e){return Sr.decode(e)}const Cr=oe.struct([oe.u8("is_invoked_by_program"),oe.u8("bump"),oe.u8("num_queues"),oe.u8("num_output_queues"),oe.u8("start_output_appends"),oe.u8("num_address_queues"),oe.array(oe.u8(),32,"tx_hash")],"appendNullifyCreateAddressInputsMeta"),kr=oe.struct([oe.u8("index"),oe.array(oe.u8(),32,"leaf")],"appendLeavesInput"),Pr=oe.struct([oe.array(oe.u8(),32,"account_hash"),oe.u32("leaf_index"),oe.u8("prove_by_index"),oe.u8("tree_index"),oe.u8("queue_index")],"insertNullifierInput"),Or=oe.struct([oe.array(oe.u8(),32,"address"),oe.u8("tree_index"),oe.u8("queue_index")],"insertAddressInput"),Rr=oe.struct([oe.publicKey("tree_pubkey"),oe.publicKey("queue_pubkey"),oe.u64("tree_type"),oe.u64("seq")],"merkleTreeSequenceNumber");function Lr(e){let t=0;const r=Cr.decode(e,t);t+=Cr.span;const n=e.readUInt8(t);t+=1;const o=[];for(let r=0;r<n;r++){const r=kr.decode(e,t);o.push(r),t+=kr.span}const s=e.readUInt8(t);t+=1;const i=[];for(let r=0;r<s;r++){const r=Pr.decode(e,t);i.push(r),t+=Pr.span}const a=e.readUInt8(t);t+=1;const u=[];for(let r=0;r<a;r++){const r=Or.decode(e,t);u.push(r),t+=Or.span}const c=e.readUInt8(t);t+=1;const l=[];for(let r=0;r<c;r++){const r=Rr.decode(e,t);l.push(r),t+=Rr.span}const d=e.readUInt8(t);t+=1;for(let r=0;r<d;r++)Rr.decode(e,t),t+=Rr.span;const h=e.readUInt8(t);t+=1;for(let r=0;r<h;r++)Rr.decode(e,t),t+=Rr.span;const p=e.readUInt8(t);t+=1;const f=[];for(let r=0;r<p;r++){const r=oe.u32().decode(e,t);f.push(r),t+=4}return{meta:r,leaves:o,nullifiers:i,addresses:u,sequence_numbers:l,output_leaf_indices:f}}function Br(t,r,n){const o=e=>Array.from(e instanceof y?new Uint8Array(e):e);return{inputCompressedAccountHashes:t.nullifiers.map((e=>o(e.account_hash))),outputCompressedAccountHashes:t.leaves.map((e=>o(e.leaf))),outputCompressedAccounts:t.leaves.map(((t,r)=>{var s,i,a,u,c,l;return{compressedAccount:{owner:new e.PublicKey((null===(s=null==n?void 0:n.outputCompressedAccounts[r])||void 0===s?void 0:s.compressedAccount.owner)||e.PublicKey.default),lamports:sr((null===(i=null==n?void 0:n.outputCompressedAccounts[r])||void 0===i?void 0:i.compressedAccount.lamports)||0),address:null==n?void 0:n.outputCompressedAccounts[r].compressedAccount.address,data:(null===(a=null==n?void 0:n.outputCompressedAccounts[r])||void 0===a?void 0:a.compressedAccount.data)?{discriminator:o(y.from(null===(u=n.outputCompressedAccounts[r].compressedAccount.data)||void 0===u?void 0:u.discriminator)),data:null!==(c=o(y.from(new Uint8Array(n.outputCompressedAccounts[r].compressedAccount.data.data))))&&void 0!==c?c:[],dataHash:o(y.from(null===(l=n.outputCompressedAccounts[r].compressedAccount.data)||void 0===l?void 0:l.dataHash))}:null},merkleTreeIndex:t.index}})),outputLeafIndices:t.output_leaf_indices,sequenceNumbers:t.sequence_numbers.map((e=>({tree_pubkey:e.tree_pubkey,queue_pubkey:e.queue_pubkey,tree_type:e.tree_type,seq:e.seq}))),pubkeyArray:r.slice(2).filter((t=>!t.equals(e.PublicKey.default))),isCompress:(null==n?void 0:n.isCompress)||0,relayFee:(null==n?void 0:n.relayFee)?sr(n.relayFee):null,compressOrDecompressLamports:(null==n?void 0:n.compressOrDecompressLamports)?sr(n.compressOrDecompressLamports):null,message:null}}function Nr(e,t){const r=e.findIndex((e=>e.equals(t)));return-1===r?(e.push(t),e.length-1):r}function Dr(e,t){return t<=0?[]:new Array(t).fill(e)}function Ur(e){return e.map((e=>({pubkey:e,isWritable:1,isSigner:0})))}function Vr(e,t,r,n,o=[]){const s=o.slice(),i=[],a=[];if(e.forEach(((e,r)=>{const n=Nr(s,e.treeInfo.tree),o=Nr(s,e.treeInfo.queue);i.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleContext:{merkleTreePubkeyIndex:n,queuePubkeyIndex:o,leafIndex:e.leafIndex,proveByIndex:e.proveByIndex},rootIndex:t[r],readOnly:0})})),e.length>0&&n)throw new Error("Cannot specify both input accounts and outputStateTreeInfo");let u;if(e.length>0)u=e[0].treeInfo;else{if(!n)throw new Error("Neither input accounts nor outputStateTreeInfo are available");u=n}const c=u.nextTreeInfo||u;let l=c.tree;if(c.treeType===exports.TreeType.StateV2){if(!$e.isV2())throw new Error("V2 trees are not supported yet");l=c.queue}const d=Dr(l,r.length);return r.forEach(((e,t)=>{const r=Nr(s,d[t]);a.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleTreeIndex:r})})),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:s}}const Fr=e=>{if(e.lt(sr(0)))throw new Error("Insufficient balance for transfer")},qr=e=>{if(0===e.length)throw new Error("No accounts provided for validation");const t=e[0].owner;if(!e.every((e=>e.owner.equals(t))))throw new Error("All input accounts must have the same owner")},Kr=(e,t)=>{if(e>0&&t>0){if(8===e)throw new Error(`Invalid number of compressed accounts for proof: ${e}. Allowed numbers: ${[1,2,3,4].join(", ")}`);jr(e,[1,2,3,4],"compressed accounts"),Wr(t)}else e>0?Hr(e):Wr(t)},Hr=e=>{jr(e,[1,2,3,4,8],"compressed accounts")},Wr=e=>{jr(e,[1,2],"new addresses")},jr=(e,t,r)=>{if(!t.includes(e))throw new Error(`Invalid number of ${r}: ${e}. Allowed numbers: ${t.join(", ")}`)};function $r(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function zr(e,...t){if(!((r=e)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function Zr(e,t=1){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const Yr=BigInt(2**32-1),Gr=BigInt(32);function Qr(e,t=0){return t?{h:Number(e&Yr),l:Number(e>>Gr&Yr)}:{h:0|Number(e>>Gr&Yr),l:0|Number(e&Yr)}}function Jr(e,t=0){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;o<e.length;o++){const{h:s,l:i}=Qr(e[o],t);[r[o],n[o]]=[s,i]}return[r,n]}const Xr=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0];function en(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function tn(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),zr(e),e}class rn{clone(){return this._cloneInto()}}const nn=[],on=[],sn=[],an=BigInt(0),un=BigInt(1),cn=BigInt(2),ln=BigInt(7),dn=BigInt(256),hn=BigInt(113);for(let e=0,t=un,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],nn.push(2*(5*n+r)),on.push((e+1)*(e+2)/2%64);let o=an;for(let e=0;e<7;e++)t=(t<<un^(t>>ln)*hn)%dn,t&cn&&(o^=un<<(un<<BigInt(e))-un);sn.push(o)}const[pn,fn]=Jr(sn,1),mn=(e,t,r)=>r>32?((e,t,r)=>t<<r-32|e>>>64-r)(e,t,r):((e,t,r)=>e<<r|t>>>32-r)(e,t,r),yn=(e,t,r)=>r>32?((e,t,r)=>e<<r-32|t>>>64-r)(e,t,r):((e,t,r)=>t<<r|e>>>32-r)(e,t,r);class gn extends rn{constructor(e,t,r,n=0,o=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=o,this.pos=0,this.posOut=0,this.finished=0,this.destroyed=0,$r(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}keccak(){Xr||en(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,o=(t+2)%10,s=r[o],i=r[o+1],a=mn(s,i,1)^r[n],u=yn(s,i,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=u}let t=e[2],o=e[3];for(let r=0;r<24;r++){const n=on[r],s=mn(t,o,n),i=yn(t,o,n),a=nn[r];t=e[a],o=e[a+1],e[a]=s,e[a+1]=i}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=pn[n],e[1]^=fn[n]}r.fill(0)}(this.state32,this.rounds),Xr||en(this.state32),this.posOut=0,this.pos=0}update(e){Zr(this);const{blockLen:t,state:r}=this,n=(e=tn(e)).length;for(let o=0;o<n;){const s=Math.min(t-this.pos,n-o);for(let t=0;t<s;t++)r[this.pos++]^=e[o++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=1;const{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,0!=(128&t)&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){Zr(this,0),zr(e),this.finish();const t=this.state,{blockLen:r}=this;for(let n=0,o=e.length;n<o;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,o-n);e.set(t.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return $r(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(function(e,t){zr(e);const r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=1,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:o,enableXOF:s}=this;return e||(e=new gn(t,r,n,s,o)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=o,e.suffix=r,e.outputLen=n,e.enableXOF=s,e.destroyed=this.destroyed,e}}const wn=(()=>function(e){const t=t=>e().update(tn(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}((()=>new gn(136,1,32))))(),vn=e=>"object"==typeof e&&null!==e,xn=e=>vn(e)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Date),bn=Symbol("mapObjectSkip"),In=(e,t,r,n=new WeakMap)=>{if(r={deep:0,target:{},...r},n.has(e))return n.get(e);n.set(e,r.target);const{target:o}=r;delete r.target;const s=e=>e.map((e=>xn(e)?In(e,t,r,n):e));if(Array.isArray(e))return s(e);for(const[i,a]of Object.entries(e)){const u=t(i,a,e);if(u===bn)continue;let[c,l,{shouldRecurse:d=1}={}]=u;"__proto__"!==c&&(r.deep&&d&&xn(l)&&(l=Array.isArray(l)?s(l):In(l,t,r,n)),o[c]=l)}return o};function En(e,t,r){if(!vn(e))throw new TypeError(`Expected an object, got \`${e}\` (${typeof e})`);return In(e,t,r)}const An=/[\p{Lu}]/u,Tn=/[\p{Ll}]/u,Mn=/^[\p{Lu}](?![\p{Lu}])/gu,Sn=/([\p{Alpha}\p{N}_]|$)/u,_n=/[_.\- ]+/,Cn=new RegExp("^"+_n.source),kn=new RegExp(_n.source+Sn.source,"gu"),Pn=new RegExp("\\d+"+Sn.source,"gu");class On extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,r]of e)this.onEviction(t,r.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()?("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e)):0}_getOrDeleteIfExpired(e,t){if(0==this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const r=t.get(e);return this._getItemValue(e,r)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,r]=e;this.cache.has(t)||0==this._deleteIfExpired(t,r)&&(yield e)}for(const e of this.cache){const[t,r]=e;0==this._deleteIfExpired(t,r)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(0==this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:r=this.maxAge}={}){const n="number"==typeof r&&r!==Number.POSITIVE_INFINITY?Date.now()+r:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:n}):this._set(e,{value:t,expiry:n}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):0}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],r=t.length-e;r<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(r>0&&this._emitEvictions(t.slice(0,r)),this.oldCache=new Map(t.slice(r)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,r]=e;0==this._deleteIfExpired(t,r)&&(yield[t,r.value])}for(const e of this.oldCache){const[t,r]=e;this.cache.has(t)||0==this._deleteIfExpired(t,r)&&(yield[t,r.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const r=e[t],[n,o]=r;0==this._deleteIfExpired(n,o)&&(yield[n,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const r=e[t],[n,o]=r;this.cache.has(n)||0==this._deleteIfExpired(n,o)&&(yield[n,o.value])}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[r,n]of this.entriesAscending())e.call(t,n,r,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}const Rn=new On({maxSize:1e5}),Ln=e=>!("object"!=typeof e||null===e||e instanceof RegExp||e instanceof Error||e instanceof Date),Bn=(e,t={})=>{if(!Ln(e))return e;const{exclude:r,pascalCase:n=0,stopPaths:o,deep:s=0,preserveConsecutiveUppercase:i=0}=t,a=new Set(o),u=e=>(t,o)=>{if(s&&Ln(o)){const r=void 0===e?t:`${e}.${t}`;a.has(r)||(o=En(o,u(r)))}if(!r||!((e,t)=>e.some((e=>"string"==typeof e?e===t:(e.lastIndex=0,e.test(t)))))(r,t)){const e=n?`${t}_`:t;if(Rn.has(e))t=Rn.get(e);else{const r=function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:0,preserveConsecutiveUppercase:0,...t},0===(e=Array.isArray(e)?e.map((e=>e.trim())).filter((e=>e.length)).join("-"):e.trim()).length)return"";const r=0==t.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t.locale),n=0==t.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t.locale);return 1===e.length?_n.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=((e,t,r,n)=>{let o=0,s=0,i=0,a=0;for(let u=0;u<e.length;u++){const c=e[u];a=u>2?"-"===e[u-3]:1,o&&An.test(c)?(e=e.slice(0,u)+"-"+e.slice(u),o=0,i=s,s=1,u++):s&&i&&Tn.test(c)&&(!a||n)?(e=e.slice(0,u-1)+"-"+e.slice(u-1),i=s,s=0,o=1):(o=t(c)===c&&r(c)!==c,i=s,s=r(c)===c&&t(c)!==c)}return e})(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(Cn,""),e=t.preserveConsecutiveUppercase?((e,t)=>(Mn.lastIndex=0,e.replaceAll(Mn,(e=>t(e)))))(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),((e,t)=>(kn.lastIndex=0,Pn.lastIndex=0,e.replaceAll(Pn,((r,n,o)=>["_","-"].includes(e.charAt(o+r.length))?r:t(r))).replaceAll(kn,((e,r)=>t(r)))))(e,n))}(t,{pascalCase:n,locale:0,preserveConsecutiveUppercase:i});t.length<100&&Rn.set(e,r),t=r}}return[t,o]};return En(e,u(void 0))};function Nn(e){return"0x"+e.toString("hex")}function Dn(e){return sr(e,void 0,"be").lt(Ge)}const Un=e=>{return t=e,r={deep:1},Array.isArray(t)?Object.keys(t).map((e=>Bn(t[e],r))):Bn(t,r);var t,r};function Vn(e){let t=255;for(;t>=0;){const r=y.concat([e,y.from([t])]),n=wn(r);if(32!==n.length)throw new Error("Invalid hash length");if(n[0]=0,Dn(y.from(n)))return[y.from(n),t];t-=1}return null}function Fn(e){const t=wn.create();for(const r of e)t.update(r);t.update(Uint8Array.from([255]));const r=t.digest();return r[0]=0,r}function qn(e){const t=wn.create();for(const r of e)t.update(r);const r=t.digest();return r[0]=0,r}function Kn(t){const r=t.proof?{a:t.proof.a,b:t.proof.b,c:t.proof.c}:null,n=t.new_address_params.map((e=>({seed:e.seed,addressMerkleTreeRootIndex:e.address_merkle_tree_root_index,addressMerkleTreeAccountIndex:e.address_merkle_tree_account_index,addressQueueAccountIndex:e.address_queue_account_index})));return{proof:r,inputCompressedAccountsWithMerkleContext:t.input_compressed_accounts.map((t=>({compressedAccount:{owner:new e.PublicKey(y.alloc(32)),lamports:sr(t.lamports),address:t.address,data:null},merkleContext:{merkleTreePubkeyIndex:t.packedMerkleContext.merkle_tree_pubkey_index,queuePubkeyIndex:t.packedMerkleContext.queue_pubkey_index,leafIndex:t.packedMerkleContext.leaf_index,proveByIndex:t.packedMerkleContext.prove_by_index},rootIndex:t.root_index,readOnly:0}))),outputCompressedAccounts:t.output_compressed_accounts.map((e=>({compressedAccount:{owner:e.compressedAccount.owner,lamports:e.compressedAccount.lamports,address:e.compressedAccount.address,data:e.compressedAccount.data},merkleTreeIndex:e.merkleTreeIndex}))),relayFee:null,newAddressParams:n,compressOrDecompressLamports:t.compress_or_decompress_lamports,isCompress:t.is_compress}}function Hn(e,t){return qn([t.toBytes(),...e])}function Wn(t,r=mt().addressTree){if(32!=t.length)throw new Error("Seed length is not 32 bytes.");const n=r.toBytes(),o=Vn(Buffer.from([...n,...t]));if(null===o)throw new Error("DeriveAddressError");const s=o[0];return new e.PublicKey(s)}function jn(e){return Fn(e.map((e=>Uint8Array.from(e))))}function $n(t,r,n){if(32!=t.length)throw new Error("Address seed length is not 32 bytes.");const o=r.toBytes(),s=n.toBytes(),i=Fn([Uint8Array.from(t),Uint8Array.from(o),Uint8Array.from(s)]);return new e.PublicKey(i)}function zn(e,t){const r=t.slice(),n=e.map((e=>({seed:Array.from(e.seed),addressMerkleTreeRootIndex:e.addressMerkleTreeRootIndex,addressMerkleTreeAccountIndex:0,addressQueueAccountIndex:0})));return e.forEach(((e,t)=>{n[t].addressMerkleTreeAccountIndex=Nr(r,e.addressMerkleTreePubkey)})),e.forEach(((e,t)=>{n[t].addressQueueAccountIndex=Nr(r,e.addressQueuePubkey)})),{newAddressParamsPacked:n,remainingAccounts:r}}async function Zn(e,t,r="confirmed"){const n=await e.getLatestBlockhash(r),o={signature:t.toString(),lastValidBlockHeight:n.lastValidBlockHeight,blockhash:n.blockhash};return await e.confirmTransaction(o,r)}function Yn(e,t){return t.includes(e)?t.filter((t=>t.publicKey.toString()!==e.publicKey.toString())):t}class Gn{constructor(){this.preAccounts=[],this.systemAccounts=[],this.nextIndex=0,this.map=new Map}static newWithSystemAccounts(e){const t=new Gn;return t.addSystemAccounts(e),t}static newWithSystemAccountsV2(e){const t=new Gn;return t.addSystemAccountsV2(e),t}addPreAccountsSigner(e){this.preAccounts.push({pubkey:e,isSigner:1,isWritable:0})}addPreAccountsSignerMut(e){this.preAccounts.push({pubkey:e,isSigner:1,isWritable:1})}addPreAccountsMeta(e){this.preAccounts.push(e)}addSystemAccounts(e){$e.isV2()?this.systemAccounts.push(...Xn(e)):this.systemAccounts.push(...Jn(e))}addSystemAccountsV2(e){this.systemAccounts.push(...Xn(e))}insertOrGet(e){return this.insertOrGetConfig(e,0,1)}insertOrGetReadOnly(e){return this.insertOrGetConfig(e,0,0)}insertOrGetConfig(e,t,r){const n=this.map.get(e);if(n)return n[0];const o=this.nextIndex++,s={pubkey:e,isSigner:t,isWritable:r};return this.map.set(e,[o,s]),o}hashSetAccountsToMetas(){const e=Array.from(this.map.entries());return e.sort(((e,t)=>e[1][0]-t[1][0])),e.map((([,[,e]])=>e))}getOffsets(){const e=this.preAccounts.length;return[e,e+this.systemAccounts.length]}toAccountMetas(){const e=this.hashSetAccountsToMetas(),[t,r]=this.getOffsets();return{remainingAccounts:[...this.preAccounts,...this.systemAccounts,...e],systemStart:t,packedStart:r}}}class Qn{constructor(e,t,r,n){this.selfProgram=e,this.cpiContext=t,this.solCompressionRecipient=r,this.solPoolPda=n}static new(e){return new Qn(e)}static newWithCpiContext(e,t){return new Qn(e,t)}}function Jn(t){let r=(new TextEncoder).encode("cpi_authority");const n=e.PublicKey.findProgramAddressSync([r],t.selfProgram)[0],o=ct(),s=[{pubkey:yo.programId,isSigner:0,isWritable:0},{pubkey:n,isSigner:0,isWritable:0},{pubkey:o.registeredProgramPda,isSigner:0,isWritable:0},{pubkey:o.noopProgram,isSigner:0,isWritable:0},{pubkey:o.accountCompressionAuthority,isSigner:0,isWritable:0},{pubkey:o.accountCompressionProgram,isSigner:0,isWritable:0},{pubkey:t.selfProgram,isSigner:0,isWritable:0}];return t.solPoolPda&&s.push({pubkey:t.solPoolPda,isSigner:0,isWritable:1}),t.solCompressionRecipient&&s.push({pubkey:t.solCompressionRecipient,isSigner:0,isWritable:1}),s.push({pubkey:e.SystemProgram.programId,isSigner:0,isWritable:0}),t.cpiContext&&s.push({pubkey:t.cpiContext,isSigner:0,isWritable:1}),s}function Xn(t){let r=(new TextEncoder).encode("cpi_authority");const n=e.PublicKey.findProgramAddressSync([r],t.selfProgram)[0],o=ct(),s=[{pubkey:yo.programId,isSigner:0,isWritable:0},{pubkey:n,isSigner:0,isWritable:0},{pubkey:o.registeredProgramPda,isSigner:0,isWritable:0},{pubkey:o.accountCompressionAuthority,isSigner:0,isWritable:0},{pubkey:o.accountCompressionProgram,isSigner:0,isWritable:0},{pubkey:e.SystemProgram.programId,isSigner:0,isWritable:0}];return t.solPoolPda&&s.push({pubkey:t.solPoolPda,isSigner:0,isWritable:1}),t.solCompressionRecipient&&s.push({pubkey:t.solCompressionRecipient,isSigner:0,isWritable:1}),t.cpiContext&&s.push({pubkey:t.cpiContext,isSigner:0,isWritable:1}),s}function eo(e){const t=ro(e.ar[0]),r=ro(e.ar[1]),n=new Uint8Array([...t,...r]),o=ro(e.bs[0][0]),s=ro(e.bs[0][1]),i=ro(e.bs[1][0]),a=ro(e.bs[1][1]),u=new Uint8Array([...o,...s,...i,...a]),c=ro(e.krs[0]),l=ro(e.krs[1]);return{a:n,b:u,c:new Uint8Array([...c,...l])}}function to(e){const t=e.a,r=e.b,n=e.c,o=t.slice(0,32),s=no(sr(t.slice(32,64),32,"be"))?0:1;o[0]=oo(o[0],s);const i=r.slice(0,64),a=r.slice(64,128),u=function(e,t){const r=Ge.div(sr(2));return e.lt(r)?1:e.gt(r)?0:t.lt(r)}(sr(a.slice(0,32),32,"be"),sr(a.slice(32,64),32,"be"));i[0]=oo(i[0],u);const c=n.slice(0,32),l=n.slice(32,64),d=no(sr(l,32,"be"));return c[0]=oo(c[0],d),{a:Array.from(o),b:Array.from(i),c:Array.from(c)}}function ro(e){const t=sr(e.startsWith("0x")?e.substring(2):e,"hex");return new Uint8Array(t.toArray("be",32))}function no(e){return e.lte(Ge.sub(e))}function oo(e,t){return t?e:128|e}function so(t,r,n,o){const s=new e.TransactionMessage({payerKey:r,recentBlockhash:n,instructions:t}).compileToV0Message(o);return new e.VersionedTransaction(s)}async function io(e,t,r){const n=await e.sendTransaction(t,r);return await ao(e,n,r),n}async function ao(e,t,r){const n=(null==r?void 0:r.commitment)||e.commitment||"confirmed",o=dt(e.rpcEndpoint)?200:1e3;let s=0;await new Promise(((r,i)=>{const a=setInterval((async()=>{var u;s+=o,s>=8e4&&(clearInterval(a),i(new Error(`Transaction ${t}'s confirmation timed out`)));const c=await e.getSignatureStatuses([t]);(null===(u=null==c?void 0:c.value[0])||void 0===u?void 0:u.confirmationStatus)===n&&(clearInterval(a),r(t))}),o)}));const i=await e.getSlot();return await e.confirmTransactionIndexed(i),{context:{slot:i},value:{err:null}}}function uo(e,t,r,n=[],o){if(n.includes(t))throw new Error("payer must not be in additionalSigners");const s=[t,...n],i=so(e,t.publicKey,r,o);return i.sign(s),i}function co(e,t){return lo(e,t)}function lo(e,t){const r=e.find((e=>e.tree.equals(t)||e.queue.equals(t)));if(!r)throw new Error(`No associated TreeInfo found for tree or queue. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: ${t.toBase58()}`);if(!r.queue)throw new Error("Queue must not be null for state tree. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: "+t.toBase58());return r}function ho(e,t=($e.isV2()?exports.TreeType.StateV2:exports.TreeType.StateV1),r=0){const n=e.filter((e=>!e.nextTreeInfo)).filter((e=>e.treeType===t));if(0===n.length)throw new Error("No active state tree infos found for the specified tree type");const o=r?n.length:Math.min(5,n.length),s=Math.floor(Math.random()*o);if(!n[s].queue)throw new Error("Queue must not be null for state tree");return n[s]}async function po({connection:t,stateTreeLUTPairs:r}){var n;const o=await Promise.all(r.map((async e=>({stateTreeLookupTable:await t.getAddressLookupTable(e.stateTreeLookupTable),nullifyLookupTable:await t.getAddressLookupTable(e.nullifyLookupTable)})))),s=[];for(const{stateTreeLookupTable:t,nullifyLookupTable:r}of o){if(!t.value)throw new Error("State tree lookup table not found");if(!r.value)throw new Error("Nullify table not found");const o=t.value.state.addresses,i=r.value.state.addresses;if(o.length%3!=0)throw new Error("State tree lookup table must have a multiple of 3 addresses");for(let t=0;t<o.length;t+=3){const r=o[t],n=o[t+1],a=o[t+2];let u=null;if(!r||!n||!a)throw new Error("Invalid state tree pubkeys structure");const c=r.toBase58();let l;l=c.startsWith("bmt")?exports.TreeType.StateV2:c.startsWith("amt2")?exports.TreeType.AddressV2:c.startsWith("amt")?exports.TreeType.AddressV1:exports.TreeType.StateV1,i.map((e=>e.toBase58())).includes(r.toBase58())&&(u={tree:e.PublicKey.default,queue:e.PublicKey.default,cpiContext:e.PublicKey.default,treeType:l,nextTreeInfo:null}),s.push({tree:r,queue:n,cpiContext:a,treeType:l,nextTreeInfo:u})}for(const t of s)if(null===(n=t.nextTreeInfo)||void 0===n?void 0:n.tree.equals(e.PublicKey.default)){const e=s.find((e=>!e.nextTreeInfo));if(!e)throw new Error("No available tree info found to assign as next tree");t.nextTreeInfo=e}}return s}const fo=e=>e.reduce(((e,t)=>e.add(sr(t.lamports))),sr(0)),mo=y.from("sol_pool_pda");class yo{constructor(){}static deriveCompressedSolPda(){const t=[mo],[r,n]=e.PublicKey.findProgramAddressSync(t,this.programId);return r}static createTransferOutputState(e,t,r){r=sr(r);const n=fo(e).sub(r);return Fr(n),n.eq(sr(0))?[ir(t,r)]:(qr(e),[ir(e[0].owner,n),ir(t,r)])}static createDecompressOutputState(e,t){t=sr(t);const r=fo(e).sub(t);return Fr(r),r.eq(sr(0))?[]:(qr(e),[ir(e[0].owner,r)])}static createNewAddressOutputState(e,t,r,n){r=sr(null!=r?r:0);const o=fo(null!=n?n:[]).sub(r);return Fr(o),o.eq(sr(0))||!n?[ir(t,r,void 0,e)]:(qr(n),[ir(n[0].owner,o),ir(t,r,void 0,e)])}static async createAccount({payer:t,newAddressParams:r,newAddress:n,recentValidityProof:o,outputStateTreeInfo:s,inputCompressedAccounts:i,inputStateRootIndices:a,lamports:u}){const c=this.createNewAddressOutputState(n,t,u,i),{packedInputCompressedAccounts:l,packedOutputCompressedAccounts:d,remainingAccounts:h}=Vr(null!=i?i:[],null!=a?a:[],c,i&&0!==i.length?void 0:s),{newAddressParamsPacked:p,remainingAccounts:f}=zn([r],h),m=pr({proof:o,inputCompressedAccountsWithMerkleContext:l,outputCompressedAccounts:d,relayFee:null,newAddressParams:p,compressOrDecompressLamports:null,isCompress:0}),y=[...Mr(Object.assign(Object.assign({},ct()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Ur(f)];return new e.TransactionInstruction({programId:this.programId,keys:y,data:m})}static async transfer({payer:t,inputCompressedAccounts:r,toAddress:n,lamports:o,recentInputStateRootIndices:s,recentValidityProof:i}){const a=this.createTransferOutputState(r,n,o),{packedInputCompressedAccounts:u,packedOutputCompressedAccounts:c,remainingAccounts:l}=Vr(r,s,a),d=pr({proof:i,inputCompressedAccountsWithMerkleContext:u,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:null,isCompress:0}),h=[...Mr(Object.assign(Object.assign({},ct()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Ur(l)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:d})}static async compress({payer:t,toAddress:r,lamports:n,outputStateTreeInfo:o}){n=sr(n);const s=ir(r,n),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:u}=Vr([],[],[s],o),c=pr({proof:null,inputCompressedAccountsWithMerkleContext:i,outputCompressedAccounts:a,relayFee:null,newAddressParams:[],compressOrDecompressLamports:n,isCompress:1}),l=[...Mr(Object.assign(Object.assign({},ct()),{feePayer:t,authority:t,solPoolPda:yo.deriveCompressedSolPda(),decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Ur(u)];return new e.TransactionInstruction({programId:this.programId,keys:l,data:c})}static async decompress({payer:t,inputCompressedAccounts:r,toAddress:n,lamports:o,recentInputStateRootIndices:s,recentValidityProof:i}){o=sr(o);const a=this.createDecompressOutputState(r,o),{packedInputCompressedAccounts:u,packedOutputCompressedAccounts:c,remainingAccounts:l}=Vr(r,s,a),d=pr({proof:i,inputCompressedAccountsWithMerkleContext:u,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:o,isCompress:0}),h=[...Mr(Object.assign(Object.assign({},ct()),{feePayer:t,authority:t,solPoolPda:yo.deriveCompressedSolPda(),decompressionRecipient:n,systemProgram:e.SystemProgram.programId})),...Ur(l)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:d})}}function go(e,t){let r=sr(0);t=sr(t);const n=[];e.sort(((e,t)=>t.lamports.cmp(e.lamports)));for(const o of e){if(r.gte(sr(t)))break;r=r.add(o.lamports),n.push(o)}if(r.lt(sr(t)))throw new Error(`Insufficient balance for transfer. Required: ${t.toString()}, available: ${r.toString()}`);return[n,r]}yo.programId=new e.PublicKey("SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7");class wo{constructor(e,t,r){this.index=e,this.value=t,this.nextIndex=r}equals(e){return this.value.eq(e.value)}compareTo(e){return this.value.cmp(e.value)}hash(e,t){try{return e.poseidonHash([sr(this.value.toArray("be",32)).toString(),sr(this.nextIndex).toString(),sr(t.toArray("be",32)).toString()])}catch(e){throw new Error("Hashing failed")}}}class vo{constructor(e,t,r){this.newLowElement=e,this.newElement=t,this.newElementNextValue=r}}class xo{constructor(e,t,r){this.elements=e,this.currentNodeIndex=t,this.highestElementIndex=r}static default(){return new xo([new wo(0,sr(0),0)],0,0)}get(e){return this.elements[e]}length(){return Number(this.currentNodeIndex)}isEmpty(){return 0===this.currentNodeIndex}findElement(e){return this.elements.slice(0,this.length()+1).find((t=>t.value===e))}init(){try{const e=Qe;return this.append(e)}catch(e){throw new Error(`Failed to initialize IndexedArray: ${e}`)}}findLowElementIndex(e){for(let t=0;t<=this.length();t++){const r=this.elements[t];if(this.elements[r.nextIndex].value.gt(e)&&r.value.lt(e))return t;if(r.value.eq(e))throw new Error("Element already exists in the array")}return this.highestElementIndex}findLowElement(e){const t=this.findLowElementIndex(e);if(void 0===t)return[void 0,void 0];const r=this.elements[t];return[r,this.elements[r.nextIndex].value]}hashElement(e,t){const r=this.elements[t];if(!r)return;const n=this.elements[r.nextIndex];return n?e.poseidonHash([sr(r.value.toArray("be",32)).toString(),sr(r.nextIndex).toString(),sr(n.value.toArray("be",32)).toString()]):void 0}append(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.appendWithLowElementIndex(t,e)}appendWithLowElementIndex(e,t){const r=this.elements[e];if(0===r.nextIndex){if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.")}else{const e=this.elements[r.nextIndex];if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.");if(t.gte(e.value))throw new Error("New element value must be less than the next element value.")}const n=this.newElementWithLowElementIndex(e,t);return 0===r.nextIndex&&(this.highestElementIndex=n.newElement.index),this.currentNodeIndex=n.newElement.index,this.elements[this.length()]=n.newElement,this.elements[e]=n.newLowElement,n}lowest(){return this.elements.length>0?this.elements[0]:void 0}newElementWithLowElementIndex(e,t){const r=this.elements[e],n=this.currentNodeIndex+1,o=new wo(n,t,r.nextIndex);r.nextIndex=n;const s=this.elements[o.nextIndex].value;return new vo(r,o,s)}newElement(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.newElementWithLowElementIndex(t,e)}}class bo{constructor(e,t,r=[],{zeroElement:n="0"}={}){if(this.levels=e,this.capacity=2**e,this.zeroElement=n,this._lightWasm=t,r.length>this.capacity)throw new Error("Tree is full");this._zeros=[],this._layers=[],this._layers[0]=r,this._zeros[0]=this.zeroElement;for(let t=1;t<=e;t++)this._zeros[t]=this._lightWasm.poseidonHashString([this._zeros[t-1],this._zeros[t-1]]);this._rebuild()}_rebuild(){for(let e=1;e<=this.levels;e++){this._layers[e]=[];for(let t=0;t<Math.ceil(this._layers[e-1].length/2);t++)this._layers[e][t]=this._lightWasm.poseidonHashString([this._layers[e-1][2*t],2*t+1<this._layers[e-1].length?this._layers[e-1][2*t+1]:this._zeros[e-1]])}}root(){return this._layers[this.levels].length>0?this._layers[this.levels][0]:this._zeros[this.levels]}insert(e){if(this._layers[0].length>=this.capacity)throw new Error("Tree is full");this.update(this._layers[0].length,e)}bulkInsert(e){if(this._layers[0].length+e.length>this.capacity)throw new Error("Tree is full");this._layers[0].push(...e),this._rebuild()}update(e,t){if(isNaN(Number(e))||e<0||e>this._layers[0].length||e>=this.capacity)throw new Error("Insert index out of bounds: "+e);this._layers[0][e]=t;for(let t=1;t<=this.levels;t++)e>>=1,this._layers[t][e]=this._lightWasm.poseidonHashString([this._layers[t-1][2*e],2*e+1<this._layers[t-1].length?this._layers[t-1][2*e+1]:this._zeros[t-1]])}path(e){if(isNaN(Number(e))||e<0||e>=this._layers[0].length)throw new Error("Index out of bounds: "+e);const t=[],r=[];for(let n=0;n<this.levels;n++)r[n]=e%2,t[n]=(1^e)<this._layers[n].length?this._layers[n][1^e]:this._zeros[n],e>>=1;return{pathElements:t,pathIndices:r}}indexOf(e,t=null){return t?this._layers[0].findIndex((r=>t(e,r))):this._layers[0].indexOf(e)}elements(){return this._layers[0].slice()}serialize(){return{levels:this.levels,_zeros:this._zeros,_layers:this._layers}}static deserialize(e,t){const r=Object.assign(Object.create(this.prototype),e);return r._hash=t,r.capacity=2**r.levels,r.zeroElement=r._zeros[0],r}}async function Io(e){const t=[],{noopProgram:r,accountCompressionProgram:n}=ct(),o=(await e.getSignaturesForAddress(n,void 0,"confirmed")).map((e=>e.signature)),s=[];for(let t=0;t<o.length;t+=100){const r=o.slice(t,t+100),n=await e.getParsedTransactions(r,{maxSupportedTransactionVersion:0,commitment:"confirmed"});s.push(...n)}for(const r of s){if(!r||!r.transaction||!r.meta)continue;if(!r.meta.innerInstructions||0==r.meta.innerInstructions.length)continue;const n=r.transaction.message.accountKeys.map((e=>e.pubkey)),o=[],s=await e.getTransaction(r.transaction.signatures[0],{commitment:"confirmed",maxSupportedTransactionVersion:0});for(const e of(null==s?void 0:s.transaction.message.compiledInstructions)||[])if(e.data&&e.data.length>0){const t=Uint8Array.from(e.data);if(t.length===Je.length&&Je.every(((e,r)=>e===t[r])))continue;o.push(t)}const i=[];if(s.meta.innerInstructions&&s.meta.innerInstructions.length>0)for(const e of s.meta.innerInstructions)for(const t of e.instructions){const e=t.accounts.map((e=>n[e]));if(i.push(e),t.data&&t.data.length>0){const e=rr.decode(t.data);o.push(e)}}const a=To(o,i);a&&t.push(a)}if(t.length>0)return t;const i=s.filter((e=>e?e.transaction.message.accountKeys.some((e=>("string"==typeof e?e:e.pubkey.toBase58())===r.toBase58())):0));return Eo(i,Ao)}const Eo=(e,t)=>{const{noopProgram:r}=ct(),n=[];return e.forEach((e=>{!e||!e.meta||e.meta.err||!e.meta.innerInstructions||e.meta.innerInstructions.length<=0||e.meta.innerInstructions.forEach((o=>{if(o.instructions.length>0){const s=o.instructions[o.instructions.length-1];if("data"in s&&s.data&&s.programId.toBase58()===r.toBase58()){const r=rr.decode(s.data),o=t(y.from(r),e);null!=o&&n.push(o)}}}))})),n},Ao=e=>{const t=y.from(e.map((e=>e)));try{return _r(t)}catch(e){return console.error("Error deserializing event:",e),null}};function To(e,t){let r=0,n=null,o=null;for(const t of e){const e=t.slice(0,8),o=rr.encode(e),s=rr.encode(Xe),i=rr.encode(et),a=rr.encode(tt);if(o===s){n=Ar(y.from(t)),r=1;break}if(o==i){n=Tr(y.from(t)),r=1;break}if(o==a){n=Kn(Er(y.from(t))),r=1;break}}if(!r)return null;for(const t of e){const e=t.slice(0,8);if(rr.encode(e)===rr.encode(nt)){const e=t.slice(12);o=Lr(y.from(e))}}return n?Br(o,t[t.length-1],n):null}async function Mo(e,t){return(await So(e)).find((e=>sr(e.hash).eq(t)))}async function So(e){var t,r;const n=(await Io(e)).reverse(),o=[],s=[],i=await e.getStateTreeInfos();for(const e of n){for(let n=0;n<e.outputCompressedAccounts.length;n++){const s=co(i,e.pubkeyArray[e.outputCompressedAccounts[n].merkleTreeIndex]),a=e.outputCompressedAccounts[n],u={treeInfo:s,hash:sr(e.outputCompressedAccountHashes[n]),leafIndex:e.outputLeafIndices[n],proveByIndex:s.treeType===exports.TreeType.StateV2},c=ar(u,a.compressedAccount.owner,a.compressedAccount.lamports,null!==(t=a.compressedAccount.data)&&void 0!==t?t:void 0,null!==(r=a.compressedAccount.address)&&void 0!==r?r:void 0);o.push(c)}for(let t=0;t<e.inputCompressedAccountHashes.length;t++){const r=e.inputCompressedAccountHashes[t];s.push(sr(r))}}const a=o.filter((e=>!s.some((t=>t.eq(sr(e.hash))))));return a.sort(((e,t)=>t.leafIndex-e.leafIndex)),a}function _o(t,r=yt){if(null===t.data)return null;const{data:n}=t.data;if(0===n.length)return null;if(t.owner.toBase58()!==r.toBase58())throw new Error(`Invalid owner ${t.owner.toBase58()} for token layout`);try{const t=Buffer.from(n);let r=0;const o=new e.PublicKey(t.slice(r,r+32));r+=32;const s=new e.PublicKey(t.slice(r,r+32));r+=32;const i=new je(t.slice(r,r+8),"le");r+=8;const a=t[r];r+=1;const u=a?new e.PublicKey(t.slice(r,r+32)):null;r+=32;const c=t[r];r+=1;const l=t[r];return r+=1,{mint:o,owner:s,amount:i,delegate:u,state:c,tlv:l?t.slice(r):null}}catch(e){throw console.error("Decoding error:",e),e}}async function Co(e,t){const r=await Promise.all(e.map((e=>async function(e,t){const r=e.pubkeyArray,n=await t.getStateTreeInfos(),o=e.outputCompressedAccountHashes,s=e.outputCompressedAccounts.map(((t,s)=>{var i;const a=r[e.outputCompressedAccounts[s].merkleTreeIndex],u=co(n,a);if(!(u.tree.equals(r[e.outputCompressedAccounts[s].merkleTreeIndex])||$e.isV2()&&u.queue.equals(r[e.outputCompressedAccounts[s].merkleTreeIndex])))throw new Error("Invalid tree");const c={treeInfo:u,hash:sr(o[s]),leafIndex:e.outputLeafIndices[s],proveByIndex:u.treeType===exports.TreeType.StateV2};if(!t.compressedAccount.data)throw new Error("No data");const l=_o(t.compressedAccount);if(!l)throw new Error("Invalid token data");return{compressedAccount:ar(c,t.compressedAccount.owner,t.compressedAccount.lamports,t.compressedAccount.data,null!==(i=t.compressedAccount.address)&&void 0!==i?i:void 0),parsed:l}}));return{inputCompressedAccountHashes:e.inputCompressedAccountHashes,outputCompressedAccounts:s}}(e,t)))),n=r.flatMap((e=>e.outputCompressedAccounts)),o=r.flatMap((e=>e.inputCompressedAccountHashes));return n.filter((e=>!o.some((t=>sr(t).eq(e.compressedAccount.hash)))))}async function ko(e,t,r){const n=await Io(e);return{items:(await Co(n,e)).filter((e=>e.parsed.owner.equals(t)&&e.parsed.mint.equals(r))).sort(((e,t)=>e.compressedAccount.leafIndex-t.compressedAccount.leafIndex)),cursor:null}}async function Po(e,t,r){const n=await Io(e);return{items:(await Co(n,e)).filter((e=>{var n;return(null===(n=e.parsed.delegate)||void 0===n?void 0:n.equals(t))&&e.parsed.mint.equals(r)})),cursor:null}}async function Oo(e,t){const r=await Io(e),n=(await Co(r,e)).filter((e=>sr(e.compressedAccount.hash).eq(t)));if(0===n.length)throw new Error("No compressed account found");return n[0]}class Ro extends TypeError{constructor(e,t){let r;const{message:n,explanation:o,...s}=e,{path:i}=e,a=0===i.length?n:`At path: ${i.join(".")} -- ${n}`;super(o??a),null!=o&&(this.cause=a),Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...t()])}}function Lo(e){return"object"==typeof e&&null!=e}function Bo(e){return Lo(e)&&!Array.isArray(e)}function No(e){return"symbol"==typeof e?e.toString():"string"==typeof e?JSON.stringify(e):`${e}`}function Do(e,t,r,n){if(1==e)return;0==e?e={}:"string"==typeof e&&(e={message:e});const{path:o,branch:s}=t,{type:i}=r,{refinement:a,message:u=`Expected a value of type \`${i}\`${a?` with refinement \`${a}\``:""}, but received: \`${No(n)}\``}=e;return{value:n,type:i,refinement:a,key:o[o.length-1],path:o,branch:s,...e,message:u}}function*Uo(e,t,r,n){var o;Lo(o=e)&&"function"==typeof o[Symbol.iterator]||(e=[e]);for(const o of e){const e=Do(o,t,r,n);e&&(yield e)}}function*Vo(e,t,r={}){const{path:n=[],branch:o=[e],coerce:s=0,mask:i=0}=r,a={path:n,branch:o,mask:i};s&&(e=t.coercer(e,a));let u="valid";for(const n of t.validator(e,a))n.explanation=r.message,u="not_valid",yield[n,void 0];for(let[c,l,d]of t.entries(e,a)){const t=Vo(l,d,{path:void 0===c?n:[...n,c],branch:void 0===c?o:[...o,l],coerce:s,mask:i,message:r.message});for(const r of t)r[0]?(u=null!=r[0].refinement?"not_refined":"not_valid",yield[r[0],void 0]):s&&(l=r[1],void 0===c?e=l:e instanceof Map?e.set(c,l):e instanceof Set?e.add(l):Lo(e)&&(void 0!==l||c in e)&&(e[c]=l))}if("not_valid"!==u)for(const n of t.refiner(e,a))n.explanation=r.message,u="not_refined",yield[n,void 0];"valid"===u&&(yield[void 0,e])}class Fo{constructor(e){const{type:t,schema:r,validator:n,refiner:o,coercer:s=(e=>e),entries:i=function*(){}}=e;this.type=t,this.schema=r,this.entries=i,this.coercer=s,this.validator=n?(e,t)=>Uo(n(e,t),t,this,e):()=>[],this.refiner=o?(e,t)=>Uo(o(e,t),t,this,e):()=>[]}assert(e,t){return function(e,t,r){const n=Ho(e,t,{message:r});if(n[0])throw n[0]}(e,this,t)}create(e,t){return qo(e,this,t)}is(e){return Ko(e,this)}mask(e,t){return function(e,t,r){const n=Ho(e,t,{coerce:1,mask:1,message:r});if(n[0])throw n[0];return n[1]}(e,this,t)}validate(e,t={}){return Ho(e,this,t)}}function qo(e,t,r){const n=Ho(e,t,{coerce:1,message:r});if(n[0])throw n[0];return n[1]}function Ko(e,t){return!Ho(e,t)[0]}function Ho(e,t,r={}){const n=Vo(e,t,r),o=function(e){const{done:t,value:r}=e.next();return t?void 0:r}(n);return o[0]?[new Ro(o[0],(function*(){for(const e of n)e[0]&&(yield e[0])})),void 0]:[void 0,o[1]]}function Wo(e,t){return new Fo({type:e,schema:null,validator:t})}function jo(){return Wo("any",(()=>1))}function $o(e){return new Fo({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t))for(const[r,n]of t.entries())yield[r,n,e]},coercer:e=>Array.isArray(e)?e.slice():e,validator:e=>Array.isArray(e)||`Expected an array value, but received: ${No(e)}`})}function zo(){return Wo("boolean",(e=>"boolean"==typeof e))}function Zo(e){return Wo("instance",(t=>t instanceof e||`Expected a \`${e.name}\` instance, but received: ${No(t)}`))}function Yo(e){const t=No(e);return new Fo({type:"literal",schema:e,validator:r=>r===e||`Expected the literal \`${t}\`, but received: ${No(r)}`})}function Go(e){return new Fo({...e,validator:(t,r)=>null===t||e.validator(t,r),refiner:(t,r)=>null===t||e.refiner(t,r)})}function Qo(){return Wo("number",(e=>"number"==typeof e&&!isNaN(e)||`Expected a number, but received: ${No(e)}`))}function Jo(){return Wo("string",(e=>"string"==typeof e||`Expected a string, but received: ${No(e)}`))}function Xo(e){const t=Object.keys(e);return new Fo({type:"type",schema:e,*entries(r){if(Lo(r))for(const n of t)yield[n,r[n],e[n]]},validator:e=>Bo(e)||`Expected an object, but received: ${No(e)}`,coercer:e=>Bo(e)?{...e}:e})}function es(e){const t=e.map((e=>e.type)).join(" | ");return new Fo({type:"union",schema:null,coercer(t,r){for(const n of e){const[e,o]=n.validate(t,{coerce:1,mask:r.mask});if(!e)return o}return t},validator(r,n){const o=[];for(const t of e){const[...e]=Vo(r,t,n),[s]=e;if(!s[0])return[];for(const[t]of e)t&&o.push(t)}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${No(r)}`,...o]}})}function ts(){return Wo("unknown",(()=>1))}function rs(e,t,r){return new Fo({...e,coercer:(n,o)=>Ko(n,t)?e.coercer(r(n,o),o):e.coercer(n,o)})}var ns;exports.DerivationMode=void 0,(ns=exports.DerivationMode||(exports.DerivationMode={})).compressible="compressible",ns.standard="standard";const os=rs(Zo(e.PublicKey),Jo(),(t=>new e.PublicKey(t))),ss=rs(Zo(Array),Jo(),(t=>Array.from(new e.PublicKey(t).toBytes()))),is=rs(Zo(je),Jo(),(e=>nr(e,"base58"))),as=rs(zo(),es([Qo(),zo()]),(e=>Boolean(e))),us=rs(Zo(je),es([Jo(),Qo()]),(e=>{if("number"==typeof e){if(!Number.isSafeInteger(e))throw new Error(`Unsafe integer. Precision loss: ${e}`);return sr(e)}return sr(e,10)})),cs=Jo();function ls(e){return es([Xo({jsonrpc:Yo("2.0"),id:Jo(),result:e}),Xo({jsonrpc:Yo("2.0"),id:Jo(),error:Xo({code:ts(),message:Jo(),data:Go(jo())})})])}const ds=ls(ts());function hs(e){return rs(ls(e),ds,(t=>"error"in t?t:Object.assign(Object.assign({},t),{result:qo(t.result,e)})))}function ps(e){return hs(Xo({context:Xo({slot:Qo()}),value:e}))}const fs=Xo({treeType:Qo(),tree:os,queue:os,cpiContext:Go(os)}),ms=Xo({treeType:Qo(),tree:os,queue:os,cpiContext:Go(os),nextTreeContext:(ys=Go(fs),new Fo({...ys,validator:(e,t)=>void 0===e||ys.validator(e,t),refiner:(e,t)=>void 0===e||ys.refiner(e,t)}))});var ys;const gs=Xo({address:Go(ss),hash:is,data:Go(Xo({data:cs,dataHash:is,discriminator:us})),lamports:us,owner:os,leafIndex:Qo(),tree:os,seq:Go(us),slotCreated:us}),ws=Xo({address:Go(ss),hash:is,data:Go(Xo({data:cs,dataHash:is,discriminator:us})),lamports:us,owner:os,leafIndex:Qo(),seq:Go(us),slotCreated:us,merkleContext:ms,proveByIndex:as}),vs=Xo({mint:os,owner:os,amount:us,delegate:Go(os),state:Jo()}),xs=Xo({tokenData:vs,account:gs}),bs=Xo({tokenData:vs,account:ws}),Is=Xo({items:$o(gs)}),Es=Xo({items:$o(ws)}),As=Xo({items:$o(gs),cursor:Go(Jo())}),Ts=Xo({items:$o(ws),cursor:Go(Jo())}),Ms=Xo({items:$o(xs),cursor:Go(Jo())}),Ss=Xo({items:$o(bs),cursor:Go(Jo())}),_s=Qo(),Cs=Jo(),ks=Xo({items:$o(Xo({signature:Jo(),slot:Qo(),blockTime:Qo(),error:Go(Jo())}))}),Ps=Xo({items:$o(Xo({signature:Jo(),slot:Qo(),blockTime:Qo()})),cursor:Go(Jo())}),Os=Xo({hash:is,leafIndex:Qo(),merkleTree:os,proof:$o(is),rootSeq:Qo(),root:is}),Rs=Xo({hash:is,leafIndex:Qo(),proof:$o(is),root:is,rootSeq:Qo(),proveByIndex:as,treeContext:ms}),Ls=Xo({address:is,nextIndex:Qo(),merkleTree:os,proof:$o(is),rootSeq:Qo(),root:is,lowerRangeAddress:is,higherRangeAddress:is,lowElementLeafIndex:Qo()}),Bs=Xo({a:$o(Qo()),b:$o(Qo()),c:$o(Qo())}),Ns=Xo({rootIndex:Qo(),proveByIndex:as}),Ds=Xo({compressedProof:Bs,leafIndices:$o(Qo()),leaves:$o(is),rootIndices:$o(Qo()),roots:$o(is),merkleTrees:$o(os)}),Us=Xo({hash:is,root:is,rootIndex:Ns,merkleContext:ms,leafIndex:Qo()}),Vs=Xo({address:is,root:is,rootIndex:Qo(),merkleContext:ms}),Fs=Xo({compressedProof:Go(Bs),accounts:$o(Us),addresses:$o(Vs)}),qs=$o(Os),Ks=$o(Rs),Hs=Xo({amount:us}),Ws=us,js=Xo({balance:us,mint:os}),$s=Xo({tokenBalances:$o(js),cursor:Go(Jo())}),zs=Xo({items:$o(js),cursor:Go(Jo())}),Zs=Xo({cursor:Go(Jo()),items:$o(Xo({balance:us,owner:os}))}),Ys=Xo({hash:$o(Qo()),root:$o(Qo()),proof:$o($o(Qo()))}),Gs=Xo({items:$o(Xo({blockTime:Qo(),signature:Jo(),slot:Qo()}))}),Qs=Xo({items:$o(Xo({blockTime:Qo(),signature:Jo(),slot:Qo()})),cursor:Go(Jo())}),Js=Xo({account:ws,txHash:is,nullifier:is}),Xs=Xo({compressionInfo:Xo({closedAccounts:$o(Xo({account:gs,optionalTokenData:Go(vs)})),openedAccounts:$o(Xo({account:gs,optionalTokenData:Go(vs)}))}),transaction:jo()}),ei=Xo({compressionInfo:Xo({closedAccounts:$o(Xo({account:Js,optionalTokenData:Go(vs)})),openedAccounts:$o(Xo({account:ws,optionalTokenData:Go(vs)}))}),transaction:jo()}),ti={Solana:"solana",Compressed:"compressed"};let ri=0;function ni({discriminator:e,data:t,dataHash:r}){return{discriminator:e.toArray("le",8),data:y.from(t,"base64"),dataHash:r.toArray("le",32)}}async function oi(t,r,n,o=0){var s,i;const a=Ye(o?"getCompressedTokenAccountsByDelegate":"getCompressedTokenAccountsByOwner"),u=o?"delegate":"owner",c=await ii(t.compressionApiEndpoint,a,{[u]:r.toBase58(),mint:null===(s=n.mint)||void 0===s?void 0:s.toBase58(),limit:null===(i=n.limit)||void 0===i?void 0:i.toNumber(),cursor:n.cursor});let l;if(l=$e.isV2()?qo(c,ps(Ss)):qo(c,ps(Ms)),"error"in l)throw new e.SolanaJSONRPCError(l.error,`failed to get info for compressed accounts by ${u} ${r.toBase58()}`);if(null===l.result.value)throw new Error("not implemented: NULL result");const d=[],h=await t.getStateTreeInfos();return l.result.value.items.map((e=>{var t;const n=e.account,o=e.tokenData,s=$e.isV2()?n.merkleContext.tree:n.tree,i=$e.isV2()?n.proveByIndex:0,a=co(h,s),c=ar(ur(a,n.hash,n.leafIndex,i),n.owner,sr(n.lamports),n.data?ni(n.data):void 0,n.address||void 0),l={mint:o.mint,owner:o.owner,amount:o.amount,delegate:o.delegate,state:["uninitialized","initialized","frozen"].indexOf(o.state),tlv:null};if((null===(t=l[u])||void 0===t?void 0:t.toBase58())!==r.toBase58())throw new Error(`RPC returned token account with ${u} different from requested ${u}`);d.push({compressedAccount:c,parsed:l})})),{items:d.sort(((e,t)=>t.compressedAccount.leafIndex-e.compressedAccount.leafIndex)),cursor:l.result.value.cursor}}function si(e){return e.replace(/(":\s*)(-?\d+)(\s*[},])/g,((e,t,r,n)=>{const o=Number(r);return!Number.isNaN(o)&&(o>Number.MAX_SAFE_INTEGER||o<Number.MIN_SAFE_INTEGER)?`${t}"${r}"${n}`:e}))}const ii=async(e,t,r=[],n=1,o=0)=>{const s=JSON.stringify({jsonrpc:"2.0",id:"test-account",method:t,params:r});if(o){const t=()=>{const t=s.replace(/"/g,'\\"');return`curl -X POST ${e} \\\n -H "Content-Type: application/json" \\\n -d "${t}"`};console.log("Debug: Stack trace:"),console.log((new Error).stack),console.log("\nDebug: curl:"),console.log(t()),console.log("\n")}const i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:s});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);const a=si(await i.text());return n?Un(JSON.parse(a)):JSON.parse(a)},ai=async(e,t,r=[],n=0)=>{let o,s="";n&&(s=`Proof generation for method:${t}`,console.time(s)),"inclusion"===t?o=JSON.stringify({circuitType:"inclusion",stateTreeHeight:26,inputCompressedAccounts:r}):"new-address"===t?o=JSON.stringify({circuitType:"non-inclusion",addressTreeHeight:26,newAddresses:r}):"combined"===t&&(o=JSON.stringify({circuitType:"combined",stateTreeHeight:26,addressTreeHeight:26,inputCompressedAccounts:r[0],newAddresses:r[1]}));const i=await fetch(`${e}/prove`,{method:"POST",headers:{"Content-Type":"application/json"},body:o});if(!i.ok)throw new Error(`Error fetching proof: ${i.statusText}`);const a=to(eo(await i.json()));return n&&console.timeEnd(s),a};function ui(e){const t=[];for(let r=0;r<e.length;r++){const n={root:Nn(e[r].root),pathIndex:e[r].leafIndex,pathElements:e[r].merkleProof.map((e=>Nn(e))),leaf:Nn(sr(e[r].hash))};t.push(n)}return t}function ci(e){const t=[];for(let r=0;r<e.length;r++){const n={root:Nn(e[r].root),value:Nn(e[r].value),pathIndex:e[r].indexHashedIndexedElementLeaf.toNumber(),pathElements:e[r].merkleProofHashedIndexedElementLeaf.map((e=>Nn(e))),nextIndex:e[r].nextIndex.toNumber(),leafLowerRangeValue:Nn(e[r].leafLowerRangeValue),leafHigherRangeValue:Nn(e[r].leafHigherRangeValue)};t.push(n)}return t}function li(e,t,r){if(e.length!==t.length)throw new Error("Input lengths must match.");if(0===e.length)return sr(0);let n=r.poseidonHashBN([e[0].toString(),t[0].toString()]);for(let o=1;o<e.length;o++)n=r.poseidonHashBN([n.toString(),e[o].toString(),t[o].toString()]);return n}function di(e){const t=e.account,r=e.optionalTokenData,n=ar(ur(t.treeInfo,t.hash.toArray("be",32),t.leafIndex,t.proveByIndex),t.owner,sr(t.lamports),t.data?ni(t.data):void 0,t.address||void 0);return null===r?{account:n,maybeTokenData:null}:{account:n,maybeTokenData:{mint:r.mint,owner:r.owner,amount:r.amount,delegate:r.delegate,state:["uninitialized","initialized","frozen"].indexOf(r.state),tlv:null}}}function hi(e,t){var r,n,o,s;const i=new Map;for(const e of t)i.set(e.signature,{signature:e.signature,slot:e.slot,blockTime:e.blockTime,err:null,memo:null,confirmationStatus:void 0,sources:[ti.Compressed]});for(const t of e)i.get(t.signature)?i.set(t.signature,{signature:t.signature,slot:t.slot,blockTime:null!==(r=t.blockTime)&&void 0!==r?r:null,err:t.err,memo:null!==(n=t.memo)&&void 0!==n?n:null,confirmationStatus:t.confirmationStatus,sources:[ti.Solana,ti.Compressed]}):i.set(t.signature,{signature:t.signature,slot:t.slot,blockTime:null!==(o=t.blockTime)&&void 0!==o?o:null,err:t.err,memo:null!==(s=t.memo)&&void 0!==s?s:null,confirmationStatus:t.confirmationStatus,sources:[ti.Solana]});return Array.from(i.values()).sort(((e,t)=>t.slot-e.slot))}class pi extends e.Connection{constructor(e,t,r,n){super(e,n||"confirmed"),this.allStateTreeInfos=null,this.lastStateTreeFetchTime=null,this.CACHE_TTL=36e5,this.fetchPromise=null,this.compressionApiEndpoint=t,this.proverEndpoint=r}async getCachedActiveStateTreeInfo(){}async getCachedActiveStateTreeInfos(){}async getStateTreeInfos(){if(dt(this.rpcEndpoint))return Zt();if(this.allStateTreeInfos&&this.lastStateTreeFetchTime&&Date.now()-this.lastStateTreeFetchTime<=this.CACHE_TTL)return this.allStateTreeInfos;if(this.fetchPromise)return this.fetchPromise;let e;try{return this.fetchPromise=this.doFetch(),e=await this.fetchPromise,this.allStateTreeInfos=e,this.lastStateTreeFetchTime=Date.now(),e}finally{this.fetchPromise=null}}async doFetch(){const{mainnet:e,devnet:t}=lt();try{return await po({connection:this,stateTreeLUTPairs:[e[0]]})}catch(e){try{return await po({connection:this,stateTreeLUTPairs:[t[0]]})}catch(t){throw new Error(`Failed to fetch state tree infos from both mainnet and devnet. Mainnet error: ${e}. Devnet error: ${t}`)}}}async getAddressTreeInfoV2(){const t=new e.PublicKey(jt);return{tree:t,queue:t,cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}}async getCompressedAccount(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const n=await this.getStateTreeInfos(),o=await ii(this.compressionApiEndpoint,Ye("getCompressedAccount"),{hash:r?or(r):void 0,address:t?or(t):void 0});let s;if(s=$e.isV2()?qo(o,ps(Go(ws))):qo(o,ps(Go(gs))),"error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed account ${r?r.toString():t?t.toString():""}`);if(null===s.result.value)return null;const i=co(n,$e.isV2()?s.result.value.merkleContext.tree:s.result.value.tree),a=s.result.value;return ar(ur(i,a.hash,a.leafIndex),a.owner,sr(a.lamports),a.data?ni(a.data):void 0,a.address||void 0)}async getCompressedBalance(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const n=qo(await ii(this.compressionApiEndpoint,"getCompressedBalance",{hash:r?or(r):void 0,address:t?or(t):void 0}),ps(Ws));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get balance for compressed account ${r?r.toString():t?t.toString():""}`);return null===n.result.value?sr(0):sr(n.result.value)}async getCompressedBalanceByOwner(t){const r=qo(await ii(this.compressionApiEndpoint,"getCompressedBalanceByOwner",{owner:t.toBase58()}),ps(Ws));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed account ${t.toBase58()}`);return null===r.result.value?sr(0):sr(r.result.value)}async getCompressedAccountProof(t){const r=await ii(this.compressionApiEndpoint,Ye("getCompressedAccountProof"),{hash:or(t)});let n;if(n=$e.isV2()?qo(r,ps(Rs)):qo(r,ps(Os)),"error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get proof for compressed account ${t.toString()}`);if(null===n.result.value)throw new Error(`failed to get proof for compressed account ${t.toString()}`);const o=co(await this.getStateTreeInfos(),$e.isV2()?n.result.value.treeContext.tree:n.result.value.tree);return{hash:sr(n.result.value.hash.toArray("be",32)),treeInfo:o,leafIndex:n.result.value.leafIndex,merkleProof:n.result.value.proof,rootIndex:n.result.value.rootSeq%2400,root:n.result.value.root,proveByIndex:$e.isV2()?n.result.value.proveByIndex:0}}async getMultipleCompressedAccounts(t){const r=await ii(this.compressionApiEndpoint,Ye("getMultipleCompressedAccounts"),{hashes:t.map((e=>or(e)))});let n;if(n=$e.isV2()?qo(r,ps(Es)):qo(r,ps(Is)),"error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get info for compressed accounts ${t.map((e=>or(e))).join(", ")}`);if(null===n.result.value)throw new Error(`failed to get info for compressed accounts ${t.map((e=>or(e))).join(", ")}`);const o=await this.getStateTreeInfos(),s=[];return n.result.value.items.map((e=>{const t=$e.isV2()?e.merkleContext.tree:e.tree,r=co(o,t),n=ar(ur(r,sr(e.hash.toArray("be",32)),e.leafIndex),e.owner,sr(e.lamports),e.data?ni(e.data):void 0,e.address||void 0);s.push(n)})),s.sort(((e,t)=>t.leafIndex-e.leafIndex))}async getMultipleCompressedAccountProofs(t){const r=await ii(this.compressionApiEndpoint,Ye("getMultipleCompressedAccountProofs"),t.map((e=>or(e))));let n;if(n=$e.isV2()?qo(r,ps($o(Rs))):qo(r,ps($o(Os))),"error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get proofs for compressed accounts ${t.map((e=>or(e))).join(", ")}`);if(null===n.result.value)throw new Error(`failed to get proofs for compressed accounts ${t.map((e=>or(e))).join(", ")}`);const o=[],s=await this.getStateTreeInfos();for(const e of n.result.value){const t=co(s,$e.isV2()?e.treeContext.tree:e.merkleTree),r={hash:sr(e.hash.toArray("be",32)),treeInfo:t,leafIndex:e.leafIndex,merkleProof:e.proof,rootIndex:e.rootSeq%2400,root:e.root,proveByIndex:$e.isV2()?e.proveByIndex:0};o.push(r)}return o}async getCompressedAccountsByOwner(t,r){var n;const o=await ii(this.compressionApiEndpoint,Ye("getCompressedAccountsByOwner"),{owner:t.toBase58(),filters:(null==r?void 0:r.filters)||[],dataSlice:null==r?void 0:r.dataSlice,cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()});let s;if(s=$e.isV2()?qo(o,ps(Ts)):qo(o,ps(As)),"error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed accounts owned by ${t.toBase58()}`);if(null===s.result.value)return{items:[],cursor:null};const i=[],a=await this.getStateTreeInfos();return s.result.value.items.map((e=>{const t=co(a,$e.isV2()?e.merkleContext.tree:e.tree),r=ar(ur(t,sr(e.hash.toArray("be",32)),e.leafIndex,$e.isV2()?e.proveByIndex:0),e.owner,sr(e.lamports),e.data?ni(e.data):void 0,e.address||void 0);i.push(r)})),{items:i.sort(((e,t)=>t.leafIndex-e.leafIndex)),cursor:s.result.value.cursor}}async getCompressedTokenAccountsByOwner(e,t){return t||(t={}),await oi(this,e,t,0)}async getCompressedTokenAccountsByDelegate(e,t){return t||(t={}),await oi(this,e,t,1)}async getCompressedTokenAccountBalance(t){const r=qo(await ii(this.compressionApiEndpoint,"getCompressedTokenAccountBalance",{hash:or(t)}),ps(Hs));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed token account ${t.toString()}`);if(null===r.result.value)throw new Error(`failed to get balance for compressed token account ${t.toString()}`);return{amount:sr(r.result.value.amount)}}async getCompressedTokenBalancesByOwner(t,r){var n,o;r||(r={});const s=qo(await ii(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwner",{owner:t.toBase58(),mint:null===(n=r.mint)||void 0===n?void 0:n.toBase58(),limit:null===(o=r.limit)||void 0===o?void 0:o.toNumber(),cursor:r.cursor}),ps($s));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);return{items:r.mint?s.result.value.tokenBalances.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.tokenBalances,cursor:s.result.value.cursor}}async getCompressedTokenBalancesByOwnerV2(t,r){var n,o;r||(r={});const s=qo(await ii(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwnerV2",{owner:t.toBase58(),mint:null===(n=r.mint)||void 0===n?void 0:n.toBase58(),limit:null===(o=r.limit)||void 0===o?void 0:o.toNumber(),cursor:r.cursor}),ps(zs));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);const i=r.mint?s.result.value.items.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.items;return{context:s.result.context,value:{items:i,cursor:s.result.value.cursor}}}async getCompressionSignaturesForAccount(t){const r=qo(await ii(this.compressionApiEndpoint,"getCompressionSignaturesForAccount",{hash:or(t)}),ps(Gs));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get signatures for compressed account ${t.toString()}`);return r.result.value.items}async getTransactionWithCompressionInfo(t){const r=await ii(this.compressionApiEndpoint,Ye("getTransactionWithCompressionInfo"),{signature:t});let n;if(n=$e.isV2()?qo(r,hs(ei)):qo(r,hs(Xs)),"error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get slot");if(null===n.result.transaction)return null;const o=[],s=[],i=await this.getStateTreeInfos();$e.isV2()?(n.result.compressionInfo.closedAccounts.map((e=>{o.push(function(e){const t={account:e.account.account,optionalTokenData:e.optionalTokenData},r={nullifier:e.account.nullifier,txHash:e.account.txHash},n=di(t);return{account:n.account,maybeTokenData:n.maybeTokenData,maybeNullifierMetadata:r}}(e))})),n.result.compressionInfo.openedAccounts.map((e=>{s.push(di(e))}))):(n.result.compressionInfo.closedAccounts.map((e=>{const t=co(i,e.account.tree),r=ar(ur(t,sr(e.account.hash.toArray("be",32)),e.account.leafIndex),e.account.owner,sr(e.account.lamports),e.account.data?ni(e.account.data):void 0,e.account.address||void 0);o.push({account:r,maybeTokenData:e.optionalTokenData})})),n.result.compressionInfo.openedAccounts.map((e=>{const t=co(i,e.account.tree),r=ar(ur(t,sr(e.account.hash.toArray("be",32)),e.account.leafIndex),e.account.owner,sr(e.account.lamports),e.account.data?ni(e.account.data):void 0,e.account.address||void 0);s.push({account:r,maybeTokenData:e.optionalTokenData})})));const a=e=>{const t=Object.values(e.reduce(((e,{maybeTokenData:t})=>{if(t){const{owner:r,mint:n,amount:o}=t,s=`${r.toBase58()}_${n.toBase58()}`;s in e?e[s].amount=e[s].amount.add(o):e[s]={owner:r,mint:n,amount:o}}return e}),{}));return t.length>0?t:void 0},u=a(o),c=a(s);return{compressionInfo:{closedAccounts:o,openedAccounts:s,preTokenBalances:u,postTokenBalances:c},transaction:n.result.transaction}}async getCompressionSignaturesForAddress(t,r){var n;const o=qo(await ii(this.compressionApiEndpoint,"getCompressionSignaturesForAddress",{address:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),ps(Qs));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for address ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for address ${t.toBase58()}`);return o.result.value}async getCompressionSignaturesForOwner(t,r){var n;const o=qo(await ii(this.compressionApiEndpoint,"getCompressionSignaturesForOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),ps(Qs));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return o.result.value}async getCompressionSignaturesForTokenOwner(t,r){var n;const o=qo(await ii(this.compressionApiEndpoint,"getCompressionSignaturesForTokenOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),ps(Qs));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return o.result.value}async getIndexerHealth(){const t=qo(await ii(this.compressionApiEndpoint,"getIndexerHealth"),hs(Cs));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get health");return t.result}async confirmTransactionIndexed(e){const t=dt(this.rpcEndpoint)?1e4:2e4,r=dt(this.rpcEndpoint)?100:200,n=Date.now();for(;;){if(await this.getIndexerSlot()>=e)return 1;if(Date.now()-n>t)throw new Error(`Timeout: Indexer slot did not reach the required slot within ${t/1e3}s`);await new Promise((e=>setTimeout(e,r)))}}async getIndexerSlot(){const t=qo(await ii(this.compressionApiEndpoint,"getIndexerSlot"),hs(_s));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get slot");return t.result}async getCompressedMintTokenHolders(t,r){var n;const o=qo(await ii(this.compressionApiEndpoint,"getCompressedMintTokenHolders",{mint:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),ps(Zs));if("error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get mint token holders");return o.result}async getLatestCompressionSignatures(t,r){const n=qo(await ii(this.compressionApiEndpoint,"getLatestCompressionSignatures",{limit:r,cursor:t}),ps(Ps));if("error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get latest non-voting signatures");return n.result}async getLatestNonVotingSignatures(t,r){const n=qo(await ii(this.compressionApiEndpoint,"getLatestNonVotingSignatures",{limit:t,cursor:r}),ps(ks));if("error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get latest non-voting signatures");return n.result}async getMultipleNewAddressProofs(t){const r=qo(await ii(this.compressionApiEndpoint,"getMultipleNewAddressProofs",t.map((e=>or(e)))),ps($o(Ls)));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get proofs for new addresses ${t.map((e=>or(e))).join(", ")}`);if(null===r.result.value)throw new Error(`failed to get proofs for new addresses ${t.map((e=>or(e))).join(", ")}`);const n=[];for(const e of r.result.value){const t={root:e.root,rootIndex:e.rootSeq%2400,value:e.address,leafLowerRangeValue:e.lowerRangeAddress,leafHigherRangeValue:e.higherRangeAddress,nextIndex:sr(e.nextIndex),merkleProofHashedIndexedElementLeaf:e.proof,indexHashedIndexedElementLeaf:sr(e.lowElementLeafIndex),treeInfo:{tree:e.merkleTree,queue:mt().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}};n.push(t)}return n}async getValidityProof(e=[],t=[]){const r=await this.getMultipleCompressedAccounts(e),n=r.map((e=>e.treeInfo.tree)),o=r.map((e=>e.treeInfo.queue)),s=mt().addressTree,i=mt().addressQueue,a=e.map(((e,t)=>({hash:e,tree:n[t],queue:o[t]}))),u=t.map((e=>({address:e,tree:s,queue:i})));return this.getValidityProofV0(a,u)}async getValidityProofV0(e=[],t=[]){const{value:r}=await this.getValidityProofAndRpcContext(e,t);return r}async getValidityProofV2(e=[],t=[],r){const n=e.filter((e=>void 0!==e)).map((e=>({hash:e.hash,tree:e.treeInfo.tree,queue:e.treeInfo.queue}))),o=t.map((e=>{let t;if(r===exports.DerivationMode.compressible||void 0===r){const r=$n(Uint8Array.from(e.address),e.treeInfo.tree,gt);t=sr(r.toBytes())}else t=sr(e.address);return{address:t,tree:e.treeInfo.tree,queue:e.treeInfo.queue}})),{value:s}=await this.getValidityProofAndRpcContext(n,o);return s}async getValidityProofAndRpcContext(t=[],r=[]){Kr(t.length,r.length);const n=Ye("getValidityProof"),o=await ii(this.compressionApiEndpoint,n,{hashes:t.map((({hash:e})=>or(e))),newAddressesWithTrees:r.map((({address:e,tree:t})=>({address:or(e),tree:t.toBase58()})))}),s=$e.isV2();let i;if(i=qo(o,ps(s?Fs:Ds)),"error"in i)throw new e.SolanaJSONRPCError(i.error,`failed to get validity proof for hashes ${t.map((e=>e.hash.toString())).join(", ")}`);if(null===i.result.value)throw new Error(`failed to get validity proof for hashes ${t.map((e=>e.hash.toString())).join(", ")}`);const a=i.result.value;if(s)return{value:{compressedProof:a.compressedProof,leaves:a.accounts.map((e=>e.hash)).concat(a.addresses.map((e=>e.address))),roots:a.accounts.map((e=>e.root)).concat(a.addresses.map((e=>e.root))),rootIndices:a.accounts.map((e=>e.rootIndex.rootIndex)).concat(a.addresses.map((e=>e.rootIndex))),proveByIndices:a.accounts.map((e=>e.rootIndex.proveByIndex)).concat(a.addresses.map((()=>0))),treeInfos:a.accounts.map((e=>e.merkleContext)).concat(a.addresses.map((e=>e.merkleContext))),leafIndices:a.accounts.map((e=>e.leafIndex)).concat(a.addresses.map((()=>0)))},context:i.result.context};{const e=await this.getStateTreeInfos(),t=a.merkleTrees.map((t=>t.equals(mt().addressTree)?{tree:t,queue:mt().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}:lo(e,t)));return{value:{compressedProof:a.compressedProof,roots:a.roots,rootIndices:a.rootIndices.map((e=>e)),leafIndices:a.leafIndices,leaves:a.leaves,treeInfos:t,proveByIndices:a.rootIndices.map((e=>e.proveByIndex))},context:i.result.context}}}async getAccountInfoInterface(e,t,r,n){Ze(),n=null!=n?n:ht();const o=$n(e.toBytes(),n.tree,t),[s,i]=await Promise.allSettled([this.getAccountInfo(e,r),this.getCompressedAccount(sr(o.toBytes()))]),a="fulfilled"===s.status?s.value:null,u="fulfilled"===i.status?i.value:null;return a?u?{accountInfo:a,loadContext:{treeInfo:u.treeInfo,hash:u.hash,leafIndex:u.leafIndex,proveByIndex:u.proveByIndex},isCold:0}:{accountInfo:a,loadContext:void 0,isCold:0}:u&&u.data&&u.data.data.length>0?{accountInfo:{executable:0,owner:u.owner,lamports:u.lamports.toNumber(),data:y.concat([y.from(u.data.discriminator),u.data.data])},loadContext:{treeInfo:u.treeInfo,hash:u.hash,leafIndex:u.leafIndex,proveByIndex:u.proveByIndex},isCold:1}:null}async getSignaturesForAddressInterface(e,t,r){Ze();const[n,o]=await Promise.allSettled([this.getSignaturesForAddress(e,t),this.getCompressionSignaturesForAddress(e,r)]),s="fulfilled"===n.status?n.value:[],i="fulfilled"===o.status?o.value.items:[];return{signatures:hi(s,i),solana:s,compressed:i}}async getSignaturesForOwnerInterface(e,t,r){Ze();const[n,o]=await Promise.allSettled([this.getSignaturesForAddress(e,t),this.getCompressionSignaturesForOwner(e,r)]),s="fulfilled"===n.status?n.value:[],i="fulfilled"===o.status?o.value.items:[];return{signatures:hi(s,i),solana:s,compressed:i}}async getTokenAccountBalanceInterface(e,t,r,n){Ze();const[o,s]=await Promise.allSettled([this.getTokenAccountBalance(e,n),this.getCompressedTokenBalancesByOwner(t,{mint:r})]);let i=sr(0),a=0,u=null;if("fulfilled"===o.status&&o.value){const e=o.value.value;i=sr(e.amount),a=e.decimals,u=e}let c=sr(0);if("fulfilled"===s.status){const e=s.value.items.filter((e=>e.mint.equals(r)));for(const t of e)c=c.add(t.balance)}return{amount:i.add(c),hasColdBalance:!c.isZero(),decimals:a,solana:u}}async getBalanceInterface(e,t){Ze();const[r,n]=await Promise.allSettled([this.getBalance(e,t),this.getCompressedBalanceByOwner(e)]),o="fulfilled"===r.status?sr(r.value):sr(0),s="fulfilled"===n.status?n.value:sr(0);return{total:o.isZero()?s:o,hasColdBalance:!s.isZero()}}}class fi extends e.Connection{constructor(e,t,r,n,o,s){super(e,o||{commitment:"confirmed"}),this.log=0,this.allStateTreeInfos=null,this.lastStateTreeFetchTime=null,this.fetchPromise=null,this.CACHE_TTL=36e5,this.compressionApiEndpoint=r,this.proverEndpoint=n;const{depth:i,log:a}=null!=s?s:{},{merkleTreeHeight:u}=mt();this.lightWasm=t,this.depth=null!=i?i:u,this.log=null!=a?a:0}async getCachedActiveStateTreeInfo(){}async getCachedActiveStateTreeInfos(){}async getStateTreeInfos(){return Zt()}async doFetch(){throw new Error("doFetch not supported in test-rpc")}async getAddressTreeInfoV2(){const t=new e.PublicKey(jt);return{tree:t,queue:t,cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}}async getCompressedAccount(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await Mo(this,t);return null!=r?r:null}async getCompressedBalance(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await Mo(this,t);if(!r)throw new Error("Account not found");return sr(r.lamports)}async getCompressedBalanceByOwner(e){return(await this.getCompressedAccountsByOwner(e)).items.reduce(((e,t)=>e.add(t.lamports)),sr(0))}async getCompressedAccountProof(e){return(await this.getMultipleCompressedAccountProofs([e]))[0]}async getMultipleCompressedAccounts(e){return await async function(e,t){return(await So(e)).filter((e=>t.some((t=>sr(e.hash).eq(t))))).sort(((e,t)=>t.leafIndex-e.leafIndex))}(this,e)}async confirmTransactionIndexed(e){return 1}async getMultipleCompressedAccountProofs(t){const r=await Io(this).then((e=>e.reverse())),n=new Map,o=await this.getStateTreeInfos();for(const e of r)for(let t=0;t<e.outputCompressedAccounts.length;t++){const r=e.outputCompressedAccountHashes[t],s=co(o,e.pubkeyArray[e.outputCompressedAccounts[t].merkleTreeIndex]);n.has(s.tree.toBase58())||n.set(s.tree.toBase58(),{leaves:[],leafIndices:[],treeInfo:s});const i=n.get(s.tree.toBase58());if(!i)throw new Error(`Tree not found: ${s.tree.toBase58()}`);i.leaves.push(r),i.leafIndices.push(e.outputLeafIndices[t])}const s=new Map;for(const[r,{leaves:o,treeInfo:i}]of n.entries()){const a=new e.PublicKey(r);let u;if(i.treeType===exports.TreeType.StateV1)u=new bo(this.depth,this.lightWasm,o.map((e=>sr(e).toString())));else{if(i.treeType!==exports.TreeType.StateV2)throw new Error(`Invalid tree type: ${i.treeType} in test-rpc.ts`);u=new bo(32,this.lightWasm,[])}for(let e=0;e<t.length;e++){const r=o.findIndex((r=>sr(r).eq(t[e])));if(-1!==r)if(i.treeType===exports.TreeType.StateV1){const n=u.path(r).pathElements.map((e=>sr(e))),a=sr(u.root()),c={hash:sr(t[e].toArray("be",32)),treeInfo:i,leafIndex:r,merkleProof:n,proveByIndex:0,rootIndex:o.length,root:a};s.set(t[e].toString(),c)}else if(i.treeType===exports.TreeType.StateV2){const r=u._zeros.slice(0,-1).map((e=>sr(e))),o=sr(u.root()),c=n.get(a.toBase58()).leafIndices.findIndex((r=>t[e].eq(sr(n.get(a.toBase58()).leaves[r])))),l={hash:sr(t[e].toArray("be",32)),treeInfo:i,leafIndex:c,merkleProof:r,proveByIndex:1,rootIndex:0,root:o};s.set(t[e].toString(),l)}}}if(s.forEach(((e,t)=>{if(e.treeInfo.treeType===exports.TreeType.StateV1){const r=e.leafIndex,o=n.get(e.treeInfo.tree.toBase58()).leaves[r],s=sr(o);if(!s.eq(e.hash))throw new Error(`Mismatch at index ${t}: expected ${e.hash.toString()}, got ${s.toString()}`)}})),new Set(t.map((e=>{const t=s.get(e.toString());if(!t)throw new Error(`Proof not found for hash: ${e.toString()}`);return t.treeInfo.treeType}))).size>1)throw new Error("Requested hashes belong to different tree types (V1/V2)");return t.map((e=>{const t=s.get(e.toString());if(!t)throw new Error(`No proof found for hash: ${e.toString()}`);return t}))}async getCompressedAccountsByOwner(e,t){const r=await async function(e,t){return(await So(e)).filter((e=>e.owner.equals(t)))}(this,e);return{items:r,cursor:null}}async getLatestCompressionSignatures(e,t){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getLatestNonVotingSignatures(e){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getCompressedTokenAccountsByOwner(e,t){return await ko(this,e,t.mint)}async getCompressedTokenAccountsByDelegate(e,t){return await Po(this,e,t.mint)}async getCompressedTokenAccountBalance(e){const t=await Oo(this,e);return{amount:sr(t.parsed.amount)}}async getCompressedTokenBalancesByOwner(e,t){return{items:(await ko(this,e,t.mint)).items.map((e=>({balance:sr(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}async getCompressedTokenBalancesByOwnerV2(e,t){return{context:{slot:1},value:{items:(await ko(this,e,t.mint)).items.map((e=>({balance:sr(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}}async getCompressionSignaturesForAccount(e){throw new Error("getCompressionSignaturesForAccount not implemented in test-rpc")}async getTransactionWithCompressionInfo(e){throw new Error("getCompressedTransaction not implemented in test-rpc")}async getCompressionSignaturesForAddress(e,t){throw new Error("getSignaturesForAddress3 not implemented")}async getCompressionSignaturesForOwner(e,t){throw new Error("getSignaturesForOwner not implemented")}async getCompressionSignaturesForTokenOwner(e,t){throw new Error("getSignaturesForTokenOwner not implemented")}async getIndexerHealth(){return"ok"}async getIndexerSlot(){return 1}async getMultipleNewAddressProofs(e){const t=xo.default(),r=[];t.init();const n=[];for(let e=0;e<r.length;e++)t.append(sr(r[e]));for(let e=0;e<t.elements.length;e++){const r=t.hashElement(this.lightWasm,e);n.push(sr(r))}const o=new bo(this.depth,this.lightWasm,n.map((e=>sr(e).toString()))),s=[];for(let r=0;r<e.length;r++){const[n]=t.findLowElement(e[r]);if(!n)throw new Error("Address not found");const i=n.index,a=o.path(i).pathElements.map((e=>sr(e))),u=t.get(n.nextIndex).value,c={root:sr(o.root()),rootIndex:3,value:e[r],leafLowerRangeValue:n.value,leafHigherRangeValue:u,nextIndex:sr(n.nextIndex),merkleProofHashedIndexedElementLeaf:a,indexHashedIndexedElementLeaf:sr(n.index),treeInfo:{tree:mt().addressTree,queue:mt().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}};s.push(c)}return s}async getCompressedMintTokenHolders(e,t){throw new Error("getCompressedMintTokenHolders not implemented in test-rpc")}async getValidityProofAndRpcContext(e=[],t=[]){if(t.some((e=>!(e instanceof je))))throw new Error("AddressWithTree is not supported in test-rpc");return{value:await this.getValidityProofV0(e,t),context:{slot:1}}}async getValidityProof(e=[],t=[]){if(t.some((e=>!(e instanceof je))))throw new Error("AddressWithTree is not supported in test-rpc");let r;const n=[];if(0===e.length&&0===t.length)throw new Error("Empty input. Provide hashes and/or new addresses.");if(e.length>0&&0===t.length){for(const t of e){const e=await this.getCompressedAccount(void 0,t);if(!e)throw new Error("Account not found");n.push(e.treeInfo)}const t=n.some((e=>e.treeType===exports.TreeType.StateV1)),o=await this.getMultipleCompressedAccountProofs(e);if(t){const e=ui(o);r={compressedProof:await ai(this.proverEndpoint,"inclusion",e,this.log),roots:o.map((e=>e.root)),rootIndices:o.map((e=>e.rootIndex)),leafIndices:o.map((e=>e.leafIndex)),leaves:o.map((e=>sr(e.hash))),treeInfos:o.map((e=>e.treeInfo)),proveByIndices:o.map((e=>e.proveByIndex))}}else r={compressedProof:null,roots:o.map((()=>sr(0))),rootIndices:o.map((e=>e.rootIndex)),leafIndices:o.map((e=>e.leafIndex)),leaves:o.map((e=>sr(e.hash))),treeInfos:o.map((e=>e.treeInfo)),proveByIndices:o.map((e=>e.proveByIndex))}}else if(0===e.length&&t.length>0){const e=await this.getMultipleNewAddressProofs(t),n=ci(e);r={compressedProof:await ai(this.proverEndpoint,"new-address",n,this.log),roots:e.map((e=>e.root)),rootIndices:e.map((()=>3)),leafIndices:e.map((e=>e.indexHashedIndexedElementLeaf.toNumber())),leaves:e.map((e=>sr(e.value))),treeInfos:e.map((e=>e.treeInfo)),proveByIndices:e.map((()=>0))}}else{if(!(e.length>0&&t.length>0))throw new Error("Invalid input");{const n=await this.getMultipleCompressedAccountProofs(e),o=await this.getMultipleNewAddressProofs(t),s=n.map((e=>e.treeInfo)).some((e=>e.treeType===exports.TreeType.StateV1)),i=ci(o);let a;if(s){const e=ui(n);a=await ai(this.proverEndpoint,"combined",[e,i],1)}else a=await ai(this.proverEndpoint,"new-address",i,1);r={compressedProof:a,roots:n.map((e=>s?e.root:sr(0))).concat(o.map((e=>e.root))),rootIndices:n.map((e=>e.rootIndex)).concat(o.map((()=>3))),leafIndices:n.map((e=>e.leafIndex)).concat(o.map((e=>e.indexHashedIndexedElementLeaf.toNumber()))),leaves:n.map((e=>sr(e.hash))).concat(o.map((e=>sr(e.value)))),treeInfos:n.map((e=>e.treeInfo)).concat(o.map((e=>e.treeInfo))),proveByIndices:n.map((e=>e.proveByIndex)).concat(o.map((()=>0)))}}}return r}async getValidityProofV0(e=[],t=[]){return this.getValidityProof(e.map((e=>e.hash)),t.map((e=>e.address)))}async getValidityProofV2(e=[],t=[],r){const n=e.filter((e=>void 0!==e)).map((e=>({hash:e.hash,tree:e.treeInfo.tree,queue:e.treeInfo.queue}))),o=t.map((e=>({address:e.address,tree:e.treeInfo.tree,queue:e.treeInfo.queue})));return this.getValidityProofV0(n,o)}async getAccountInfoInterface(e,t,r){throw new Error("getAccountInfoInterface not implemented in TestRpc")}async getSignaturesForAddressInterface(e,t,r){throw new Error("getSignaturesForAddressInterface not implemented in TestRpc")}async getSignaturesForOwnerInterface(e,t,r){throw new Error("getSignaturesForOwnerInterface not implemented in TestRpc")}async getTokenAccountBalanceInterface(e,t,r,n){throw new Error("getTokenAccountBalanceInterface not implemented in TestRpc")}async getBalanceInterface(e,t){throw new Error("getBalanceInterface not implemented in TestRpc")}}let mi=1;const yi=xi(255),gi=xi(254),wi=xi(253),vi=xi(252);function xi(t){if(t||(t=mi,mi++),t>255)return e.Keypair.generate();const r=new Uint8Array(32);return r[31]=t,e.Keypair.fromSeed(r)}var bi,Ii,Ei,Ai,Ti,Mi,Si,_i;exports.UtxoErrorCode=void 0,(bi=exports.UtxoErrorCode||(exports.UtxoErrorCode={})).NEGATIVE_LAMPORTS="NEGATIVE_LAMPORTS",bi.NOT_U64="NOT_U64",bi.BLINDING_EXCEEDS_FIELD_SIZE="BLINDING_EXCEEDS_FIELD_SIZE",exports.SelectInUtxosErrorCode=void 0,(Ii=exports.SelectInUtxosErrorCode||(exports.SelectInUtxosErrorCode={})).FAILED_TO_FIND_UTXO_COMBINATION="FAILED_TO_FIND_UTXO_COMBINATION",Ii.INVALID_NUMBER_OF_IN_UTXOS="INVALID_NUMBER_OF_IN_UTXOS",exports.CreateUtxoErrorCode=void 0,(Ei=exports.CreateUtxoErrorCode||(exports.CreateUtxoErrorCode={})).OWNER_UNDEFINED="OWNER_UNDEFINED",Ei.INVALID_OUTPUT_UTXO_LENGTH="INVALID_OUTPUT_UTXO_LENGTH",Ei.UTXO_DATA_UNDEFINED="UTXO_DATA_UNDEFINED",exports.RpcErrorCode=void 0,(Ai=exports.RpcErrorCode||(exports.RpcErrorCode={})).CONNECTION_UNDEFINED="CONNECTION_UNDEFINED",Ai.RPC_PUBKEY_UNDEFINED="RPC_PUBKEY_UNDEFINED",Ai.RPC_METHOD_NOT_IMPLEMENTED="RPC_METHOD_NOT_IMPLEMENTED",Ai.RPC_INVALID="RPC_INVALID",exports.LookupTableErrorCode=void 0,(Ti=exports.LookupTableErrorCode||(exports.LookupTableErrorCode={})).LOOK_UP_TABLE_UNDEFINED="LOOK_UP_TABLE_UNDEFINED",Ti.LOOK_UP_TABLE_NOT_INITIALIZED="LOOK_UP_TABLE_NOT_INITIALIZED",exports.HashErrorCode=void 0,(exports.HashErrorCode||(exports.HashErrorCode={})).NO_POSEIDON_HASHER_PROVIDED="NO_POSEIDON_HASHER_PROVIDED",exports.ProofErrorCode=void 0,(Mi=exports.ProofErrorCode||(exports.ProofErrorCode={})).INVALID_PROOF="INVALID_PROOF",Mi.PROOF_INPUT_UNDEFINED="PROOF_INPUT_UNDEFINED",Mi.PROOF_GENERATION_FAILED="PROOF_GENERATION_FAILED",exports.MerkleTreeErrorCode=void 0,(Si=exports.MerkleTreeErrorCode||(exports.MerkleTreeErrorCode={})).MERKLE_TREE_NOT_INITIALIZED="MERKLE_TREE_NOT_INITIALIZED",Si.SOL_MERKLE_TREE_UNDEFINED="SOL_MERKLE_TREE_UNDEFINED",Si.MERKLE_TREE_UNDEFINED="MERKLE_TREE_UNDEFINED",Si.INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE="INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE",Si.MERKLE_TREE_INDEX_UNDEFINED="MERKLE_TREE_INDEX_UNDEFINED",Si.MERKLE_TREE_SET_SPACE_UNDEFINED="MERKLE_TREE_SET_SPACE_UNDEFINED",exports.UtilsErrorCode=void 0,(_i=exports.UtilsErrorCode||(exports.UtilsErrorCode={})).ACCOUNT_NAME_UNDEFINED_IN_IDL="ACCOUNT_NAME_UNDEFINED_IN_IDL",_i.PROPERTY_UNDEFINED="PROPERTY_UNDEFINED",_i.LOOK_UP_TABLE_CREATION_FAILED="LOOK_UP_TABLE_CREATION_FAILED",_i.UNSUPPORTED_ARCHITECTURE="UNSUPPORTED_ARCHITECTURE",_i.UNSUPPORTED_PLATFORM="UNSUPPORTED_PLATFORM",_i.ACCOUNTS_UNDEFINED="ACCOUNTS_UNDEFINED",_i.INVALID_NUMBER="INVALID_NUMBER";class Ci extends Error{constructor(e,t,r){super(`${e}: ${r}`),this.code=e,this.functionName=t,this.codeMessage=r}}exports.ADDRESS_QUEUE_ROLLOVER_FEE=Jt,exports.ADDRESS_TREE_NETWORK_FEE_V1=er,exports.ADDRESS_TREE_NETWORK_FEE_V2=tr,exports.ALICE=yi,exports.AccountProofResult=Ys,exports.AppendLeavesInputLayout=kr,exports.AppendNullifyCreateAddressInputsMetaLayout=Cr,exports.BETA_REQUIRED_ERROR=ze,exports.BOB=gi,exports.BalanceResult=Hs,exports.CHARLIE=wi,exports.COMPRESSED_TOKEN_PROGRAM_ID=yt,exports.COMPUTE_BUDGET_PATTERN=Je,exports.CTOKEN_PROGRAM_ID=gt,exports.CompressedAccountLayout=cr,exports.CompressedAccountResult=gs,exports.CompressedAccountResultV2=ws,exports.CompressedAccountsByOwnerResult=As,exports.CompressedAccountsByOwnerResultV2=Ts,exports.CompressedCpiContextLayout=yr,exports.CompressedMintTokenHoldersResult=Zs,exports.CompressedProofLayout=mr,exports.CompressedTokenAccountResult=xs,exports.CompressedTokenAccountResultV2=bs,exports.CompressedTokenAccountsByOwnerOrDelegateResult=Ms,exports.CompressedTokenAccountsByOwnerOrDelegateResultV2=Ss,exports.CompressedTransactionResult=Xs,exports.CompressedTransactionResultV2=ei,exports.CreateUtxoError=class extends Ci{},exports.DAVE=vi,exports.DEFAULT_MERKLE_TREE_HEIGHT=Yt,exports.DEFAULT_MERKLE_TREE_ROOTS=2800,exports.DEFAULT_ZERO="0",exports.FIELD_SIZE=Ge,exports.HIGHEST_ADDRESS_PLUS_ONE=Qe,exports.HashError=class extends Ci{},exports.HealthResult=Cs,exports.IDL={version:"1.2.0",name:"light_system_program",constants:[{name:"SOL_POOL_PDA_SEED",type:"bytes",value:"[115, 111, 108, 95, 112, 111, 111, 108, 95, 112, 100, 97]"}],instructions:[{name:"initCpiContextAccount",accounts:[{name:"feePayer",isMut:1,isSigner:1},{name:"cpiContextAccount",isMut:1,isSigner:0},{name:"associatedMerkleTree",isMut:0,isSigner:0}],args:[]},{name:"invoke",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpi",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpiWithReadOnly",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"stubIdlBuild",docs:["This function is a stub to allow Anchor to include the input types in","the IDL. It should not be included in production builds nor be called in","practice."],accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs1",type:{defined:"InstructionDataInvoke"}},{name:"inputs2",type:{defined:"InstructionDataInvokeCpi"}},{name:"inputs3",type:{defined:"PublicTransactionEvent"}}]}],accounts:[{name:"cpiContextAccount",docs:["Collects instruction data without executing a compressed transaction.","Signer checks are performed on instruction data.","Collected instruction data is combined with the instruction data of the executing cpi,","and executed as a single transaction.","This enables to use input compressed accounts that are owned by multiple programs,","with one zero-knowledge proof."],type:{kind:"struct",fields:[{name:"feePayer",type:"publicKey"},{name:"associatedMerkleTree",type:"publicKey"},{name:"context",type:{vec:{defined:"InstructionDataInvokeCpi"}}}]}}],types:[{name:"InstructionDataInvoke",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"}]}},{name:"NewAddressParamsPacked",type:{kind:"struct",fields:[{name:"seed",type:{array:["u8",32]}},{name:"addressQueueAccountIndex",type:"u8"},{name:"addressMerkleTreeAccountIndex",type:"u8"},{name:"addressMerkleTreeRootIndex",type:"u16"}]}},{name:"OutputCompressedAccountWithPackedContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleTreeIndex",type:"u8"}]}},{name:"CompressedProof",type:{kind:"struct",fields:[{name:"a",type:{array:["u8",32]}},{name:"b",type:{array:["u8",64]}},{name:"c",type:{array:["u8",32]}}]}},{name:"InstructionDataInvokeCpi",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"cpiContext",type:{option:{defined:"CompressedCpiContext"}}}]}},{name:"CompressedCpiContext",type:{kind:"struct",fields:[{name:"setContext",docs:["Is set by the program that is invoking the CPI to signal that is should","set the cpi context."],type:"bool"},{name:"firstSetContext",docs:["Is set to wipe the cpi context since someone could have set it before","with unrelated data."],type:"bool"},{name:"cpiContextAccountIndex",docs:["Index of cpi context account in remaining accounts."],type:"u8"}]}},{name:"CompressedAccount",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"lamports",type:"u64"},{name:"address",type:{option:{array:["u8",32]}}},{name:"data",type:{option:{defined:"CompressedAccountData"}}}]}},{name:"CompressedAccountData",type:{kind:"struct",fields:[{name:"discriminator",type:{array:["u8",8]}},{name:"data",type:"bytes"},{name:"dataHash",type:{array:["u8",32]}}]}},{name:"PackedCompressedAccountWithMerkleContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleContext",type:{defined:"PackedMerkleContext"}},{name:"rootIndex",docs:["Index of root used in inclusion validity proof."],type:"u16"},{name:"readOnly",docs:["Placeholder to mark accounts read-only unimplemented set to false."],type:"bool"}]}},{name:"PackedMerkleContext",type:{kind:"struct",fields:[{name:"merkleTreePubkeyIndex",type:"u8"},{name:"queuePubkeyIndex",type:"u8"},{name:"leafIndex",type:"u32"},{name:"proveByIndex",type:"bool"}]}},{name:"MerkleTreeSequenceNumber",type:{kind:"struct",fields:[{name:"pubkey",type:"publicKey"},{name:"seq",type:"u64"}]}},{name:"PublicTransactionEvent",type:{kind:"struct",fields:[{name:"inputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"outputLeafIndices",type:{vec:"u32"}},{name:"sequenceNumbers",type:{vec:{defined:"MerkleTreeSequenceNumber"}}},{name:"relayFee",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"pubkeyArray",type:{vec:"publicKey"}},{name:"message",type:{option:"bytes"}}]}}],errors:[{code:6e3,name:"SumCheckFailed",msg:"Sum check failed"},{code:6001,name:"SignerCheckFailed",msg:"Signer check failed"},{code:6002,name:"CpiSignerCheckFailed",msg:"Cpi signer check failed"},{code:6003,name:"ComputeInputSumFailed",msg:"Computing input sum failed."},{code:6004,name:"ComputeOutputSumFailed",msg:"Computing output sum failed."},{code:6005,name:"ComputeRpcSumFailed",msg:"Computing rpc sum failed."},{code:6006,name:"InvalidAddress",msg:"InvalidAddress"},{code:6007,name:"DeriveAddressError",msg:"DeriveAddressError"},{code:6008,name:"CompressedSolPdaUndefinedForCompressSol",msg:"CompressedSolPdaUndefinedForCompressSol"},{code:6009,name:"DecompressLamportsUndefinedForCompressSol",msg:"DecompressLamportsUndefinedForCompressSol"},{code:6010,name:"CompressedSolPdaUndefinedForDecompressSol",msg:"CompressedSolPdaUndefinedForDecompressSol"},{code:6011,name:"DeCompressLamportsUndefinedForDecompressSol",msg:"DeCompressLamportsUndefinedForDecompressSol"},{code:6012,name:"DecompressRecipientUndefinedForDecompressSol",msg:"DecompressRecipientUndefinedForDecompressSol"},{code:6013,name:"WriteAccessCheckFailed",msg:"WriteAccessCheckFailed"},{code:6014,name:"InvokingProgramNotProvided",msg:"InvokingProgramNotProvided"},{code:6015,name:"InvalidCapacity",msg:"InvalidCapacity"},{code:6016,name:"InvalidMerkleTreeOwner",msg:"InvalidMerkleTreeOwner"},{code:6017,name:"ProofIsNone",msg:"ProofIsNone"},{code:6018,name:"ProofIsSome",msg:"Proof is some but no input compressed accounts or new addresses provided."},{code:6019,name:"EmptyInputs",msg:"EmptyInputs"},{code:6020,name:"CpiContextAccountUndefined",msg:"CpiContextAccountUndefined"},{code:6021,name:"CpiContextEmpty",msg:"CpiContextEmpty"},{code:6022,name:"CpiContextMissing",msg:"CpiContextMissing"},{code:6023,name:"DecompressionRecipientDefined",msg:"DecompressionRecipientDefined"},{code:6024,name:"SolPoolPdaDefined",msg:"SolPoolPdaDefined"},{code:6025,name:"AppendStateFailed",msg:"AppendStateFailed"},{code:6026,name:"InstructionNotCallable",msg:"The instruction is not callable"},{code:6027,name:"CpiContextFeePayerMismatch",msg:"CpiContextFeePayerMismatch"},{code:6028,name:"CpiContextAssociatedMerkleTreeMismatch",msg:"CpiContextAssociatedMerkleTreeMismatch"},{code:6029,name:"NoInputs",msg:"NoInputs"},{code:6030,name:"InputMerkleTreeIndicesNotInOrder",msg:"Input merkle tree indices are not in ascending order."},{code:6031,name:"OutputMerkleTreeIndicesNotInOrder",msg:"Output merkle tree indices are not in ascending order."},{code:6032,name:"OutputMerkleTreeNotUnique"},{code:6033,name:"DataFieldUndefined"},{code:6034,name:"ReadOnlyAddressAlreadyExists"},{code:6035,name:"ReadOnlyAccountDoesNotExist"},{code:6036,name:"HashChainInputsLenghtInconsistent"},{code:6037,name:"InvalidAddressTreeHeight"},{code:6038,name:"InvalidStateTreeHeight"}]},exports.INSERT_INTO_QUEUES_DISCRIMINATOR=nt,exports.INVOKE_CPI_DISCRIMINATOR=et,exports.INVOKE_CPI_WITH_ACCOUNT_INFO_DISCRIMINATOR=rt,exports.INVOKE_CPI_WITH_READ_ONLY_DISCRIMINATOR=tt,exports.INVOKE_DISCRIMINATOR=Xe,exports.InAccountLayout=vr,exports.IndexedArray=xo,exports.IndexedElement=wo,exports.IndexedElementBundle=vo,exports.InsertAddressInputLayout=Or,exports.InsertNullifierInputLayout=Pr,exports.InstructionDataInvokeCpiLayout=fr,exports.InstructionDataInvokeCpiWithReadOnlyLayout=Ir,exports.InstructionDataInvokeLayout=hr,exports.LatestNonVotingSignaturesResult=ks,exports.LatestNonVotingSignaturesResultPaginated=Ps,exports.LightSystemProgram=yo,exports.LookupTableError=class extends Ci{},exports.MerkleContextLayout=lr,exports.MerkleProofResult=Os,exports.MerkleProofResultV2=Rs,exports.MerkleTree=bo,exports.MerkleTreeError=class extends Ci{},exports.MerkleTreeSequenceNumberLayout=Rr,exports.MultipleCompressedAccountsResult=Is,exports.MultipleCompressedAccountsResultV2=Es,exports.MultipleMerkleProofsResult=qs,exports.MultipleMerkleProofsResultV2=Ks,exports.NativeBalanceResult=Ws,exports.NewAddressParamsAssignedPackedLayout=gr,exports.NewAddressParamsLayout=dr,exports.NewAddressProofResult=Ls,exports.PackedAccounts=Gn,exports.PackedMerkleContextLayout=wr,exports.PackedReadOnlyAddressLayout=xr,exports.PackedReadOnlyCompressedAccountLayout=br,exports.ProofError=class extends Ci{},exports.PublicTransactionEventLayout=Sr,exports.RootIndexResultV2=Ns,exports.Rpc=pi,exports.RpcError=class extends Ci{},exports.STATE_MERKLE_TREE_NETWORK_FEE=Xt,exports.STATE_MERKLE_TREE_ROLLOVER_FEE=Qt,exports.SelectInUtxosError=class extends Ci{},exports.SignatureListResult=Gs,exports.SignatureListWithCursorResult=Qs,exports.SignatureSource=ti,exports.SlotResult=_s,exports.SystemAccountMetaConfig=Qn,exports.TRANSACTION_MERKLE_TREE_ROLLOVER_THRESHOLD=Gt,exports.TestRpc=fi,exports.TokenBalanceListResult=$s,exports.TokenBalanceListResultV2=zs,exports.TokenBalanceResult=js,exports.TokenDataResult=vs,exports.UTXO_MERGE_MAXIMUM=10,exports.UTXO_MERGE_THRESHOLD=20,exports.UtilsError=class extends Ci{},exports.UtxoError=class extends Ci{},exports.ValidityProofResult=Ds,exports.ValidityProofResultV2=Fs,exports.accountCompressionProgram=it,exports.addressQueue=Mt,exports.addressTree=Tt,exports.airdropSol=async function({connection:e,lamports:t,recipientPublicKey:r}){const n=await e.requestAirdrop(r,t);return await Zn(e,n),n},exports.assertBetaEnabled=Ze,exports.batchAddressTree=jt,exports.batchCpiContext1=Ot,exports.batchCpiContext2=Bt,exports.batchCpiContext3=Ut,exports.batchCpiContext4=qt,exports.batchCpiContext5=Wt,exports.batchMerkleTree=$t,exports.batchMerkleTree1=kt,exports.batchMerkleTree2=Rt,exports.batchMerkleTree3=Nt,exports.batchMerkleTree4=Vt,exports.batchMerkleTree5=Kt,exports.batchQueue=zt,exports.batchQueue1=Pt,exports.batchQueue2=Lt,exports.batchQueue3=Dt,exports.batchQueue4=Ft,exports.batchQueue5=Ht,exports.bn=sr,exports.bufToDecStr=e=>nr(e).toString(),exports.buildAndSignTx=uo,exports.buildTx=so,exports.byteArrayToKeypair=function(t){return e.Keypair.fromSecretKey(Uint8Array.from(t))},exports.calculateComputeUnitPrice=function(e,t){return Math.ceil(1e6*e/t)},exports.checkValidityProofShape=e=>{if(32!==e.a.length||64!==e.b.length||32!==e.c.length)throw new Error("ValidityProof has invalid shape")},exports.compress=async function(t,r,n,o,s,i){const{blockhash:a}=await t.getLatestBlockhash();s||(s=ho(await t.getStateTreeInfos()));const u=await yo.compress({payer:r.publicKey,toAddress:o,lamports:n,outputStateTreeInfo:s}),c=uo([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),u],r,a,[]);return await io(t,c,i)},exports.confirmConfig={commitment:"confirmed",preflightCommitment:"confirmed"},exports.confirmTransaction=Zn,exports.confirmTx=ao,exports.convertInvokeCpiWithReadOnlyToInvoke=Kn,exports.convertMerkleProofsWithContextToHex=ui,exports.convertNonInclusionMerkleProofInputsToHex=ci,exports.convertToPublicTransactionEvent=Br,exports.cpiContext2Pubkey=Ct,exports.cpiContextPubkey=Et,exports.createAccount=async function(t,r,n,o,s,i,a){const{blockhash:u}=await t.getLatestBlockhash(),c=null!=s?s:pt(),{tree:l,queue:d}=c,h=c.treeType===exports.TreeType.AddressV2;if($e.isV2()||h)throw new Error("You are using V2. create-account/create-address is only supported via CPI.");const p=Hn(n,o),f=Wn(p,l);i||(i=ho(await t.getStateTreeInfos()));const m=await t.getValidityProofV0(void 0,[{address:sr(f.toBytes()),tree:l,queue:d}]),y={seed:p,addressMerkleTreeRootIndex:m.rootIndices[0],addressMerkleTreePubkey:m.treeInfos[0].tree,addressQueuePubkey:m.treeInfos[0].queue},g=await yo.createAccount({payer:r.publicKey,newAddressParams:y,newAddress:Array.from(f.toBytes()),recentValidityProof:m.compressedProof,programId:o,outputStateTreeInfo:i}),w=uo([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),g],r,u,[]);return await io(t,w,a)},exports.createAccountWithLamports=async function(t,r,n,o,s,i,a,u){o=sr(o);const c=await t.getCompressedAccountsByOwner(r.publicKey),[l]=go(c.items,o),{blockhash:d}=await t.getLatestBlockhash(),h=null!=i?i:pt(),{tree:p}=h,f=h.treeType===exports.TreeType.AddressV2;if($e.isV2()||f)throw new Error("You are using V2. create-account/create-address is only supported via CPI.");const m=Hn(n,s),y=Wn(m,p),g=await t.getValidityProof(l.map((e=>e.hash)),[sr(y.toBytes())]),w={seed:m,addressMerkleTreeRootIndex:g.rootIndices[g.rootIndices.length-1],addressMerkleTreePubkey:g.treeInfos[g.treeInfos.length-1].tree,addressQueuePubkey:g.treeInfos[g.treeInfos.length-1].queue},v=await yo.createAccount({payer:r.publicKey,newAddressParams:w,newAddress:Array.from(y.toBytes()),recentValidityProof:g.compressedProof,inputCompressedAccounts:l,inputStateRootIndices:g.rootIndices,outputStateTreeInfo:a}),x=uo([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),v],r,d,[]);return await io(t,x,u)},exports.createBN254=nr,exports.createCompressedAccountLegacy=ir,exports.createCompressedAccountMeta=(e,t,r,n)=>({treeInfo:e,outputStateTreeIndex:t,address:null!=r?r:null,lamports:null!=n?n:null}),exports.createCompressedAccountWithMerkleContextLegacy=ar,exports.createMerkleContextLegacy=ur,exports.createRpc=function(t,r,n,o){let s;if(t)if("string"==typeof t)s=t,r=r||s,n=n||s;else{if(!(t instanceof e.Connection))throw new Error("Invalid endpoint or connection type");s=t.rpcEndpoint,r=r||s,n=n||s}else s="http://127.0.0.1:8899",r=r||"http://127.0.0.1:8784",n=n||"http://127.0.0.1:3001";var i;return i=s.toLowerCase().includes("devnet"),ri=i,new pi(s,r,n,o)},exports.createRpcResult=ls,exports.createStateTreeLookupTable=async function({connection:t,payer:r,authority:n,recentSlot:o}){const[s,i]=e.AddressLookupTableProgram.createLookupTable({payer:r.publicKey,authority:n.publicKey,recentSlot:o}),a=uo([s],r,(await t.getLatestBlockhash()).blockhash,Yn(r,[n]));return{address:i,txId:await io(t,a)}},exports.decodeInstructionDataInvoke=Ar,exports.decodeInstructionDataInvokeCpi=Tr,exports.decodeInstructionDataInvokeCpiWithReadOnly=Er,exports.decodePublicTransactionEvent=_r,exports.decompress=async function(t,r,n,o,s){const i=(await t.getCompressedAccountsByOwner(r.publicKey)).items;n=sr(n);const a=fo(i);if(n.gt(a))throw new Error(`Not enough compressed lamports. Expected ${n}, got ${a}`);const u=await t.getValidityProof(i.map((e=>sr(e.hash)))),{blockhash:c}=await t.getLatestBlockhash(),l=await yo.decompress({payer:r.publicKey,toAddress:o,inputCompressedAccounts:i,recentValidityProof:u.compressedProof,recentInputStateRootIndices:u.rootIndices,lamports:n}),d=uo([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),l],r,c,[]);return await io(t,d,s)},exports.dedupeSigner=Yn,exports.deepEqual=function e(t,r){if(typeof t!=typeof r)return console.log(`Type mismatch: ${typeof t} !== ${typeof r}`),0;if(t instanceof je&&r instanceof je)return t.eq(r);if("object"==typeof t&&null!==t&&null!==r){const n=Object.keys(t),o=Object.keys(r);if(n.length!==o.length)return console.log(`Key length mismatch: ${n.length} !== ${o.length}`),0;for(const s of n){if(!o.includes(s))return console.log(`Key ${s} not found in value`),0;if(!e(t[s],r[s]))return console.log(`Value mismatch at key ${s}`),0}return 1}return t!==r&&console.log(`Value mismatch: ${t} !== ${r}`),t===r},exports.defaultStateTreeLookupTables=lt,exports.defaultStaticAccounts=()=>[new e.PublicKey(at()),new e.PublicKey(ot),new e.PublicKey(it),new e.PublicKey(ut())],exports.defaultStaticAccountsStruct=ct,exports.defaultTestStateTreeAccounts=mt,exports.defaultTestStateTreeAccounts2=()=>({nullifierQueue2:new e.PublicKey(_t),merkleTree2:new e.PublicKey(St)}),exports.deriveAddress=function(e,t,r){const n=$e.isV2();if(void 0===r){if(n)throw new Error("deriveAddress: programId is required in V2 mode. Pass programId as the third argument. If you need V1 behavior, set LIGHT_PROTOCOL_VERSION=V1.");return Wn(e,t)}if(!n)throw new Error("deriveAddress: programId must not be passed in V1 mode. Omit programId from deriveAddress. If you need V2 behavior, set LIGHT_PROTOCOL_VERSION=V2.");return $n(e,t,r)},exports.deriveAddressLegacy=Wn,exports.deriveAddressSeed=function(e,t){const r=$e.isV2();if(void 0!==t){if(r)throw new Error("deriveAddressSeed: programId must not be passed in V2 mode. For V2, omit programId here and pass it to deriveAddress instead. If you need V1 behavior, set LIGHT_PROTOCOL_VERSION=V1.");return Hn(e,t)}if(!r)throw new Error("deriveAddressSeed: programId is required in V1 mode. Pass programId as the second argument. If you need V2 behavior, set LIGHT_PROTOCOL_VERSION=V2.");return jn(e)},exports.deriveAddressSeedLegacy=Hn,exports.deriveAddressSeedV2=jn,exports.deriveAddressV2=$n,exports.deserializeAppendNullifyCreateAddressInputsIndexer=Lr,exports.encodeBN254toBase58=or,exports.encodeInstructionDataInvoke=pr,exports.encodePublicTransactionEvent=function(e){const t=y.alloc(1e3),r=Sr.encode(e,t);return t.slice(0,r)},exports.extendStateTreeLookupTable=async function({connection:t,tableAddress:r,newStateTreeAddresses:n,newQueueAddresses:o,newCpiContextAddresses:s,payer:i,authority:a}){const u=await t.getAddressLookupTable(r);if(!u.value)throw new Error("Lookup table not found");if(u.value.state.addresses.length%3!=0)throw new Error("Lookup table must have a multiple of 3 addresses");if(n.length!==o.length||n.length!==s.length)throw new Error("Same number of newStateTreeAddresses, newQueueAddresses, and newCpiContextAddresses required");const c=uo([e.AddressLookupTableProgram.extendLookupTable({payer:i.publicKey,authority:a.publicKey,lookupTable:r,addresses:n.flatMap(((e,t)=>[e,o[t],s[t]]))})],i,(await t.getLatestBlockhash()).blockhash,Yn(i,[a]));return{tableAddress:r,txId:await io(t,c)}},exports.featureFlags=$e,exports.getAccountCompressionAuthority=ut,exports.getAllStateTreeInfos=po,exports.getBatchAddressTreeInfo=ft,exports.getCompressedTokenAccountByHashTest=Oo,exports.getCompressedTokenAccounts=Co,exports.getCompressedTokenAccountsByDelegateTest=Po,exports.getCompressedTokenAccountsByOwnerTest=ko,exports.getConnection=function(){return new e.Connection("http://127.0.0.1:8899","confirmed")},exports.getDefaultAddressSpace=ht,exports.getDefaultAddressTreeInfo=pt,exports.getIndexOrAdd=Nr,exports.getLightSystemAccountMetas=function(e){return $e.isV2()?Xn(e):Jn(e)},exports.getLightSystemAccountMetasLegacy=Jn,exports.getLightSystemAccountMetasV2=Xn,exports.getOutputQueue=function(e){var t,r;return null!==(r=null===(t=e.treeInfo.nextTreeInfo)||void 0===t?void 0:t.queue)&&void 0!==r?r:e.treeInfo.queue},exports.getOutputTreeInfo=function(e){var t;return null!==(t=e.treeInfo.nextTreeInfo)&&void 0!==t?t:e.treeInfo},exports.getParsedEvents=Io,exports.getPublicInputHash=function(e,t,r,n){const o=li(e.map((e=>e.root)),t,n),s=r.map((e=>e.value)),i=li(r.map((e=>e.root)),s,n);return i.isZero()?o.isZero()?li([o],[i],n):o:i},exports.getRegisteredProgramPda=at,exports.getStateTreeInfoByPubkey=co,exports.getTestKeypair=xi,exports.getTestRpc=async function(e,t="http://127.0.0.1:8899",r="http://127.0.0.1:8784",n="http://127.0.0.1:3001",o,s=0){return new fi(t,e,r,n,void 0,{depth:o||mt().merkleTreeHeight,log:s})},exports.getTreeInfoByPubkey=lo,exports.hashToBn254FieldSizeBe=Vn,exports.hashvToBn254FieldSizeBe=qn,exports.hashvToBn254FieldSizeBeU8Array=Fn,exports.invokeAccountsLayout=Mr,exports.isDevnetCompat=function(){return ri},exports.isLocalTest=dt,exports.isSmallerThanBn254FieldSizeBe=Dn,exports.jsonRpcResult=hs,exports.jsonRpcResultAndContext=ps,exports.lightSystemProgram=st,exports.localTestActiveStateTreeInfos=Zt,exports.mergeSignatures=hi,exports.merkleTree2Pubkey=St,exports.merkletreePubkey=At,exports.negateAndCompressProof=to,exports.newAccountWithLamports=async function(e,t=1e9,r){(void 0===r||r>255)&&(r=256);const n=xi(r),o=await e.requestAirdrop(n.publicKey,t);return await ao(e,o),n},exports.noopProgram=ot,exports.nullifiedStateTreeLookupTableDevnet=bt,exports.nullifiedStateTreeLookupTableMainnet=vt,exports.nullifierQueue2Pubkey=_t,exports.nullifierQueuePubkey=It,exports.nullifyLookupTable=async function({connection:t,fullStateTreeAddress:r,nullifyLookupTableAddress:n,stateTreeLookupTableAddress:o,payer:s,authority:i}){const a=await t.getAddressLookupTable(o);if(!a.value)throw console.log("stateTreeLookupTable",a),new Error("State tree lookup table not found");if(!a.value.state.addresses.map((e=>e.toBase58())).includes(r.toBase58()))throw console.log("fullStateTreeAddress",r),console.log("stateTreeLookupTable.value.state.addresses",a.value.state.addresses),new Error("State tree address not found in lookup table. Pass correct address or stateTreeLookupTable");const u=await t.getAddressLookupTable(n);if(!u.value)throw new Error("Nullify table not found");if(u.value.state.addresses.map((e=>e.toBase58())).includes(r.toBase58()))throw new Error("Address already exists in nullify lookup table");const c=uo([e.AddressLookupTableProgram.extendLookupTable({payer:s.publicKey,authority:i.publicKey,lookupTable:n,addresses:[r]})],s,(await t.getLatestBlockhash()).blockhash,Yn(s,[i]));return{txId:await io(t,c)}},exports.packCompressedAccounts=Vr,exports.packDecompressAccountsIdempotent=async function(e,t,r,n){const o=[],s=new Map,i=(e,t)=>{const r=e.toBase58();if(!s.has(r)){const n=o.length;return o.push({pubkey:e,isSigner:0,isWritable:t}),s.set(r,n),n}return s.get(r)},a=r.map((e=>{const t=i(e.treeInfo.tree,1),r=i(e.treeInfo.queue,1);return{[e.key]:e.data,merkleContext:{merkleTreePubkeyIndex:t,queuePubkeyIndex:r}}})),u=o.length;return n.forEach((e=>{i(e,1)})),{proofOption:{0:t.compressedProof},compressedAccounts:a,systemAccountsOffset:u,remainingAccounts:o}},exports.packNewAddressParams=zn,exports.packTreeInfos=function(e,t,r){const n=e.slice(),o=[],s=[];let i=-1;if(0===t.length&&0===r.length)return{stateTrees:void 0,addressTrees:s};if(t.forEach((e=>{const t=Nr(n,e.treeInfo.tree),r=Nr(n,e.treeInfo.queue);o.push({rootIndex:e.rootIndex,merkleTreePubkeyIndex:t,queuePubkeyIndex:r,leafIndex:e.leafIndex,proveByIndex:e.proveByIndex})})),o.length>0){const e=t[0].treeInfo.nextTreeInfo||t[0].treeInfo;let r=e.tree;if(e.treeType===exports.TreeType.StateV2){if(!$e.isV2())throw new Error("V2 trees are not supported yet");r=e.queue}i=Nr(n,r)}return r.forEach((e=>{const t=Nr(n,e.treeInfo.tree),r=Nr(n,e.treeInfo.queue);s.push({rootIndex:e.rootIndex,addressMerkleTreePubkeyIndex:t,addressQueuePubkeyIndex:r})})),{stateTrees:o.length>0?{packedTreeInfos:o,outputTreeIndex:i}:void 0,addressTrees:s}},exports.padOutputStateMerkleTrees=Dr,exports.parseAccountData=ni,exports.parseEvents=Eo,exports.parseLightTransaction=To,exports.parsePublicTransactionEventWithIdl=Ao,exports.parseTokenLayoutWithIdl=_o,exports.pickRandomTreeAndQueue=function(e){const t=e.length,r=Math.floor(Math.random()*t);let n;if(void 0!==r){if(r<0||r>=e.length)throw new Error(`Index ${r} out of bounds for infos array of length ${e.length}`);n=r}else n=Math.floor(Math.random()*e.length);return e[n]},exports.pipe=function(e,...t){return r=>t.reduce(((e,t)=>t(e)),e(r))},exports.placeholderValidityProof=()=>({a:Array.from({length:32},((e,t)=>t+1)),b:Array.from({length:64},((e,t)=>t+1)),c:Array.from({length:32},((e,t)=>t+1))}),exports.proofFromJsonStruct=eo,exports.proverRequest=ai,exports.pushUniqueItems=function(e,t){e.forEach((e=>{t.includes(e)||t.push(e)}))},exports.rpcRequest=ii,exports.selectMinCompressedSolAccountsForTransfer=go,exports.selectStateTreeInfo=ho,exports.sendAndConfirmTx=io,exports.sleep=function(e){return new Promise((t=>setTimeout(t,e)))},exports.stateTreeLookupTableDevnet=xt,exports.stateTreeLookupTableMainnet=wt,exports.sumUpLamports=fo,exports.toAccountMetas=Ur,exports.toArray=e=>Array.isArray(e)?e:[e],exports.toCamelCase=Un,exports.toHex=Nn,exports.toUnixTimestamp=e=>new Date(e).getTime(),exports.transfer=async function(t,r,n,o,s,i){var a;let u=sr(0);const c=[];let l;for(n=sr(n);u.lt(n);){const e={filters:void 0,dataSlice:void 0,cursor:l,limit:sr(1e3)},r=await t.getCompressedAccountsByOwner(o.publicKey,e);for(const e of r.items)e.lamports.gt(sr(0))&&(c.push(e),u=u.add(e.lamports));if(l=null!==(a=r.cursor)&&void 0!==a?a:void 0,r.items.length<1e3||u.gte(n))break}if(u.lt(n))throw new Error(`Insufficient balance for transfer. Required: ${n.toString()}, available: ${u.toString()}`);const[d]=go(c,n),h=await t.getValidityProof(d.map((e=>sr(e.hash)))),p=await yo.transfer({payer:r.publicKey,inputCompressedAccounts:d,toAddress:s,lamports:n,recentInputStateRootIndices:h.rootIndices,recentValidityProof:h.compressedProof}),{blockhash:f}=await t.getLatestBlockhash(),m=uo([e.ComputeBudgetProgram.setComputeUnitLimit({units:35e4}),p],r,f);return await io(t,m,i)},exports.validateNumbers=jr,exports.validateNumbersForInclusionProof=Hr,exports.validateNumbersForNonInclusionProof=Wr,exports.validateNumbersForProof=Kr,exports.validateSameOwner=qr,exports.validateSufficientBalance=Fr,exports.versionedEndpoint=Ye,exports.wrapBigNumbersAsStrings=si;
2
2
  //# sourceMappingURL=index.cjs.map