diff --git a/app/build.gradle b/app/build.gradle index 295f869..c44be28 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -195,6 +195,7 @@ preBuild { XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile)) } catch (FileNotFoundException ignored) { // nop, iml not found + println 'iml not found' } } } diff --git a/app/lint.xml b/app/lint.xml index 28bcde0..2ba55d7 100644 --- a/app/lint.xml +++ b/app/lint.xml @@ -26,4 +26,5 @@ + \ No newline at end of file diff --git a/app/src/main/assets/bundleMap.json b/app/src/main/assets/bundleMap.json index a7f0416..1096606 100644 --- a/app/src/main/assets/bundleMap.json +++ b/app/src/main/assets/bundleMap.json @@ -1,3 +1,3 @@ { - "BTC": "BTC.bundle_94e3c1790748ac7fc876.js" + "BTC": "BTC.bundle_a521a1b83cf8627d0ce5.js" } \ No newline at end of file diff --git a/app/src/main/assets/script/BTC.bundle_94e3c1790748ac7fc876.js b/app/src/main/assets/script/BTC.bundle_a521a1b83cf8627d0ce5.js similarity index 69% rename from app/src/main/assets/script/BTC.bundle_94e3c1790748ac7fc876.js rename to app/src/main/assets/script/BTC.bundle_a521a1b83cf8627d0ce5.js index d87050c..e643763 100644 --- a/app/src/main/assets/script/BTC.bundle_94e3c1790748ac7fc876.js +++ b/app/src/main/assets/script/BTC.bundle_a521a1b83cf8627d0ce5.js @@ -1,2 +1,2 @@ -/*! For license information please see BTC.bundle_94e3c1790748ac7fc876.js.LICENSE.txt */ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=313)}([function(e,t,r){"use strict";(function(e){var n=r(120),i=r(121),f=r(55);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function l(e,t){if(c.isBuffer(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=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return K(e).length;default:if(n)return q(e).length;t=(""+t).toLowerCase(),n=!0}}function b(e,t,r){var n=!1;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 x(this,t,r);case"utf8":case"utf-8":return k(this,t,r);case"ascii":return T(this,t,r);case"latin1":case"binary":return P(this,t,r);case"base64":return I(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,i){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=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:v(e,t,r,n,i);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,n,i){var f,o=1,a=e.length,c=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;o=2,a/=2,c/=2,r/=2}function s(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(f=r;fa&&(r=a-c),f=r;f>=0;f--){for(var d=!0,h=0;hi&&(n=i):n=i;var f=t.length;if(f%2!=0)throw new TypeError("Invalid hex string");n>f/2&&(n=f/2);for(var o=0;o>8,i=r%256,f.push(i),f.push(n);return f}(t,e.length-r),e,r,n)}function I(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function k(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:s>223?3:s>191?2:1;if(i+d<=r)switch(d){case 1:s<128&&(u=s);break;case 2:128==(192&(f=e[i+1]))&&(c=(31&s)<<6|63&f)>127&&(u=c);break;case 3:f=e[i+1],o=e[i+2],128==(192&f)&&128==(192&o)&&(c=(15&s)<<12|(63&f)<<6|63&o)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:f=e[i+1],o=e[i+2],a=e[i+3],128==(192&f)&&128==(192&o)&&128==(192&a)&&(c=(15&s)<<18|(63&f)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},c.prototype.compare=function(e,t,r,n,i){if(!c.isBuffer(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===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var f=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),a=Math.min(f,o),s=this.slice(n,i),u=e.slice(t,r),d=0;di)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var f=!1;;)switch(n){case"hex":return g(this,e,t,r);case"utf8":case"utf-8":return w(this,e,t,r);case"ascii":return _(this,e,t,r);case"latin1":case"binary":return S(this,e,t,r);case"base64":return E(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,r);default:if(f)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),f=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",f=t;fr)throw new RangeError("Trying to access beyond buffer length")}function B(e,t,r,n,i,f){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function N(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,f=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function R(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,f=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function C(e,t,r,n,i,f){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(e,t,r,n,f){return f||C(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function L(e,t,r,n,f){return f||C(e,0,r,8),i.write(e,t,r,n,52,8),r+8}c.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),t0&&(i*=256);)n+=this[e+--t]*i;return n},c.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],i=1,f=0;++f=(i*=128)&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,i=1,f=this[e+--n];n>0&&(i*=256);)f+=this[e+--n]*i;return f>=(i*=128)&&(f-=Math.pow(2,8*t)),f},c.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||B(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,f=0;for(this[t]=255&e;++f=0&&(f*=256);)this[t+i]=e/f&255;return t+r},c.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);B(this,e,t,r,i-1,-i)}var f=0,o=1,a=0;for(this[t]=255&e;++f>0)-a&255;return t+r},c.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);B(this,e,t,r,i-1,-i)}var f=r-1,o=1,a=0;for(this[t+f]=255&e;--f>=0&&(o*=256);)e<0&&0===a&&0!==this[t+f+1]&&(a=1),this[t+f]=(e/o>>0)-a&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return L(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return L(this,e,t,!1,r)},c.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=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=0;--i)e[i+t]=this[i+r];else if(f<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(f=t;f55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&f.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&f.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&f.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&f.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;f.push(r)}else if(r<2048){if((t-=2)<0)break;f.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;f.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;f.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return f}function K(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(D,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function H(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}}).call(this,r(6))},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},function(e,t,r){(function(e){!function(e,t){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function f(e,t,r){if(f.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 o;"object"==typeof e?e.exports=f:t.BN=f,f.BN=f,f.wordSize=26;try{o=r(125).Buffer}catch(e){}function a(e,t,r){for(var n=0,i=Math.min(e.length,r),f=t;f=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function c(e,t,r,n){for(var i=0,f=Math.min(e.length,r),o=t;o=49?a-49+10:a>=17?a-17+10:a}return i}f.isBN=function(e){return e instanceof f||null!==e&&"object"==typeof e&&e.constructor.wordSize===f.wordSize&&Array.isArray(e.words)},f.max=function(e,t){return e.cmp(t)>0?e:t},f.min=function(e,t){return e.cmp(t)<0?e:t},f.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&i++,16===t?this._parseHex(e,i):this._parseBase(e,t,i),"-"===e[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),t,r)},f.prototype._initNumber=function(e,t,r){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):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},f.prototype._initArray=function(e,t,r){if(n("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 i=0;i=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[f]|=o<>>26-a&67108863,(a+=24)>=26&&(a-=26,f++);else if("le"===r)for(i=0,f=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,f++);return this.strip()},f.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=6)i=a(e,r,r+6),this.words[n]|=i<>>26-f&4194303,(f+=24)>=26&&(f-=26,n++);r+6!==t&&(i=a(e,t,r+6),this.words[n]|=i<>>26-f&4194303),this.strip()},f.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var f=e.length-r,o=f%n,a=Math.min(f,f-o)+r,s=0,u=r;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},f.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},f.prototype.inspect=function(){return(this.red?""};var s=["","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"],u=[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],d=[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 h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],f=0|t.words[0],o=i*f,a=67108863&o,c=o/67108864|0;r.words[0]=a;for(var s=1;s>>26,d=67108863&c,h=Math.min(s,t.length-1),p=Math.max(0,s-e.length+1);p<=h;p++){var l=s-p|0;u+=(o=(i=0|e.words[l])*(f=0|t.words[p])+d)/67108864|0,d=67108863&o}r.words[s]=0|d,c=0|u}return 0!==c?r.words[s]=0|c:r.length--,r.strip()}f.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,f=0,o=0;o>>24-i&16777215)||o!==this.length-1?s[6-c.length]+c+r:c+r,(i+=2)>=26&&(i-=26,o--)}for(0!==f&&(r=f.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var h=u[e],p=d[e];r="";var l=this.clone();for(l.negative=0;!l.isZero();){var b=l.modn(p).toString(e);r=(l=l.idivn(p)).isZero()?b+r:s[h-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},f.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&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},f.prototype.toJSON=function(){return this.toString(16)},f.prototype.toBuffer=function(e,t){return n(void 0!==o),this.toArrayLike(o,e,t)},f.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},f.prototype.toArrayLike=function(e,t,r){var i=this.byteLength(),f=r||Math.max(1,i);n(i<=f,"byte array longer than desired length"),n(f>0,"Requested array length <= 0"),this.strip();var o,a,c="le"===t,s=new e(f),u=this.clone();if(c){for(a=0;!u.isZero();a++)o=u.andln(255),u.iushrn(8),s[a]=o;for(;a=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},f.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},f.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},f.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},f.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},f.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},f.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},f.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},f.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},f.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},f.prototype.notn=function(e){return this.clone().inotn(e)},f.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var i=0,f=0;f>>26;for(;0!==i&&f>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;fe.length?this.clone().iadd(e):e.clone().iadd(this)},f.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,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var f=0,o=0;o>26,this.words[o]=67108863&t;for(;0!==f&&o>26,this.words[o]=67108863&t;if(0===f&&o>>13,p=0|o[1],l=8191&p,b=p>>>13,y=0|o[2],m=8191&y,v=y>>>13,g=0|o[3],w=8191&g,_=g>>>13,S=0|o[4],E=8191&S,A=S>>>13,I=0|o[5],k=8191&I,T=I>>>13,P=0|o[6],x=8191&P,M=P>>>13,O=0|o[7],B=8191&O,N=O>>>13,R=0|o[8],C=8191&R,U=R>>>13,L=0|o[9],D=8191&L,j=L>>>13,q=0|a[0],K=8191&q,H=q>>>13,z=0|a[1],F=8191&z,V=z>>>13,W=0|a[2],Y=8191&W,G=W>>>13,X=0|a[3],J=8191&X,$=X>>>13,Z=0|a[4],Q=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],fe=8191&ie,oe=ie>>>13,ae=0|a[7],ce=8191&ae,se=ae>>>13,ue=0|a[8],de=8191&ue,he=ue>>>13,pe=0|a[9],le=8191&pe,be=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(s+(n=Math.imul(d,K))|0)+((8191&(i=(i=Math.imul(d,H))+Math.imul(h,K)|0))<<13)|0;s=((f=Math.imul(h,H))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(l,K),i=(i=Math.imul(l,H))+Math.imul(b,K)|0,f=Math.imul(b,H);var me=(s+(n=n+Math.imul(d,F)|0)|0)+((8191&(i=(i=i+Math.imul(d,V)|0)+Math.imul(h,F)|0))<<13)|0;s=((f=f+Math.imul(h,V)|0)+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(m,K),i=(i=Math.imul(m,H))+Math.imul(v,K)|0,f=Math.imul(v,H),n=n+Math.imul(l,F)|0,i=(i=i+Math.imul(l,V)|0)+Math.imul(b,F)|0,f=f+Math.imul(b,V)|0;var ve=(s+(n=n+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,G)|0)+Math.imul(h,Y)|0))<<13)|0;s=((f=f+Math.imul(h,G)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(w,K),i=(i=Math.imul(w,H))+Math.imul(_,K)|0,f=Math.imul(_,H),n=n+Math.imul(m,F)|0,i=(i=i+Math.imul(m,V)|0)+Math.imul(v,F)|0,f=f+Math.imul(v,V)|0,n=n+Math.imul(l,Y)|0,i=(i=i+Math.imul(l,G)|0)+Math.imul(b,Y)|0,f=f+Math.imul(b,G)|0;var ge=(s+(n=n+Math.imul(d,J)|0)|0)+((8191&(i=(i=i+Math.imul(d,$)|0)+Math.imul(h,J)|0))<<13)|0;s=((f=f+Math.imul(h,$)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(E,K),i=(i=Math.imul(E,H))+Math.imul(A,K)|0,f=Math.imul(A,H),n=n+Math.imul(w,F)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,F)|0,f=f+Math.imul(_,V)|0,n=n+Math.imul(m,Y)|0,i=(i=i+Math.imul(m,G)|0)+Math.imul(v,Y)|0,f=f+Math.imul(v,G)|0,n=n+Math.imul(l,J)|0,i=(i=i+Math.imul(l,$)|0)+Math.imul(b,J)|0,f=f+Math.imul(b,$)|0;var we=(s+(n=n+Math.imul(d,Q)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,Q)|0))<<13)|0;s=((f=f+Math.imul(h,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(k,K),i=(i=Math.imul(k,H))+Math.imul(T,K)|0,f=Math.imul(T,H),n=n+Math.imul(E,F)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(A,F)|0,f=f+Math.imul(A,V)|0,n=n+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,Y)|0,f=f+Math.imul(_,G)|0,n=n+Math.imul(m,J)|0,i=(i=i+Math.imul(m,$)|0)+Math.imul(v,J)|0,f=f+Math.imul(v,$)|0,n=n+Math.imul(l,Q)|0,i=(i=i+Math.imul(l,ee)|0)+Math.imul(b,Q)|0,f=f+Math.imul(b,ee)|0;var _e=(s+(n=n+Math.imul(d,re)|0)|0)+((8191&(i=(i=i+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;s=((f=f+Math.imul(h,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(x,K),i=(i=Math.imul(x,H))+Math.imul(M,K)|0,f=Math.imul(M,H),n=n+Math.imul(k,F)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(T,F)|0,f=f+Math.imul(T,V)|0,n=n+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(A,Y)|0,f=f+Math.imul(A,G)|0,n=n+Math.imul(w,J)|0,i=(i=i+Math.imul(w,$)|0)+Math.imul(_,J)|0,f=f+Math.imul(_,$)|0,n=n+Math.imul(m,Q)|0,i=(i=i+Math.imul(m,ee)|0)+Math.imul(v,Q)|0,f=f+Math.imul(v,ee)|0,n=n+Math.imul(l,re)|0,i=(i=i+Math.imul(l,ne)|0)+Math.imul(b,re)|0,f=f+Math.imul(b,ne)|0;var Se=(s+(n=n+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,oe)|0)+Math.imul(h,fe)|0))<<13)|0;s=((f=f+Math.imul(h,oe)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(B,K),i=(i=Math.imul(B,H))+Math.imul(N,K)|0,f=Math.imul(N,H),n=n+Math.imul(x,F)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(M,F)|0,f=f+Math.imul(M,V)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(T,Y)|0,f=f+Math.imul(T,G)|0,n=n+Math.imul(E,J)|0,i=(i=i+Math.imul(E,$)|0)+Math.imul(A,J)|0,f=f+Math.imul(A,$)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,f=f+Math.imul(_,ee)|0,n=n+Math.imul(m,re)|0,i=(i=i+Math.imul(m,ne)|0)+Math.imul(v,re)|0,f=f+Math.imul(v,ne)|0,n=n+Math.imul(l,fe)|0,i=(i=i+Math.imul(l,oe)|0)+Math.imul(b,fe)|0,f=f+Math.imul(b,oe)|0;var Ee=(s+(n=n+Math.imul(d,ce)|0)|0)+((8191&(i=(i=i+Math.imul(d,se)|0)+Math.imul(h,ce)|0))<<13)|0;s=((f=f+Math.imul(h,se)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(C,K),i=(i=Math.imul(C,H))+Math.imul(U,K)|0,f=Math.imul(U,H),n=n+Math.imul(B,F)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(N,F)|0,f=f+Math.imul(N,V)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(M,Y)|0,f=f+Math.imul(M,G)|0,n=n+Math.imul(k,J)|0,i=(i=i+Math.imul(k,$)|0)+Math.imul(T,J)|0,f=f+Math.imul(T,$)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(A,Q)|0,f=f+Math.imul(A,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,f=f+Math.imul(_,ne)|0,n=n+Math.imul(m,fe)|0,i=(i=i+Math.imul(m,oe)|0)+Math.imul(v,fe)|0,f=f+Math.imul(v,oe)|0,n=n+Math.imul(l,ce)|0,i=(i=i+Math.imul(l,se)|0)+Math.imul(b,ce)|0,f=f+Math.imul(b,se)|0;var Ae=(s+(n=n+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;s=((f=f+Math.imul(h,he)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(D,K),i=(i=Math.imul(D,H))+Math.imul(j,K)|0,f=Math.imul(j,H),n=n+Math.imul(C,F)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(U,F)|0,f=f+Math.imul(U,V)|0,n=n+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,G)|0)+Math.imul(N,Y)|0,f=f+Math.imul(N,G)|0,n=n+Math.imul(x,J)|0,i=(i=i+Math.imul(x,$)|0)+Math.imul(M,J)|0,f=f+Math.imul(M,$)|0,n=n+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(T,Q)|0,f=f+Math.imul(T,ee)|0,n=n+Math.imul(E,re)|0,i=(i=i+Math.imul(E,ne)|0)+Math.imul(A,re)|0,f=f+Math.imul(A,ne)|0,n=n+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,oe)|0)+Math.imul(_,fe)|0,f=f+Math.imul(_,oe)|0,n=n+Math.imul(m,ce)|0,i=(i=i+Math.imul(m,se)|0)+Math.imul(v,ce)|0,f=f+Math.imul(v,se)|0,n=n+Math.imul(l,de)|0,i=(i=i+Math.imul(l,he)|0)+Math.imul(b,de)|0,f=f+Math.imul(b,he)|0;var Ie=(s+(n=n+Math.imul(d,le)|0)|0)+((8191&(i=(i=i+Math.imul(d,be)|0)+Math.imul(h,le)|0))<<13)|0;s=((f=f+Math.imul(h,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(D,F),i=(i=Math.imul(D,V))+Math.imul(j,F)|0,f=Math.imul(j,V),n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(U,Y)|0,f=f+Math.imul(U,G)|0,n=n+Math.imul(B,J)|0,i=(i=i+Math.imul(B,$)|0)+Math.imul(N,J)|0,f=f+Math.imul(N,$)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(M,Q)|0,f=f+Math.imul(M,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(T,re)|0,f=f+Math.imul(T,ne)|0,n=n+Math.imul(E,fe)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(A,fe)|0,f=f+Math.imul(A,oe)|0,n=n+Math.imul(w,ce)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,ce)|0,f=f+Math.imul(_,se)|0,n=n+Math.imul(m,de)|0,i=(i=i+Math.imul(m,he)|0)+Math.imul(v,de)|0,f=f+Math.imul(v,he)|0;var ke=(s+(n=n+Math.imul(l,le)|0)|0)+((8191&(i=(i=i+Math.imul(l,be)|0)+Math.imul(b,le)|0))<<13)|0;s=((f=f+Math.imul(b,be)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(D,Y),i=(i=Math.imul(D,G))+Math.imul(j,Y)|0,f=Math.imul(j,G),n=n+Math.imul(C,J)|0,i=(i=i+Math.imul(C,$)|0)+Math.imul(U,J)|0,f=f+Math.imul(U,$)|0,n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(N,Q)|0,f=f+Math.imul(N,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(M,re)|0,f=f+Math.imul(M,ne)|0,n=n+Math.imul(k,fe)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(T,fe)|0,f=f+Math.imul(T,oe)|0,n=n+Math.imul(E,ce)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(A,ce)|0,f=f+Math.imul(A,se)|0,n=n+Math.imul(w,de)|0,i=(i=i+Math.imul(w,he)|0)+Math.imul(_,de)|0,f=f+Math.imul(_,he)|0;var Te=(s+(n=n+Math.imul(m,le)|0)|0)+((8191&(i=(i=i+Math.imul(m,be)|0)+Math.imul(v,le)|0))<<13)|0;s=((f=f+Math.imul(v,be)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(D,J),i=(i=Math.imul(D,$))+Math.imul(j,J)|0,f=Math.imul(j,$),n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(U,Q)|0,f=f+Math.imul(U,ee)|0,n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(N,re)|0,f=f+Math.imul(N,ne)|0,n=n+Math.imul(x,fe)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(M,fe)|0,f=f+Math.imul(M,oe)|0,n=n+Math.imul(k,ce)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(T,ce)|0,f=f+Math.imul(T,se)|0,n=n+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(A,de)|0,f=f+Math.imul(A,he)|0;var Pe=(s+(n=n+Math.imul(w,le)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,le)|0))<<13)|0;s=((f=f+Math.imul(_,be)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(D,Q),i=(i=Math.imul(D,ee))+Math.imul(j,Q)|0,f=Math.imul(j,ee),n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(U,re)|0,f=f+Math.imul(U,ne)|0,n=n+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,oe)|0)+Math.imul(N,fe)|0,f=f+Math.imul(N,oe)|0,n=n+Math.imul(x,ce)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(M,ce)|0,f=f+Math.imul(M,se)|0,n=n+Math.imul(k,de)|0,i=(i=i+Math.imul(k,he)|0)+Math.imul(T,de)|0,f=f+Math.imul(T,he)|0;var xe=(s+(n=n+Math.imul(E,le)|0)|0)+((8191&(i=(i=i+Math.imul(E,be)|0)+Math.imul(A,le)|0))<<13)|0;s=((f=f+Math.imul(A,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(D,re),i=(i=Math.imul(D,ne))+Math.imul(j,re)|0,f=Math.imul(j,ne),n=n+Math.imul(C,fe)|0,i=(i=i+Math.imul(C,oe)|0)+Math.imul(U,fe)|0,f=f+Math.imul(U,oe)|0,n=n+Math.imul(B,ce)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(N,ce)|0,f=f+Math.imul(N,se)|0,n=n+Math.imul(x,de)|0,i=(i=i+Math.imul(x,he)|0)+Math.imul(M,de)|0,f=f+Math.imul(M,he)|0;var Me=(s+(n=n+Math.imul(k,le)|0)|0)+((8191&(i=(i=i+Math.imul(k,be)|0)+Math.imul(T,le)|0))<<13)|0;s=((f=f+Math.imul(T,be)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(D,fe),i=(i=Math.imul(D,oe))+Math.imul(j,fe)|0,f=Math.imul(j,oe),n=n+Math.imul(C,ce)|0,i=(i=i+Math.imul(C,se)|0)+Math.imul(U,ce)|0,f=f+Math.imul(U,se)|0,n=n+Math.imul(B,de)|0,i=(i=i+Math.imul(B,he)|0)+Math.imul(N,de)|0,f=f+Math.imul(N,he)|0;var Oe=(s+(n=n+Math.imul(x,le)|0)|0)+((8191&(i=(i=i+Math.imul(x,be)|0)+Math.imul(M,le)|0))<<13)|0;s=((f=f+Math.imul(M,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(D,ce),i=(i=Math.imul(D,se))+Math.imul(j,ce)|0,f=Math.imul(j,se),n=n+Math.imul(C,de)|0,i=(i=i+Math.imul(C,he)|0)+Math.imul(U,de)|0,f=f+Math.imul(U,he)|0;var Be=(s+(n=n+Math.imul(B,le)|0)|0)+((8191&(i=(i=i+Math.imul(B,be)|0)+Math.imul(N,le)|0))<<13)|0;s=((f=f+Math.imul(N,be)|0)+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,n=Math.imul(D,de),i=(i=Math.imul(D,he))+Math.imul(j,de)|0,f=Math.imul(j,he);var Ne=(s+(n=n+Math.imul(C,le)|0)|0)+((8191&(i=(i=i+Math.imul(C,be)|0)+Math.imul(U,le)|0))<<13)|0;s=((f=f+Math.imul(U,be)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863;var Re=(s+(n=Math.imul(D,le))|0)+((8191&(i=(i=Math.imul(D,be))+Math.imul(j,le)|0))<<13)|0;return s=((f=Math.imul(j,be))+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,c[0]=ye,c[1]=me,c[2]=ve,c[3]=ge,c[4]=we,c[5]=_e,c[6]=Se,c[7]=Ee,c[8]=Ae,c[9]=Ie,c[10]=ke,c[11]=Te,c[12]=Pe,c[13]=xe,c[14]=Me,c[15]=Oe,c[16]=Be,c[17]=Ne,c[18]=Re,0!==s&&(c[19]=s,r.length++),r};function l(e,t,r){return(new b).mulp(e,t,r)}function b(e,t){this.x=e,this.y=t}Math.imul||(p=h),f.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):r<63?h(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,f=0;f>>26)|0)>>>26,o&=67108863}r.words[f]=a,n=o,o=i}return 0!==n?r.words[f]=n:r.length--,r.strip()}(this,e,t):l(this,e,t)},b.prototype.makeRBT=function(e){for(var t=new Array(e),r=f.prototype._countBits(e)-1,n=0;n>=1;return n},b.prototype.permute=function(e,t,r,n,i,f){for(var o=0;o>>=1)i++;return 1<>>=13,r[2*o+1]=8191&f,f>>>=13;for(o=2*t;o>=26,t+=i/67108864|0,t+=f>>>26,this.words[r]=67108863&f}return 0!==t&&(this.words[r]=t,this.length++),this},f.prototype.muln=function(e){return this.clone().imuln(e)},f.prototype.sqr=function(){return this.mul(this)},f.prototype.isqr=function(){return this.imul(this.clone())},f.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>i}return t}(e);if(0===t.length)return new f(1);for(var r=this,n=0;n=0);var t,r=e%26,i=(e-r)/26,f=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t=0),i=t?(t-t%26)/26:0;var f=e%26,o=Math.min((e-f)/26,this.length),a=67108863^67108863>>>f<o)for(this.length-=o,s=0;s=0&&(0!==u||s>=i);s--){var d=0|this.words[s];this.words[s]=u<<26-f|d>>>f,u=d&a}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},f.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},f.prototype.shln=function(e){return this.clone().ishln(e)},f.prototype.ushln=function(e){return this.clone().iushln(e)},f.prototype.shrn=function(e){return this.clone().ishrn(e)},f.prototype.ushrn=function(e){return this.clone().iushrn(e)},f.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>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},f.prototype.isubn=function(e){if(n("number"==typeof e),n(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>26)-(c/67108864|0),this.words[i+r]=67108863&f}for(;i>26,this.words[i+r]=67108863&f;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i>26,this.words[i]=67108863&f;return this.negative=1,this.strip()},f.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new f(null)).length=c+1,a.words=new Array(a.length);for(var s=0;s=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,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}},f.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new f(0),mod:new f(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:i,mod:o}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:a.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new f(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new f(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new f(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,o,a},f.prototype.div=function(e){return this.divmod(e,"div",!1).div},f.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},f.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},f.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),i=e.andln(1),f=r.cmp(n);return f<0||1===i&&0===f?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},f.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,i=this.length-1;i>=0;i--)r=(t*r+(0|this.words[i]))%e;return r},f.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*t;this.words[r]=i/e|0,t=i%e}return this.strip()},f.prototype.divn=function(e){return this.clone().idivn(e)},f.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new f(1),o=new f(0),a=new f(0),c=new f(1),s=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++s;for(var u=r.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;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(d)),i.iushrn(1),o.iushrn(1);for(var l=0,b=1;0==(r.words[0]&b)&&l<26;++l,b<<=1);if(l>0)for(r.iushrn(l);l-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(u),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(r)>=0?(t.isub(r),i.isub(a),o.isub(c)):(r.isub(t),a.isub(i),c.isub(o))}return{a:a,b:c,gcd:r.iushln(s)}},f.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,o=new f(1),a=new f(0),c=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var s=0,u=1;0==(t.words[0]&u)&&s<26;++s,u<<=1);if(s>0)for(t.iushrn(s);s-- >0;)o.isOdd()&&o.iadd(c),o.iushrn(1);for(var d=0,h=1;0==(r.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(r.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(a)):(r.isub(t),a.isub(o))}return(i=0===t.cmpn(1)?o:a).cmpn(0)<0&&i.iadd(e),i},f.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 i=t.cmp(r);if(i<0){var f=t;t=r,r=f}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},f.prototype.invm=function(e){return this.egcd(e).a.umod(e)},f.prototype.isEven=function(){return 0==(1&this.words[0])},f.prototype.isOdd=function(){return 1==(1&this.words[0])},f.prototype.andln=function(e){return this.words[0]&e},f.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<>>26,a&=67108863,this.words[o]=a}return 0!==f&&(this.words[o]=f,this.length++),this},f.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},f.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){ni&&(t=1);break}}return t},f.prototype.gtn=function(e){return 1===this.cmpn(e)},f.prototype.gt=function(e){return 1===this.cmp(e)},f.prototype.gten=function(e){return this.cmpn(e)>=0},f.prototype.gte=function(e){return this.cmp(e)>=0},f.prototype.ltn=function(e){return-1===this.cmpn(e)},f.prototype.lt=function(e){return-1===this.cmp(e)},f.prototype.lten=function(e){return this.cmpn(e)<=0},f.prototype.lte=function(e){return this.cmp(e)<=0},f.prototype.eqn=function(e){return 0===this.cmpn(e)},f.prototype.eq=function(e){return 0===this.cmp(e)},f.red=function(e){return new S(e)},f.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},f.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},f.prototype._forceRed=function(e){return this.red=e,this},f.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},f.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},f.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},f.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},f.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},f.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},f.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},f.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},f.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},f.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},f.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},f.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},f.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},f.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function m(e,t){this.name=e,this.p=new f(t,16),this.n=this.p.bitLength(),this.k=new f(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function g(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=f._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new f(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)}m.prototype._tmp=function(){var e=new f(null);return e.words=new Array(Math.ceil(this.n/13)),e},m.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=t0?r.isub(this.p):r.strip(),r},m.prototype.split=function(e,t){e.iushrn(this.n,0,t)},m.prototype.imulK=function(e){return e.imul(this.k)},i(v,m),v.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n>>22,i=f}i>>>=22,e.words[n-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},v.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>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},f._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new g;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return y[e]=t,t},S.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.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)},S.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},S.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)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new f(1)).iushrn(2);return this.pow(e,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var a=new f(1).toRed(this),c=a.redNeg(),s=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new f(2*u*u).toRed(this);0!==this.pow(u,s).cmp(c);)u.redIAdd(c);for(var d=this.pow(u,i),h=this.pow(e,i.addn(1).iushrn(1)),p=this.pow(e,i),l=o;0!==p.cmp(a);){for(var b=p,y=0;0!==b.cmp(a);y++)b=b.redSqr();n(y=0;n--){for(var s=t.words[n],u=c-1;u>=0;u--){var d=s>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==o?(o<<=1,o|=d,(4===++a||0===n&&0===u)&&(i=this.mul(i,r[o]),a=0,o=0)):a=0}c=26}return i},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},f.mont=function(e){return new E(e)},i(E,S),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.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),i=r.isub(n).iushrn(this.shift),f=i;return i.cmp(this.m)>=0?f=i.isub(this.m):i.cmpn(0)<0&&(f=i.iadd(this.m)),f._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new f(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)}).call(this,r(69)(e))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(326),i=r(327),f=r(34),o=r(70),a=r(53),c=r(328),s=r(13);t.OPS=r(180);const u=r(329),d=t.OPS.OP_RESERVED;function h(e){return f.Buffer(e)||function(e){return f.Number(e)&&(e===t.OPS.OP_0||e>=t.OPS.OP_1&&e<=t.OPS.OP_16||e===t.OPS.OP_1NEGATE)}(e)}function p(e){return f.Array(e)&&e.every(h)}function l(e){return 0===e.length?t.OPS.OP_0:1===e.length?e[0]>=1&&e[0]<=16?d+e[0]:129===e[0]?t.OPS.OP_1NEGATE:void 0:void 0}function b(t){return e.isBuffer(t)}function y(t){return e.isBuffer(t)}function m(t){if(b(t))return t;s(f.Array,t);const r=t.reduce((e,t)=>y(t)?1===t.length&&void 0!==l(t)?e+1:e+c.encodingLength(t.length)+t.length:e+1,0),n=e.allocUnsafe(r);let i=0;if(t.forEach(e=>{if(y(e)){const t=l(e);if(void 0!==t)return n.writeUInt8(t,i),void(i+=1);i+=c.encode(n,e.length,i),e.copy(n,i),i+=e.length}else n.writeUInt8(e,i),i+=1}),i!==n.length)throw new Error("Could not decode chunks");return n}function v(e){if(r=e,f.Array(r))return e;var r;s(f.Buffer,e);const n=[];let i=0;for(;it.OPS.OP_0&&r<=t.OPS.OP_PUSHDATA4){const t=c.decode(e,i);if(null===t)return null;if(i+=t.size,i+t.number>e.length)return null;const r=e.slice(i,i+t.number);i+=t.number;const f=l(r);void 0!==f?n.push(f):n.push(r)}else n.push(r),i+=1}return n}function g(e){const t=-129&e;return t>0&&t<4}t.isPushOnly=p,t.compile=m,t.decompile=v,t.toASM=function(e){return b(e)&&(e=v(e)),e.map(e=>{if(y(e)){const t=l(e);if(void 0===t)return e.toString("hex");e=t}return u[e]}).join(" ")},t.fromASM=function(r){return s(f.String,r),m(r.split(" ").map(r=>void 0!==t.OPS[r]?t.OPS[r]:(s(f.Hex,r),e.from(r,"hex"))))},t.toStack=function(r){return r=v(r),s(p,r),r.map(r=>y(r)?r:r===t.OPS.OP_0?e.allocUnsafe(0):n.encode(r-d))},t.isCanonicalPubKey=function(e){return a.isPoint(e)},t.isDefinedHashType=g,t.isCanonicalScriptSignature=function(t){return!!e.isBuffer(t)&&(!!g(t[t.length-1])&&o.check(t.slice(0,-1)))},t.number=n,t.signature=i}).call(this,r(0).Buffer)},function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=r,r.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},function(e,t,r){"use strict";var n=t,i=r(2),f=r(4),o=r(28);n.assert=f,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(e,t){for(var r=[],n=1<=0;){var f;if(i.isOdd()){var o=i.andln(n-1);f=o>(n>>1)-1?(n>>1)-o:o,i.isubn(f)}else f=0;r.push(f);for(var a=0!==i.cmpn(0)&&0===i.andln(n-1)?t+1:1,c=1;c0||t.cmpn(-i)>0;){var f,o,a,c=e.andln(3)+n&3,s=t.andln(3)+i&3;if(3===c&&(c=-1),3===s&&(s=-1),0==(1&c))f=0;else f=3!==(a=e.andln(7)+n&7)&&5!==a||2!==s?c:-c;if(r[0].push(f),0==(1&s))o=0;else o=3!==(a=t.andln(7)+i&7)&&5!==a||2!==c?s:-s;r[1].push(o),2*n===f+1&&(n=1-n),2*i===o+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var n=r(4),i=r(1);function f(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,r[n++]=63&o|128):f(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i>>0}return o},t.split32=function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n>>24,r[i+1]=f>>>16&255,r[i+2]=f>>>8&255,r[i+3]=255&f):(r[i+3]=f>>>24,r[i+2]=f>>>16&255,r[i+1]=f>>>8&255,r[i]=255&f)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,n){return e+t+r+n>>>0},t.sum32_5=function(e,t,r,n,i){return e+t+r+n+i>>>0},t.sum64=function(e,t,r,n){var i=e[t],f=n+e[t+1]>>>0,o=(f>>0,e[t+1]=f},t.sum64_hi=function(e,t,r,n){return(t+n>>>0>>0},t.sum64_lo=function(e,t,r,n){return t+n>>>0},t.sum64_4_hi=function(e,t,r,n,i,f,o,a){var c=0,s=t;return c+=(s=s+n>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,r,n,i,f,o,a){return t+n+f+a>>>0},t.sum64_5_hi=function(e,t,r,n,i,f,o,a,c,s){var u=0,d=t;return u+=(d=d+n>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,r,n,i,f,o,a,c,s){return t+n+f+a+s>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},function(e,t,r){"use strict";var n=t,i=r(2),f=r(4),o=r(28);n.assert=f,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-c:c,f.isubn(a)):a=0,n[o]=a,f.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n=0,i=0;e.cmpn(-n)>0||t.cmpn(-i)>0;){var f,o,a,c=e.andln(3)+n&3,s=t.andln(3)+i&3;if(3===c&&(c=-1),3===s&&(s=-1),0==(1&c))f=0;else f=3!==(a=e.andln(7)+n&7)&&5!==a||2!==s?c:-c;if(r[0].push(f),0==(1&s))o=0;else o=3!==(a=t.andln(7)+i&7)&&5!==a||2!==c?s:-s;r[1].push(o),2*n===f+1&&(n=1-n),2*i===o+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t,r){"use strict";var n=t,i=r(2),f=r(4),o=r(28);n.assert=f,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-c:c,f.isubn(a)):a=0,n[o]=a,f.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n=0,i=0;e.cmpn(-n)>0||t.cmpn(-i)>0;){var f,o,a,c=e.andln(3)+n&3,s=t.andln(3)+i&3;if(3===c&&(c=-1),3===s&&(s=-1),0==(1&c))f=0;else f=3!==(a=e.andln(7)+n&7)&&5!==a||2!==s?c:-c;if(r[0].push(f),0==(1&s))o=0;else o=3!==(a=t.andln(7)+i&7)&&5!==a||2!==c?s:-s;r[1].push(o),2*n===f+1&&(n=1-n),2*i===o+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t,r){"use strict";var n=r(1),i=r(50),f=r(51),o=r(52),a=r(17);function c(e){a.call(this,"digest"),this._hash=e}n(c,a),c.prototype._update=function(e){this._hash.update(e)},c.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new f:new c(o(e))}},function(e,t){var r,n,i=e.exports={};function f(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(r===setTimeout)return setTimeout(e,0);if((r===f||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:f}catch(e){r=f}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var c,s=[],u=!1,d=-1;function h(){u&&c&&(u=!1,c.length?s=c.concat(s):d=-1,s.length&&p())}function p(){if(!u){var e=a(h);u=!0;for(var t=s.length;t;){for(c=s,s=[];++d1)for(var r=1;rt.maxLength)&&((void 0===t.length||r.length===t.length)&&r.every((function(t,r){try{return h(e,t,n)}catch(e){throw c(e,r)}}))))))}return e=d(e),t=t||{},r.toJSON=function(){var r="["+f(e)+"]";return void 0!==t.length?r+="{"+t.length+"}":void 0===t.minLength&&void 0===t.maxLength||(r+="{"+(void 0===t.minLength?0:t.minLength)+","+(void 0===t.maxLength?1/0:t.maxLength)+"}"),r},r},maybe:function e(t){function r(r,n){return i.Nil(r)||t(r,n,e)}return t=d(t),r.toJSON=function(){return"?"+f(t)},r},map:function(e,t){function r(r,n){if(!i.Object(r))return!1;if(i.Nil(r))return!1;for(var f in r){try{t&&h(t,f,n)}catch(e){throw c(e,f,"key")}try{var o=r[f];h(e,o,n)}catch(e){throw c(e,f)}}return!0}return e=d(e),t&&(t=d(t)),r.toJSON=t?function(){return"{"+f(t)+": "+f(e)+"}"}:function(){return"{"+f(e)+"}"},r},object:function(e){var t={};for(var r in e)t[r]=d(e[r]);function n(e,r){if(!i.Object(e))return!1;if(i.Nil(e))return!1;var n;try{for(n in t){h(t[n],e[n],r)}}catch(e){throw c(e,n)}if(r)for(n in e)if(!t[n])throw new a(void 0,n);return!0}return n.toJSON=function(){return f(t)},n},anyOf:function(){var e=[].slice.call(arguments).map(d);function t(t,r){return e.some((function(e){try{return h(e,t,r)}catch(e){return!1}}))}return t.toJSON=function(){return e.map(f).join("|")},t},allOf:function(){var e=[].slice.call(arguments).map(d);function t(t,r){return e.every((function(e){try{return h(e,t,r)}catch(e){return!1}}))}return t.toJSON=function(){return e.map(f).join(" & ")},t},quacksLike:function(e){function t(t){return e===s(t)}return t.toJSON=function(){return e},t},tuple:function(){var e=[].slice.call(arguments).map(d);function t(t,r){return!i.Nil(t)&&(!i.Nil(t.length)&&((!r||t.length===e.length)&&e.every((function(e,n){try{return h(e,t[n],r)}catch(e){throw c(e,n)}}))))}return t.toJSON=function(){return"("+e.map(f).join(", ")+")"},t},value:function(e){function t(t){return t===e}return t.toJSON=function(){return e},t}};function d(e){if(i.String(e))return"?"===e[0]?u.maybe(e.slice(1)):i[e]||u.quacksLike(e);if(e&&i.Object(e)){if(i.Array(e)){if(1!==e.length)throw new TypeError("Expected compile() parameter of type Array of length 1");return u.arrayOf(e[0])}return u.object(e)}return i.Function(e)?e:u.value(e)}function h(e,t,r,n){if(i.Function(e)){if(e(t,r))return!0;throw new o(n||e,t)}return h(d(e),t,r)}for(var p in u.oneOf=u.anyOf,i)h[p]=i[p];for(p in u)h[p]=u[p];var l=r(321);for(p in l)h[p]=l[p];h.compile=d,h.TfTypeError=o,h.TfPropertyTypeError=a,e.exports=h},function(e,t,r){var n=t;n.utils=r(7),n.common=r(20),n.sha=r(131),n.ripemd=r(135),n.hmac=r(136),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},function(e,t,r){"use strict";var n=r(27),i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=d;var f=r(23);f.inherits=r(1);var o=r(73),a=r(46);f.inherits(d,o);for(var c=i(a.prototype),s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var f=this._hash();return e?f.toString(e):f},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,r){"use strict";var n=r(7),i=r(4);function f(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=f,f.prototype.update=function(e,t){if(e=n.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=n.join32(e,0,e.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,f=8;f4294967295)throw new RangeError("requested too many random bytes");var r=i.allocUnsafe(e);if(e>0)if(e>65536)for(var o=0;o0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function s(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),n=f(t,1),i=(1<=c;t--)s=(s<<1)+n[t];o.push(s)}for(var u=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(c=0;c=0;s--){for(t=0;s>=0&&0===o[s];s--)t++;if(s>=0&&t++,c=c.dblp(t),s<0)break;var u=o[s];a(0!==u),c="affine"===e.type?u>0?c.mixedAdd(i[u-1>>1]):c.mixedAdd(i[-u-1>>1].neg()):u>0?c.add(i[u-1>>1]):c.add(i[-u-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,r,n,i){for(var a=this._wnafT1,c=this._wnafT2,s=this._wnafT3,u=0,d=0;d=1;d-=2){var p=d-1,l=d;if(1===a[p]&&1===a[l]){var b=[t[p],null,null,t[l]];0===t[p].y.cmp(t[l].y)?(b[1]=t[p].add(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg())):0===t[p].y.cmp(t[l].y.redNeg())?(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].add(t[l].neg())):(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],m=o(r[p],r[l]);u=Math.max(m[0].length,u),s[p]=new Array(u),s[l]=new Array(u);for(var v=0;v=0;d--){for(var E=0;d>=0;){var A=!0;for(v=0;v=0&&E++,_=_.dblp(E),d<0)break;for(v=0;v0?I=c[v][k-1>>1]:k<0&&(I=c[v][-k-1>>1].neg()),_="affine"===I.type?_.mixedAdd(I):_.add(I))}}for(d=0;d=Math.ceil((e.bitLength()+1)/t.step)},s.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i>8,o=255&i;f?r.push(f,o):r.push(o)}return r},n.zero2=i,n.toHex=f,n.encode=function(e,t){return"hex"===t?f(e):e}},function(e,t,r){(function(t){e.exports=function(e,r){for(var n=Math.min(e.length,r.length),i=new t(n),f=0;f"BIP32 derivation path",t.Signer=function(e){return(n.Buffer(e.publicKey)||"function"==typeof e.getPublicKey)&&"function"==typeof e.sign};t.Satoshi=function(e){return n.UInt53(e)&&e<=21e14},t.ECPoint=n.quacksLike("Point"),t.Network=n.compile({messagePrefix:n.oneOf(n.Buffer,n.String),bip32:{public:n.UInt32,private:n.UInt32},pubKeyHash:n.UInt8,scriptHash:n.UInt8,wif:n.UInt8}),t.Buffer256bit=n.BufferN(32),t.Hash160bit=n.BufferN(20),t.Hash256bit=n.BufferN(32),t.Number=n.Number,t.Array=n.Array,t.Boolean=n.Boolean,t.String=n.String,t.Buffer=n.Buffer,t.Hex=n.Hex,t.maybe=n.maybe,t.tuple=n.tuple,t.UInt8=n.UInt8,t.UInt32=n.UInt32,t.Function=n.Function,t.BufferN=n.BufferN,t.Null=n.Null,t.oneOf=n.oneOf},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10);function i(e){try{return n("rmd160").update(e).digest()}catch(t){return n("ripemd160").update(e).digest()}}function f(e){return n("sha256").update(e).digest()}t.ripemd160=i,t.sha1=function(e){return n("sha1").update(e).digest()},t.sha256=f,t.hash160=function(e){return i(f(e))},t.hash256=function(e){return f(f(e))}},function(e,t,r){"use strict";var n,i=t,f=r(14),o=r(57),a=r(5).assert;function c(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=c,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:f.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:f.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:f.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:f.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:f.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(137)}catch(e){n=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:f.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(e,t,r){e.exports=i;var n=r(44).EventEmitter;function i(){n.call(this)}r(1)(i,n),i.Readable=r(45),i.Writable=r(159),i.Duplex=r(160),i.Transform=r(161),i.PassThrough=r(162),i.Stream=i,i.prototype.pipe=function(e,t){var r=this;function i(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function f(){r.readable&&r.resume&&r.resume()}r.on("data",i),e.on("drain",f),e._isStdio||t&&!1===t.end||(r.on("end",a),r.on("close",c));var o=!1;function a(){o||(o=!0,e.end())}function c(){o||(o=!0,"function"==typeof e.destroy&&e.destroy())}function s(e){if(u(),0===n.listenerCount(this,"error"))throw e}function u(){r.removeListener("data",i),e.removeListener("drain",f),r.removeListener("end",a),r.removeListener("close",c),r.removeListener("error",s),e.removeListener("error",s),r.removeListener("end",u),r.removeListener("close",u),e.removeListener("close",u)}return r.on("error",s),e.on("error",s),r.on("end",u),r.on("close",u),e.on("close",u),e.emit("pipe",r),e}},function(e,t,r){var n=r(12).Buffer;function i(e){n.isBuffer(e)||(e=n.from(e));for(var t=e.length/4|0,r=new Array(t),i=0;i>>24]^u[l>>>16&255]^d[b>>>8&255]^h[255&y]^t[m++],o=s[l>>>24]^u[b>>>16&255]^d[y>>>8&255]^h[255&p]^t[m++],a=s[b>>>24]^u[y>>>16&255]^d[p>>>8&255]^h[255&l]^t[m++],c=s[y>>>24]^u[p>>>16&255]^d[l>>>8&255]^h[255&b]^t[m++],p=f,l=o,b=a,y=c;return f=(n[p>>>24]<<24|n[l>>>16&255]<<16|n[b>>>8&255]<<8|n[255&y])^t[m++],o=(n[l>>>24]<<24|n[b>>>16&255]<<16|n[y>>>8&255]<<8|n[255&p])^t[m++],a=(n[b>>>24]<<24|n[y>>>16&255]<<16|n[p>>>8&255]<<8|n[255&l])^t[m++],c=(n[y>>>24]<<24|n[p>>>16&255]<<16|n[l>>>8&255]<<8|n[255&b])^t[m++],[f>>>=0,o>>>=0,a>>>=0,c>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],c=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],i=[[],[],[],[]],f=[[],[],[],[]],o=0,a=0,c=0;c<256;++c){var s=a^a<<1^a<<2^a<<3^a<<4;s=s>>>8^255&s^99,r[o]=s,n[s]=o;var u=e[o],d=e[u],h=e[d],p=257*e[s]^16843008*s;i[0][o]=p<<24|p>>>8,i[1][o]=p<<16|p>>>16,i[2][o]=p<<8|p>>>24,i[3][o]=p,p=16843009*h^65537*d^257*u^16843008*o,f[0][s]=p<<24|p>>>8,f[1][s]=p<<16|p>>>16,f[2][s]=p<<8|p>>>24,f[3][s]=p,0===o?o=a=1:(o=u^e[e[e[h^u]]],a^=e[e[a]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:f}}();function s(e){this._key=i(e),this._reset()}s.blockSize=16,s.keySize=32,s.prototype.blockSize=s.blockSize,s.prototype.keySize=s.keySize,s.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),i=[],f=0;f>>24,o=c.SBOX[o>>>24]<<24|c.SBOX[o>>>16&255]<<16|c.SBOX[o>>>8&255]<<8|c.SBOX[255&o],o^=a[f/t|0]<<24):t>6&&f%t==4&&(o=c.SBOX[o>>>24]<<24|c.SBOX[o>>>16&255]<<16|c.SBOX[o>>>8&255]<<8|c.SBOX[255&o]),i[f]=i[f-t]^o}for(var s=[],u=0;u>>24]]^c.INV_SUB_MIX[1][c.SBOX[h>>>16&255]]^c.INV_SUB_MIX[2][c.SBOX[h>>>8&255]]^c.INV_SUB_MIX[3][c.SBOX[255&h]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=s},s.prototype.encryptBlockRaw=function(e){return o(e=i(e),this._keySchedule,c.SUB_MIX,c.SBOX,this._nRounds)},s.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=n.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r},s.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var r=o(e,this._invKeySchedule,c.INV_SUB_MIX,c.INV_SBOX,this._nRounds),f=n.allocUnsafe(16);return f.writeUInt32BE(r[0],0),f.writeUInt32BE(r[3],4),f.writeUInt32BE(r[2],8),f.writeUInt32BE(r[1],12),f},s.prototype.scrub=function(){f(this._keySchedule),f(this._invKeySchedule),f(this._key)},e.exports.AES=s},function(e,t,r){var n=r(212).Buffer,i=r(50);e.exports=function(e,t,r,f){if(n.isBuffer(e)||(e=n.from(e,"binary")),t&&(n.isBuffer(t)||(t=n.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=r/8,a=n.alloc(o),c=n.alloc(f||0),s=n.alloc(0);o>0||f>0;){var u=new i;u.update(s),u.update(e),t&&u.update(t),s=u.digest();var d=0;if(o>0){var h=a.length-o;d=Math.min(o,s.length),s.copy(a,h,0,d),o-=d}if(d0){var p=c.length-f,l=Math.min(f,s.length-d);s.copy(c,p,d,d+l),f-=l}}return s.fill(0),{key:a,iv:c}}},function(e,t,r){"use strict";var n=r(2),i=r(8),f=i.getNAF,o=i.getJSF,a=i.assert;function c(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function s(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),n=f(t,1,this._bitLength),i=(1<=c;t--)s=(s<<1)+n[t];o.push(s)}for(var u=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(c=0;c=0;s--){for(t=0;s>=0&&0===o[s];s--)t++;if(s>=0&&t++,c=c.dblp(t),s<0)break;var u=o[s];a(0!==u),c="affine"===e.type?u>0?c.mixedAdd(i[u-1>>1]):c.mixedAdd(i[-u-1>>1].neg()):u>0?c.add(i[u-1>>1]):c.add(i[-u-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,r,n,i){for(var a=this._wnafT1,c=this._wnafT2,s=this._wnafT3,u=0,d=0;d=1;d-=2){var p=d-1,l=d;if(1===a[p]&&1===a[l]){var b=[t[p],null,null,t[l]];0===t[p].y.cmp(t[l].y)?(b[1]=t[p].add(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg())):0===t[p].y.cmp(t[l].y.redNeg())?(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].add(t[l].neg())):(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],m=o(r[p],r[l]);u=Math.max(m[0].length,u),s[p]=new Array(u),s[l]=new Array(u);for(var v=0;v=0;d--){for(var E=0;d>=0;){var A=!0;for(v=0;v=0&&E++,_=_.dblp(E),d<0)break;for(v=0;v0?I=c[v][k-1>>1]:k<0&&(I=c[v][-k-1>>1].neg()),_="affine"===I.type?_.mixedAdd(I):_.add(I))}}for(d=0;d=Math.ceil((e.bitLength()+1)/t.step)},s.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function s(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),n=f(t,1,this._bitLength),i=(1<=c;t--)s=(s<<1)+n[t];o.push(s)}for(var u=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(c=0;c=0;s--){for(t=0;s>=0&&0===o[s];s--)t++;if(s>=0&&t++,c=c.dblp(t),s<0)break;var u=o[s];a(0!==u),c="affine"===e.type?u>0?c.mixedAdd(i[u-1>>1]):c.mixedAdd(i[-u-1>>1].neg()):u>0?c.add(i[u-1>>1]):c.add(i[-u-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,r,n,i){for(var a=this._wnafT1,c=this._wnafT2,s=this._wnafT3,u=0,d=0;d=1;d-=2){var p=d-1,l=d;if(1===a[p]&&1===a[l]){var b=[t[p],null,null,t[l]];0===t[p].y.cmp(t[l].y)?(b[1]=t[p].add(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg())):0===t[p].y.cmp(t[l].y.redNeg())?(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].add(t[l].neg())):(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],m=o(r[p],r[l]);u=Math.max(m[0].length,u),s[p]=new Array(u),s[l]=new Array(u);for(var v=0;v=0;d--){for(var E=0;d>=0;){var A=!0;for(v=0;v=0&&E++,_=_.dblp(E),d<0)break;for(v=0;v0?I=c[v][k-1>>1]:k<0&&(I=c[v][-k-1>>1].neg()),_="affine"===I.type?_.mixedAdd(I):_.add(I))}}for(d=0;d=Math.ceil((e.bitLength()+1)/t.step)},s.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=o.length,console&&console.warn}return e}function d(){for(var e=[],t=0;t0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)f(c,this,t);else{var s=c.length,u=b(c,s);for(r=0;r=0;f--)if(r[f]===t||r[f].listener===t){o=r[f].listener,i=f;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):l.call(e,t)},a.prototype.listenerCount=l,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){(t=e.exports=r(73)).Stream=t,t.Readable=t,t.Writable=r(46),t.Duplex=r(15),t.Transform=r(76),t.PassThrough=r(158)},function(e,t,r){"use strict";(function(t,n,i){var f=r(27);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=v;var a,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?n:f.nextTick;v.WritableState=m;var s=r(23);s.inherits=r(1);var u={deprecate:r(156)},d=r(74),h=r(33).Buffer,p=i.Uint8Array||function(){};var l,b=r(75);function y(){}function m(e,t){a=a||r(15),e=e||{};var n=t instanceof a;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,s=e.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(s||0===s)?s:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var d=!1===e.decodeStrings;this.decodeStrings=!d,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(f.nextTick(i,n),f.nextTick(A,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),A(e,t))}(e,r,n,t,i);else{var o=S(r);o||r.corked||r.bufferProcessing||!r.bufferedRequest||_(e,r),n?c(w,e,r,o,i):w(e,r,o,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function v(e){if(a=a||r(15),!(l.call(v,this)||this instanceof a))return new v(e);this._writableState=new m(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),d.call(this)}function g(e,t,r,n,i,f,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,f,t.onwrite),t.sync=!1}function w(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),A(e,t)}function _(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),f=t.corkedRequestsFree;f.entry=r;for(var a=0,c=!0;r;)i[a]=r,r.isBuf||(c=!1),r=r.next,a+=1;i.allBuffers=c,g(e,t,!0,t.length,i,"",f.finish),t.pendingcb++,t.lastBufferedRequest=null,f.next?(t.corkedRequestsFree=f.next,f.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;r;){var s=r.chunk,u=r.encoding,d=r.callback;if(g(e,t,!1,t.objectMode?1:s.length,s,u,d),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function E(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),A(e,t)}))}function A(e,t){var r=S(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,f.nextTick(E,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}s.inherits(v,d),m.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(m.prototype,"buffer",{get:u.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(l=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return!!l.call(this,e)||this===v&&(e&&e._writableState instanceof m)}})):l=function(e){return e instanceof this},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},v.prototype.write=function(e,t,r){var n,i=this._writableState,o=!1,a=!i.objectMode&&(n=e,h.isBuffer(n)||n instanceof p);return a&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(r=t,t=null),a?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=y),i.ended?function(e,t){var r=new Error("write after end");e.emit("error",r),f.nextTick(t,r)}(this,r):(a||function(e,t,r,n){var i=!0,o=!1;return null===r?o=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),f.nextTick(n,o),i=!1),i}(this,i,e,r))&&(i.pendingcb++,o=function(e,t,r,n,i,f){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,r));return t}(t,n,i);n!==o&&(r=!0,i="buffer",n=o)}var a=t.objectMode?1:n.length;t.length+=a;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(v.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),v.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},v.prototype._writev=null,v.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,A(e,t),r&&(t.finished?f.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),v.prototype.destroy=b.destroy,v.prototype._undestroy=b.undestroy,v.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,r(11),r(154).setImmediate,r(6))},function(e,t,r){"use strict";var n=r(157).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function f(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=s,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=u,this.end=d,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function s(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=f,f.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},f.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,r){"use strict";(function(t){var n=r(175);function i(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,f=Math.min(r,n);i=0;s--)if(u[s]!==d[s])return!1;for(s=u.length-1;s>=0;s--)if(a=u[s],!g(e[a],t[a],r,n))return!1;return!0}(e,t,r,n))}return r?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function _(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function S(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&m(i,r,"Missing expected exception"+n);var f="string"==typeof n,a=!e&&i&&!r;if((!e&&o.isError(i)&&f&&_(i,r)||a)&&m(i,r,"Got unwanted exception"+n),e&&i&&r&&!_(i,r)||!e&&i)throw i}h.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return b(y(e.actual),128)+" "+e.operator+" "+b(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||m;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=l(t),f=n.indexOf("\n"+i);if(f>=0){var o=n.indexOf("\n",f+1);n=n.substring(o+1)}this.stack=n}}},o.inherits(h.AssertionError,Error),h.fail=m,h.ok=v,h.equal=function(e,t,r){e!=t&&m(e,t,r,"==",h.equal)},h.notEqual=function(e,t,r){e==t&&m(e,t,r,"!=",h.notEqual)},h.deepEqual=function(e,t,r){g(e,t,!1)||m(e,t,r,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(e,t,r){g(e,t,!0)||m(e,t,r,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(e,t,r){g(e,t,!1)&&m(e,t,r,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function e(t,r,n){g(t,r,!0)&&m(t,r,n,"notDeepStrictEqual",e)},h.strictEqual=function(e,t,r){e!==t&&m(e,t,r,"===",h.strictEqual)},h.notStrictEqual=function(e,t,r){e===t&&m(e,t,r,"!==",h.notStrictEqual)},h.throws=function(e,t,r){S(!0,e,t,r)},h.doesNotThrow=function(e,t,r){S(!1,e,t,r)},h.ifError=function(e){if(e)throw e},h.strict=n((function e(t,r){t||m(t,!0,r,"==",e)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var E=Object.keys||function(e){var t=[];for(var r in e)a.call(e,r)&&t.push(r);return t}}).call(this,r(6))},function(e,t,r){"use strict";var n=r(14),i=r(28),f=r(4);function o(e){if(!(this instanceof o))return new o(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),r=i.toArray(e.nonce,e.nonceEnc||"hex"),n=i.toArray(e.pers,e.persEnc||"hex");f(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}e.exports=o,o.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},o.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var f=[];f.length>>32-t}function s(e,t,r,n,i,f,o){return c(e+(t&r|~t&n)+i+f|0,o)+t|0}function u(e,t,r,n,i,f,o){return c(e+(t&n|r&~n)+i+f|0,o)+t|0}function d(e,t,r,n,i,f,o){return c(e+(t^r^n)+i+f|0,o)+t|0}function h(e,t,r,n,i,f,o){return c(e+(r^(t|~n))+i+f|0,o)+t|0}n(a,i),a.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,i=this._c,f=this._d;r=s(r,n,i,f,e[0],3614090360,7),f=s(f,r,n,i,e[1],3905402710,12),i=s(i,f,r,n,e[2],606105819,17),n=s(n,i,f,r,e[3],3250441966,22),r=s(r,n,i,f,e[4],4118548399,7),f=s(f,r,n,i,e[5],1200080426,12),i=s(i,f,r,n,e[6],2821735955,17),n=s(n,i,f,r,e[7],4249261313,22),r=s(r,n,i,f,e[8],1770035416,7),f=s(f,r,n,i,e[9],2336552879,12),i=s(i,f,r,n,e[10],4294925233,17),n=s(n,i,f,r,e[11],2304563134,22),r=s(r,n,i,f,e[12],1804603682,7),f=s(f,r,n,i,e[13],4254626195,12),i=s(i,f,r,n,e[14],2792965006,17),r=u(r,n=s(n,i,f,r,e[15],1236535329,22),i,f,e[1],4129170786,5),f=u(f,r,n,i,e[6],3225465664,9),i=u(i,f,r,n,e[11],643717713,14),n=u(n,i,f,r,e[0],3921069994,20),r=u(r,n,i,f,e[5],3593408605,5),f=u(f,r,n,i,e[10],38016083,9),i=u(i,f,r,n,e[15],3634488961,14),n=u(n,i,f,r,e[4],3889429448,20),r=u(r,n,i,f,e[9],568446438,5),f=u(f,r,n,i,e[14],3275163606,9),i=u(i,f,r,n,e[3],4107603335,14),n=u(n,i,f,r,e[8],1163531501,20),r=u(r,n,i,f,e[13],2850285829,5),f=u(f,r,n,i,e[2],4243563512,9),i=u(i,f,r,n,e[7],1735328473,14),r=d(r,n=u(n,i,f,r,e[12],2368359562,20),i,f,e[5],4294588738,4),f=d(f,r,n,i,e[8],2272392833,11),i=d(i,f,r,n,e[11],1839030562,16),n=d(n,i,f,r,e[14],4259657740,23),r=d(r,n,i,f,e[1],2763975236,4),f=d(f,r,n,i,e[4],1272893353,11),i=d(i,f,r,n,e[7],4139469664,16),n=d(n,i,f,r,e[10],3200236656,23),r=d(r,n,i,f,e[13],681279174,4),f=d(f,r,n,i,e[0],3936430074,11),i=d(i,f,r,n,e[3],3572445317,16),n=d(n,i,f,r,e[6],76029189,23),r=d(r,n,i,f,e[9],3654602809,4),f=d(f,r,n,i,e[12],3873151461,11),i=d(i,f,r,n,e[15],530742520,16),r=h(r,n=d(n,i,f,r,e[2],3299628645,23),i,f,e[0],4096336452,6),f=h(f,r,n,i,e[7],1126891415,10),i=h(i,f,r,n,e[14],2878612391,15),n=h(n,i,f,r,e[5],4237533241,21),r=h(r,n,i,f,e[12],1700485571,6),f=h(f,r,n,i,e[3],2399980690,10),i=h(i,f,r,n,e[10],4293915773,15),n=h(n,i,f,r,e[1],2240044497,21),r=h(r,n,i,f,e[8],1873313359,6),f=h(f,r,n,i,e[15],4264355552,10),i=h(i,f,r,n,e[6],2734768916,15),n=h(n,i,f,r,e[13],1309151649,21),r=h(r,n,i,f,e[4],4149444226,6),f=h(f,r,n,i,e[11],3174756917,10),i=h(i,f,r,n,e[2],718787259,15),n=h(n,i,f,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+f|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=f.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=a},function(e,t,r){"use strict";var n=r(0).Buffer,i=r(1),f=r(72),o=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],s=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],u=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],d=[0,1518500249,1859775393,2400959708,2840853838],h=[1352829926,1548603684,1836072691,2053994217,0];function p(){f.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function l(e,t){return e<>>32-t}function b(e,t,r,n,i,f,o,a){return l(e+(t^r^n)+f+o|0,a)+i|0}function y(e,t,r,n,i,f,o,a){return l(e+(t&r|~t&n)+f+o|0,a)+i|0}function m(e,t,r,n,i,f,o,a){return l(e+((t|~r)^n)+f+o|0,a)+i|0}function v(e,t,r,n,i,f,o,a){return l(e+(t&n|r&~n)+f+o|0,a)+i|0}function g(e,t,r,n,i,f,o,a){return l(e+(t^(r|~n))+f+o|0,a)+i|0}i(p,f),p.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,i=0|this._c,f=0|this._d,p=0|this._e,w=0|this._a,_=0|this._b,S=0|this._c,E=0|this._d,A=0|this._e,I=0;I<80;I+=1){var k,T;I<16?(k=b(r,n,i,f,p,e[a[I]],d[0],s[I]),T=g(w,_,S,E,A,e[c[I]],h[0],u[I])):I<32?(k=y(r,n,i,f,p,e[a[I]],d[1],s[I]),T=v(w,_,S,E,A,e[c[I]],h[1],u[I])):I<48?(k=m(r,n,i,f,p,e[a[I]],d[2],s[I]),T=m(w,_,S,E,A,e[c[I]],h[2],u[I])):I<64?(k=v(r,n,i,f,p,e[a[I]],d[3],s[I]),T=y(w,_,S,E,A,e[c[I]],h[3],u[I])):(k=g(r,n,i,f,p,e[a[I]],d[4],s[I]),T=b(w,_,S,E,A,e[c[I]],h[4],u[I])),r=p,p=f,f=l(i,10),i=n,n=k,w=A,A=E,E=l(S,10),S=_,_=T}var P=this._b+i+E|0;this._b=this._c+f+A|0,this._c=this._d+p+w|0,this._d=this._e+r+_|0,this._e=this._a+n+S|0,this._a=P},p.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=p},function(e,t,r){(t=e.exports=function(e){e=e.toLowerCase();var r=t[e];if(!r)throw new Error(e+" is not supported (we accept pull requests)");return new r}).sha=r(164),t.sha1=r(165),t.sha224=r(166),t.sha256=r(77),t.sha384=r(167),t.sha512=r(78)},function(e,t,r){(function(t){const n=r(2),i=new(0,r(82).ec)("secp256k1"),f=r(320),o=t.alloc(32,0),a=t.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),c=t.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex"),s=i.curve.n,u=s.shrn(1),d=i.curve.g;function h(e){return t.isBuffer(e)&&32===e.length}function p(e){return!!h(e)&&e.compare(a)<0}function l(e){if(!t.isBuffer(e))return!1;if(e.length<33)return!1;const r=e[0],n=e.slice(1,33);if(0===n.compare(o))return!1;if(n.compare(c)>=0)return!1;if((2===r||3===r)&&33===e.length){try{w(e)}catch(e){return!1}return!0}const i=e.slice(33);return 0!==i.compare(o)&&(!(i.compare(c)>=0)&&(4===r&&65===e.length))}function b(e){return 4!==e[0]}function y(e){return!!h(e)&&(e.compare(o)>0&&e.compare(a)<0)}function m(e,t){return void 0===e&&void 0!==t?b(t):void 0===e||e}function v(e){return new n(e)}function g(e){return e.toArrayLike(t,"be",32)}function w(e){return i.curve.decodePoint(e)}function _(e,r){return t.from(e._encode(r))}function S(e,r,n){if(!h(e))throw new TypeError("Expected Hash");if(!y(r))throw new TypeError("Expected Private");if(void 0!==n&&!h(n))throw new TypeError("Expected Extra Data (32 bytes)");const i=v(r),o=v(e);let a,c;f(e,r,(function(e){const t=v(e),r=d.mul(t);return!r.isInfinity()&&(a=r.x.umod(s),0!==a.isZero()&&(c=t.invm(s).mul(o.add(i.mul(a))).umod(s),0!==c.isZero()))}),y,n),c.cmp(u)>0&&(c=s.sub(c));const p=t.allocUnsafe(64);return g(a).copy(p,0),g(c).copy(p,32),p}e.exports={isPoint:l,isPointCompressed:function(e){return!!l(e)&&b(e)},isPrivate:y,pointAdd:function(e,t,r){if(!l(e))throw new TypeError("Expected Point");if(!l(t))throw new TypeError("Expected Point");const n=w(e),i=w(t),f=n.add(i);return f.isInfinity()?null:_(f,m(r,e))},pointAddScalar:function(e,t,r){if(!l(e))throw new TypeError("Expected Point");if(!p(t))throw new TypeError("Expected Tweak");const n=m(r,e),i=w(e);if(0===t.compare(o))return _(i,n);const f=v(t),a=d.mul(f),c=i.add(a);return c.isInfinity()?null:_(c,n)},pointCompress:function(e,t){if(!l(e))throw new TypeError("Expected Point");const r=w(e);if(r.isInfinity())throw new TypeError("Expected Point");return _(r,t)},pointFromScalar:function(e,t){if(!y(e))throw new TypeError("Expected Private");const r=v(e),n=d.mul(r);return n.isInfinity()?null:_(n,m(t))},pointMultiply:function(e,t,r){if(!l(e))throw new TypeError("Expected Point");if(!p(t))throw new TypeError("Expected Tweak");const n=m(r,e),i=w(e),f=v(t),o=i.mul(f);return o.isInfinity()?null:_(o,n)},privateAdd:function(e,t){if(!y(e))throw new TypeError("Expected Private");if(!p(t))throw new TypeError("Expected Tweak");const r=v(e),n=v(t),i=g(r.add(n).umod(s));return y(i)?i:null},privateSub:function(e,t){if(!y(e))throw new TypeError("Expected Private");if(!p(t))throw new TypeError("Expected Tweak");const r=v(e),n=v(t),i=g(r.sub(n).umod(s));return y(i)?i:null},sign:function(e,t){return S(e,t)},signWithEntropy:function(e,t,r){return S(e,t,r)},verify:function(e,r,n){if(!h(e))throw new TypeError("Expected Hash");if(!l(r))throw new TypeError("Expected Point");if(!function(e){const r=e.slice(0,32),n=e.slice(32,64);return t.isBuffer(e)&&64===e.length&&r.compare(a)<0&&n.compare(a)<0}(n))throw new TypeError("Expected Signature");const i=w(r),f=v(n.slice(0,32)),o=v(n.slice(32,64));if(f.gtn(0)<=0)return!1;if(o.gtn(0)<=0)return!1;const c=v(e),u=o.invm(s),p=c.mul(u).umod(s),b=f.mul(u).umod(s),y=d.mulAdd(p,i,b);return!y.isInfinity()&&y.x.umod(s).eq(f)}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prop=function(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){const e=r.call(this);return this[t]=e,e},set(e){Object.defineProperty(this,t,{configurable:!0,enumerable:!0,value:e,writable:!0})}})},t.value=function(e){let t;return()=>(void 0!==t||(t=e()),t)}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){"use strict";var n=r(1),i=r(193),f=r(17),o=r(90).Buffer,a=r(91),c=r(51),s=r(52),u=o.alloc(128);function d(e,t){f.call(this,"digest"),"string"==typeof t&&(t=o.from(t));var r="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>r)?t=("rmd160"===e?new c:s(e)).update(t).digest():t.length>>3},t.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},function(e,t,r){"use strict";var n=r(7),i=r(20),f=r(58),o=r(4),a=n.sum32,c=n.sum32_4,s=n.sum32_5,u=f.ch32,d=f.maj32,h=f.s0_256,p=f.s1_256,l=f.g0_256,b=f.g1_256,y=i.BlockHash,m=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function v(){if(!(this instanceof v))return new v;y.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=m,this.W=new Array(64)}n.inherits(v,y),e.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(i,r);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t=0||!r.umod(e.prime1)||!r.umod(e.prime2);)r=new n(i(t));return r}e.exports=f,f.getr=o}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n,i=t,f=r(14),o=r(109),a=r(8).assert;function c(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=c,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:f.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:f.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:f.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:f.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:f.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(224)}catch(e){n=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:f.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(e,t,r){"use strict";var n,i=t,f=r(14),o=r(116),a=r(9).assert;function c(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=c,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:f.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:f.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:f.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:f.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:f.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(251)}catch(e){n=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:f.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},,,function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){var n=r(169).Buffer;e.exports={check:function(e){if(e.length<8)return!1;if(e.length>72)return!1;if(48!==e[0])return!1;if(e[1]!==e.length-2)return!1;if(2!==e[2])return!1;var t=e[3];if(0===t)return!1;if(5+t>=e.length)return!1;if(2!==e[4+t])return!1;var r=e[5+t];return 0!==r&&(6+t+r===e.length&&(!(128&e[4])&&(!(t>1&&0===e[4]&&!(128&e[5]))&&(!(128&e[t+6])&&!(r>1&&0===e[t+6]&&!(128&e[t+7]))))))},decode:function(e){if(e.length<8)throw new Error("DER sequence length is too short");if(e.length>72)throw new Error("DER sequence length is too long");if(48!==e[0])throw new Error("Expected DER sequence");if(e[1]!==e.length-2)throw new Error("DER sequence length is invalid");if(2!==e[2])throw new Error("Expected DER integer");var t=e[3];if(0===t)throw new Error("R length is zero");if(5+t>=e.length)throw new Error("R length is too long");if(2!==e[4+t])throw new Error("Expected DER integer (2)");var r=e[5+t];if(0===r)throw new Error("S length is zero");if(6+t+r!==e.length)throw new Error("S length is invalid");if(128&e[4])throw new Error("R value is negative");if(t>1&&0===e[4]&&!(128&e[5]))throw new Error("R value excessively padded");if(128&e[t+6])throw new Error("S value is negative");if(r>1&&0===e[t+6]&&!(128&e[t+7]))throw new Error("S value excessively padded");return{r:e.slice(4,4+t),s:e.slice(6+t)}},encode:function(e,t){var r=e.length,i=t.length;if(0===r)throw new Error("R length is zero");if(0===i)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(i>33)throw new Error("S length is too long");if(128&e[0])throw new Error("R value is negative");if(128&t[0])throw new Error("S value is negative");if(r>1&&0===e[0]&&!(128&e[1]))throw new Error("R value excessively padded");if(i>1&&0===t[0]&&!(128&t[1]))throw new Error("S value excessively padded");var f=n.allocUnsafe(6+r+i);return f[0]=48,f[1]=f.length-2,f[2]=2,f[3]=e.length,e.copy(f,4),f[4+r]=2,f[5+r]=t.length,t.copy(f,6+r),f}}},,function(e,t,r){"use strict";var n=r(150).Buffer,i=r(37).Transform;function f(e){i.call(this),this._block=n.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(1)(f,i),f.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},f.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},f.prototype.update=function(e,t){if(function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(e)||(e=n.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var f=this._blockOffset;f0;++o)this._length[o]+=a,(a=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*a);return this},f.prototype._update=function(){throw new Error("_update is not implemented")},f.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},f.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=f},function(e,t,r){"use strict";(function(t,n){var i=r(27);e.exports=g;var f,o=r(55);g.ReadableState=v;r(44).EventEmitter;var a=function(e,t){return e.listeners(t).length},c=r(74),s=r(33).Buffer,u=t.Uint8Array||function(){};var d=r(23);d.inherits=r(1);var h=r(151),p=void 0;p=h&&h.debuglog?h.debuglog("stream"):function(){};var l,b=r(152),y=r(75);d.inherits(g,c);var m=["error","close","destroy","pause","resume"];function v(e,t){e=e||{};var n=t instanceof(f=f||r(15));this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,o=e.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(o||0===o)?o:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new b,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(l||(l=r(47).StringDecoder),this.decoder=new l(e.encoding),this.encoding=e.encoding)}function g(e){if(f=f||r(15),!(this instanceof g))return new g(e);this._readableState=new v(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),c.call(this)}function w(e,t,r,n,i){var f,o=e._readableState;null===t?(o.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,E(e)}(e,o)):(i||(f=function(e,t){var r;n=t,s.isBuffer(n)||n instanceof u||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r}(o,t)),f?e.emit("error",f):o.objectMode||t&&t.length>0?("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n?o.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):_(e,o,t,!0):o.ended?e.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?_(e,o,t,!1):I(e,o)):_(e,o,t,!1))):n||(o.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function E(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(A,e):A(e))}function A(e){p("emit readable"),e.emit("readable"),x(e)}function I(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(k,e,t))}function k(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;ef.length?f.length:e;if(o===f.length?i+=f:i+=f.slice(0,e),0===(e-=o)){o===f.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=f.slice(o));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=s.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var f=n.data,o=e>f.length?f.length:e;if(f.copy(r,r.length-e,0,o),0===(e-=o)){o===f.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=f.slice(o));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function O(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(B,t,e))}function B(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function N(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):E(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&O(this),null;var n,i=t.needReadable;return p("need readable",i),(0===t.length||t.length-e0?M(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&O(this)),null!==n&&this.emit("data",n),n},g.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},g.prototype.pipe=function(e,t){var r=this,f=this._readableState;switch(f.pipesCount){case 0:f.pipes=e;break;case 1:f.pipes=[f.pipes,e];break;default:f.pipes.push(e)}f.pipesCount+=1,p("pipe count=%d opts=%j",f.pipesCount,t);var c=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?u:g;function s(t,n){p("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,p("cleanup"),e.removeListener("close",m),e.removeListener("finish",v),e.removeListener("drain",d),e.removeListener("error",y),e.removeListener("unpipe",s),r.removeListener("end",u),r.removeListener("end",g),r.removeListener("data",b),h=!0,!f.awaitDrain||e._writableState&&!e._writableState.needDrain||d())}function u(){p("onend"),e.end()}f.endEmitted?i.nextTick(c):r.once("end",c),e.on("unpipe",s);var d=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,x(e))}}(r);e.on("drain",d);var h=!1;var l=!1;function b(t){p("ondata"),l=!1,!1!==e.write(t)||l||((1===f.pipesCount&&f.pipes===e||f.pipesCount>1&&-1!==N(f.pipes,e))&&!h&&(p("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,l=!0),r.pause())}function y(t){p("onerror",t),g(),e.removeListener("error",y),0===a(e,"error")&&e.emit("error",t)}function m(){e.removeListener("finish",v),g()}function v(){p("onfinish"),e.removeListener("close",m),g()}function g(){p("unpipe"),r.unpipe(e)}return r.on("data",b),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?o(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",y),e.once("close",m),e.once("finish",v),e.emit("pipe",r),f.flowing||(p("pipe resume"),r.resume()),e},g.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var f=0;f>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function h(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function p(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,f=0|this._c,a=0|this._d,c=0|this._e,l=0|this._f,b=0|this._g,y=0|this._h,m=0;m<16;++m)r[m]=e.readInt32BE(4*m);for(;m<64;++m)r[m]=0|(((t=r[m-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[m-7]+p(r[m-15])+r[m-16];for(var v=0;v<64;++v){var g=y+h(c)+s(c,l,b)+o[v]+r[v]|0,w=d(n)+u(n,i,f)|0;y=b,b=l,l=c,c=a+g|0,a=f,f=i,i=n,n=g+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=f+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0,this._f=l+this._f|0,this._g=b+this._g|0,this._h=y+this._h|0},c.prototype._hash=function(){var e=f.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},function(e,t,r){var n=r(1),i=r(19),f=r(16).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function c(){this.init(),this._w=a,i.call(this,128,112)}function s(e,t,r){return r^e&(t^r)}function u(e,t,r){return e&t|r&(e|t)}function d(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function h(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function l(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function b(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function m(e,t){return e>>>0>>0?1:0}n(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,f=0|this._dh,a=0|this._eh,c=0|this._fh,v=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,S=0|this._cl,E=0|this._dl,A=0|this._el,I=0|this._fl,k=0|this._gl,T=0|this._hl,P=0;P<32;P+=2)t[P]=e.readInt32BE(4*P),t[P+1]=e.readInt32BE(4*P+4);for(;P<160;P+=2){var x=t[P-30],M=t[P-30+1],O=p(x,M),B=l(M,x),N=b(x=t[P-4],M=t[P-4+1]),R=y(M,x),C=t[P-14],U=t[P-14+1],L=t[P-32],D=t[P-32+1],j=B+U|0,q=O+C+m(j,B)|0;q=(q=q+N+m(j=j+R|0,R)|0)+L+m(j=j+D|0,D)|0,t[P]=q,t[P+1]=j}for(var K=0;K<160;K+=2){q=t[K],j=t[K+1];var H=u(r,n,i),z=u(w,_,S),F=d(r,w),V=d(w,r),W=h(a,A),Y=h(A,a),G=o[K],X=o[K+1],J=s(a,c,v),$=s(A,I,k),Z=T+Y|0,Q=g+W+m(Z,T)|0;Q=(Q=(Q=Q+J+m(Z=Z+$|0,$)|0)+G+m(Z=Z+X|0,X)|0)+q+m(Z=Z+j|0,j)|0;var ee=V+z|0,te=F+H+m(ee,V)|0;g=v,T=k,v=c,k=I,c=a,I=A,a=f+Q+m(A=E+Z|0,E)|0,f=i,E=S,i=n,S=_,n=r,_=w,r=Q+te+m(w=Z+ee|0,Z)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+S|0,this._dl=this._dl+E|0,this._el=this._el+A|0,this._fl=this._fl+I|0,this._gl=this._gl+k|0,this._hl=this._hl+T|0,this._ah=this._ah+r+m(this._al,w)|0,this._bh=this._bh+n+m(this._bl,_)|0,this._ch=this._ch+i+m(this._cl,S)|0,this._dh=this._dh+f+m(this._dl,E)|0,this._eh=this._eh+a+m(this._el,A)|0,this._fh=this._fh+c+m(this._fl,I)|0,this._gh=this._gh+v+m(this._gl,k)|0,this._hh=this._hh+g+m(this._hl,T)|0},c.prototype._hash=function(){var e=f.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e){e.exports=JSON.parse('{"COMPRESSED_TYPE_INVALID":"compressed should be a boolean","EC_PRIVATE_KEY_TYPE_INVALID":"private key should be a Buffer","EC_PRIVATE_KEY_LENGTH_INVALID":"private key length is invalid","EC_PRIVATE_KEY_RANGE_INVALID":"private key range is invalid","EC_PRIVATE_KEY_TWEAK_ADD_FAIL":"tweak out of range or resulting private key is invalid","EC_PRIVATE_KEY_TWEAK_MUL_FAIL":"tweak out of range","EC_PRIVATE_KEY_EXPORT_DER_FAIL":"couldn\'t export to DER format","EC_PRIVATE_KEY_IMPORT_DER_FAIL":"couldn\'t import from DER format","EC_PUBLIC_KEYS_TYPE_INVALID":"public keys should be an Array","EC_PUBLIC_KEYS_LENGTH_INVALID":"public keys Array should have at least 1 element","EC_PUBLIC_KEY_TYPE_INVALID":"public key should be a Buffer","EC_PUBLIC_KEY_LENGTH_INVALID":"public key length is invalid","EC_PUBLIC_KEY_PARSE_FAIL":"the public key could not be parsed or is invalid","EC_PUBLIC_KEY_CREATE_FAIL":"private was invalid, try again","EC_PUBLIC_KEY_TWEAK_ADD_FAIL":"tweak out of range or resulting public key is invalid","EC_PUBLIC_KEY_TWEAK_MUL_FAIL":"tweak out of range","EC_PUBLIC_KEY_COMBINE_FAIL":"the sum of the public keys is not valid","ECDH_FAIL":"scalar was invalid (zero or overflow)","ECDSA_SIGNATURE_TYPE_INVALID":"signature should be a Buffer","ECDSA_SIGNATURE_LENGTH_INVALID":"signature length is invalid","ECDSA_SIGNATURE_PARSE_FAIL":"couldn\'t parse signature","ECDSA_SIGNATURE_PARSE_DER_FAIL":"couldn\'t parse DER signature","ECDSA_SIGNATURE_SERIALIZE_DER_FAIL":"couldn\'t serialize signature to DER format","ECDSA_SIGN_FAIL":"nonce generation function failed or private key is invalid","ECDSA_RECOVER_FAIL":"couldn\'t recover public key from signature","MSG32_TYPE_INVALID":"message should be a Buffer","MSG32_LENGTH_INVALID":"message length is invalid","OPTIONS_TYPE_INVALID":"options should be an Object","OPTIONS_DATA_TYPE_INVALID":"options.data should be a Buffer","OPTIONS_DATA_LENGTH_INVALID":"options.data length is invalid","OPTIONS_NONCEFN_TYPE_INVALID":"options.noncefn should be a Function","RECOVERY_ID_TYPE_INVALID":"recovery should be a Number","RECOVERY_ID_VALUE_INVALID":"recovery should have value between -1 and 4","TWEAK_TYPE_INVALID":"tweak should be a Buffer","TWEAK_LENGTH_INVALID":"tweak length is invalid"}')},,function(e,t,r){"use strict";var n=t;n.version=r(126).version,n.utils=r(5),n.rand=r(18),n.curve=r(57),n.curves=r(36),n.ec=r(138),n.eddsa=r(141)},function(e,t,r){"use strict";e.exports=r(170)(r(173))},function(e,t,r){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=r(21),t.createHash=t.Hash=r(10),t.createHmac=t.Hmac=r(56);var n=r(196),i=Object.keys(n),f=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return f};var o=r(94);t.pbkdf2=o.pbkdf2,t.pbkdf2Sync=o.pbkdf2Sync;var a=r(198);t.Cipher=a.Cipher,t.createCipher=a.createCipher,t.Cipheriv=a.Cipheriv,t.createCipheriv=a.createCipheriv,t.Decipher=a.Decipher,t.createDecipher=a.createDecipher,t.Decipheriv=a.Decipheriv,t.createDecipheriv=a.createDecipheriv,t.getCiphers=a.getCiphers,t.listCiphers=a.listCiphers;var c=r(215);t.DiffieHellmanGroup=c.DiffieHellmanGroup,t.createDiffieHellmanGroup=c.createDiffieHellmanGroup,t.getDiffieHellman=c.getDiffieHellman,t.createDiffieHellman=c.createDiffieHellman,t.DiffieHellman=c.DiffieHellman;var s=r(218);t.createSign=s.createSign,t.Sign=s.Sign,t.createVerify=s.createVerify,t.Verify=s.Verify,t.createECDH=r(245);var u=r(258);t.publicEncrypt=u.publicEncrypt,t.privateEncrypt=u.privateEncrypt,t.publicDecrypt=u.publicDecrypt,t.privateDecrypt=u.privateDecrypt;var d=r(261);t.randomFill=d.randomFill,t.randomFillSync=d.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(e,t,r){"use strict";function n(e,t){if("number"!=typeof e)throw new Error("cannot write a non-number as a number");if(e<0)throw new Error("specified a negative value for writing an unsigned value");if(e>t)throw new Error("RangeError: value out of range");if(Math.floor(e)!==e)throw new Error("value has a fractional component")}Object.defineProperty(t,"__esModule",{value:!0}),t.readUInt64LE=function(e,t){const r=e.readUInt32LE(t);let i=e.readUInt32LE(t+4);return i*=4294967296,n(i+r,9007199254740991),i+r},t.writeUInt64LE=function(e,t,r){return n(t,9007199254740991),e.writeInt32LE(-1&t,r),e.writeUInt32LE(Math.floor(t/4294967296),r+4),r+8},t.reverseBuffer=function(e){if(e.length<1)return e;let t=e.length-1,r=0;for(let n=0;n9007199254740991||e%1!=0)throw new RangeError("value out of range")}function n(e){return r(e),e<253?1:e<=65535?3:e<=4294967295?5:9}t.encode=function t(i,f,o){if(r(i),f||(f=e.allocUnsafe(n(i))),!e.isBuffer(f))throw new TypeError("buffer must be a Buffer instance");return o||(o=0),i<253?(f.writeUInt8(i,o),Object.assign(t,{bytes:1})):i<=65535?(f.writeUInt8(253,o),f.writeUInt16LE(i,o+1),Object.assign(t,{bytes:3})):i<=4294967295?(f.writeUInt8(254,o),f.writeUInt32LE(i,o+1),Object.assign(t,{bytes:5})):(f.writeUInt8(255,o),f.writeUInt32LE(i>>>0,o+1),f.writeUInt32LE(i/4294967296|0,o+5),Object.assign(t,{bytes:9})),f},t.decode=function t(n,i){if(!e.isBuffer(n))throw new TypeError("buffer must be a Buffer instance");i||(i=0);const f=n.readUInt8(i);if(f<253)return Object.assign(t,{bytes:1}),f;if(253===f)return Object.assign(t,{bytes:3}),n.readUInt16LE(i+1);if(254===f)return Object.assign(t,{bytes:5}),n.readUInt32LE(i+1);{Object.assign(t,{bytes:9});const e=n.readUInt32LE(i+1),f=4294967296*n.readUInt32LE(i+5)+e;return r(f),f}},t.encodingLength=n}).call(this,r(0).Buffer)},function(e){e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},function(e,t,r){t.pbkdf2=r(197),t.pbkdf2Sync=r(97)},function(e,t,r){(function(t){var r=Math.pow(2,30)-1;function n(e,r){if("string"!=typeof e&&!t.isBuffer(e))throw new TypeError(r+" must be a buffer or string")}e.exports=function(e,t,i,f){if(n(e,"Password"),n(t,"Salt"),"number"!=typeof i)throw new TypeError("Iterations not a number");if(i<0)throw new TypeError("Bad iterations");if("number"!=typeof f)throw new TypeError("Key length not a number");if(f<0||f>r||f!=f)throw new TypeError("Bad key length")}}).call(this,r(0).Buffer)},function(e,t,r){(function(t){var r;t.browser?r="utf-8":r=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";e.exports=r}).call(this,r(11))},function(e,t,r){var n=r(91),i=r(51),f=r(52),o=r(95),a=r(96),c=r(98).Buffer,s=c.alloc(128),u={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function d(e,t,r){var o=function(e){function t(t){return f(e).update(t).digest()}return"rmd160"===e||"ripemd160"===e?function(e){return(new i).update(e).digest()}:"md5"===e?n:t}(e),a="sha512"===e||"sha384"===e?128:64;t.length>a?t=o(t):t.length>>0},t.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},t.ip=function(e,t,r,n){for(var i=0,f=0,o=6;o>=0;o-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>>a+o&1}for(o=6;o>=0;o-=2){for(a=1;a<=25;a+=8)f<<=1,f|=t>>>a+o&1;for(a=1;a<=25;a+=8)f<<=1,f|=e>>>a+o&1}r[n+0]=i>>>0,r[n+1]=f>>>0},t.rip=function(e,t,r,n){for(var i=0,f=0,o=0;o<4;o++)for(var a=24;a>=0;a-=8)i<<=1,i|=t>>>a+o&1,i<<=1,i|=e>>>a+o&1;for(o=4;o<8;o++)for(a=24;a>=0;a-=8)f<<=1,f|=t>>>a+o&1,f<<=1,f|=e>>>a+o&1;r[n+0]=i>>>0,r[n+1]=f>>>0},t.pc1=function(e,t,r,n){for(var i=0,f=0,o=7;o>=5;o--){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+o&1}for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+o&1;for(o=1;o<=3;o++){for(a=0;a<=24;a+=8)f<<=1,f|=t>>a+o&1;for(a=0;a<=24;a+=8)f<<=1,f|=e>>a+o&1}for(a=0;a<=24;a+=8)f<<=1,f|=e>>a+o&1;r[n+0]=i>>>0,r[n+1]=f>>>0},t.r28shl=function(e,t){return e<>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,i){for(var f=0,o=0,a=n.length>>>1,c=0;c>>n[c]&1;for(c=a;c>>n[c]&1;r[i+0]=f>>>0,r[i+1]=o>>>0},t.expand=function(e,t,r){var n=0,i=0;n=(1&e)<<5|e>>>27;for(var f=23;f>=15;f-=4)n<<=6,n|=e>>>f&63;for(f=11;f>=3;f-=4)i|=e>>>f&63,i<<=6;i|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var r=0,n=0;n<4;n++){r<<=4,r|=i[64*n+(e>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=i[256+64*n+(t>>>18-6*n&63)]}return r>>>0};var f=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,r=0;r>>f[r]&1;return t>>>0},t.padSplit=function(e,t,r){for(var n=e.toString(2);n.length>>1];r=f.r28shl(r,a),i=f.r28shl(i,a),f.pc2(r,i,e.keys,o)}},c.prototype._update=function(e,t,r,n){var i=this._desState,o=f.readUInt32BE(e,t),a=f.readUInt32BE(e,t+4);f.ip(o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],"encrypt"===this.type?this._encrypt(i,o,a,i.tmp,0):this._decrypt(i,o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],f.writeUInt32BE(r,o,n),f.writeUInt32BE(r,a,n+4)},c.prototype._pad=function(e,t){for(var r=e.length-t,n=t;n>>0,o=h}f.rip(a,o,n,i)},c.prototype._decrypt=function(e,t,r,n,i){for(var o=r,a=t,c=e.keys.length-2;c>=0;c-=2){var s=e.keys[c],u=e.keys[c+1];f.expand(o,e.tmp,0),s^=e.tmp[0],u^=e.tmp[1];var d=f.substitute(s,u),h=o;o=(a^f.permute(d))>>>0,a=h}f.rip(o,a,n,i)}},function(e,t,r){var n=r(29),i=r(12).Buffer,f=r(102);function o(e){var t=e._cipher.encryptBlockRaw(e._prev);return f(e._prev),t}t.encrypt=function(e,t){var r=Math.ceil(t.length/16),f=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*r)]);for(var a=0;ae;)r.ishrn(1);if(r.isEven()&&r.iadd(a),r.testn(1)||r.iadd(c),t.cmp(c)){if(!t.cmp(s))for(;r.mod(u).cmp(d);)r.iadd(p)}else for(;r.mod(f).cmp(h);)r.iadd(p);if(y(l=r.shrn(1))&&y(r)&&m(l)&&m(r)&&o.test(l)&&o.test(r))return r}}},function(e,t,r){var n=r(2),i=r(18);function f(e){this.rand=e||new i.Rand}e.exports=f,f.create=function(e){return new f(e)},f.prototype._randbelow=function(e){var t=e.bitLength(),r=Math.ceil(t/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(e)>=0);return i},f.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},f.prototype.test=function(e,t,r){var i=e.bitLength(),f=n.mont(e),o=new n(1).toRed(f);t||(t=Math.max(1,i/48|0));for(var a=e.subn(1),c=0;!a.testn(c);c++);for(var s=e.shrn(c),u=a.toRed(f);t>0;t--){var d=this._randrange(new n(2),a);r&&r(d);var h=d.toRed(f).redPow(s);if(0!==h.cmp(o)&&0!==h.cmp(u)){for(var p=1;p0;t--){var u=this._randrange(new n(2),o),d=e.gcd(u);if(0!==d.cmpn(1))return d;var h=u.toRed(i).redPow(c);if(0!==h.cmp(f)&&0!==h.cmp(s)){for(var p=1;p>6],i=0==(32&r);if(31==(31&r)){var f=r;for(r=0;128==(128&f);){if(f=e.readUInt8(t),e.isError(f))return f;r<<=7,r|=127&f}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:a.tag[r]}}function d(e,t,r){var n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(0==(128&n))return n;var i=127&n;if(i>4)return e.error("length octect is too long");n=0;for(var f=0;f=31)return n.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=a.tagClassByName[r||"universal"]<<6}(e,t,r,this.reporter);if(n.length<128)return(f=new i(2))[0]=o,f[1]=n.length,this._createEncoderBuffer([f,n]);for(var c=1,s=n.length;s>=256;s>>=8)c++;(f=new i(2+c))[0]=o,f[1]=128|c;s=1+c;for(var u=n.length;u>0;s--,u>>=8)f[s]=255&u;return this._createEncoderBuffer([f,n])},s.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var r=new i(2*e.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var f=0;for(n=0;n=128;o>>=7)f++}var a=new i(f),c=a.length-1;for(n=e.length-1;n>=0;n--){o=e[n];for(a[c--]=127&o;(o>>=7)>0;)a[c--]=128|127&o}return this._createEncoderBuffer(a)},s.prototype._encodeTime=function(e,t){var r,n=new Date(e);return"gentime"===t?r=[u(n.getFullYear()),u(n.getUTCMonth()+1),u(n.getUTCDate()),u(n.getUTCHours()),u(n.getUTCMinutes()),u(n.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[u(n.getFullYear()%100),u(n.getUTCMonth()+1),u(n.getUTCDate()),u(n.getUTCHours()),u(n.getUTCMinutes()),u(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(r,"octstr")},s.prototype._encodeNull=function(){return this._createEncoderBuffer("")},s.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){var r=e.toArray();!e.sign&&128&r[0]&&r.unshift(0),e=new i(r)}if(i.isBuffer(e)){var n=e.length;0===e.length&&n++;var f=new i(n);return e.copy(f),0===e.length&&(f[0]=0),this._createEncoderBuffer(f)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);n=1;for(var o=e;o>=256;o>>=8)n++;for(o=(f=new Array(n)).length-1;o>=0;o--)f[o]=255&e,e>>=8;return 128&f[0]&&f.unshift(0),this._createEncoderBuffer(new i(f))},s.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},s.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},s.prototype._skipDefault=function(e,t,r){var n,i=this._baseState;if(null===i.default)return!1;var f=e.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,t,r).join()),f.length!==i.defaultBuffer.length)return!1;for(n=0;n0?o-4:o;for(r=0;r>16&255,c[u++]=t>>8&255,c[u++]=255&t;2===a&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,c[u++]=255&t);1===a&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t);return c},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,f=[],o=0,a=r-i;oa?a:o+16383));1===i?(t=e[r-1],f.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],f.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return f.join("")};for(var n=[],i=[],f="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,c=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function u(e,t,r){for(var i,f,o=[],a=t;a>18&63]+n[f>>12&63]+n[f>>6&63]+n[63&f]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,n,i){var f,o,a=8*i-n-1,c=(1<>1,u=-7,d=r?i-1:0,h=r?-1:1,p=e[t+d];for(d+=h,f=p&(1<<-u)-1,p>>=-u,u+=a;u>0;f=256*f+e[t+d],d+=h,u-=8);for(o=f&(1<<-u)-1,f>>=-u,u+=n;u>0;o=256*o+e[t+d],d+=h,u-=8);if(0===f)f=1-s;else{if(f===c)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),f-=s}return(p?-1:1)*o*Math.pow(2,f-n)},t.write=function(e,t,r,n,i,f){var o,a,c,s=8*f-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:f-1,l=n?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(o++,c/=2),o+d>=u?(a=0,o=u):o+d>=1?(a=(t*c-1)*Math.pow(2,i),o+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+p]=255&a,p+=l,a/=256,i-=8);for(o=o<0;e[r+p]=255&o,p+=l,o/=256,s-=8);e[r+p-l]|=128*b}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(325);t.embed=n.p2data;const i=r(330);t.p2ms=i.p2ms;const f=r(331);t.p2pk=f.p2pk;const o=r(332);t.p2pkh=o.p2pkh;const a=r(335);t.p2sh=a.p2sh;const c=r(336);t.p2wpkh=c.p2wpkh;const s=r(337);t.p2wsh=s.p2wsh},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(85),i=r(85),f=r(35),o=r(3),a=r(3),c=r(34),s=r(13),u=r(286);function d(e){const t=e.length;return u.encodingLength(t)+t}const h=e.allocUnsafe(0),p=[],l=e.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),b=e.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),y=e.from("ffffffffffffffff","hex"),m={script:h,valueBuffer:y};class v{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(e,t){let r=0;function i(t){return r+=t,e.slice(r-t,r)}function f(){const t=e.readUInt32LE(r);return r+=4,t}function o(){const t=n.readUInt64LE(e,r);return r+=8,t}function a(){const t=u.decode(e,r);return r+=u.decode.bytes,t}function c(){return i(a())}function s(){const e=a(),t=[];for(let r=0;r0!==e.witness.length)}weight(){return 3*this.__byteLength(!1)+this.__byteLength(!0)}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(){return this.__byteLength(!0)}clone(){const e=new v;return e.version=this.version,e.locktime=this.locktime,e.ins=this.ins.map(e=>({hash:e.hash,index:e.index,script:e.script,sequence:e.sequence,witness:e.witness})),e.outs=this.outs.map(e=>({script:e.script,value:e.value})),e}hashForSignature(t,r,n){if(s(c.tuple(c.UInt32,c.Buffer,c.Number),arguments),t>=this.ins.length)return b;const i=o.compile(o.decompile(r).filter(e=>e!==a.OPS.OP_CODESEPARATOR)),u=this.clone();if((31&n)===v.SIGHASH_NONE)u.outs=[],u.ins.forEach((e,r)=>{r!==t&&(e.sequence=0)});else if((31&n)===v.SIGHASH_SINGLE){if(t>=this.outs.length)return b;u.outs.length=t+1;for(let e=0;e{r!==t&&(e.sequence=0)})}n&v.SIGHASH_ANYONECANPAY?(u.ins=[u.ins[t]],u.ins[0].script=i):(u.ins.forEach(e=>{e.script=h}),u.ins[t].script=i);const d=e.allocUnsafe(u.__byteLength(!1)+4);return d.writeInt32LE(n,d.length-4),u.__toBuffer(d,0,!1),f.hash256(d)}hashForWitnessV0(t,r,i,o){s(c.tuple(c.UInt32,c.Buffer,c.Satoshi,c.UInt32),arguments);let a=e.from([]),h=0;function p(e){h+=e.copy(a,h)}function b(e){h=a.writeUInt32LE(e,h)}function y(e){h=n.writeUInt64LE(a,e,h)}function m(e){var t;t=e.length,u.encode(t,a,h),h+=u.encode.bytes,p(e)}let g=l,w=l,_=l;if(o&v.SIGHASH_ANYONECANPAY||(a=e.allocUnsafe(36*this.ins.length),h=0,this.ins.forEach(e=>{p(e.hash),b(e.index)}),w=f.hash256(a)),o&v.SIGHASH_ANYONECANPAY||(31&o)===v.SIGHASH_SINGLE||(31&o)===v.SIGHASH_NONE||(a=e.allocUnsafe(4*this.ins.length),h=0,this.ins.forEach(e=>{b(e.sequence)}),_=f.hash256(a)),(31&o)!==v.SIGHASH_SINGLE&&(31&o)!==v.SIGHASH_NONE){const t=this.outs.reduce((e,t)=>e+8+d(t.script),0);a=e.allocUnsafe(t),h=0,this.outs.forEach(e=>{y(e.value),m(e.script)}),g=f.hash256(a)}else if((31&o)===v.SIGHASH_SINGLE&&te+40+d(t.script),0)+this.outs.reduce((e,t)=>e+8+d(t.script),0)+(t?this.ins.reduce((e,t)=>e+function(e){const t=e.length;return u.encodingLength(t)+e.reduce((e,t)=>e+d(t),0)}(t.witness),0):0)}__toBuffer(t,r,i){t||(t=e.allocUnsafe(this.__byteLength(i)));let f=r||0;function o(e){f+=e.copy(t,f)}function a(e){f=t.writeUInt8(e,f)}function c(e){f=t.writeUInt32LE(e,f)}function s(e){u.encode(e,t,f),f+=u.encode.bytes}function d(e){s(e.length),o(e)}var h;h=this.version,f=t.writeInt32LE(h,f);const p=i&&this.hasWitnesses();return p&&(a(v.ADVANCED_TRANSACTION_MARKER),a(v.ADVANCED_TRANSACTION_FLAG)),s(this.ins.length),this.ins.forEach(e=>{o(e.hash),c(e.index),d(e.script),c(e.sequence)}),s(this.outs.length),this.outs.forEach(e=>{void 0!==e.value?function(e){f=n.writeUInt64LE(t,e,f)}(e.value):o(e.valueBuffer),d(e.script)}),p&&this.ins.forEach(e=>{var t;s((t=e.witness).length),t.forEach(d)}),c(this.locktime),void 0!==r?t.slice(r,f):t}}v.DEFAULT_SEQUENCE=4294967295,v.SIGHASH_ALL=1,v.SIGHASH_NONE=2,v.SIGHASH_SINGLE=3,v.SIGHASH_ANYONECANPAY=128,v.ADVANCED_TRANSACTION_MARKER=0,v.ADVANCED_TRANSACTION_FLAG=1,t.Transaction=v}).call(this,r(0).Buffer)},function(e,t,r){"use strict";for(var n="qpzry9x8gf2tvdw0s3jn54khce6mua7l",i={},f=0;f>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function c(e){for(var t=1,r=0;r126)throw new Error("Invalid prefix ("+e+")");t=a(t)^n>>5}for(t=a(t),r=0;r=r;)f-=r,a.push(i>>f&o);if(n)f>0&&a.push(i<=t)throw new Error("Excess padding");if(i<t)throw new TypeError("Exceeds length limit");var r=e.toLowerCase(),n=e.toUpperCase();if(e!==r&&e!==n)throw new Error("Mixed-case string "+e);var f=(e=r).lastIndexOf("1");if(-1===f)throw new Error("No separator character for "+e);if(0===f)throw new Error("Missing prefix for "+e);var o=e.slice(0,f),s=e.slice(f+1);if(s.length<6)throw new Error("Data too short");for(var u=c(o),d=[],h=0;h=s.length||d.push(l)}if(1!==u)throw new Error("Invalid checksum for "+e);return{prefix:o,words:d}},encode:function(e,t,r){if(r=r||90,e.length+7+t.length>r)throw new TypeError("Exceeds length limit");for(var i=c(e=e.toLowerCase()),f=e+"1",o=0;o>5!=0)throw new Error("Non 5-bit word");i=a(i)^s,f+=n.charAt(s)}for(o=0;o<6;++o)i=a(i);for(i^=1,o=0;o<6;++o){f+=n.charAt(i>>5*(5-o)&31)}return f},toWords:function(e){return s(e,8,5,!0)},fromWords:function(e){return s(e,5,8,!1)}}},function(e,t){},function(e){e.exports=JSON.parse('{"name":"elliptic","version":"6.5.1","description":"EC cryptography","main":"lib/elliptic.js","files":["lib"],"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","unit":"istanbul test _mocha --reporter=spec test/index.js","test":"npm run lint && npm run unit","version":"grunt dist && git add dist/"},"repository":{"type":"git","url":"git@github.com:indutny/elliptic"},"keywords":["EC","Elliptic","curve","Cryptography"],"author":"Fedor Indutny ","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.4","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.6.0","mocha":"^6.1.4"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(e,t){},function(e,t,r){"use strict";var n=r(5),i=r(2),f=r(1),o=r(26),a=n.assert;function c(e){o.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function s(e,t,r,n){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,r,n){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}f(c,o),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var f=this._getEndoRoots(this.n);0===this.g.mul(f[0]).x.cmp(this.g.x.redMul(t))?r=f[0]:(r=f[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),f=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(f).fromRed(),n.redSub(f).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,r,n,f,o,a,c,s,u,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=e,p=this.n.clone(),l=new i(1),b=new i(0),y=new i(0),m=new i(1),v=0;0!==h.cmpn(0);){var g=p.div(h);s=p.sub(g.mul(h)),u=y.sub(g.mul(l));var w=m.sub(g.mul(b));if(!n&&s.cmp(d)<0)t=c.neg(),r=l,n=s.neg(),f=u;else if(n&&2==++v)break;c=s,p=h,h=s,y=l,l=u,m=b,b=w}o=s.neg(),a=u;var _=n.sqr().add(f.sqr());return o.sqr().add(a.sqr()).cmp(_)>=0&&(o=t,a=r),n.negative&&(n=n.neg(),f=f.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:f},{a:o,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),f=r.b.neg().mul(e).divRound(this.n),o=i.mul(r.a),a=f.mul(n.a),c=i.mul(r.b),s=f.mul(n.b);return{k1:e.sub(o).sub(a),k2:c.add(s).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var f=n.fromRed().isOdd();return(t&&!f||!t&&f)&&(n=n.redNeg()),this.point(e,n)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,f=0;f":""},s.prototype.isInfinity=function(){return this.inf},s.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},s.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),f=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,o)},s.prototype.getX=function(){return this.x.fromRed()},s.prototype.getY=function(){return this.y.fromRed()},s.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},s.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},s.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},s.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},s.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},s.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},f(u,o.BasePoint),c.prototype.jpoint=function(e,t,r){return new u(this,e,t,r)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),f=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),c=f.redSub(o);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var s=a.redSqr(),u=s.redMul(a),d=n.redMul(s),h=c.redSqr().redIAdd(u).redISub(d).redISub(d),p=c.redMul(d.redISub(h)).redISub(f.redMul(u)),l=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,l)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,f=e.y.redMul(t).redMul(this.z),o=r.redSub(n),a=i.redSub(f);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),s=c.redMul(o),u=r.redMul(c),d=a.redSqr().redIAdd(s).redISub(u).redISub(u),h=a.redMul(u.redISub(d)).redISub(i.redMul(s)),p=this.z.redMul(o);return this.curve.jpoint(d,h,p)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(2),i=r(1),f=r(26),o=r(5);function a(e){f.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,r){f.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,f),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(c,f.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),f=e.x.redSub(e.z).redMul(r),o=i.redMul(n),a=t.z.redMul(f.redAdd(o).redSqr()),c=t.x.redMul(f.redISub(o).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var f=i.length-1;f>=0;f--)0===i[f]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(5),i=r(2),f=r(1),o=r(26),a=n.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function s(e,t,r,n,f){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=f&&new i(f,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}f(c,o),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),f=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=n.redMul(f.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),f=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(f.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},f(s,o.BasePoint),c.prototype.pointFromJSON=function(e){return s.fromJSON(this,e)},c.prototype.point=function(e,t,r,n){return new s(this,e,t,r,n)},s.fromJSON=function(e,t){return new s(e,t[0],t[1],t[2])},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},s.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),f=n.redAdd(t),o=f.redSub(r),a=n.redSub(t),c=i.redMul(o),s=f.redMul(a),u=i.redMul(a),d=o.redMul(f);return this.curve.point(c,s,d,u)},s.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),f=this.y.redSqr();if(this.curve.twisted){var o=(s=this.curve._mulA(i)).redAdd(f);if(this.zOne)e=n.redSub(i).redSub(f).redMul(o.redSub(this.curve.two)),t=o.redMul(s.redSub(f)),r=o.redSqr().redSub(o).redSub(o);else{var a=this.z.redSqr(),c=o.redSub(a).redISub(a);e=n.redSub(i).redISub(f).redMul(c),t=o.redMul(s.redSub(f)),r=o.redMul(c)}}else{var s=i.redAdd(f);a=this.curve._mulC(this.z).redSqr(),c=s.redSub(a).redSub(a);e=this.curve._mulC(n.redISub(s)).redMul(c),t=this.curve._mulC(s).redMul(i.redISub(f)),r=s.redMul(c)}return this.curve.point(e,t,r)},s.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},s.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),f=r.redSub(t),o=i.redSub(n),a=i.redAdd(n),c=r.redAdd(t),s=f.redMul(o),u=a.redMul(c),d=f.redMul(c),h=o.redMul(a);return this.curve.point(s,u,h,d)},s.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),f=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(f).redMul(o),c=i.redSub(a),s=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(f).redISub(o),d=n.redMul(c).redMul(u);return this.curve.twisted?(t=n.redMul(s).redMul(o.redSub(this.curve._mulA(f))),r=c.redMul(s)):(t=n.redMul(s).redMul(o.redSub(f)),r=this.curve._mulC(c).redMul(s)),this.curve.point(d,t,r)},s.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},s.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},s.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},s.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},s.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},s.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()},s.prototype.getY=function(){return this.normalize(),this.y.fromRed()},s.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},s.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},s.prototype.toP=s.prototype.normalize,s.prototype.mixedAdd=s.prototype.add},function(e,t,r){"use strict";t.sha1=r(132),t.sha224=r(133),t.sha256=r(59),t.sha384=r(134),t.sha512=r(60)},function(e,t,r){"use strict";var n=r(7),i=r(20),f=r(58),o=n.rotl32,a=n.sum32,c=n.sum32_5,s=f.ft_1,u=i.BlockHash,d=[1518500249,1859775393,2400959708,3395469782];function h(){if(!(this instanceof h))return new h;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(h,u),e.exports=h,h.blockSize=512,h.outSize=160,h.hmacStrength=80,h.padLength=64,h.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;nthis.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t0))return o.iaddn(1),this.keyFromPrivate(o)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,f){"object"==typeof r&&(f=r,r=null),f||(f={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray("be",o),c=e.toArray("be",o),s=new i({hash:this.hash,entropy:a,nonce:c,pers:f.pers,persEnc:f.persEnc||"utf8"}),d=this.n.sub(new n(1)),h=0;;h++){var p=f.k?f.k(h):new n(s.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var l=this.g.mul(p);if(!l.isInfinity()){var b=l.getX(),y=b.umod(this.n);if(0!==y.cmpn(0)){var m=p.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(l.getY().isOdd()?1:0)|(0!==b.cmp(y)?2:0);return f.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new u({r:y,s:m,recoveryParam:v})}}}}}},d.prototype.verify=function(e,t,r,i){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,i);var f=(t=new u(t,"hex")).r,o=t.s;if(f.cmpn(1)<0||f.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,c=o.invm(this.n),s=c.mul(e).umod(this.n),d=c.mul(f).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(s,r.getPublic(),d)).isInfinity()&&a.eqXToP(f):!(a=this.g.mulAdd(s,r.getPublic(),d)).isInfinity()&&0===a.getX().umod(this.n).cmp(f)},d.prototype.recoverPubKey=function(e,t,r,i){c((3&r)===r,"The recovery param is more than two bits"),t=new u(t,i);var f=this.n,o=new n(e),a=t.r,s=t.s,d=1&r,h=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error("Unable to find sencond key candinate");a=h?this.curve.pointFromX(a.add(this.curve.n),d):this.curve.pointFromX(a,d);var p=t.r.invm(f),l=f.sub(o).mul(p).umod(f),b=s.mul(p).umod(f);return this.g.mulAdd(l,a,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new u(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var f;try{f=this.recoverPubKey(e,t,i)}catch(e){continue}if(f.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(2),i=r(5).assert;function f(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=f,f.fromPublic=function(e,t,r){return t instanceof f?t:new f(e,{pub:t,pubEnc:r})},f.fromPrivate=function(e,t,r){return t instanceof f?t:new f(e,{priv:t,privEnc:r})},f.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},f.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},f.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},f.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},f.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},f.prototype.derive=function(e){return e.mul(this.priv).getX()},f.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},f.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},f.prototype.inspect=function(){return""}},function(e,t,r){"use strict";var n=r(2),i=r(5),f=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(f(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var r=e[t.place++];if(!(128&r))return r;for(var n=15&r,i=0,f=0,o=t.place;f>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;if(c(e,r)+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var f=c(e,r),o=e.slice(r.place,f+r.place);if(r.place+=f,2!==e[r.place++])return!1;var s=c(e,r);if(e.length!==s+r.place)return!1;var u=e.slice(r.place,s+r.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new n(o),this.s=new n(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=s(t),r=s(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];u(n,t.length),(n=n.concat(t)).push(2),u(n,r.length);var f=n.concat(r),o=[48];return u(o,f.length),o=o.concat(f),i.encode(o,e)}},function(e,t,r){"use strict";var n=r(14),i=r(36),f=r(5),o=f.assert,a=f.parseBytes,c=r(142),s=r(143);function u(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),f=this.encodePoint(i),o=this.hashInt(f,r.pubBytes(),e).mul(r.priv()),c=n.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:f})},u.prototype.verify=function(e,t,r){e=a(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),f=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(f)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=f)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),c=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),l(r)?n.showHidden=r:r&&t._extend(n,r),v(n.showHidden)&&(n.showHidden=!1),v(n.depth)&&(n.depth=2),v(n.colors)&&(n.colors=!1),v(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),u(n,e,n.depth)}function c(e,t){var r=a.styles[t];return r?"["+a.colors[r][0]+"m"+e+"["+a.colors[r][1]+"m":e}function s(e,t){return e}function u(e,r,n){if(e.customInspect&&r&&E(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return m(i)||(i=u(e,i,n)),i}var f=function(e,t){if(v(t))return e.stylize("undefined","undefined");if(m(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(y(t))return e.stylize(""+t,"number");if(l(t))return e.stylize(""+t,"boolean");if(b(t))return e.stylize("null","null")}(e,r);if(f)return f;var o=Object.keys(r),a=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),S(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return d(r);if(0===o.length){if(E(r)){var c=r.name?": "+r.name:"";return e.stylize("[Function"+c+"]","special")}if(g(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(_(r))return e.stylize(Date.prototype.toString.call(r),"date");if(S(r))return d(r)}var s,w="",A=!1,k=["{","}"];(p(r)&&(A=!0,k=["[","]"]),E(r))&&(w=" [Function"+(r.name?": "+r.name:"")+"]");return g(r)&&(w=" "+RegExp.prototype.toString.call(r)),_(r)&&(w=" "+Date.prototype.toUTCString.call(r)),S(r)&&(w=" "+d(r)),0!==o.length||A&&0!=r.length?n<0?g(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),s=A?function(e,t,r,n,i){for(var f=[],o=0,a=t.length;o=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(s,w,k)):k[0]+w+k[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,r,n,i,f){var o,a,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),I(n,i)||(o="["+i+"]"),a||(e.seen.indexOf(c.value)<0?(a=b(r)?u(e,c.value,null):u(e,c.value,r-1)).indexOf("\n")>-1&&(a=f?a.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),v(o)){if(f&&i.match(/^\d+$/))return a;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+a}function p(e){return Array.isArray(e)}function l(e){return"boolean"==typeof e}function b(e){return null===e}function y(e){return"number"==typeof e}function m(e){return"string"==typeof e}function v(e){return void 0===e}function g(e){return w(e)&&"[object RegExp]"===A(e)}function w(e){return"object"==typeof e&&null!==e}function _(e){return w(e)&&"[object Date]"===A(e)}function S(e){return w(e)&&("[object Error]"===A(e)||e instanceof Error)}function E(e){return"function"==typeof e}function A(e){return Object.prototype.toString.call(e)}t.debuglog=function(r){if(v(f)&&(f=e.env.NODE_DEBUG||""),r=r.toUpperCase(),!o[r])if(new RegExp("\\b"+r+"\\b","i").test(f)){e.pid;o[r]=function(){t.format.apply(t,arguments)}}else o[r]=function(){};return o[r]},t.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=l,t.isNull=b,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=m,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=v,t.isRegExp=g,t.isObject=w,t.isDate=_,t.isError=S,t.isFunction=E,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(176);function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){},t.inherits=r(177),t._extend=function(e,t){if(!t||!w(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var k="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function T(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(k&&e[k]){var t;if("function"!=typeof(t=e[k]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,k,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),i=[],f=0;f0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var t,r,i,f=n.allocUnsafe(e>>>0),o=this.head,a=0;o;)t=o.data,r=f,i=a,t.copy(r,i),a+=o.data.length,o=o.next;return f},e}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,r){(function(e){var n=void 0!==e&&e||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function f(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new f(i.call(setTimeout,n,arguments),clearTimeout)},t.setInterval=function(){return new f(i.call(setInterval,n,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},f.prototype.unref=f.prototype.ref=function(){},f.prototype.close=function(){this._clearFn.call(n,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(155),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(6))},function(e,t,r){(function(e,t){!function(e,r){"use strict";if(!e.setImmediate){var n,i,f,o,a,c=1,s={},u=!1,d=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?n=function(e){t.nextTick((function(){l(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?e.MessageChannel?((f=new MessageChannel).port1.onmessage=function(e){l(e.data)},n=function(e){f.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(i=d.documentElement,n=function(e){var t=d.createElement("script");t.onreadystatechange=function(){l(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):n=function(e){setTimeout(l,0,e)}:(o="setImmediate$"+Math.random()+"$",a=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&l(+t.data.slice(o.length))},e.addEventListener?e.addEventListener("message",a,!1):e.attachEvent("onmessage",a),n=function(t){e.postMessage(o+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r>>2}function u(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,f=0|this._c,a=0|this._d,c=0|this._e,d=0;d<16;++d)r[d]=e.readInt32BE(4*d);for(;d<80;++d)r[d]=r[d-3]^r[d-8]^r[d-14]^r[d-16];for(var h=0;h<80;++h){var p=~~(h/20),l=0|((t=n)<<5|t>>>27)+u(p,i,f,a)+c+r[h]+o[p];c=a,a=f,f=s(i),i=n,n=l}this._a=n+this._a|0,this._b=i+this._b|0,this._c=f+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=f.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},function(e,t,r){var n=r(1),i=r(19),f=r(16).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function s(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function d(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,f=0|this._c,a=0|this._d,c=0|this._e,h=0;h<16;++h)r[h]=e.readInt32BE(4*h);for(;h<80;++h)r[h]=(t=r[h-3]^r[h-8]^r[h-14]^r[h-16])<<1|t>>>31;for(var p=0;p<80;++p){var l=~~(p/20),b=s(n)+d(l,i,f,a)+c+r[p]+o[l]|0;c=a,a=f,f=u(i),i=n,n=b}this._a=n+this._a|0,this._b=i+this._b|0,this._c=f+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=f.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},function(e,t,r){var n=r(1),i=r(77),f=r(19),o=r(16).Buffer,a=new Array(64);function c(){this.init(),this._w=a,f.call(this,64,56)}n(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=o.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},function(e,t,r){var n=r(1),i=r(78),f=r(19),o=r(16).Buffer,a=new Array(160);function c(){this.init(),this._w=a,f.call(this,128,112)}n(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=o.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";var n=r(171),i=r(172),f=r(80);function o(e,t){return void 0===e?t:(n.isBoolean(e,f.COMPRESSED_TYPE_INVALID),e)}e.exports=function(e){return{privateKeyVerify:function(t){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),32===t.length&&e.privateKeyVerify(t)},privateKeyExport:function(t,r){n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),r=o(r,!0);var a=e.privateKeyExport(t,r);return i.privateKeyExport(t,a,r)},privateKeyImport:function(t){if(n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),(t=i.privateKeyImport(t))&&32===t.length&&e.privateKeyVerify(t))return t;throw new Error(f.EC_PRIVATE_KEY_IMPORT_DER_FAIL)},privateKeyNegate:function(t){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),e.privateKeyNegate(t)},privateKeyModInverse:function(t){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),e.privateKeyModInverse(t)},privateKeyTweakAdd:function(t,r){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),n.isBuffer(r,f.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,f.TWEAK_LENGTH_INVALID),e.privateKeyTweakAdd(t,r)},privateKeyTweakMul:function(t,r){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),n.isBuffer(r,f.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,f.TWEAK_LENGTH_INVALID),e.privateKeyTweakMul(t,r)},publicKeyCreate:function(t,r){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),r=o(r,!0),e.publicKeyCreate(t,r)},publicKeyConvert:function(t,r){return n.isBuffer(t,f.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,f.EC_PUBLIC_KEY_LENGTH_INVALID),r=o(r,!0),e.publicKeyConvert(t,r)},publicKeyVerify:function(t){return n.isBuffer(t,f.EC_PUBLIC_KEY_TYPE_INVALID),e.publicKeyVerify(t)},publicKeyTweakAdd:function(t,r,i){return n.isBuffer(t,f.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,f.EC_PUBLIC_KEY_LENGTH_INVALID),n.isBuffer(r,f.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,f.TWEAK_LENGTH_INVALID),i=o(i,!0),e.publicKeyTweakAdd(t,r,i)},publicKeyTweakMul:function(t,r,i){return n.isBuffer(t,f.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,f.EC_PUBLIC_KEY_LENGTH_INVALID),n.isBuffer(r,f.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,f.TWEAK_LENGTH_INVALID),i=o(i,!0),e.publicKeyTweakMul(t,r,i)},publicKeyCombine:function(t,r){n.isArray(t,f.EC_PUBLIC_KEYS_TYPE_INVALID),n.isLengthGTZero(t,f.EC_PUBLIC_KEYS_LENGTH_INVALID);for(var i=0;i=r)throw RangeError(n)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n=r(79).Buffer,i=r(70),f=n.from([48,129,211,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,133,48,129,130,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,33,2,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,36,3,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),o=n.from([48,130,1,19,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,165,48,129,162,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,65,4,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,72,58,218,119,38,163,196,101,93,164,251,252,14,17,8,168,253,23,180,72,166,133,84,25,156,71,208,143,251,16,212,184,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,68,3,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);t.privateKeyExport=function(e,t,r){var i=n.from(r?f:o);return e.copy(i,r?8:9),t.copy(i,r?181:214),i},t.privateKeyImport=function(e){var t=e.length,r=0;if(!(t2||t1?e[r+n-2]<<8:0);if(!(t<(r+=n)+i||t32||t1&&0===t[f]&&!(128&t[f+1]);--r,++f);for(var o=n.concat([n.from([0]),e.s]),a=33,c=0;a>1&&0===o[c]&&!(128&o[c+1]);--a,++c);return i.encode(t.slice(f),o.slice(c))},t.signatureImport=function(e){var t=n.alloc(32,0),r=n.alloc(32,0);try{var f=i.decode(e);if(33===f.r.length&&0===f.r[0]&&(f.r=f.r.slice(1)),f.r.length>32)throw new Error("R length is too long");if(33===f.s.length&&0===f.s[0]&&(f.s=f.s.slice(1)),f.s.length>32)throw new Error("S length is too long")}catch(e){return}return f.r.copy(t,32-f.r.length),f.s.copy(r,32-f.s.length),{r:t,s:r}},t.signatureImportLax=function(e){var t=n.alloc(32,0),r=n.alloc(32,0),i=e.length,f=0;if(48===e[f++]){var o=e[f++];if(!(128&o&&(f+=o-128)>i)&&2===e[f++]){var a=e[f++];if(128&a){if(f+(o=a-128)>i)return;for(;o>0&&0===e[f];f+=1,o-=1);for(a=0;o>0;f+=1,o-=1)a=(a<<8)+e[f]}if(!(a>i-f)){var c=f;if(f+=a,2===e[f++]){var s=e[f++];if(128&s){if(f+(o=s-128)>i)return;for(;o>0&&0===e[f];f+=1,o-=1);for(s=0;o>0;f+=1,o-=1)s=(s<<8)+e[f]}if(!(s>i-f)){var u=f;for(f+=s;a>0&&0===e[c];a-=1,c+=1);if(!(a>32)){var d=e.slice(c,c+a);for(d.copy(t,32-d.length);s>0&&0===e[u];s-=1,u+=1);if(!(s>32)){var h=e.slice(u,u+s);return h.copy(r,32-h.length),{r:t,s:r}}}}}}}}}},function(e,t,r){"use strict";var n=r(79).Buffer,i=r(10),f=r(2),o=r(82).ec,a=r(80),c=new o("secp256k1"),s=c.curve;function u(e){var t=e[0];switch(t){case 2:case 3:return 33!==e.length?null:function(e,t){var r=new f(t);if(r.cmp(s.p)>=0)return null;var n=(r=r.toRed(s.red)).redSqr().redIMul(r).redIAdd(s.b).redSqrt();return 3===e!==n.isOdd()&&(n=n.redNeg()),c.keyPair({pub:{x:r,y:n}})}(t,e.slice(1,33));case 4:case 6:case 7:return 65!==e.length?null:function(e,t,r){var n=new f(t),i=new f(r);if(n.cmp(s.p)>=0||i.cmp(s.p)>=0)return null;if(n=n.toRed(s.red),i=i.toRed(s.red),(6===e||7===e)&&i.isOdd()!==(7===e))return null;var o=n.redSqr().redIMul(n);return i.redSqr().redISub(o.redIAdd(s.b)).isZero()?c.keyPair({pub:{x:n,y:i}}):null}(t,e.slice(1,33),e.slice(33,65));default:return null}}t.privateKeyVerify=function(e){var t=new f(e);return t.cmp(s.n)<0&&!t.isZero()},t.privateKeyExport=function(e,t){var r=new f(e);if(r.cmp(s.n)>=0||r.isZero())throw new Error(a.EC_PRIVATE_KEY_EXPORT_DER_FAIL);return n.from(c.keyFromPrivate(e).getPublic(t,!0))},t.privateKeyNegate=function(e){var t=new f(e);return t.isZero()?n.alloc(32):s.n.sub(t).umod(s.n).toArrayLike(n,"be",32)},t.privateKeyModInverse=function(e){var t=new f(e);if(t.cmp(s.n)>=0||t.isZero())throw new Error(a.EC_PRIVATE_KEY_RANGE_INVALID);return t.invm(s.n).toArrayLike(n,"be",32)},t.privateKeyTweakAdd=function(e,t){var r=new f(t);if(r.cmp(s.n)>=0)throw new Error(a.EC_PRIVATE_KEY_TWEAK_ADD_FAIL);if(r.iadd(new f(e)),r.cmp(s.n)>=0&&r.isub(s.n),r.isZero())throw new Error(a.EC_PRIVATE_KEY_TWEAK_ADD_FAIL);return r.toArrayLike(n,"be",32)},t.privateKeyTweakMul=function(e,t){var r=new f(t);if(r.cmp(s.n)>=0||r.isZero())throw new Error(a.EC_PRIVATE_KEY_TWEAK_MUL_FAIL);return r.imul(new f(e)),r.cmp(s.n)&&(r=r.umod(s.n)),r.toArrayLike(n,"be",32)},t.publicKeyCreate=function(e,t){var r=new f(e);if(r.cmp(s.n)>=0||r.isZero())throw new Error(a.EC_PUBLIC_KEY_CREATE_FAIL);return n.from(c.keyFromPrivate(e).getPublic(t,!0))},t.publicKeyConvert=function(e,t){var r=u(e);if(null===r)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);return n.from(r.getPublic(t,!0))},t.publicKeyVerify=function(e){return null!==u(e)},t.publicKeyTweakAdd=function(e,t,r){var i=u(e);if(null===i)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);if((t=new f(t)).cmp(s.n)>=0)throw new Error(a.EC_PUBLIC_KEY_TWEAK_ADD_FAIL);var o=s.g.mul(t).add(i.pub);if(o.isInfinity())throw new Error(a.EC_PUBLIC_KEY_TWEAK_ADD_FAIL);return n.from(o.encode(!0,r))},t.publicKeyTweakMul=function(e,t,r){var i=u(e);if(null===i)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);if((t=new f(t)).cmp(s.n)>=0||t.isZero())throw new Error(a.EC_PUBLIC_KEY_TWEAK_MUL_FAIL);return n.from(i.pub.mul(t).encode(!0,r))},t.publicKeyCombine=function(e,t){for(var r=new Array(e.length),i=0;i=0||r.cmp(s.n)>=0)throw new Error(a.ECDSA_SIGNATURE_PARSE_FAIL);var i=n.from(e);return 1===r.cmp(c.nh)&&s.n.sub(r).toArrayLike(n,"be",32).copy(i,32),i},t.signatureExport=function(e){var t=e.slice(0,32),r=e.slice(32,64);if(new f(t).cmp(s.n)>=0||new f(r).cmp(s.n)>=0)throw new Error(a.ECDSA_SIGNATURE_PARSE_FAIL);return{r:t,s:r}},t.signatureImport=function(e){var t=new f(e.r);t.cmp(s.n)>=0&&(t=new f(0));var r=new f(e.s);return r.cmp(s.n)>=0&&(r=new f(0)),n.concat([t.toArrayLike(n,"be",32),r.toArrayLike(n,"be",32)])},t.sign=function(e,t,r,i){if("function"==typeof r){var o=r;r=function(r){var c=o(e,t,null,i,r);if(!n.isBuffer(c)||32!==c.length)throw new Error(a.ECDSA_SIGN_FAIL);return new f(c)}}var u=new f(t);if(u.cmp(s.n)>=0||u.isZero())throw new Error(a.ECDSA_SIGN_FAIL);var d=c.sign(e,t,{canonical:!0,k:r,pers:i});return{signature:n.concat([d.r.toArrayLike(n,"be",32),d.s.toArrayLike(n,"be",32)]),recovery:d.recoveryParam}},t.verify=function(e,t,r){var n={r:t.slice(0,32),s:t.slice(32,64)},i=new f(n.r),o=new f(n.s);if(i.cmp(s.n)>=0||o.cmp(s.n)>=0)throw new Error(a.ECDSA_SIGNATURE_PARSE_FAIL);if(1===o.cmp(c.nh)||i.isZero()||o.isZero())return!1;var d=u(r);if(null===d)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);return c.verify(e,n,{x:d.pub.x,y:d.pub.y})},t.recover=function(e,t,r,i){var o={r:t.slice(0,32),s:t.slice(32,64)},u=new f(o.r),d=new f(o.s);if(u.cmp(s.n)>=0||d.cmp(s.n)>=0)throw new Error(a.ECDSA_SIGNATURE_PARSE_FAIL);try{if(u.isZero()||d.isZero())throw new Error;var h=c.recoverPubKey(e,o,r);return n.from(h.encode(!0,i))}catch(e){throw new Error(a.ECDSA_RECOVER_FAIL)}},t.ecdh=function(e,r){var n=t.ecdhUnsafe(e,r,!0);return i("sha256").update(n).digest()},t.ecdhUnsafe=function(e,t,r){var i=u(e);if(null===i)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);var o=new f(t);if(o.cmp(s.n)>=0||o.isZero())throw new Error(a.ECDH_FAIL);return n.from(i.pub.mul(o).encode(!0,r))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.toString(16);return t.length%2==1?"0"+t:t}},function(e,t,r){"use strict";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,a,c=o(e),s=1;s21)throw new TypeError(e+" is too long");return{version:t.readUInt8(0),hash:t.slice(1)}}function d(t){const r=a.decode(t),n=a.fromWords(r.words.slice(1));return{version:r.words[0],prefix:r.prefix,data:e.from(n)}}t.fromBase58Check=u,t.fromBech32=d,t.toBase58Check=function(t,r){s(o.tuple(o.Hash160bit,o.UInt8),arguments);const n=e.allocUnsafe(21);return n.writeUInt8(r,0),t.copy(n,1),c.encode(n)},t.toBech32=function(e,t,r){const n=a.toWords(e);return n.unshift(t),a.encode(r,n)},t.fromOutputScript=function(e,t){t=t||n.bitcoin;try{return i.p2pkh({output:e,network:t}).address}catch(e){}try{return i.p2sh({output:e,network:t}).address}catch(e){}try{return i.p2wpkh({output:e,network:t}).address}catch(e){}try{return i.p2wsh({output:e,network:t}).address}catch(e){}throw new Error(f.toASM(e)+" has no matching Address")},t.toOutputScript=function(e,t){let r,f;t=t||n.bitcoin;try{r=u(e)}catch(e){}if(r){if(r.version===t.pubKeyHash)return i.p2pkh({hash:r.hash}).output;if(r.version===t.scriptHash)return i.p2sh({hash:r.hash}).output}else{try{f=d(e)}catch(e){}if(f){if(f.prefix!==t.bech32)throw new Error(e+" has an invalid prefix");if(0===f.version){if(20===f.data.length)return i.p2wpkh({hash:f.data}).output;if(32===f.data.length)return i.p2wsh({hash:f.data}).output}}}throw new Error(e+" has no matching Script")}}).call(this,r(0).Buffer)},function(e){e.exports=JSON.parse('{"OP_FALSE":0,"OP_0":0,"OP_PUSHDATA1":76,"OP_PUSHDATA2":77,"OP_PUSHDATA4":78,"OP_1NEGATE":79,"OP_RESERVED":80,"OP_TRUE":81,"OP_1":81,"OP_2":82,"OP_3":83,"OP_4":84,"OP_5":85,"OP_6":86,"OP_7":87,"OP_8":88,"OP_9":89,"OP_10":90,"OP_11":91,"OP_12":92,"OP_13":93,"OP_14":94,"OP_15":95,"OP_16":96,"OP_NOP":97,"OP_VER":98,"OP_IF":99,"OP_NOTIF":100,"OP_VERIF":101,"OP_VERNOTIF":102,"OP_ELSE":103,"OP_ENDIF":104,"OP_VERIFY":105,"OP_RETURN":106,"OP_TOALTSTACK":107,"OP_FROMALTSTACK":108,"OP_2DROP":109,"OP_2DUP":110,"OP_3DUP":111,"OP_2OVER":112,"OP_2ROT":113,"OP_2SWAP":114,"OP_IFDUP":115,"OP_DEPTH":116,"OP_DROP":117,"OP_DUP":118,"OP_NIP":119,"OP_OVER":120,"OP_PICK":121,"OP_ROLL":122,"OP_ROT":123,"OP_SWAP":124,"OP_TUCK":125,"OP_CAT":126,"OP_SUBSTR":127,"OP_LEFT":128,"OP_RIGHT":129,"OP_SIZE":130,"OP_INVERT":131,"OP_AND":132,"OP_OR":133,"OP_XOR":134,"OP_EQUAL":135,"OP_EQUALVERIFY":136,"OP_RESERVED1":137,"OP_RESERVED2":138,"OP_1ADD":139,"OP_1SUB":140,"OP_2MUL":141,"OP_2DIV":142,"OP_NEGATE":143,"OP_ABS":144,"OP_NOT":145,"OP_0NOTEQUAL":146,"OP_ADD":147,"OP_SUB":148,"OP_MUL":149,"OP_DIV":150,"OP_MOD":151,"OP_LSHIFT":152,"OP_RSHIFT":153,"OP_BOOLAND":154,"OP_BOOLOR":155,"OP_NUMEQUAL":156,"OP_NUMEQUALVERIFY":157,"OP_NUMNOTEQUAL":158,"OP_LESSTHAN":159,"OP_GREATERTHAN":160,"OP_LESSTHANOREQUAL":161,"OP_GREATERTHANOREQUAL":162,"OP_MIN":163,"OP_MAX":164,"OP_WITHIN":165,"OP_RIPEMD160":166,"OP_SHA1":167,"OP_SHA256":168,"OP_HASH160":169,"OP_HASH256":170,"OP_CODESEPARATOR":171,"OP_CHECKSIG":172,"OP_CHECKSIGVERIFY":173,"OP_CHECKMULTISIG":174,"OP_CHECKMULTISIGVERIFY":175,"OP_NOP1":176,"OP_NOP2":177,"OP_CHECKLOCKTIMEVERIFY":177,"OP_NOP3":178,"OP_CHECKSEQUENCEVERIFY":178,"OP_NOP4":179,"OP_NOP5":180,"OP_NOP6":181,"OP_NOP7":182,"OP_NOP8":183,"OP_NOP9":184,"OP_NOP10":185,"OP_PUBKEYHASH":253,"OP_PUBKEY":254,"OP_INVALIDOPCODE":255}')},function(e,t,r){"use strict";var n=r(10),i=r(333);e.exports=i((function(e){var t=n("sha256").update(e).digest();return n("sha256").update(t).digest()}))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=r(34),f=r(53),o=r(21),a=r(13),c=r(285),s=a.maybe(a.compile({compressed:i.maybe(i.Boolean),network:i.maybe(i.Network)}));class u{constructor(e,t,r){this.__D=e,this.__Q=t,this.lowR=!1,void 0===r&&(r={}),this.compressed=void 0===r.compressed||r.compressed,this.network=r.network||n.bitcoin,void 0!==t&&(this.__Q=f.pointCompress(t,this.compressed))}get privateKey(){return this.__D}get publicKey(){return this.__Q||(this.__Q=f.pointFromScalar(this.__D,this.compressed)),this.__Q}toWIF(){if(!this.__D)throw new Error("Missing private key");return c.encode(this.network.wif,this.__D,this.compressed)}sign(t,r){if(!this.__D)throw new Error("Missing private key");if(void 0===r&&(r=this.lowR),!1===r)return f.sign(t,this.__D);{let r=f.sign(t,this.__D);const n=e.alloc(32,0);let i=0;for(;r[0]>127;)i++,n.writeUIntLE(i,0,6),r=f.signWithEntropy(t,this.__D,n);return r}}verify(e,t){return f.verify(e,this.publicKey,t)}}function d(e,t){if(a(i.Buffer256bit,e),!f.isPrivate(e))throw new TypeError("Private key not in range [1, n)");return a(s,t),new u(e,void 0,t)}t.fromPrivateKey=d,t.fromPublicKey=function(e,t){return a(f.isPoint,e),a(s,t),new u(void 0,e,t)},t.fromWIF=function(e,t){const r=c.decode(e),f=r.version;if(i.Array(t)){if(!(t=t.filter(e=>f===e.wif).pop()))throw new Error("Unknown network version")}else if(t=t||n.bitcoin,f!==t.wif)throw new Error("Invalid network version");return d(r.privateKey,{compressed:r.compressed,network:t})},t.makeRandom=function(e){a(s,e),void 0===e&&(e={});const t=e.rng||o;let r;do{r=t(32),a(i.Buffer256bit,r)}while(!f.isPrivate(r));return d(r,e)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(25),i=r(344),f=r(345),o=r(346),a=r(347),c=r(348),s=r(349),u=r(350),d=r(351),h=r(352),p=r(353),l=r(354),b=r(355),y=r(356),m={unsignedTx:f,globalXpub:i,checkPubkey:l.makeChecker([])};t.globals=m;const v={nonWitnessUtxo:c,partialSig:s,sighashType:d,finalScriptSig:o,finalScriptWitness:a,porCommitment:u,witnessUtxo:h,bip32Derivation:p.makeConverter(n.InputTypes.BIP32_DERIVATION),redeemScript:b.makeConverter(n.InputTypes.REDEEM_SCRIPT),witnessScript:y.makeConverter(n.InputTypes.WITNESS_SCRIPT),checkPubkey:l.makeChecker([n.InputTypes.PARTIAL_SIG,n.InputTypes.BIP32_DERIVATION])};t.inputs=v;const g={bip32Derivation:p.makeConverter(n.OutputTypes.BIP32_DERIVATION),redeemScript:b.makeConverter(n.OutputTypes.REDEEM_SCRIPT),witnessScript:y.makeConverter(n.OutputTypes.WITNESS_SCRIPT),checkPubkey:l.makeChecker([n.OutputTypes.BIP32_DERIVATION])};t.outputs=g},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(92);function i(t){const r=t.key.length,i=t.value.length,f=n.encodingLength(r),o=n.encodingLength(i),a=e.allocUnsafe(f+r+o+i);return n.encode(r,a,0),t.key.copy(a,f),n.encode(i,a,f+r),t.value.copy(a,f+r+o),a}function f(e,t){if("number"!=typeof e)throw new Error("cannot write a non-number as a number");if(e<0)throw new Error("specified a negative value for writing an unsigned value");if(e>t)throw new Error("RangeError: value out of range");if(Math.floor(e)!==e)throw new Error("value has a fractional component")}t.range=e=>[...Array(e).keys()],t.reverseBuffer=function(e){if(e.length<1)return e;let t=e.length-1,r=0;for(let n=0;n64?t=e(t):t.length<64&&(t=n.concat([t,c],64));for(var i=new n(64),f=new n(64),o=0;o<64;o++)i[o]=54^t[o],f[o]=92^t[o];var a=e(n.concat([i,r]));return e(n.concat([f,a]))}(r,t,f):r(f);return i=null,e?o.toString(e):o}}}function u(){var e=[].slice.call(arguments).join(" ");throw new Error([e,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}c.fill(0),t.createHash=function(e){return s(e)},t.createHmac=function(e,t){return s(e,t)},t.randomBytes=function(e,t){if(!t||!t.call)return new n(o(e));try{t.call(this,void 0,new n(o(e)))}catch(e){t(e)}},function(e,t){for(var r in e)t(e[r],r)}(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],(function(e){t[e]=function(){u("sorry,",e,"is not implemented yet")}}))},,,function(e,t,r){"use strict";var n=r(1),i=r(90).Buffer,f=r(17),o=i.alloc(128);function a(e,t){f.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>64?t=e(t):t.length<64&&(t=i.concat([t,o],64));for(var r=this._ipad=i.allocUnsafe(64),n=this._opad=i.allocUnsafe(64),a=0;a<64;a++)r[a]=54^t[a],n[a]=92^t[a];this._hash=[r]}n(a,f),a.prototype._update=function(e){this._hash.push(e)},a.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},e.exports=a},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";(function(e){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(r(83));t.default=function(e){if(e.length<128)throw new Error("not a valid signature");var t=e.toUpperCase();return"30440220"+t.slice(0,64)+"0220"+t.slice(64,128)},t.fromSignResultToDER=function(t){var r=e.from(t.r,"hex"),n=e.from(t.s,"hex"),f=e.concat([r,n]);return i.default.signatureExport(f).toString("hex")}}).call(this,r(0).Buffer)},function(e,t,r){e.exports=r(93)},function(e,t,r){(function(t,n){var i,f=r(95),o=r(96),a=r(97),c=r(98).Buffer,s=t.crypto&&t.crypto.subtle,u={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},d=[];function h(e,t,r,n,i){return s.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return s.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:i}},e,n<<3)})).then((function(e){return c.from(e)}))}e.exports=function(e,r,p,l,b,y){"function"==typeof b&&(y=b,b=void 0);var m=u[(b=b||"sha1").toLowerCase()];if(!m||"function"!=typeof t.Promise)return n.nextTick((function(){var t;try{t=a(e,r,p,l,b)}catch(e){return y(e)}y(null,t)}));if(f(e,r,p,l),"function"!=typeof y)throw new Error("No callback provided to pbkdf2");c.isBuffer(e)||(e=c.from(e,o)),c.isBuffer(r)||(r=c.from(r,o)),function(e,t){e.then((function(e){n.nextTick((function(){t(null,e)}))}),(function(e){n.nextTick((function(){t(e)}))}))}(function(e){if(t.process&&!t.process.browser)return Promise.resolve(!1);if(!s||!s.importKey||!s.deriveBits)return Promise.resolve(!1);if(void 0!==d[e])return d[e];var r=h(i=i||c.alloc(8),i,10,128,e).then((function(){return!0})).catch((function(){return!1}));return d[e]=r,r}(m).then((function(t){return t?h(e,r,p,l,m):a(e,r,p,l,b)})),y)}}).call(this,r(6),r(11))},function(e,t,r){var n=r(199),i=r(62),f=r(63),o=r(214),a=r(39);function c(e,t,r){if(e=e.toLowerCase(),f[e])return i.createCipheriv(e,t,r);if(o[e])return new n({key:t,iv:r,mode:e});throw new TypeError("invalid suite type")}function s(e,t,r){if(e=e.toLowerCase(),f[e])return i.createDecipheriv(e,t,r);if(o[e])return new n({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var r,n;if(e=e.toLowerCase(),f[e])r=f[e].key,n=f[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");r=8*o[e].key,n=o[e].iv}var i=a(t,!1,r,n);return c(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=c,t.createDecipher=t.Decipher=function(e,t){var r,n;if(e=e.toLowerCase(),f[e])r=f[e].key,n=f[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");r=8*o[e].key,n=o[e].iv}var i=a(t,!1,r,n);return s(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=s,t.listCiphers=t.getCiphers=function(){return Object.keys(o).concat(i.getCiphers())}},function(e,t,r){var n=r(17),i=r(200),f=r(1),o=r(203).Buffer,a={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function c(e){n.call(this);var t,r=e.mode.toLowerCase(),i=a[r];t=e.decrypt?"decrypt":"encrypt";var f=e.key;o.isBuffer(f)||(f=o.from(f)),"des-ede"!==r&&"des-ede-cbc"!==r||(f=o.concat([f,f.slice(0,8)]));var c=e.iv;o.isBuffer(c)||(c=o.from(c)),this._des=i.create({key:f,iv:c,type:t})}a.des=a["des-cbc"],a.des3=a["des-ede3-cbc"],e.exports=c,f(c,n),c.prototype._update=function(e){return o.from(this._des.update(e))},c.prototype._final=function(){return o.from(this._des.final())}},function(e,t,r){"use strict";t.utils=r(99),t.Cipher=r(61),t.DES=r(100),t.CBC=r(201),t.EDE=r(202)},function(e,t,r){"use strict";var n=r(4),i=r(1),f={};function o(e){n.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},h.prototype.flush=function(){for(var e=16-this.cache.length,t=f.allocUnsafe(e),r=-1;++r>o%8,e._prev=f(e._prev,r?n:i);return a}function f(e,t){var r=e.length,i=-1,f=n.allocUnsafe(e.length);for(e=n.concat([e,n.from([t])]);++i>7;return f}t.encrypt=function(e,t,r){for(var f=t.length,o=n.allocUnsafe(f),a=-1;++a>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function o(e){this.h=e,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}o.prototype.ghash=function(e){for(var t=-1;++t0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=f(i)},o.prototype.update=function(e){var t;for(this.cache=n.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},o.prototype.final=function(e,t){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(f([0,e,0,t])),this.state},e.exports=o},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){var n=r(104),i=r(12).Buffer,f=r(63),o=r(105),a=r(17),c=r(38),s=r(39);function u(e,t,r){a.call(this),this._cache=new d,this._last=void 0,this._cipher=new c.AES(t),this._prev=i.from(r),this._mode=e,this._autopadding=!0}function d(){this.cache=i.allocUnsafe(0)}function h(e,t,r){var a=f[e.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof r&&(r=i.from(r)),"GCM"!==a.mode&&r.length!==a.iv)throw new TypeError("invalid iv length "+r.length);if("string"==typeof t&&(t=i.from(t)),t.length!==a.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===a.type?new o(a.module,t,r,!0):"auth"===a.type?new n(a.module,t,r,!0):new u(a.module,t,r)}r(1)(u,a),u.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),n.push(r);return i.concat(n)},u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");var r=-1;for(;++r16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},d.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var r=f[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=s(t,!1,r.key,r.iv);return h(e,n.key,n.iv)},t.createDecipheriv=h},function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},function(e,t,r){(function(e){var n=r(106),i=r(216),f=r(217);var o={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(t){var r=new e(i[t].prime,"hex"),n=new e(i[t].gen,"hex");return new f(r,n)},t.createDiffieHellman=t.DiffieHellman=function t(r,i,a,c){return e.isBuffer(i)||void 0===o[i]?t(r,"binary",i,a):(i=i||"binary",c=c||"binary",a=a||new e([2]),e.isBuffer(a)||(a=new e(a,c)),"number"==typeof r?new f(n(r,a),a,!0):(e.isBuffer(r)||(r=new e(r,i)),new f(r,a,!0)))}}).call(this,r(0).Buffer)},function(e){e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(e,t,r){(function(t){var n=r(2),i=new(r(107)),f=new n(24),o=new n(11),a=new n(10),c=new n(3),s=new n(7),u=r(106),d=r(21);function h(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this._pub=new n(e),this}function p(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this._priv=new n(e),this}e.exports=b;var l={};function b(e,t,r){this.setGenerator(t),this.__prime=new n(e),this._prime=n.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=h,this.setPrivateKey=p):this._primeCode=8}function y(e,r){var n=new t(e.toArray());return r?n.toString(r):n}Object.defineProperty(b.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var r=t.toString("hex"),n=[r,e.toString(16)].join("_");if(n in l)return l[n];var d,h=0;if(e.isEven()||!u.simpleSieve||!u.fermatTest(e)||!i.test(e))return h+=1,h+="02"===r||"05"===r?8:4,l[n]=h,h;switch(i.test(e.shrn(1))||(h+=2),r){case"02":e.mod(f).cmp(o)&&(h+=8);break;case"05":(d=e.mod(a)).cmp(c)&&d.cmp(s)&&(h+=8);break;default:h+=4}return l[n]=h,h}(this.__prime,this.__gen)),this._primeCode}}),b.prototype.generateKeys=function(){return this._priv||(this._priv=new n(d(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},b.prototype.computeSecret=function(e){var r=(e=(e=new n(e)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new t(r.toArray()),f=this.getPrime();if(i.length0&&r.ishrn(n),r}function d(e,r,i){var f,o;do{for(f=new t(0);8*f.length","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(e,t,r){"use strict";var n=r(8),i=r(2),f=r(1),o=r(40),a=n.assert;function c(e){o.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function s(e,t,r,n){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,r,n){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}f(c,o),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var f=this._getEndoRoots(this.n);0===this.g.mul(f[0]).x.cmp(this.g.x.redMul(t))?r=f[0]:(r=f[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),f=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(f).fromRed(),n.redSub(f).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,r,n,f,o,a,c,s,u,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=e,p=this.n.clone(),l=new i(1),b=new i(0),y=new i(0),m=new i(1),v=0;0!==h.cmpn(0);){var g=p.div(h);s=p.sub(g.mul(h)),u=y.sub(g.mul(l));var w=m.sub(g.mul(b));if(!n&&s.cmp(d)<0)t=c.neg(),r=l,n=s.neg(),f=u;else if(n&&2==++v)break;c=s,p=h,h=s,y=l,l=u,m=b,b=w}o=s.neg(),a=u;var _=n.sqr().add(f.sqr());return o.sqr().add(a.sqr()).cmp(_)>=0&&(o=t,a=r),n.negative&&(n=n.neg(),f=f.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:f},{a:o,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),f=r.b.neg().mul(e).divRound(this.n),o=i.mul(r.a),a=f.mul(n.a),c=i.mul(r.b),s=f.mul(n.b);return{k1:e.sub(o).sub(a),k2:c.add(s).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var f=n.fromRed().isOdd();return(t&&!f||!t&&f)&&(n=n.redNeg()),this.point(e,n)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,f=0;f":""},s.prototype.isInfinity=function(){return this.inf},s.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},s.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),f=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,o)},s.prototype.getX=function(){return this.x.fromRed()},s.prototype.getY=function(){return this.y.fromRed()},s.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},s.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},s.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},s.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},s.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},s.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},f(u,o.BasePoint),c.prototype.jpoint=function(e,t,r){return new u(this,e,t,r)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),f=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),c=f.redSub(o);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var s=a.redSqr(),u=s.redMul(a),d=n.redMul(s),h=c.redSqr().redIAdd(u).redISub(d).redISub(d),p=c.redMul(d.redISub(h)).redISub(f.redMul(u)),l=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,l)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,f=e.y.redMul(t).redMul(this.z),o=r.redSub(n),a=i.redSub(f);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),s=c.redMul(o),u=r.redMul(c),d=a.redSqr().redIAdd(s).redISub(u).redISub(u),h=a.redMul(u.redISub(d)).redISub(i.redMul(s)),p=this.z.redMul(o);return this.curve.jpoint(d,h,p)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(2),i=r(1),f=r(40),o=r(8);function a(e){f.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,r){f.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,f),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(c,f.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),f=e.x.redSub(e.z).redMul(r),o=i.redMul(n),a=t.z.redMul(f.redAdd(o).redSqr()),c=t.x.redMul(f.redISub(o).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var f=i.length-1;f>=0;f--)0===i[f]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(8),i=r(2),f=r(1),o=r(40),a=n.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function s(e,t,r,n,f){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=f&&new i(f,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}f(c,o),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),f=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=n.redMul(f.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),f=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(f.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},f(s,o.BasePoint),c.prototype.pointFromJSON=function(e){return s.fromJSON(this,e)},c.prototype.point=function(e,t,r,n){return new s(this,e,t,r,n)},s.fromJSON=function(e,t){return new s(e,t[0],t[1],t[2])},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},s.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),f=n.redAdd(t),o=f.redSub(r),a=n.redSub(t),c=i.redMul(o),s=f.redMul(a),u=i.redMul(a),d=o.redMul(f);return this.curve.point(c,s,d,u)},s.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),f=this.y.redSqr();if(this.curve.twisted){var o=(s=this.curve._mulA(i)).redAdd(f);if(this.zOne)e=n.redSub(i).redSub(f).redMul(o.redSub(this.curve.two)),t=o.redMul(s.redSub(f)),r=o.redSqr().redSub(o).redSub(o);else{var a=this.z.redSqr(),c=o.redSub(a).redISub(a);e=n.redSub(i).redISub(f).redMul(c),t=o.redMul(s.redSub(f)),r=o.redMul(c)}}else{var s=i.redAdd(f);a=this.curve._mulC(this.z).redSqr(),c=s.redSub(a).redSub(a);e=this.curve._mulC(n.redISub(s)).redMul(c),t=this.curve._mulC(s).redMul(i.redISub(f)),r=s.redMul(c)}return this.curve.point(e,t,r)},s.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},s.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),f=r.redSub(t),o=i.redSub(n),a=i.redAdd(n),c=r.redAdd(t),s=f.redMul(o),u=a.redMul(c),d=f.redMul(c),h=o.redMul(a);return this.curve.point(s,u,h,d)},s.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),f=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(f).redMul(o),c=i.redSub(a),s=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(f).redISub(o),d=n.redMul(c).redMul(u);return this.curve.twisted?(t=n.redMul(s).redMul(o.redSub(this.curve._mulA(f))),r=c.redMul(s)):(t=n.redMul(s).redMul(o.redSub(f)),r=this.curve._mulC(c).redMul(s)),this.curve.point(d,t,r)},s.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},s.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},s.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},s.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},s.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},s.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()},s.prototype.getY=function(){return this.normalize(),this.y.fromRed()},s.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},s.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},s.prototype.toP=s.prototype.normalize,s.prototype.mixedAdd=s.prototype.add},function(e,t){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(e,t,r){"use strict";var n=r(2),i=r(49),f=r(8),o=r(65),a=r(18),c=f.assert,s=r(226),u=r(227);function d(e){if(!(this instanceof d))return new d(e);"string"==typeof e&&(c(o.hasOwnProperty(e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=d,d.prototype.keyPair=function(e){return new s(this,e)},d.prototype.keyFromPrivate=function(e,t){return s.fromPrivate(this,e,t)},d.prototype.keyFromPublic=function(e,t){return s.fromPublic(this,e,t)},d.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),f=this.n.sub(new n(2));;){var o=new n(t.generate(r));if(!(o.cmp(f)>0))return o.iaddn(1),this.keyFromPrivate(o)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,f){"object"==typeof r&&(f=r,r=null),f||(f={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray("be",o),c=e.toArray("be",o),s=new i({hash:this.hash,entropy:a,nonce:c,pers:f.pers,persEnc:f.persEnc||"utf8"}),d=this.n.sub(new n(1)),h=0;;h++){var p=f.k?f.k(h):new n(s.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var l=this.g.mul(p);if(!l.isInfinity()){var b=l.getX(),y=b.umod(this.n);if(0!==y.cmpn(0)){var m=p.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(l.getY().isOdd()?1:0)|(0!==b.cmp(y)?2:0);return f.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new u({r:y,s:m,recoveryParam:v})}}}}}},d.prototype.verify=function(e,t,r,i){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,i);var f=(t=new u(t,"hex")).r,o=t.s;if(f.cmpn(1)<0||f.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,c=o.invm(this.n),s=c.mul(e).umod(this.n),d=c.mul(f).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(s,r.getPublic(),d)).isInfinity()&&a.eqXToP(f):!(a=this.g.mulAdd(s,r.getPublic(),d)).isInfinity()&&0===a.getX().umod(this.n).cmp(f)},d.prototype.recoverPubKey=function(e,t,r,i){c((3&r)===r,"The recovery param is more than two bits"),t=new u(t,i);var f=this.n,o=new n(e),a=t.r,s=t.s,d=1&r,h=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error("Unable to find sencond key candinate");a=h?this.curve.pointFromX(a.add(this.curve.n),d):this.curve.pointFromX(a,d);var p=t.r.invm(f),l=f.sub(o).mul(p).umod(f),b=s.mul(p).umod(f);return this.g.mulAdd(l,a,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new u(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var f;try{f=this.recoverPubKey(e,t,i)}catch(e){continue}if(f.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(2),i=r(8).assert;function f(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=f,f.fromPublic=function(e,t,r){return t instanceof f?t:new f(e,{pub:t,pubEnc:r})},f.fromPrivate=function(e,t,r){return t instanceof f?t:new f(e,{priv:t,privEnc:r})},f.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},f.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},f.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},f.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},f.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},f.prototype.derive=function(e){return e.mul(this.priv).getX()},f.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},f.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},f.prototype.inspect=function(){return""}},function(e,t,r){"use strict";var n=r(2),i=r(8),f=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(f(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var r=e[t.place++];if(!(128&r))return r;for(var n=15&r,i=0,f=0,o=t.place;f>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;if(c(e,r)+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var f=c(e,r),o=e.slice(r.place,f+r.place);if(r.place+=f,2!==e[r.place++])return!1;var s=c(e,r);if(e.length!==s+r.place)return!1;var u=e.slice(r.place,s+r.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new n(o),this.s=new n(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=s(t),r=s(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];u(n,t.length),(n=n.concat(t)).push(2),u(n,r.length);var f=n.concat(r),o=[48];return u(o,f.length),o=o.concat(f),i.encode(o,e)}},function(e,t,r){"use strict";var n=r(14),i=r(65),f=r(8),o=f.assert,a=f.parseBytes,c=r(229),s=r(230);function u(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),f=this.encodePoint(i),o=this.hashInt(f,r.pubBytes(),e).mul(r.priv()),c=n.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:f})},u.prototype.verify=function(e,t,r){e=a(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),f=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(f)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=t)throw new Error("invalid sig")}e.exports=function(e,r,c,s,u){var d=f(c);if("ec"===d.type){if("ecdsa"!==s&&"ecdsa/rsa"!==s)throw new Error("wrong public key type");return function(e,t,r){var n=o[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var f=new i(n),a=r.data.subjectPrivateKey.data;return f.verify(t,e,a)}(e,r,d)}if("dsa"===d.type){if("dsa"!==s)throw new Error("wrong public key type");return function(e,t,r){var i=r.data.p,o=r.data.q,c=r.data.g,s=r.data.pub_key,u=f.signature.decode(e,"der"),d=u.s,h=u.r;a(d,o),a(h,o);var p=n.mont(i),l=d.invm(o);return 0===c.toRed(p).redPow(new n(t).mul(l).mod(o)).fromRed().mul(s.toRed(p).redPow(h.mul(l).mod(o)).fromRed()).mod(i).mod(o).cmp(h)}(e,r,d)}if("rsa"!==s&&"ecdsa/rsa"!==s)throw new Error("wrong public key type");r=t.concat([u,r]);for(var h=d.modulus.byteLength(),p=[1],l=0;r.length+p.length+2","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(e,t,r){"use strict";var n=r(9),i=r(2),f=r(1),o=r(42),a=n.assert;function c(e){o.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function s(e,t,r,n){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,r,n){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}f(c,o),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var f=this._getEndoRoots(this.n);0===this.g.mul(f[0]).x.cmp(this.g.x.redMul(t))?r=f[0]:(r=f[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),f=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(f).fromRed(),n.redSub(f).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,r,n,f,o,a,c,s,u,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=e,p=this.n.clone(),l=new i(1),b=new i(0),y=new i(0),m=new i(1),v=0;0!==h.cmpn(0);){var g=p.div(h);s=p.sub(g.mul(h)),u=y.sub(g.mul(l));var w=m.sub(g.mul(b));if(!n&&s.cmp(d)<0)t=c.neg(),r=l,n=s.neg(),f=u;else if(n&&2==++v)break;c=s,p=h,h=s,y=l,l=u,m=b,b=w}o=s.neg(),a=u;var _=n.sqr().add(f.sqr());return o.sqr().add(a.sqr()).cmp(_)>=0&&(o=t,a=r),n.negative&&(n=n.neg(),f=f.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:f},{a:o,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),f=r.b.neg().mul(e).divRound(this.n),o=i.mul(r.a),a=f.mul(n.a),c=i.mul(r.b),s=f.mul(n.b);return{k1:e.sub(o).sub(a),k2:c.add(s).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var f=n.fromRed().isOdd();return(t&&!f||!t&&f)&&(n=n.redNeg()),this.point(e,n)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,f=0;f":""},s.prototype.isInfinity=function(){return this.inf},s.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},s.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),f=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,o)},s.prototype.getX=function(){return this.x.fromRed()},s.prototype.getY=function(){return this.y.fromRed()},s.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},s.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},s.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},s.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},s.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},s.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},f(u,o.BasePoint),c.prototype.jpoint=function(e,t,r){return new u(this,e,t,r)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),f=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),c=f.redSub(o);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var s=a.redSqr(),u=s.redMul(a),d=n.redMul(s),h=c.redSqr().redIAdd(u).redISub(d).redISub(d),p=c.redMul(d.redISub(h)).redISub(f.redMul(u)),l=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,l)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,f=e.y.redMul(t).redMul(this.z),o=r.redSub(n),a=i.redSub(f);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),s=c.redMul(o),u=r.redMul(c),d=a.redSqr().redIAdd(s).redISub(u).redISub(u),h=a.redMul(u.redISub(d)).redISub(i.redMul(s)),p=this.z.redMul(o);return this.curve.jpoint(d,h,p)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(2),i=r(1),f=r(42),o=r(9);function a(e){f.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,r){f.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,f),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(c,f.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),f=e.x.redSub(e.z).redMul(r),o=i.redMul(n),a=t.z.redMul(f.redAdd(o).redSqr()),c=t.x.redMul(f.redISub(o).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var f=i.length-1;f>=0;f--)0===i[f]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(9),i=r(2),f=r(1),o=r(42),a=n.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function s(e,t,r,n,f){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=f&&new i(f,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}f(c,o),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),f=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=n.redMul(f.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),f=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(f.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},f(s,o.BasePoint),c.prototype.pointFromJSON=function(e){return s.fromJSON(this,e)},c.prototype.point=function(e,t,r,n){return new s(this,e,t,r,n)},s.fromJSON=function(e,t){return new s(e,t[0],t[1],t[2])},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},s.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),f=n.redAdd(t),o=f.redSub(r),a=n.redSub(t),c=i.redMul(o),s=f.redMul(a),u=i.redMul(a),d=o.redMul(f);return this.curve.point(c,s,d,u)},s.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),f=this.y.redSqr();if(this.curve.twisted){var o=(s=this.curve._mulA(i)).redAdd(f);if(this.zOne)e=n.redSub(i).redSub(f).redMul(o.redSub(this.curve.two)),t=o.redMul(s.redSub(f)),r=o.redSqr().redSub(o).redSub(o);else{var a=this.z.redSqr(),c=o.redSub(a).redISub(a);e=n.redSub(i).redISub(f).redMul(c),t=o.redMul(s.redSub(f)),r=o.redMul(c)}}else{var s=i.redAdd(f);a=this.curve._mulC(this.z).redSqr(),c=s.redSub(a).redSub(a);e=this.curve._mulC(n.redISub(s)).redMul(c),t=this.curve._mulC(s).redMul(i.redISub(f)),r=s.redMul(c)}return this.curve.point(e,t,r)},s.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},s.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),f=r.redSub(t),o=i.redSub(n),a=i.redAdd(n),c=r.redAdd(t),s=f.redMul(o),u=a.redMul(c),d=f.redMul(c),h=o.redMul(a);return this.curve.point(s,u,h,d)},s.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),f=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(f).redMul(o),c=i.redSub(a),s=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(f).redISub(o),d=n.redMul(c).redMul(u);return this.curve.twisted?(t=n.redMul(s).redMul(o.redSub(this.curve._mulA(f))),r=c.redMul(s)):(t=n.redMul(s).redMul(o.redSub(f)),r=this.curve._mulC(c).redMul(s)),this.curve.point(d,t,r)},s.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},s.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},s.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},s.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},s.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},s.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()},s.prototype.getY=function(){return this.normalize(),this.y.fromRed()},s.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},s.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},s.prototype.toP=s.prototype.normalize,s.prototype.mixedAdd=s.prototype.add},function(e,t){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(e,t,r){"use strict";var n=r(2),i=r(49),f=r(9),o=r(66),a=r(18),c=f.assert,s=r(253),u=r(254);function d(e){if(!(this instanceof d))return new d(e);"string"==typeof e&&(c(o.hasOwnProperty(e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=d,d.prototype.keyPair=function(e){return new s(this,e)},d.prototype.keyFromPrivate=function(e,t){return s.fromPrivate(this,e,t)},d.prototype.keyFromPublic=function(e,t){return s.fromPublic(this,e,t)},d.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),f=this.n.sub(new n(2));;){var o=new n(t.generate(r));if(!(o.cmp(f)>0))return o.iaddn(1),this.keyFromPrivate(o)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,f){"object"==typeof r&&(f=r,r=null),f||(f={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray("be",o),c=e.toArray("be",o),s=new i({hash:this.hash,entropy:a,nonce:c,pers:f.pers,persEnc:f.persEnc||"utf8"}),d=this.n.sub(new n(1)),h=0;;h++){var p=f.k?f.k(h):new n(s.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var l=this.g.mul(p);if(!l.isInfinity()){var b=l.getX(),y=b.umod(this.n);if(0!==y.cmpn(0)){var m=p.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(l.getY().isOdd()?1:0)|(0!==b.cmp(y)?2:0);return f.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new u({r:y,s:m,recoveryParam:v})}}}}}},d.prototype.verify=function(e,t,r,i){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,i);var f=(t=new u(t,"hex")).r,o=t.s;if(f.cmpn(1)<0||f.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,c=o.invm(this.n),s=c.mul(e).umod(this.n),d=c.mul(f).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(s,r.getPublic(),d)).isInfinity()&&a.eqXToP(f):!(a=this.g.mulAdd(s,r.getPublic(),d)).isInfinity()&&0===a.getX().umod(this.n).cmp(f)},d.prototype.recoverPubKey=function(e,t,r,i){c((3&r)===r,"The recovery param is more than two bits"),t=new u(t,i);var f=this.n,o=new n(e),a=t.r,s=t.s,d=1&r,h=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error("Unable to find sencond key candinate");a=h?this.curve.pointFromX(a.add(this.curve.n),d):this.curve.pointFromX(a,d);var p=t.r.invm(f),l=f.sub(o).mul(p).umod(f),b=s.mul(p).umod(f);return this.g.mulAdd(l,a,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new u(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var f;try{f=this.recoverPubKey(e,t,i)}catch(e){continue}if(f.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(2),i=r(9).assert;function f(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=f,f.fromPublic=function(e,t,r){return t instanceof f?t:new f(e,{pub:t,pubEnc:r})},f.fromPrivate=function(e,t,r){return t instanceof f?t:new f(e,{priv:t,privEnc:r})},f.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},f.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},f.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},f.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},f.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},f.prototype.derive=function(e){return e.mul(this.priv).getX()},f.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},f.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},f.prototype.inspect=function(){return""}},function(e,t,r){"use strict";var n=r(2),i=r(9),f=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(f(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var r=e[t.place++];if(!(128&r))return r;for(var n=15&r,i=0,f=0,o=t.place;f>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;if(c(e,r)+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var f=c(e,r),o=e.slice(r.place,f+r.place);if(r.place+=f,2!==e[r.place++])return!1;var s=c(e,r);if(e.length!==s+r.place)return!1;var u=e.slice(r.place,s+r.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new n(o),this.s=new n(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=s(t),r=s(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];u(n,t.length),(n=n.concat(t)).push(2),u(n,r.length);var f=n.concat(r),o=[48];return u(o,f.length),o=o.concat(f),i.encode(o,e)}},function(e,t,r){"use strict";var n=r(14),i=r(66),f=r(9),o=f.assert,a=f.parseBytes,c=r(256),s=r(257);function u(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),f=this.encodePoint(i),o=this.hashInt(f,r.pubBytes(),e).mul(r.priv()),c=n.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:f})},u.prototype.verify=function(e,t,r){e=a(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),f=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(f)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;tr-h-2)throw new Error("message too long");var p=d.alloc(r-n-h-2),l=r-u-1,b=i(u),y=a(d.concat([s,p,d.alloc(1,1),t],l),o(b,l)),m=a(b,o(y,u));return new c(d.concat([d.alloc(1),m,y],r))}(l,t);else if(1===h)p=function(e,t,r){var n,f=t.length,o=e.modulus.byteLength();if(f>o-11)throw new Error("message too long");n=r?d.alloc(o-f-3,255):function(e){var t,r=d.allocUnsafe(e),n=0,f=i(2*e),o=0;for(;n=0)throw new Error("data too long for modulus")}return r?u(p,l):s(p,l)}},function(e,t,r){var n=r(41),i=r(117),f=r(118),o=r(2),a=r(64),c=r(10),s=r(119),u=r(43).Buffer;e.exports=function(e,t,r){var d;d=e.padding?e.padding:r?1:4;var h,p=n(e),l=p.modulus.byteLength();if(t.length>l||new o(t).cmp(p.modulus)>=0)throw new Error("decryption error");h=r?s(new o(t),p):a(t,p);var b=u.alloc(l-h.length);if(h=u.concat([b,h],l),4===d)return function(e,t){var r=e.modulus.byteLength(),n=c("sha1").update(u.alloc(0)).digest(),o=n.length;if(0!==t[0])throw new Error("decryption error");var a=t.slice(1,o+1),s=t.slice(o+1),d=f(a,i(s,o)),h=f(s,i(d,r-o-1));if(function(e,t){e=u.from(e),t=u.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));var i=-1;for(;++i=t.length){f++;break}var o=t.slice(2,i-1);("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&f++;o.length<8&&f++;if(f)throw new Error("decryption error");return t.slice(i)}(0,h,r);if(3===d)return h;throw new Error("unknown padding")}},function(e,t,r){"use strict";(function(e,n){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var f=r(262),o=r(21),a=f.Buffer,c=f.kMaxLength,s=e.crypto||e.msCrypto,u=Math.pow(2,32)-1;function d(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>u||e<0)throw new TypeError("offset must be a uint32");if(e>c||e>t)throw new RangeError("offset out of range")}function h(e,t,r){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>u||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>c)throw new RangeError("buffer too small")}function p(e,t,r,i){if(n.browser){var f=e.buffer,a=new Uint8Array(f,t,r);return s.getRandomValues(a),i?void n.nextTick((function(){i(null,e)})):e}if(!i)return o(r).copy(e,t),e;o(r,(function(r,n){if(r)return i(r);n.copy(e,t),i(null,e)}))}s&&s.getRandomValues||!n.browser?(t.randomFill=function(t,r,n,i){if(!(a.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof r)i=r,r=0,n=t.length;else if("function"==typeof n)i=n,n=t.length-r;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return d(r,t.length),h(n,r,t.length),p(t,r,n,i)},t.randomFillSync=function(t,r,n){void 0===r&&(r=0);if(!(a.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');d(r,t.length),void 0===n&&(n=t.length-r);return h(n,r,t.length),p(t,r,n)}):(t.randomFill=i,t.randomFillSync=i)}).call(this,r(6),r(11))},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){var n=r(32);function i(e,t){e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var r=Array(80),n=1732584193,i=-271733879,s=-1732584194,u=271733878,d=-1009589776,h=0;h>16)+(t>>16)+(r>>16)<<16|65535&r}function c(e,t){return e<>>32-t}e.exports=function(e){return n.hash(e,i,20,!0)}},function(e,t,r){var n=r(32),i=function(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r},f=function(e,t){return e>>>t|e<<32-t},o=function(e,t){return e>>>t},a=function(e,t,r){return e&t^~e&r},c=function(e,t,r){return e&t^e&r^t&r},s=function(e){return f(e,2)^f(e,13)^f(e,22)},u=function(e){return f(e,6)^f(e,11)^f(e,25)},d=function(e){return f(e,7)^f(e,18)^o(e,3)},h=function(e,t){var r,n,h,p,l,b,y,m,v,g,w,_=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),S=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),E=new Array(64);e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var A=0;A>>((3&n)<<3)&255;return r},this.crypto&&crypto.getRandomValues&&(r=function(e){var t=new Uint8Array(e);return crypto.getRandomValues(t),t}),e.exports=r||t}()},function(e,t,r){var n=r(32);function i(e,t){e[t>>5]|=128<>>9<<4)]=t;for(var r=1732584193,n=-271733879,i=-1732584194,f=271733878,d=0;d>>32-a,r);var o,a}function o(e,t,r,n,i,o,a){return f(t&r|~t&n,e,t,i,o,a)}function a(e,t,r,n,i,o,a){return f(t&n|r&~n,e,t,i,o,a)}function c(e,t,r,n,i,o,a){return f(t^r^n,e,t,i,o,a)}function s(e,t,r,n,i,o,a){return f(r^(t|~n),e,t,i,o,a)}function u(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}e.exports=function(e){return n.hash(e,i,16)}},function(e,t,r){var n=r(32),i=function(){var e={},t=e.lib={},r=t.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var r=new e;return t&&r.mixIn(t),r.$super=this,r},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},isA:function(e){for(var t=this;t;){if(t==e)return!0;t=t.$super}return!1},clone:function(){return this.$super.extend(this)}}}(),n=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=void 0!==t?t:4*e.length},toString:function(e){return(e||this.encoder).toString(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;this.clamp();for(var f=0;f>>2]>>>24-f%4*8&255;t[n>>>2]|=o<<24-n%4*8,n++}return this.sigBytes=n,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=Math.ceil(t/4)},clone:function(){var e=n.$super.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r>>2]>>>24-i%4*8&255;n.push((f>>>4).toString(16)),n.push((15&f).toString(16))}return n.join("")},fromString:function(e){for(var t=e.length,r=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return n.create(r,t/2)}},o=i.Latin1={toString:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(f))}return n.join("")},fromString:function(e){for(var t=e.length,r=[],i=0;i>>2]|=e.charCodeAt(i)<<24-i%4*8;return n.create(r,t)}},a=i.Utf8={toString:function(e){return decodeURIComponent(escape(o.toString(e)))},fromString:function(e){return o.fromString(unescape(encodeURIComponent(e)))}};n.encoder=f;var c=e.algo={};return e}(),f=i,o=f.lib,a=o.WordArray,c=o.Hash,s=f.algo,u=[608135816,-2052912941,320440878,57701188,-1542899678,698298832,137296536,-330404727,1160258022,953160567,-1101764913,887688300,-1062458953,-914599715,1065670069,-1253635817],d=[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],[11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4],[7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8],[9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13],[2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9],[12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11],[13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10],[6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5],[10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]],h=s.BLAKE256=c.extend({_cfg:c._cfg.extend({salt:a.create([0,0,0,0])}),_doReset:function(){var e=this._hash.words;e[0]=1779033703,e[1]=-1150833019,e[2]=1013904242,e[3]=-1521486534,e[4]=1359893119,e[5]=-1694144372,e[6]=528734635,e[7]=1541459225,this._t=0},_doHashBlock:function(e,t){var r=this._message.words,n=this._hash.words,i=this._cfg.salt.words,f=this._t+=512,o=[n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],608135816^i[0],-2052912941^i[1],320440878^i[2],57701188^i[3],-1542899678,698298832,137296536,-330404727];t||(o[12]=o[12]^f,o[13]=o[13]^f);for(var a=0;a55&&(r=!0);var n=8*this._length,i=8*e.sigBytes;i?this._t-=512-i:this._t=-512,t[i>>>5]|=128<<24-i%32,t[13+(i+64>>>9<<4)]|=1,t[t.length+1]=n,e.sigBytes=4*t.length,this._hashBlocks(r)}});function p(e,t,r,n,i,f,o,a,c){var s=d[n][c],h=d[n][c+1];r[i]=r[i]+r[f]+(e[t+s]^u[h])|0;var p=r[a]^r[i];r[a]=p<<16|p>>>16,r[o]=r[o]+r[a]|0;p=r[f]^r[o];r[f]=p<<20|p>>>12,r[i]=r[i]+r[f]+(e[t+h]^u[s])|0;p=r[a]^r[i];r[a]=p<<24|p>>>8,r[o]=r[o]+r[a]|0;p=r[f]^r[o];r[f]=p<<25|p>>>7}function l(e,t){return f.BLAKE256(i.enc.Hex.fromString(e.toString("hex"))).words}f.BLAKE256=c._createHelper(h),f.HMAC_BLAKE256=c._createHmacHelper(h),e.exports=function(e){return n.hash2(e,l,32,!0)}},function(e,t,r){var n=r(32),i=function(){var e={},t=e.lib={},r=t.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var r=new e;return t&&r.mixIn(t),r.$super=this,r},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},isA:function(e){for(var t=this;t;){if(t==e)return!0;t=t.$super}return!1},clone:function(){return this.$super.extend(this)}}}(),n=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=void 0!==t?t:4*e.length},toString:function(e){return(e||this.encoder).toString(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;this.clamp();for(var f=0;f>>2]>>>24-f%4*8&255;t[n>>>2]|=o<<24-n%4*8,n++}return this.sigBytes=n,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=Math.ceil(t/4)},clone:function(){var e=n.$super.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r>>2]>>>24-i%4*8&255;n.push((f>>>4).toString(16)),n.push((15&f).toString(16))}return n.join("")},fromString:function(e){for(var t=e.length,r=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return n.create(r,t/2)}},o=i.Latin1={toString:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(f))}return n.join("")},fromString:function(e){for(var t=e.length,r=[],i=0;i>>2]|=e.charCodeAt(i)<<24-i%4*8;return n.create(r,t)}},a=i.Utf8={toString:function(e){return decodeURIComponent(escape(o.toString(e)))},fromString:function(e){return o.fromString(unescape(encodeURIComponent(e)))}};n.encoder=f;var c=e.algo={};return e}(),f=i,o=f.lib,a=o.WordArray,c=o.Hash,s=f.algo,u=a.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),d=a.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),h=a.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),p=a.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),l=a.create([0,1518500249,1859775393,2400959708,2840853838]),b=a.create([1352829926,1548603684,1836072691,2053994217,0]),y=s.RIPEMD160=c.extend({_doReset:function(){this._hash=a.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var f,o,a,c,s,y,E,A,I,k,T,P=this._hash.words,x=l.words,M=b.words,O=u.words,B=d.words,N=h.words,R=p.words;y=f=P[0],E=o=P[1],A=a=P[2],I=c=P[3],k=s=P[4];for(r=0;r<80;r+=1)T=f+e[t+O[r]]|0,T+=r<16?m(o,a,c)+x[0]:r<32?v(o,a,c)+x[1]:r<48?g(o,a,c)+x[2]:r<64?w(o,a,c)+x[3]:_(o,a,c)+x[4],T=(T=S(T|=0,N[r]))+s|0,f=s,s=c,c=S(a,10),a=o,o=T,T=y+e[t+B[r]]|0,T+=r<16?_(E,A,I)+M[0]:r<32?w(E,A,I)+M[1]:r<48?g(E,A,I)+M[2]:r<64?v(E,A,I)+M[3]:m(E,A,I)+M[4],T=(T=S(T|=0,R[r]))+k|0,y=k,k=I,I=S(A,10),A=E,E=T;T=P[1]+a+I|0,P[1]=P[2]+c+k|0,P[2]=P[3]+s+y|0,P[3]=P[4]+f+E|0,P[4]=P[0]+o+A|0,P[0]=T},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,f=i.words,o=0;o<5;o++){var a=f[o];f[o]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return i},clone:function(){var e=c.clone.call(this);return e._hash=this._hash.clone(),e}});function m(e,t,r){return e^t^r}function v(e,t,r){return e&t|~e&r}function g(e,t,r){return(e|~t)^r}function w(e,t,r){return e&r|t&~r}function _(e,t,r){return e^(t|~r)}function S(e,t){return e<>>32-t}function E(e,t){return f.RIPEMD160(i.enc.Hex.fromString(e.toString("hex"))).words}f.RIPEMD160=c._createHelper(y),f.HmacRIPEMD160=c._createHmacHelper(y),e.exports=function(e){return n.hash(e,E,20,!0)}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(t){for(var r=e.alloc(t.length),n=0;n1&&"'"===e[e.length-1],f=parseInt(e,10);n(f<2147483648,"Invalid index"),i&&(f+=2147483648),r=r.deriveChild(f)}else n(/^[mM]{1}/.test(e),'Path must start with "m" or "M"')})),r},u.prototype.deriveChild=function(e){var t,r=e>=2147483648,o=i.allocUnsafe(4);if(o.writeUInt32BE(e,0),r){n(this.privateKey,"Could not derive hardened child key");var c=this.privateKey,s=i.alloc(1,0);c=i.concat([s,c]),t=i.concat([c,o])}else t=i.concat([this.publicKey,o]);var d=f.createHmac("sha512",this.chainCode).update(t).digest(),h=d.slice(0,32),p=d.slice(32),l=new u(this.versions);if(this.privateKey)try{l.privateKey=a.privateKeyTweakAdd(this.privateKey,h)}catch(t){return this.derive(e+1)}else try{l.publicKey=a.publicKeyTweakAdd(this.publicKey,h,!0)}catch(t){return this.derive(e+1,r)}return l.chainCode=p,l.depth=this.depth+1,l.parentFingerprint=this.fingerprint,l.index=e,l},u.prototype.sign=function(e){return a.sign(e,this.privateKey).signature},u.prototype.verify=function(e,t){return a.verify(e,t,this.publicKey)},u.prototype.wipePrivateData=function(){return this._privateKey&&f.randomBytes(this._privateKey.length).copy(this._privateKey),this._privateKey=null,this},u.prototype.toJSON=function(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}},u.fromMasterSeed=function(e,t){var r=f.createHmac("sha512",c).update(e).digest(),n=r.slice(0,32),i=r.slice(32),o=new u(t);return o.chainCode=i,o.privateKey=n,o},u.fromExtendedKey=function(e,t){var r=new u(t=t||s),i=o.decode(e),f=i.readUInt32BE(0);n(f===t.private||f===t.public,"Version mismatch: does not match private or public"),r.depth=i.readUInt8(4),r.parentFingerprint=i.readUInt32BE(5),r.index=i.readUInt32BE(9),r.chainCode=i.slice(13,45);var a=i.slice(45);return 0===a.readUInt8(0)?(n(f===t.private,"Version mismatch: version does not match private"),r.privateKey=a.slice(1)):(n(f===t.public,"Version mismatch: version does not match public"),r.publicKey=a),r},u.fromJSON=function(e){return u.fromExtendedKey(e.xpriv)},u.HARDENED_OFFSET=2147483648,e.exports=u},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){(function(t){var n=r(274),i=r(10);function f(e,r){var i;(Array.isArray(e)||e instanceof Uint8Array)&&(e=new t(e)),null!=r?("number"==typeof r&&(r=new t([r])),i=t.concat([r,e])):i=e;var f=c(i).slice(0,4),o=t.concat([i,f]);return n.encode(o)}function o(e,r){var i,f=n.decode(e),o=new t(f);if(null==r)i=0;else if("number"==typeof r&&(r=new t([r])),i=r.length,o.slice(0,i).toString("hex")!==r.toString("hex"))throw new Error("Invalid version");var a=o.slice(-4),s=o.length-4,u=o.slice(0,s),d=c(u).slice(0,4);if(a.toString("hex")!==d.toString("hex"))throw new Error("Invalid checksum");return u.slice(i)}function a(e,t){try{o(e,t)}catch(e){return!1}return!0}function c(e){var t=i("sha256").update(e).digest();return i("sha256").update(t).digest()}e.exports={encode:f,decode:o,isValid:a,createEncoder:function(e){return function(t){return f(t,e)}},createDecoder:function(e){return function(t){return o(t,e)}},createValidator:function(e){return function(t){return a(t,e)}}}}).call(this,r(0).Buffer)},function(e,t){for(var r="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",n={},i=0;i=0;o--)f+=r[n[o]];return f},decode:function(e){if(0===e.length)return[];var t,r,i=[0];for(t=0;t>8,i[r]&=255;for(;o;)i.push(255&o),o>>=8}for(t=0;"1"===e[t]&&t{for(const i of Object.keys(t)){const o=t[i],{canAdd:a,canAddToArray:c,check:s,expected:u}=n[e+"s"][i]||{},d=!!c;if(s)if(d){if(!Array.isArray(o)||r[i]&&!Array.isArray(r[i]))throw new Error(`Key type ${i} must be an array`);o.every(s)||f(e,i,u,o);const t=r[i]||[],n=new Set;if(!o.every(e=>c(t,e,n)))throw new Error("Can not add duplicate data to array");r[i]=t.concat(o)}else{if(s(o)||f(e,i,u,o),!a(r,o))throw new Error(`Can not add duplicate data to ${e}`);r[i]=o}}}}t.checkForInput=i,t.checkForOutput=function(e,t){const r=e[t];if(void 0===r)throw new Error(`No output #${t}`);return r},t.checkHasKey=function(e,t,r){if(e.key[0]t.key.equals(e.key)).length)throw new Error(`Duplicate Key: ${e.key.toString("hex")}`)},t.getEnumLength=function(e){let t=0;return Object.keys(e).forEach(e=>{Number(isNaN(Number(e)))&&t++}),t},t.inputCheckUncleanFinalized=function(e,t){let r=!1;if(!t.nonWitnessUtxo!=!t.witnessUtxo){const e=!!t.redeemScript,n=!!t.witnessScript,i=!e||!!t.finalScriptSig,f=!n||!!t.finalScriptWitness,o=!!t.finalScriptSig||!!t.finalScriptWitness;r=i&&f&&o}if(!1===r)throw new Error(`Input #${e} has too much or too little data to clean`)},t.updateGlobal=o("global"),t.updateInput=o("input"),t.updateOutput=o("output"),t.addInputAttributes=function(e,r){const n=i(e,e.length-1);t.updateInput(r,n)},t.addOutputAttributes=function(e,r){const n=i(e,e.length-1);t.updateOutput(r,n)},t.defaultVersionSetter=function(t,r){if(!e.isBuffer(r)||r.length<4)throw new Error("Set Version: Invalid Transaction");return r.writeUInt32LE(t,0),r},t.defaultLocktimeSetter=function(t,r){if(!e.isBuffer(r)||r.length<4)throw new Error("Set Locktime: Invalid Transaction");return r.writeUInt32LE(t,r.length-4),r}}).call(this,r(0).Buffer)},,,,,,,function(e,t,r){var n=r(178);function i(e){return e.name||e.toString().match(/function (.*?)\s*\(/)[1]}function f(e){return n.Nil(e)?"":i(e.constructor)}function o(e,t){Error.captureStackTrace&&Error.captureStackTrace(e,t)}function a(e){return n.Function(e)?e.toJSON?e.toJSON():i(e):n.Array(e)?"Array":e&&n.Object(e)?"Object":void 0!==e?e:""}function c(e,t,r){var i=function(e){return n.Function(e)?"":n.String(e)?JSON.stringify(e):e&&n.Object(e)?"":e}(t);return"Expected "+a(e)+", got"+(""!==r?" "+r:"")+(""!==i?" "+i:"")}function s(e,t,r){r=r||f(t),this.message=c(e,t,r),o(this,s),this.__type=e,this.__value=t,this.__valueTypeName=r}function u(e,t,r,n,i){e?(i=i||f(n),this.message=function(e,t,r,n,i){var f='" of type ';return"key"===t&&(f='" with key type '),c('property "'+a(r)+f+a(e),n,i)}(e,r,t,n,i)):this.message='Unexpected property "'+t+'"',o(this,s),this.__label=r,this.__property=t,this.__type=e,this.__value=n,this.__valueTypeName=i}s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,u.prototype=Object.create(Error.prototype),u.prototype.constructor=s,e.exports={TfTypeError:s,TfPropertyTypeError:u,tfCustomError:function(e,t){return new s(e,{},t)},tfSubError:function(e,t,r){return e instanceof u?(t=t+"."+e.__property,e=new u(e.__type,t,e.__label,e.__value,e.__valueTypeName)):e instanceof s&&(e=new u(e.__type,t,r,e.__value,e.__valueTypeName)),o(e),e},tfJSON:a,getValueTypeName:f}},function(e,t,r){(function(t){var n=r(322);function i(e,t){if(void 0!==t&&e[0]!==t)throw new Error("Invalid network version");if(33===e.length)return{version:e[0],privateKey:e.slice(1,33),compressed:!1};if(34!==e.length)throw new Error("Invalid WIF length");if(1!==e[33])throw new Error("Invalid compression flag");return{version:e[0],privateKey:e.slice(1,33),compressed:!0}}function f(e,r,n){var i=new t(n?34:33);return i.writeUInt8(e,0),r.copy(i,1),n&&(i[33]=1),i}e.exports={decode:function(e,t){return i(n.decode(e),t)},decodeRaw:i,encode:function(e,t,r){return"number"==typeof e?n.encode(f(e,t,r)):n.encode(f(e.version,e.privateKey,e.compressed))},encodeRaw:f}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n=r(339).Buffer;function i(e){if(e<0||e>9007199254740991||e%1!=0)throw new RangeError("value out of range")}function f(e){return i(e),e<253?1:e<=65535?3:e<=4294967295?5:9}e.exports={encode:function e(t,r,o){if(i(t),r||(r=n.allocUnsafe(f(t))),!n.isBuffer(r))throw new TypeError("buffer must be a Buffer instance");return o||(o=0),t<253?(r.writeUInt8(t,o),e.bytes=1):t<=65535?(r.writeUInt8(253,o),r.writeUInt16LE(t,o+1),e.bytes=3):t<=4294967295?(r.writeUInt8(254,o),r.writeUInt32LE(t,o+1),e.bytes=5):(r.writeUInt8(255,o),r.writeUInt32LE(t>>>0,o+1),r.writeUInt32LE(t/4294967296|0,o+5),e.bytes=9),r},decode:function e(t,r){if(!n.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");r||(r=0);var f=t.readUInt8(r);if(f<253)return e.bytes=1,f;if(253===f)return e.bytes=3,t.readUInt16LE(r+1);if(254===f)return e.bytes=5,t.readUInt32LE(r+1);e.bytes=9;var o=t.readUInt32LE(r+1),a=4294967296*t.readUInt32LE(r+5)+o;return i(a),a},encodingLength:f}},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(343)),n(r(357))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.compile(e);return 22===t.length&&t[0]===i.OPS.OP_0&&20===t[1]}t.check=f,f.toJSON=()=>"Witness pubKeyHash output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.compile(e);return 34===t.length&&t[0]===i.OPS.OP_0&&32===t[1]}t.check=f,f.toJSON=()=>"Witness scriptHash output"},,function(e,t,r){"use strict";(function(t){var n=r(88),i=r(10);function f(e){var t=i("sha256").update(e).digest();return i("sha256").update(t).digest()}function o(e){var t=e.slice(0,-4),r=e.slice(-4),n=f(t);if(!(r[0]^n[0]|r[1]^n[1]|r[2]^n[2]|r[3]^n[3]))return t}function a(e){var t=n.decodeUnsafe(e);if(t)return o(t)}e.exports={encode:function(e){var r=f(e);return n.encode(t.concat([e,r],e.length+4))},decode:function(e){var t=o(n.decode(e));if(!t)throw new Error("Invalid checksum");return t},decodeUnsafe:a,decodeRaw:a}}).call(this,r(0).Buffer)},,,,,,,,,,,function(e,t,r){"use strict";var n=r(303).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");var t=new Uint8Array(256);t.fill(255);for(var r=0;r>>0,u=new Uint8Array(s);e[r];){var d=t[e.charCodeAt(r)];if(255===d)return;for(var h=0,p=s-1;(0!==d||h>>0,u[p]=d%256>>>0,d=d/256>>>0;if(0!==d)throw new Error("Non-zero carry");f=h,r++}if(" "!==e[r]){for(var l=s-f;l!==s&&0===u[l];)l++;var b=n.allocUnsafe(i+(s-l));b.fill(0,0,i);for(var y=i;l!==s;)b[y++]=u[l++];return b}}}return{encode:function(t){if(!n.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var r=0,i=0,f=0,c=t.length;f!==c&&0===t[f];)f++,r++;for(var u=(c-f)*s+1>>>0,d=new Uint8Array(u);f!==c;){for(var h=t[f],p=0,l=u-1;(0!==h||p>>0,d[l]=h%o>>>0,h=h/o>>>0;if(0!==h)throw new Error("Non-zero carry");i=p,f++}for(var b=u-i;b!==u&&0===d[b];)b++;for(var y=a.repeat(r);bthis.addUnknownKeyValToInput(r,e)),o.addInputAttributes(this.inputs,e),this}addOutput(e){this.globalMap.unsignedTx.addOutput(e),this.outputs.push({unknownKeyVals:[]});const t=e.unknownKeyVals||[],r=this.outputs.length-1;if(!Array.isArray(t))throw new Error("unknownKeyVals must be an Array");return t.forEach(e=>this.addUnknownKeyValToInput(r,e)),o.addOutputAttributes(this.outputs,e),this}clearFinalizedInput(e){const t=o.checkForInput(this.inputs,e);o.inputCheckUncleanFinalized(e,t);for(const e of Object.keys(t))["witnessUtxo","nonWitnessUtxo","finalScriptSig","finalScriptWitness","unknownKeyVals"].includes(e)||delete t[e];return this}combine(...e){const t=n.combine([this].concat(e));return Object.assign(this,t),this}getTransaction(){return this.globalMap.unsignedTx.toBuffer()}}}).call(this,r(0).Buffer)},,,,,,,,,function(e,t,r){"use strict";(function(e){var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,f){function o(e){try{c(n.next(e))}catch(e){f(e)}}function a(e){try{c(n.throw(e))}catch(e){f(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var r,n,i,f,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return f={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(f[Symbol.iterator]=function(){return this}),f;function a(f){return function(a){return function(f){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(i=2&f[0]?n.return:f[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,f[1])).done)return i;switch(n=0,i&&(f=[2&f[0],i.value]),f[0]){case 0:case 1:i=f;break;case 4:return o.label++,{value:f[1],done:!1};case 5:o.label++,n=f[1],f=[0];continue;case 7:f=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===f[0]||2===f[0])){o=0;continue}if(3===f[0]&&(!i||f[1]>i[0]&&f[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var c,s,u=r(124),d=o(r(87)),h=a(r(291)),p=r(33),l=r(144),b=a(r(392));!function(e){e.P2PKH="P2PKH",e.P2SH="P2SH",e.P2WPKH="P2WPKH"}(c=t.AddressType||(t.AddressType={})),function(e){e.mainNet="mainNet",e.testNet="testNet"}(s=t.NetWorkType||(t.NetWorkType={}));var y=function(){function t(t){var r=this;void 0===t&&(t=s.mainNet),this.generateOmniTransaction=function(t,o){return n(r,void 0,void 0,(function(){var r,a,c,s,u,d,h,p,l,y,m=this;return i(this,(function(v){switch(v.label){case 0:r=this.filterUniqueSigner(o),a=new b.default(this.network),c=a.buildOmniPsbt(t).getPsbt(),s=function(t){var r;return i(this,(function(f){switch(f.label){case 0:return r={publicKey:e.from(t.publicKey,"hex"),sign:function(r){return n(m,void 0,void 0,(function(){var n,f,o,a;return i(this,(function(i){switch(i.label){case 0:return n=r.toString("hex"),[4,t.sign(n)];case 1:return f=i.sent(),o=f.r,a=f.s,[2,e.concat([e.from(o,"hex"),e.from(a,"hex")])]}}))}))}},[4,c.signAllInputsAsync(r)];case 1:return f.sent(),[2]}}))},v.label=1;case 1:v.trys.push([1,6,7,8]),u=f(r),d=u.next(),v.label=2;case 2:return d.done?[3,5]:(h=d.value,[5,s(h)]);case 3:v.sent(),v.label=4;case 4:return d=u.next(),[3,2];case 5:return[3,8];case 6:return p=v.sent(),l={error:p},[3,8];case 7:try{d&&!d.done&&(y=u.return)&&y.call(u)}finally{if(l)throw l.error}return[7];case 8:return[2,this.extractTx(c)]}}))}))},this.generateOmniTransactionSync=function(t,n){var i,o,a=r.filterUniqueSigner(n),c=new b.default(r.network).buildOmniPsbt(t).getPsbt(),s=function(t){var r={publicKey:e.from(t.publicKey,"hex"),sign:function(r){var n=r.toString("hex"),i=t.sign(n),f=i.r,o=i.s;return e.concat([e.from(f,"hex"),e.from(o,"hex")])}};c.signAllInputs(r)};try{for(var u=f(a),d=u.next();!d.done;d=u.next()){s(d.value)}}catch(e){i={error:e}}finally{try{d&&!d.done&&(o=u.return)&&o.call(u)}finally{if(i)throw i.error}}return r.extractTx(c)},this.signMessage=function(e,t){return n(r,void 0,void 0,(function(){var r,n,f,o;return i(this,(function(i){switch(i.label){case 0:return r=this.constructMessageHash(e),[4,t.sign(r)];case 1:return n=i.sent(),f=n.r,o=n.s,[2,""+f+o]}}))}))},this.signMessageSync=function(e,t){var n=r.constructMessageHash(e),i=t.sign(n);return""+i.r+i.s},this.generatePsbt=function(e){return new b.default(r.network).addInputsForPsbt(e).addOutputForPsbt(e).getPsbt().toBase64()},this.parsePsbt=function(e){var t=d.Psbt.fromBase64(e).data.getTransaction(),n=d.Transaction.fromBuffer(t);return{inputs:n.ins.map((function(e){return{txId:e.hash.reverse().toString("hex"),index:e.index}})),outputs:n.outs.map((function(e){return{address:d.address.fromOutputScript(e.script,r.network),value:e.value}}))}},this.signPsbt=function(t,o){return n(r,void 0,void 0,(function(){var r,a,c,s,u,h,p,l,b=this;return i(this,(function(y){switch(y.label){case 0:r=d.Psbt.fromBase64(t),a=function(t){var f;return i(this,(function(o){switch(o.label){case 0:return f={publicKey:e.from(t.publicKey,"hex"),sign:function(r){return n(b,void 0,void 0,(function(){var n,f,o,a;return i(this,(function(i){switch(i.label){case 0:return n=r.toString("hex"),[4,t.sign(n)];case 1:return f=i.sent(),o=f.r,a=f.s,[2,e.concat([e.from(o,"hex"),e.from(a,"hex")])]}}))}))}},[4,r.signAllInputsAsync(f)];case 1:return o.sent(),[2]}}))},y.label=1;case 1:y.trys.push([1,6,7,8]),c=f(o),s=c.next(),y.label=2;case 2:return s.done?[3,5]:(u=s.value,[5,a(u)]);case 3:y.sent(),y.label=4;case 4:return s=c.next(),[3,2];case 5:return[3,8];case 6:return h=y.sent(),p={error:h},[3,8];case 7:try{s&&!s.done&&(l=c.return)&&l.call(c)}finally{if(p)throw p.error}return[7];case 8:return[2,this.extractTx(r)]}}))}))},this.signPsbtSync=function(t,n){var i,o,a=d.Psbt.fromBase64(t),c=function(t){var r={publicKey:e.from(t.publicKey,"hex"),sign:function(r){var n=r.toString("hex"),i=t.sign(n),f=i.r,o=i.s;return e.concat([e.from(f,"hex"),e.from(o,"hex")])}};a.signAllInputs(r)};try{for(var s=f(n),u=s.next();!u.done;u=s.next()){c(u.value)}}catch(e){i={error:e}}finally{try{u&&!u.done&&(o=s.return)&&o.call(s)}finally{if(i)throw i.error}}return r.extractTx(a)},this.filterUniqueSigner=function(e){var t={};return e.forEach((function(e){return t[e.publicKey]=e})),Object.values(t)},this.constructMessageHash=function(t){var n=e.from(r.network.messagePrefix,"utf-8"),i=e.from(t,"utf-8"),f=e.from(l.numberToHex(i.length),"hex"),o=e.concat([n,f,i]);return l.hash256(o).toString("hex")},this.extractTx=function(e){if(e.validateSignaturesOfAllInputs()){e.finalizeAllInputs();var t=e.extractTransaction().toHex();return{txId:e.extractTransaction().getId(),txHex:t}}throw new Error("signature verification failed")},t===s.mainNet?this.network=d.networks.bitcoin:this.network=d.networks.regtest}return t.prototype.generateAddress=function(e,t){var r;void 0===t&&(t=c.P2SH);var n=p.Buffer.from(e,"hex");t===c.P2PKH&&(r=d.payments.p2pkh({pubkey:n,network:this.network}).address);t===c.P2SH&&(r=d.payments.p2sh({redeem:d.payments.p2wpkh({pubkey:n,network:this.network}),network:this.network}).address);t===c.P2WPKH&&(r=d.payments.p2wpkh({pubkey:n,network:this.network}).address);if(r)return r;throw new Error("generate address failed")},t.prototype.isAddressValid=function(e){if(e.startsWith("1")||e.startsWith("3")||e.startsWith("2"))try{return h.default.decode(e),!0}catch(e){return!1}else{if(!e.startsWith("bc"))return!1;try{return u.decode(e),!0}catch(e){return!1}}},t.prototype.generateTransaction=function(t,r){return n(this,void 0,void 0,(function(){var o,a,c,s,u,d,h,p,l,y,m=this;return i(this,(function(v){switch(v.label){case 0:o=this.filterUniqueSigner(r),a=new b.default(this.network),c=a.addInputsForPsbt(t).addOutputForPsbt(t).getPsbt(),t.locktime&&c.setLocktime(t.locktime),t.version&&c.setVersion(t.version),s=function(t){var r;return i(this,(function(f){switch(f.label){case 0:return r={publicKey:e.from(t.publicKey,"hex"),sign:function(r){return n(m,void 0,void 0,(function(){var n,f,o,a;return i(this,(function(i){switch(i.label){case 0:return n=r.toString("hex"),[4,t.sign(n)];case 1:return f=i.sent(),o=f.r,a=f.s,[2,e.concat([e.from(o,"hex"),e.from(a,"hex")])]}}))}))}},[4,c.signAllInputsAsync(r)];case 1:return f.sent(),[2]}}))},v.label=1;case 1:v.trys.push([1,6,7,8]),u=f(o),d=u.next(),v.label=2;case 2:return d.done?[3,5]:(h=d.value,[5,s(h)]);case 3:v.sent(),v.label=4;case 4:return d=u.next(),[3,2];case 5:return[3,8];case 6:return p=v.sent(),l={error:p},[3,8];case 7:try{d&&!d.done&&(y=u.return)&&y.call(u)}finally{if(l)throw l.error}return[7];case 8:return[2,this.extractTx(c)]}}))}))},t.prototype.generateTransactionSync=function(t,r){var n,i,o=this.filterUniqueSigner(r),a=new b.default(this.network).addInputsForPsbt(t).addOutputForPsbt(t).getPsbt();t.locktime&&a.setLocktime(t.locktime),t.version&&a.setVersion(t.version);var c=function(t){var r={publicKey:e.from(t.publicKey,"hex"),sign:function(r){var n=r.toString("hex"),i=t.sign(n),f=i.r,o=i.s;return e.concat([e.from(f,"hex"),e.from(o,"hex")])}};a.signAllInputs(r)};try{for(var s=f(o),u=s.next();!u.done;u=s.next()){c(u.value)}}catch(e){n={error:e}}finally{try{u&&!u.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return this.extractTx(a)},t}();t.BTC=y}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(315);t.fromSeed=n.fromSeed,t.fromBase58=n.fromBase58,t.fromPublicKey=n.fromPublicKey,t.fromPrivateKey=n.fromPrivateKey},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(316),i=r(317),f=r(53),o=r(13),a=r(285),c=o.BufferN(32),s=o.compile({wif:o.UInt8,bip32:{public:o.UInt32,private:o.UInt32}}),u={wif:128,bip32:{public:76067358,private:76066276}},d=Math.pow(2,31)-1;function h(e){return o.String(e)&&null!==e.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}function p(e){return o.UInt32(e)&&e<=d}class l{constructor(e,t,r,n,i=0,f=0,a=0){this.__D=e,this.__Q=t,this.chainCode=r,this.network=n,this.__DEPTH=i,this.__INDEX=f,this.__PARENT_FINGERPRINT=a,o(s,n),this.lowR=!1}get depth(){return this.__DEPTH}get index(){return this.__INDEX}get parentFingerprint(){return this.__PARENT_FINGERPRINT}get publicKey(){return void 0===this.__Q&&(this.__Q=f.pointFromScalar(this.__D,!0)),this.__Q}get privateKey(){return this.__D}get identifier(){return n.hash160(this.publicKey)}get fingerprint(){return this.identifier.slice(0,4)}isNeutered(){return void 0===this.__D}neutered(){return m(this.publicKey,this.chainCode,this.network,this.depth,this.index,this.parentFingerprint)}toBase58(){const t=this.network,r=this.isNeutered()?t.bip32.public:t.bip32.private,n=e.allocUnsafe(78);return n.writeUInt32BE(r,0),n.writeUInt8(this.depth,4),n.writeUInt32BE(this.parentFingerprint,5),n.writeUInt32BE(this.index,9),this.chainCode.copy(n,13),this.isNeutered()?this.publicKey.copy(n,45):(n.writeUInt8(0,45),this.privateKey.copy(n,46)),i.encode(n)}toWIF(){if(!this.privateKey)throw new TypeError("Missing private key");return a.encode(this.network.wif,this.privateKey,!0)}derive(t){o(o.UInt32,t);const r=t>=2147483648,i=e.allocUnsafe(37);if(r){if(this.isNeutered())throw new TypeError("Missing private key for hardened child key");i[0]=0,this.privateKey.copy(i,1),i.writeUInt32BE(t,33)}else this.publicKey.copy(i,0),i.writeUInt32BE(t,33);const a=n.hmacSHA512(this.chainCode,i),c=a.slice(0,32),s=a.slice(32);if(!f.isPrivate(c))return this.derive(t+1);let u;if(this.isNeutered()){const e=f.pointAddScalar(this.publicKey,c,!0);if(null===e)return this.derive(t+1);u=m(e,s,this.network,this.depth+1,t,this.fingerprint.readUInt32BE(0))}else{const e=f.privateAdd(this.privateKey,c);if(null==e)return this.derive(t+1);u=y(e,s,this.network,this.depth+1,t,this.fingerprint.readUInt32BE(0))}return u}deriveHardened(e){return o(p,e),this.derive(e+2147483648)}derivePath(e){o(h,e);let t=e.split("/");if("m"===t[0]){if(this.parentFingerprint)throw new TypeError("Expected master, got child");t=t.slice(1)}return t.reduce((e,t)=>{let r;return"'"===t.slice(-1)?(r=parseInt(t.slice(0,-1),10),e.deriveHardened(r)):(r=parseInt(t,10),e.derive(r))},this)}sign(t,r){if(!this.privateKey)throw new Error("Missing private key");if(void 0===r&&(r=this.lowR),!1===r)return f.sign(t,this.privateKey);{let r=f.sign(t,this.privateKey);const n=e.alloc(32,0);let i=0;for(;r[0]>127;)i++,n.writeUIntLE(i,0,6),r=f.signWithEntropy(t,this.privateKey,n);return r}}verify(e,t){return f.verify(e,this.publicKey,t)}}function b(e,t,r){return y(e,t,r)}function y(e,t,r,n,i,a){if(o({privateKey:c,chainCode:c},{privateKey:e,chainCode:t}),r=r||u,!f.isPrivate(e))throw new TypeError("Private key not in range [1, n)");return new l(e,void 0,t,r,n,i,a)}function m(e,t,r,n,i,a){if(o({publicKey:o.BufferN(33),chainCode:c},{publicKey:e,chainCode:t}),r=r||u,!f.isPoint(e))throw new TypeError("Point is not on the curve");return new l(void 0,e,t,r,n,i,a)}t.fromBase58=function(e,t){const r=i.decode(e);if(78!==r.length)throw new TypeError("Invalid buffer length");t=t||u;const n=r.readUInt32BE(0);if(n!==t.bip32.private&&n!==t.bip32.public)throw new TypeError("Invalid network version");const f=r[4],o=r.readUInt32BE(5);if(0===f&&0!==o)throw new TypeError("Invalid parent fingerprint");const a=r.readUInt32BE(9);if(0===f&&0!==a)throw new TypeError("Invalid index");const c=r.slice(13,45);let s;if(n===t.bip32.private){if(0!==r.readUInt8(45))throw new TypeError("Invalid private key");s=y(r.slice(46,78),c,t,f,a,o)}else{s=m(r.slice(45,78),c,t,f,a,o)}return s},t.fromPrivateKey=b,t.fromPublicKey=function(e,t,r){return m(e,t,r)},t.fromSeed=function(t,r){if(o(o.Buffer,t),t.length<16)throw new TypeError("Seed should be at least 128 bits");if(t.length>64)throw new TypeError("Seed should be at most 512 bits");r=r||u;const i=n.hmacSHA512(e.from("Bitcoin seed","utf8"),t);return b(i.slice(0,32),i.slice(32),r)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10),i=r(56);t.hash160=function(e){const t=n("sha256").update(e).digest();try{return n("rmd160").update(t).digest()}catch(e){return n("ripemd160").update(t).digest()}},t.hmacSHA512=function(e,t){return i("sha512",e).update(t).digest()}},function(e,t,r){"use strict";var n=r(10),i=r(318);e.exports=i((function(e){var t=n("sha256").update(e).digest();return n("sha256").update(t).digest()}))},function(e,t,r){"use strict";var n=r(88),i=r(319).Buffer;e.exports=function(e){function t(t){var r=t.slice(0,-4),n=t.slice(-4),i=e(r);if(!(n[0]^i[0]|n[1]^i[1]|n[2]^i[2]|n[3]^i[3]))return r}return{encode:function(t){var r=e(t);return n.encode(i.concat([t,r],t.length+4))},decode:function(e){var r=t(n.decode(e));if(!r)throw new Error("Invalid checksum");return r},decodeUnsafe:function(e){var r=n.decodeUnsafe(e);if(r)return t(r)}}}},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){(function(t){const n=r(56),i=t.alloc(1,1),f=t.alloc(1,0);e.exports=function(e,r,o,a,c){let s=t.alloc(32,0),u=t.alloc(32,1);s=n("sha256",s).update(u).update(f).update(r).update(e).update(c||"").digest(),u=n("sha256",s).update(u).digest(),s=n("sha256",s).update(u).update(i).update(r).update(e).update(c||"").digest(),u=n("sha256",s).update(u).digest(),u=n("sha256",s).update(u).digest();let d=u;for(;!a(d)||!o(d);)s=n("sha256",s).update(u).update(f).digest(),u=n("sha256",s).update(u).digest(),u=n("sha256",s).update(u).digest(),d=u;return d}}).call(this,r(0).Buffer)},function(e,t,r){(function(t){var n=r(178),i=r(284);function f(e){return t.isBuffer(e)}function o(e){return"string"==typeof e&&/^([0-9a-f]{2})+$/i.test(e)}function a(e,t){var r=e.toJSON();function n(n){if(!e(n))return!1;if(n.length===t)return!0;throw i.tfCustomError(r+"(Length: "+t+")",r+"(Length: "+n.length+")")}return n.toJSON=function(){return r},n}var c=a.bind(null,n.Array),s=a.bind(null,f),u=a.bind(null,o),d=a.bind(null,n.String);var h=Math.pow(2,53)-1;var p={ArrayN:c,Buffer:f,BufferN:s,Finite:function(e){return"number"==typeof e&&isFinite(e)},Hex:o,HexN:u,Int8:function(e){return e<<24>>24===e},Int16:function(e){return e<<16>>16===e},Int32:function(e){return(0|e)===e},Int53:function(e){return"number"==typeof e&&e>=-h&&e<=h&&Math.floor(e)===e},Range:function(e,t,r){function i(n,i){return r(n,i)&&n>e&&n>>0===e},UInt53:function(e){return"number"==typeof e&&e>=0&&e<=h&&Math.floor(e)===e}};for(var l in p)p[l].toJSON=function(e){return e}.bind(null,l);e.exports=p}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n=r(10),i=r(323);e.exports=i((function(e){var t=n("sha256").update(e).digest();return n("sha256").update(t).digest()}))},function(e,t,r){"use strict";var n=r(88),i=r(324).Buffer;e.exports=function(e){function t(t){var r=t.slice(0,-4),n=t.slice(-4),i=e(r);if(!(n[0]^i[0]|n[1]^i[1]|n[2]^i[2]|n[3]^i[3]))return r}return{encode:function(t){var r=e(t);return n.encode(i.concat([t,r],t.length+4))},decode:function(e){var r=t(n.decode(e));if(!r)throw new Error("Invalid checksum");return r},decodeUnsafe:function(e){var r=n.decodeUnsafe(e);if(r)return t(r)}}}},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=r(3),f=r(54),o=r(13),a=i.OPS;t.p2data=function(e,t){if(!e.data&&!e.output)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),o({network:o.maybe(o.Object),output:o.maybe(o.Buffer),data:o.maybe(o.arrayOf(o.Buffer))},e);const r={name:"embed",network:e.network||n.bitcoin};if(f.prop(r,"output",()=>{if(e.data)return i.compile([a.OP_RETURN].concat(e.data))}),f.prop(r,"data",()=>{if(e.output)return i.decompile(e.output).slice(1)}),t.validate&&e.output){const t=i.decompile(e.output);if(t[0]!==a.OP_RETURN)throw new TypeError("Output is invalid");if(!t.slice(1).every(o.Buffer))throw new TypeError("Output is invalid");if(e.data&&!function(e,t){return e.length===t.length&&e.every((e,r)=>e.equals(t[r]))}(e.data,r.data))throw new TypeError("Data mismatch")}return Object.assign(r,e)}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e,t,r){t=t||4,r=void 0===r||r;const n=e.length;if(0===n)return 0;if(n>t)throw new TypeError("Script number overflow");if(r&&0==(127&e[n-1])&&(n<=1||0==(128&e[n-2])))throw new Error("Non-minimally encoded script number");if(5===n){const t=e.readUInt32LE(0),r=e.readUInt8(4);return 128&r?-(4294967296*(-129&r)+t):4294967296*r+t}let i=0;for(let t=0;t2147483647?5:i>8388607?4:i>32767?3:i>127?2:i>0?1:0;var i;const f=e.allocUnsafe(n),o=t<0;for(let e=0;e>=8;return 128&f[n-1]?f.writeUInt8(o?128:0,n-1):o&&(f[n-1]|=128),f}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(34),i=r(70),f=r(13),o=e.alloc(1,0);function a(t){let r=0;for(;0===t[r];)++r;return r===t.length?o:128&(t=t.slice(r))[0]?e.concat([o,t],1+t.length):t}function c(t){0===t[0]&&(t=t.slice(1));const r=e.alloc(32,0),n=Math.max(0,32-t.length);return t.copy(r,n),r}t.decode=function(t){const r=t.readUInt8(t.length-1),n=-129&r;if(n<=0||n>=4)throw new Error("Invalid hashType "+r);const f=i.decode(t.slice(0,-1)),o=c(f.r),a=c(f.s);return{signature:e.concat([o,a],64),hashType:r}},t.encode=function(t,r){f({signature:n.BufferN(64),hashType:n.UInt8},{signature:t,hashType:r});const o=-129&r;if(o<=0||o>=4)throw new Error("Invalid hashType "+r);const c=e.allocUnsafe(1);c.writeUInt8(r,0);const s=a(t.slice(0,32)),u=a(t.slice(32,64));return e.concat([i.encode(s,u),c])}}).call(this,r(0).Buffer)},function(e,t,r){var n=r(180);function i(e){return ee.length)return null;r=e.readUInt8(t+1),i=2}else if(f===n.OP_PUSHDATA2){if(t+3>e.length)return null;r=e.readUInt16LE(t+1),i=3}else{if(t+5>e.length)return null;if(f!==n.OP_PUSHDATA4)throw new Error("Unexpected opcode");r=e.readUInt32LE(t+1),i=5}return{opcode:f,number:r,size:i}}}},function(e,t,r){var n=r(180),i={};for(var f in n){i[n[f]]=f}e.exports=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=r(3),f=r(54),o=i.OPS,a=r(13),c=r(53),s=o.OP_RESERVED;function u(e,t){return e.length===t.length&&e.every((e,r)=>e.equals(t[r]))}t.p2ms=function(e,t){if(!(e.input||e.output||e.pubkeys&&void 0!==e.m||e.signatures))throw new TypeError("Not enough data");function r(e){return i.isCanonicalScriptSignature(e)||void 0!==(t.allowIncomplete&&e===o.OP_0)}t=Object.assign({validate:!0},t||{}),a({network:a.maybe(a.Object),m:a.maybe(a.Number),n:a.maybe(a.Number),output:a.maybe(a.Buffer),pubkeys:a.maybe(a.arrayOf(c.isPoint)),signatures:a.maybe(a.arrayOf(r)),input:a.maybe(a.Buffer)},e);const d={network:e.network||n.bitcoin};let h=[],p=!1;function l(e){p||(p=!0,h=i.decompile(e),d.m=h[0]-s,d.n=h[h.length-2]-s,d.pubkeys=h.slice(1,-2))}if(f.prop(d,"output",()=>{if(e.m&&d.n&&e.pubkeys)return i.compile([].concat(s+e.m,e.pubkeys,s+d.n,o.OP_CHECKMULTISIG))}),f.prop(d,"m",()=>{if(d.output)return l(d.output),d.m}),f.prop(d,"n",()=>{if(d.pubkeys)return d.pubkeys.length}),f.prop(d,"pubkeys",()=>{if(e.output)return l(e.output),d.pubkeys}),f.prop(d,"signatures",()=>{if(e.input)return i.decompile(e.input).slice(1)}),f.prop(d,"input",()=>{if(e.signatures)return i.compile([o.OP_0].concat(e.signatures))}),f.prop(d,"witness",()=>{if(d.input)return[]}),f.prop(d,"name",()=>{if(d.m&&d.n)return`p2ms(${d.m} of ${d.n})`}),t.validate){if(e.output){if(l(e.output),!a.Number(h[0]))throw new TypeError("Output is invalid");if(!a.Number(h[h.length-2]))throw new TypeError("Output is invalid");if(h[h.length-1]!==o.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(d.m<=0||d.n>16||d.m>d.n||d.n!==h.length-3)throw new TypeError("Output is invalid");if(!d.pubkeys.every(e=>c.isPoint(e)))throw new TypeError("Output is invalid");if(void 0!==e.m&&e.m!==d.m)throw new TypeError("m mismatch");if(void 0!==e.n&&e.n!==d.n)throw new TypeError("n mismatch");if(e.pubkeys&&!u(e.pubkeys,d.pubkeys))throw new TypeError("Pubkeys mismatch")}if(e.pubkeys){if(void 0!==e.n&&e.n!==e.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(d.n=e.pubkeys.length,d.nd.m)throw new TypeError("Too many signatures provided")}if(e.input){if(e.input[0]!==o.OP_0)throw new TypeError("Input is invalid");if(0===d.signatures.length||!d.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(e.signatures&&!u(e.signatures,d.signatures))throw new TypeError("Signature mismatch");if(void 0!==e.m&&e.m!==e.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(d,e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=r(3),f=r(54),o=r(13),a=i.OPS,c=r(53);t.p2pk=function(e,t){if(!(e.input||e.output||e.pubkey||e.input||e.signature))throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),o({network:o.maybe(o.Object),output:o.maybe(o.Buffer),pubkey:o.maybe(c.isPoint),signature:o.maybe(i.isCanonicalScriptSignature),input:o.maybe(o.Buffer)},e);const r=f.value(()=>i.decompile(e.input)),s={name:"p2pk",network:e.network||n.bitcoin};if(f.prop(s,"output",()=>{if(e.pubkey)return i.compile([e.pubkey,a.OP_CHECKSIG])}),f.prop(s,"pubkey",()=>{if(e.output)return e.output.slice(1,-1)}),f.prop(s,"signature",()=>{if(e.input)return r()[0]}),f.prop(s,"input",()=>{if(e.signature)return i.compile([e.signature])}),f.prop(s,"witness",()=>{if(s.input)return[]}),t.validate){if(e.output){if(e.output[e.output.length-1]!==a.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!c.isPoint(s.pubkey))throw new TypeError("Output pubkey is invalid");if(e.pubkey&&!e.pubkey.equals(s.pubkey))throw new TypeError("Pubkey mismatch")}if(e.signature&&e.input&&!e.input.equals(s.input))throw new TypeError("Signature mismatch");if(e.input){if(1!==r().length)throw new TypeError("Input is invalid");if(!i.isCanonicalScriptSignature(s.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(s,e)}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(35),i=r(24),f=r(3),o=r(54),a=r(13),c=f.OPS,s=r(53),u=r(181);t.p2pkh=function(t,r){if(!(t.address||t.hash||t.output||t.pubkey||t.input))throw new TypeError("Not enough data");r=Object.assign({validate:!0},r||{}),a({network:a.maybe(a.Object),address:a.maybe(a.String),hash:a.maybe(a.BufferN(20)),output:a.maybe(a.BufferN(25)),pubkey:a.maybe(s.isPoint),signature:a.maybe(f.isCanonicalScriptSignature),input:a.maybe(a.Buffer)},t);const d=o.value(()=>{const e=u.decode(t.address);return{version:e.readUInt8(0),hash:e.slice(1)}}),h=o.value(()=>f.decompile(t.input)),p=t.network||i.bitcoin,l={name:"p2pkh",network:p};if(o.prop(l,"address",()=>{if(!l.hash)return;const t=e.allocUnsafe(21);return t.writeUInt8(p.pubKeyHash,0),l.hash.copy(t,1),u.encode(t)}),o.prop(l,"hash",()=>t.output?t.output.slice(3,23):t.address?d().hash:t.pubkey||l.pubkey?n.hash160(t.pubkey||l.pubkey):void 0),o.prop(l,"output",()=>{if(l.hash)return f.compile([c.OP_DUP,c.OP_HASH160,l.hash,c.OP_EQUALVERIFY,c.OP_CHECKSIG])}),o.prop(l,"pubkey",()=>{if(t.input)return h()[1]}),o.prop(l,"signature",()=>{if(t.input)return h()[0]}),o.prop(l,"input",()=>{if(t.pubkey&&t.signature)return f.compile([t.signature,t.pubkey])}),o.prop(l,"witness",()=>{if(l.input)return[]}),r.validate){let r=e.from([]);if(t.address){if(d().version!==p.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(20!==d().hash.length)throw new TypeError("Invalid address");r=d().hash}if(t.hash){if(r.length>0&&!r.equals(t.hash))throw new TypeError("Hash mismatch");r=t.hash}if(t.output){if(25!==t.output.length||t.output[0]!==c.OP_DUP||t.output[1]!==c.OP_HASH160||20!==t.output[2]||t.output[23]!==c.OP_EQUALVERIFY||t.output[24]!==c.OP_CHECKSIG)throw new TypeError("Output is invalid");const e=t.output.slice(3,23);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.pubkey){const e=n.hash160(t.pubkey);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.input){const e=h();if(2!==e.length)throw new TypeError("Input is invalid");if(!f.isCanonicalScriptSignature(e[0]))throw new TypeError("Input has invalid signature");if(!s.isPoint(e[1]))throw new TypeError("Input has invalid pubkey");if(t.signature&&!t.signature.equals(e[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(e[1]))throw new TypeError("Pubkey mismatch");const i=n.hash160(e[1]);if(r.length>0&&!r.equals(i))throw new TypeError("Hash mismatch")}}return Object.assign(l,t)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n=r(88),i=r(334).Buffer;e.exports=function(e){function t(t){var r=t.slice(0,-4),n=t.slice(-4),i=e(r);if(!(n[0]^i[0]|n[1]^i[1]|n[2]^i[2]|n[3]^i[3]))return r}return{encode:function(t){var r=e(t);return n.encode(i.concat([t,r],t.length+4))},decode:function(e){var r=t(n.decode(e));if(!r)throw new Error("Invalid checksum");return r},decodeUnsafe:function(e){var r=n.decodeUnsafe(e);if(r)return t(r)}}}},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(35),i=r(24),f=r(3),o=r(54),a=r(13),c=f.OPS,s=r(181);t.p2sh=function(t,r){if(!(t.address||t.hash||t.output||t.redeem||t.input))throw new TypeError("Not enough data");r=Object.assign({validate:!0},r||{}),a({network:a.maybe(a.Object),address:a.maybe(a.String),hash:a.maybe(a.BufferN(20)),output:a.maybe(a.BufferN(23)),redeem:a.maybe({network:a.maybe(a.Object),output:a.maybe(a.Buffer),input:a.maybe(a.Buffer),witness:a.maybe(a.arrayOf(a.Buffer))}),input:a.maybe(a.Buffer),witness:a.maybe(a.arrayOf(a.Buffer))},t);let u=t.network;u||(u=t.redeem&&t.redeem.network||i.bitcoin);const d={network:u},h=o.value(()=>{const e=s.decode(t.address);return{version:e.readUInt8(0),hash:e.slice(1)}}),p=o.value(()=>f.decompile(t.input)),l=o.value(()=>{const e=p();return{network:u,output:e[e.length-1],input:f.compile(e.slice(0,-1)),witness:t.witness||[]}});if(o.prop(d,"address",()=>{if(!d.hash)return;const t=e.allocUnsafe(21);return t.writeUInt8(d.network.scriptHash,0),d.hash.copy(t,1),s.encode(t)}),o.prop(d,"hash",()=>t.output?t.output.slice(2,22):t.address?h().hash:d.redeem&&d.redeem.output?n.hash160(d.redeem.output):void 0),o.prop(d,"output",()=>{if(d.hash)return f.compile([c.OP_HASH160,d.hash,c.OP_EQUAL])}),o.prop(d,"redeem",()=>{if(t.input)return l()}),o.prop(d,"input",()=>{if(t.redeem&&t.redeem.input&&t.redeem.output)return f.compile([].concat(f.decompile(t.redeem.input),t.redeem.output))}),o.prop(d,"witness",()=>d.redeem&&d.redeem.witness?d.redeem.witness:d.input?[]:void 0),o.prop(d,"name",()=>{const e=["p2sh"];return void 0!==d.redeem&&e.push(d.redeem.name),e.join("-")}),r.validate){let r=e.from([]);if(t.address){if(h().version!==u.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(20!==h().hash.length)throw new TypeError("Invalid address");r=h().hash}if(t.hash){if(r.length>0&&!r.equals(t.hash))throw new TypeError("Hash mismatch");r=t.hash}if(t.output){if(23!==t.output.length||t.output[0]!==c.OP_HASH160||20!==t.output[1]||t.output[22]!==c.OP_EQUAL)throw new TypeError("Output is invalid");const e=t.output.slice(2,22);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}const i=e=>{if(e.output){const t=f.decompile(e.output);if(!t||t.length<1)throw new TypeError("Redeem.output too short");const i=n.hash160(e.output);if(r.length>0&&!r.equals(i))throw new TypeError("Hash mismatch");r=i}if(e.input){const t=e.input.length>0,r=e.witness&&e.witness.length>0;if(!t&&!r)throw new TypeError("Empty input");if(t&&r)throw new TypeError("Input and witness provided");if(t){const t=f.decompile(e.input);if(!f.isPushOnly(t))throw new TypeError("Non push-only scriptSig")}}};if(t.input){const t=p();if(!t||t.length<1)throw new TypeError("Input too short");if(!e.isBuffer(l().output))throw new TypeError("Input is invalid");i(l())}if(t.redeem){if(t.redeem.network&&t.redeem.network!==u)throw new TypeError("Network mismatch");if(t.input){const e=l();if(t.redeem.output&&!t.redeem.output.equals(e.output))throw new TypeError("Redeem.output mismatch");if(t.redeem.input&&!t.redeem.input.equals(e.input))throw new TypeError("Redeem.input mismatch")}i(t.redeem)}if(t.witness&&t.redeem&&t.redeem.witness&&!function(e,t){return e.length===t.length&&e.every((e,r)=>e.equals(t[r]))}(t.redeem.witness,t.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(d,t)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(35),i=r(24),f=r(3),o=r(54),a=r(13),c=f.OPS,s=r(53),u=r(124),d=e.alloc(0);t.p2wpkh=function(t,r){if(!(t.address||t.hash||t.output||t.pubkey||t.witness))throw new TypeError("Not enough data");r=Object.assign({validate:!0},r||{}),a({address:a.maybe(a.String),hash:a.maybe(a.BufferN(20)),input:a.maybe(a.BufferN(0)),network:a.maybe(a.Object),output:a.maybe(a.BufferN(22)),pubkey:a.maybe(s.isPoint),signature:a.maybe(f.isCanonicalScriptSignature),witness:a.maybe(a.arrayOf(a.Buffer))},t);const h=o.value(()=>{const r=u.decode(t.address),n=r.words.shift(),i=u.fromWords(r.words);return{version:n,prefix:r.prefix,data:e.from(i)}}),p=t.network||i.bitcoin,l={name:"p2wpkh",network:p};if(o.prop(l,"address",()=>{if(!l.hash)return;const e=u.toWords(l.hash);return e.unshift(0),u.encode(p.bech32,e)}),o.prop(l,"hash",()=>t.output?t.output.slice(2,22):t.address?h().data:t.pubkey||l.pubkey?n.hash160(t.pubkey||l.pubkey):void 0),o.prop(l,"output",()=>{if(l.hash)return f.compile([c.OP_0,l.hash])}),o.prop(l,"pubkey",()=>t.pubkey?t.pubkey:t.witness?t.witness[1]:void 0),o.prop(l,"signature",()=>{if(t.witness)return t.witness[0]}),o.prop(l,"input",()=>{if(l.witness)return d}),o.prop(l,"witness",()=>{if(t.pubkey&&t.signature)return[t.signature,t.pubkey]}),r.validate){let r=e.from([]);if(t.address){if(p&&p.bech32!==h().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(0!==h().version)throw new TypeError("Invalid address version");if(20!==h().data.length)throw new TypeError("Invalid address data");r=h().data}if(t.hash){if(r.length>0&&!r.equals(t.hash))throw new TypeError("Hash mismatch");r=t.hash}if(t.output){if(22!==t.output.length||t.output[0]!==c.OP_0||20!==t.output[1])throw new TypeError("Output is invalid");if(r.length>0&&!r.equals(t.output.slice(2)))throw new TypeError("Hash mismatch");r=t.output.slice(2)}if(t.pubkey){const e=n.hash160(t.pubkey);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.witness){if(2!==t.witness.length)throw new TypeError("Witness is invalid");if(!f.isCanonicalScriptSignature(t.witness[0]))throw new TypeError("Witness has invalid signature");if(!s.isPoint(t.witness[1]))throw new TypeError("Witness has invalid pubkey");if(t.signature&&!t.signature.equals(t.witness[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(t.witness[1]))throw new TypeError("Pubkey mismatch");const e=n.hash160(t.witness[1]);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch")}}return Object.assign(l,t)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(35),i=r(24),f=r(3),o=r(54),a=r(13),c=f.OPS,s=r(124),u=e.alloc(0);t.p2wsh=function(t,r){if(!(t.address||t.hash||t.output||t.redeem||t.witness))throw new TypeError("Not enough data");r=Object.assign({validate:!0},r||{}),a({network:a.maybe(a.Object),address:a.maybe(a.String),hash:a.maybe(a.BufferN(32)),output:a.maybe(a.BufferN(34)),redeem:a.maybe({input:a.maybe(a.Buffer),network:a.maybe(a.Object),output:a.maybe(a.Buffer),witness:a.maybe(a.arrayOf(a.Buffer))}),input:a.maybe(a.BufferN(0)),witness:a.maybe(a.arrayOf(a.Buffer))},t);const d=o.value(()=>{const r=s.decode(t.address),n=r.words.shift(),i=s.fromWords(r.words);return{version:n,prefix:r.prefix,data:e.from(i)}}),h=o.value(()=>f.decompile(t.redeem.input));let p=t.network;p||(p=t.redeem&&t.redeem.network||i.bitcoin);const l={network:p};if(o.prop(l,"address",()=>{if(!l.hash)return;const e=s.toWords(l.hash);return e.unshift(0),s.encode(p.bech32,e)}),o.prop(l,"hash",()=>t.output?t.output.slice(2):t.address?d().data:l.redeem&&l.redeem.output?n.sha256(l.redeem.output):void 0),o.prop(l,"output",()=>{if(l.hash)return f.compile([c.OP_0,l.hash])}),o.prop(l,"redeem",()=>{if(t.witness)return{output:t.witness[t.witness.length-1],input:u,witness:t.witness.slice(0,-1)}}),o.prop(l,"input",()=>{if(l.witness)return u}),o.prop(l,"witness",()=>{if(t.redeem&&t.redeem.input&&t.redeem.input.length>0&&t.redeem.output&&t.redeem.output.length>0){const e=f.toStack(h());return l.redeem=Object.assign({witness:e},t.redeem),l.redeem.input=u,[].concat(e,t.redeem.output)}if(t.redeem&&t.redeem.output&&t.redeem.witness)return[].concat(t.redeem.witness,t.redeem.output)}),o.prop(l,"name",()=>{const e=["p2wsh"];return void 0!==l.redeem&&e.push(l.redeem.name),e.join("-")}),r.validate){let r=e.from([]);if(t.address){if(d().prefix!==p.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(0!==d().version)throw new TypeError("Invalid address version");if(32!==d().data.length)throw new TypeError("Invalid address data");r=d().data}if(t.hash){if(r.length>0&&!r.equals(t.hash))throw new TypeError("Hash mismatch");r=t.hash}if(t.output){if(34!==t.output.length||t.output[0]!==c.OP_0||32!==t.output[1])throw new TypeError("Output is invalid");const e=t.output.slice(2);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.redeem){if(t.redeem.network&&t.redeem.network!==p)throw new TypeError("Network mismatch");if(t.redeem.input&&t.redeem.input.length>0&&t.redeem.witness&&t.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(t.redeem.output){if(0===f.decompile(t.redeem.output).length)throw new TypeError("Redeem.output is invalid");const e=n.sha256(t.redeem.output);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.redeem.input&&!f.isPushOnly(h()))throw new TypeError("Non push-only scriptSig");if(t.witness&&t.redeem.witness&&!function(e,t){return e.length===t.length&&e.every((e,r)=>e.equals(t[r]))}(t.witness,t.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch")}if(t.witness&&t.redeem&&t.redeem.output&&!t.redeem.output.equals(t.witness[t.witness.length-1]))throw new TypeError("Witness and redeem.output mismatch")}return Object.assign(l,t)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(85),i=r(35),f=r(123),o=r(34),a=r(340),c=r(13),s=r(286),u=new TypeError("Cannot compute merkle root for zero transactions"),d=new TypeError("Cannot compute witness commit for non-segwit block");class h{constructor(){this.version=1,this.prevHash=void 0,this.merkleRoot=void 0,this.timestamp=0,this.witnessCommit=void 0,this.bits=0,this.nonce=0,this.transactions=void 0}static fromBuffer(e){if(e.length<80)throw new Error("Buffer too small (< 80 bytes)");let t=0;const r=r=>(t+=r,e.slice(t-r,t)),n=()=>{const r=e.readUInt32LE(t);return t+=4,r},i=new h;if(i.version=(()=>{const r=e.readInt32LE(t);return t+=4,r})(),i.prevHash=r(32),i.merkleRoot=r(32),i.timestamp=n(),i.bits=n(),i.nonce=n(),80===e.length)return i;const o=()=>{const r=f.Transaction.fromBuffer(e.slice(t),!0);return t+=r.byteLength(),r},a=(()=>{const r=s.decode(e,t);return t+=s.decode.bytes,r})();i.transactions=[];for(let e=0;e>24)-3,n=8388607&t,i=e.alloc(32,0);return i.writeUIntBE(n,29-r,3),i}static calculateMerkleRoot(t,r){if(c([{getHash:o.Function}],t),0===t.length)throw u;if(r&&!p(t))throw d;const n=t.map(e=>e.getHash(r)),f=a(n,i.hash256);return r?i.hash256(e.concat([f,t[0].ins[0].witness[0]])):f}getWitnessCommit(){if(!p(this.transactions))return null;const t=this.transactions[0].outs.filter(t=>t.script.slice(0,6).equals(e.from("6a24aa21a9ed","hex"))).map(e=>e.script.slice(6,38));if(0===t.length)return null;const r=t[t.length-1];return r instanceof e&&32===r.length?r:null}hasWitnessCommit(){return this.witnessCommit instanceof e&&32===this.witnessCommit.length||null!==this.getWitnessCommit()}hasWitness(){return(e=this.transactions)instanceof Array&&e.some(e=>"object"==typeof e&&e.ins instanceof Array&&e.ins.some(e=>"object"==typeof e&&e.witness instanceof Array&&e.witness.length>0));var e}byteLength(e){return e||!this.transactions?80:80+s.encodingLength(this.transactions.length)+this.transactions.reduce((e,t)=>e+t.byteLength(),0)}getHash(){return i.hash256(this.toBuffer(!0))}getId(){return n.reverseBuffer(this.getHash()).toString("hex")}getUTCDate(){const e=new Date(0);return e.setUTCSeconds(this.timestamp),e}toBuffer(t){const r=e.allocUnsafe(this.byteLength(t));let n=0;const i=e=>{e.copy(r,n),n+=e.length},f=e=>{r.writeUInt32LE(e,n),n+=4};var o;return o=this.version,r.writeInt32LE(o,n),n+=4,i(this.prevHash),i(this.merkleRoot),f(this.timestamp),f(this.bits),f(this.nonce),t||!this.transactions||(s.encode(this.transactions.length,r,n),n+=s.encode.bytes,this.transactions.forEach(e=>{const t=e.byteLength();e.toBuffer(r,n),n+=t})),r}toHex(e){return this.toBuffer(e).toString("hex")}checkTxRoots(){const e=this.hasWitnessCommit();return!(!e&&this.hasWitness())&&(this.__checkMerkleRoot()&&(!e||this.__checkWitnessCommit()))}checkProofOfWork(){const e=n.reverseBuffer(this.getHash()),t=h.calculateTarget(this.bits);return e.compare(t)<=0}__checkMerkleRoot(){if(!this.transactions)throw u;const e=h.calculateMerkleRoot(this.transactions);return 0===this.merkleRoot.compare(e)}__checkWitnessCommit(){if(!this.transactions)throw u;if(!this.hasWitnessCommit())throw d;const e=h.calculateMerkleRoot(this.transactions,!0);return 0===this.witnessCommit.compare(e)}}function p(e){return e instanceof Array&&e[0]&&e[0].ins&&e[0].ins instanceof Array&&e[0].ins[0]&&e[0].ins[0].witness&&e[0].ins[0].witness instanceof Array&&e[0].ins[0].witness.length>0}t.Block=h}).call(this,r(0).Buffer)},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){(function(t){e.exports=function(e,r){if(!Array.isArray(e))throw TypeError("Expected values Array");if("function"!=typeof r)throw TypeError("Expected digest Function");for(var n=e.length,i=e.concat();n>1;){for(var f=0,o=0;oObject.defineProperty(e,t,{enumerable:r,writable:n});r(this,"__CACHE",!1,!0),r(this,"opts",!1,!0)}static fromBase64(t,r={}){const n=e.from(t,"base64");return this.fromBuffer(n,r)}static fromHex(t,r={}){const n=e.from(t,"hex");return this.fromBuffer(n,r)}static fromBuffer(e,t={}){const r=n.Psbt.fromBuffer(e,y),i=new b(t,r);var f,o;return f=i.__CACHE.__TX,o=i.__CACHE,f.ins.forEach(e=>{x(o,e)}),i}get inputCount(){return this.data.inputs.length}combine(...e){return this.data.combine(...e.map(e=>e.data)),this}clone(){const e=b.fromBuffer(this.data.toBuffer());return e.opts=JSON.parse(JSON.stringify(this.opts)),e}setMaximumFeeRate(e){k(e),this.opts.maximumFeeRate=e}setVersion(e){k(e),T(this.data.inputs,"setVersion");const t=this.__CACHE;return t.__TX.version=e,t.__EXTRACTED_TX=void 0,this}setLocktime(e){k(e),T(this.data.inputs,"setLocktime");const t=this.__CACHE;return t.__TX.locktime=e,t.__EXTRACTED_TX=void 0,this}setInputSequence(e,t){k(t),T(this.data.inputs,"setInputSequence");const r=this.__CACHE;if(r.__TX.ins.length<=e)throw new Error("Input index too high");return r.__TX.ins[e].sequence=t,r.__EXTRACTED_TX=void 0,this}addInputs(e){return e.forEach(e=>this.addInput(e)),this}addInput(e){T(this.data.inputs,"addInput");const t=this.__CACHE;this.data.addInput(e),x(t,t.__TX.ins[t.__TX.ins.length-1]);const r=this.data.inputs.length-1,n=this.data.inputs[r];return n.nonWitnessUtxo&&j(this.__CACHE,n,r),t.__FEE=void 0,t.__FEE_RATE=void 0,t.__EXTRACTED_TX=void 0,this}addOutputs(e){return e.forEach(e=>this.addOutput(e)),this}addOutput(e){T(this.data.inputs,"addOutput");const{address:t}=e;if("string"==typeof t){const{network:r}=this.opts,n=o.toOutputScript(t,r);e=Object.assign(e,{script:n})}const r=this.__CACHE;return this.data.addOutput(e),r.__FEE=void 0,r.__FEE_RATE=void 0,r.__EXTRACTED_TX=void 0,this}extractTransaction(e){if(!this.data.inputs.every(g))throw new Error("Not finalized");const t=this.__CACHE;if(e||function(e,t,r){const n=t.__FEE_RATE||e.getFeeRate(),i=t.__EXTRACTED_TX.virtualSize(),f=n*i;if(n>=r.maximumFeeRate)throw new Error(`Warning: You are paying around ${(f/1e8).toFixed(8)} in `+`fees, which is ${n} satoshi per byte for a transaction `+`with a VSize of ${i} bytes (segwit counted as 0.25 byte per `+"byte). Use setMaximumFeeRate method to raise your threshold, or pass true to the first arg of extractTransaction.")}(this,t,this.opts),t.__EXTRACTED_TX)return t.__EXTRACTED_TX;const r=t.__TX.clone();return q(this.data.inputs,r,t,!0),r}getFeeRate(){return N("__FEE_RATE","fee rate",this.data.inputs,this.__CACHE)}getFee(){return N("__FEE","fee",this.data.inputs,this.__CACHE)}finalizeAllInputs(){return f.checkForInput(this.data.inputs,0),H(this.data.inputs.length).forEach(e=>this.finalizeInput(e)),this}finalizeInput(e){const t=f.checkForInput(this.data.inputs,e),{script:r,isP2SH:n,isP2WSH:i,isSegwit:o}=function(e,t,r){const n=r.__TX,i={script:null,isSegwit:!1,isP2SH:!1,isP2WSH:!1};if(i.isP2SH=!!t.redeemScript,i.isP2WSH=!!t.witnessScript,t.witnessScript)i.script=t.witnessScript;else if(t.redeemScript)i.script=t.redeemScript;else if(t.nonWitnessUtxo){const f=K(r,t,e),o=n.ins[e].index;i.script=f.outs[o].script}else t.witnessUtxo&&(i.script=t.witnessUtxo.script);(t.witnessScript||A(i.script))&&(i.isSegwit=!0);return i}(e,t,this.__CACHE);if(!r)throw new Error(`No script found for input #${e}`);const a=function(e){return A(e)?"witnesspubkeyhash":E(e)?"pubkeyhash":_(e)?"multisig":S(e)?"pubkey":"nonstandard"}(r);if(!function(e,t,r){switch(r){case"pubkey":case"pubkeyhash":case"witnesspubkeyhash":return v(1,e.partialSig);case"multisig":return v(d.p2ms({output:t}).m,e.partialSig);default:return!1}}(t,r,a))throw new Error(`Can not finalize input #${e}`);!function(e){if(!e.sighashType||!e.partialSig)return;const{partialSig:t,sighashType:r}=e;t.forEach(e=>{const{hashType:t}=h.signature.decode(e.signature);if(r!==t)throw new Error("Signature sighash does not match input sighash type")})}(t);const{finalScriptSig:c,finalScriptWitness:s}=function(e,t,r,n,i,f){let o,a;const c=function(e,t,r){let n;switch(t){case"multisig":const t=function(e,t){return d.p2ms({output:e}).pubkeys.map(e=>(t.filter(t=>t.pubkey.equals(e))[0]||{}).signature).filter(e=>!!e)}(e,r);n=d.p2ms({output:e,signatures:t});break;case"pubkey":n=d.p2pk({output:e,signature:r[0].signature});break;case"pubkeyhash":n=d.p2pkh({output:e,pubkey:r[0].pubkey,signature:r[0].signature});break;case"witnesspubkeyhash":n=d.p2wpkh({output:e,pubkey:r[0].pubkey,signature:r[0].signature})}return n}(e,t,r),s=f?d.p2wsh({redeem:c}):null,u=i?d.p2sh({redeem:s||c}):null;n?(a=D(s?s.witness:c.witness),u&&(o=u.input)):o=u?u.input:c.input;return{finalScriptSig:o,finalScriptWitness:a}}(r,a,t.partialSig,o,n,i);if(c&&this.data.updateInput(e,{finalScriptSig:c}),s&&this.data.updateInput(e,{finalScriptWitness:s}),!c&&!s)throw new Error(`Unknown error finalizing input #${e}`);return this.data.clearFinalizedInput(e),this}validateSignaturesOfAllInputs(){return f.checkForInput(this.data.inputs,0),H(this.data.inputs.length).map(e=>this.validateSignaturesOfInput(e)).reduce((e,t)=>!0===t&&e,!0)}validateSignaturesOfInput(e,t){const r=this.data.inputs[e],n=(r||{}).partialSig;if(!r||!n||n.length<1)throw new Error("No signatures to validate");const i=t?n.filter(e=>e.pubkey.equals(t)):n;if(i.length<1)throw new Error("No signatures for this pubkey");const f=[];let o,a,c;for(const t of i){const n=h.signature.decode(t.signature),{hash:i,script:u}=c!==n.hashType?C(e,Object.assign({},r,{sighashType:n.hashType}),this.__CACHE):{hash:o,script:a};c=n.hashType,o=i,a=u,P(t.pubkey,u,"verify");const d=s.fromPublicKey(t.pubkey);f.push(d.verify(i,n.signature))}return f.every(e=>!0===e)}signAllInputsHD(e,t=[p.Transaction.SIGHASH_ALL]){if(!e||!e.publicKey||!e.fingerprint)throw new Error("Need HDSigner to sign input");const r=[];for(const n of H(this.data.inputs.length))try{this.signInputHD(n,e,t),r.push(!0)}catch(e){r.push(!1)}if(r.every(e=>!1===e))throw new Error("No inputs were signed");return this}signAllInputsHDAsync(e,t=[p.Transaction.SIGHASH_ALL]){return new Promise((r,n)=>{if(!e||!e.publicKey||!e.fingerprint)return n(new Error("Need HDSigner to sign input"));const i=[],f=[];for(const r of H(this.data.inputs.length))f.push(this.signInputHDAsync(r,e,t).then(()=>{i.push(!0)},()=>{i.push(!1)}));return Promise.all(f).then(()=>{if(i.every(e=>!1===e))return n(new Error("No inputs were signed"));r()})})}signInputHD(e,t,r=[p.Transaction.SIGHASH_ALL]){if(!t||!t.publicKey||!t.fingerprint)throw new Error("Need HDSigner to sign input");return U(e,this.data.inputs,t).forEach(t=>this.signInput(e,t,r)),this}signInputHDAsync(e,t,r=[p.Transaction.SIGHASH_ALL]){return new Promise((n,i)=>{if(!t||!t.publicKey||!t.fingerprint)return i(new Error("Need HDSigner to sign input"));const f=U(e,this.data.inputs,t).map(t=>this.signInputAsync(e,t,r));return Promise.all(f).then(()=>{n()}).catch(i)})}signAllInputs(e,t=[p.Transaction.SIGHASH_ALL]){if(!e||!e.publicKey)throw new Error("Need Signer to sign input");const r=[];for(const n of H(this.data.inputs.length))try{this.signInput(n,e,t),r.push(!0)}catch(e){r.push(!1)}if(r.every(e=>!1===e))throw new Error("No inputs were signed");return this}signAllInputsAsync(e,t=[p.Transaction.SIGHASH_ALL]){return new Promise((r,n)=>{if(!e||!e.publicKey)return n(new Error("Need Signer to sign input"));const i=[],f=[];for(const[r]of this.data.inputs.entries())f.push(this.signInputAsync(r,e,t).then(()=>{i.push(!0)},()=>{i.push(!1)}));return Promise.all(f).then(()=>{if(i.every(e=>!1===e))return n(new Error("No inputs were signed"));r()})})}signInput(e,t,r=[p.Transaction.SIGHASH_ALL]){if(!t||!t.publicKey)throw new Error("Need Signer to sign input");const{hash:n,sighashType:i}=R(this.data.inputs,e,t.publicKey,this.__CACHE,r),f=[{pubkey:t.publicKey,signature:h.signature.encode(t.sign(n),i)}];return this.data.updateInput(e,{partialSig:f}),this}signInputAsync(e,t,r=[p.Transaction.SIGHASH_ALL]){return new Promise((n,i)=>{if(!t||!t.publicKey)return i(new Error("Need Signer to sign input"));const{hash:f,sighashType:o}=R(this.data.inputs,e,t.publicKey,this.__CACHE,r);Promise.resolve(t.sign(f)).then(r=>{const i=[{pubkey:t.publicKey,signature:h.signature.encode(r,o)}];this.data.updateInput(e,{partialSig:i}),n()})})}toBuffer(){return this.data.toBuffer()}toHex(){return this.data.toHex()}toBase64(){return this.data.toBase64()}updateGlobal(e){return this.data.updateGlobal(e),this}updateInput(e,t){return this.data.updateInput(e,t),t.nonWitnessUtxo&&j(this.__CACHE,this.data.inputs[e],e),this}updateOutput(e,t){return this.data.updateOutput(e,t),this}addUnknownKeyValToGlobal(e){return this.data.addUnknownKeyValToGlobal(e),this}addUnknownKeyValToInput(e,t){return this.data.addUnknownKeyValToInput(e,t),this}addUnknownKeyValToOutput(e,t){return this.data.addUnknownKeyValToOutput(e,t),this}clearFinalizedInput(e){return this.data.clearFinalizedInput(e),this}}t.Psbt=b;const y=e=>new m(e);class m{constructor(t=e.from([2,0,0,0,0,0,0,0,0,0])){this.tx=p.Transaction.fromBuffer(t),function(e){if(!e.ins.every(e=>e.script&&0===e.script.length&&e.witness&&0===e.witness.length))throw new Error("Format Error: Transaction ScriptSigs are not empty")}(this.tx),Object.defineProperty(this,"tx",{enumerable:!1,writable:!0})}getInputOutputCounts(){return{inputCount:this.tx.ins.length,outputCount:this.tx.outs.length}}addInput(t){if(void 0===t.hash||void 0===t.index||!e.isBuffer(t.hash)&&"string"!=typeof t.hash||"number"!=typeof t.index)throw new Error("Error adding input.");const r="string"==typeof t.hash?a.reverseBuffer(e.from(t.hash,"hex")):t.hash;this.tx.addInput(r,t.index,t.sequence)}addOutput(t){if(void 0===t.script||void 0===t.value||!e.isBuffer(t.script)||"number"!=typeof t.value)throw new Error("Error adding output.");this.tx.addOutput(t.script,t.value)}toBuffer(){return this.tx.toBuffer()}}function v(e,t){if(!t)return!1;if(t.length>e)throw new Error("Too many signatures");return t.length===e}function g(e){return!!e.finalScriptSig||!!e.finalScriptWitness}function w(e){return t=>{try{return e({output:t}),!0}catch(e){return!1}}}const _=w(d.p2ms),S=w(d.p2pk),E=w(d.p2pkh),A=w(d.p2wpkh),I=w(d.p2wsh);function k(e){if("number"!=typeof e||e!==Math.floor(e)||e>4294967295||e<0)throw new Error("Invalid 32 bit integer")}function T(t,r){t.forEach(t=>{let n=!1,i=[];if(0===(t.partialSig||[]).length){if(!t.finalScriptSig&&!t.finalScriptWitness)return;i=function(t){const r=t.finalScriptSig&&h.decompile(t.finalScriptSig)||[],n=t.finalScriptWitness&&h.decompile(t.finalScriptWitness)||[];return r.concat(n).filter(t=>e.isBuffer(t)&&h.isCanonicalScriptSignature(t)).map(e=>({signature:e}))}(t)}else i=t.partialSig;if(i.forEach(e=>{const{hashType:t}=h.signature.decode(e.signature),i=[];switch(t&p.Transaction.SIGHASH_ANYONECANPAY&&i.push("addInput"),31&t){case p.Transaction.SIGHASH_ALL:break;case p.Transaction.SIGHASH_SINGLE:case p.Transaction.SIGHASH_NONE:i.push("addOutput"),i.push("setInputSequence")}-1===i.indexOf(r)&&(n=!0)}),n)throw new Error("Can not modify transaction, signatures exist.")})}function P(e,t,r){const n=c.hash160(e),i=h.decompile(t);if(null===i)throw new Error("Unknown script error");if(!i.some(t=>"number"!=typeof t&&(t.equals(e)||t.equals(n))))throw new Error(`Can not ${r} for this input with the key ${e.toString("hex")}`)}function x(t,r){const n=a.reverseBuffer(e.from(r.hash)).toString("hex")+":"+r.index;if(t.__TX_IN_CACHE[n])throw new Error("Duplicate input detected.");t.__TX_IN_CACHE[n]=1}function M(e,t){return(r,n,i)=>{const f=e({redeem:{output:i}}).output;if(!n.equals(f))throw new Error(`${t} for input #${r} doesn't match the scriptPubKey in the prevout`)}}const O=M(d.p2sh,"Redeem script"),B=M(d.p2wsh,"Witness script");function N(e,t,r,n){if(!r.every(g))throw new Error(`PSBT must be finalized to calculate ${t}`);if("__FEE_RATE"===e&&n.__FEE_RATE)return n.__FEE_RATE;if("__FEE"===e&&n.__FEE)return n.__FEE;let i,f=!0;return n.__EXTRACTED_TX?(i=n.__EXTRACTED_TX,f=!1):i=n.__TX.clone(),q(r,i,n,f),"__FEE_RATE"===e?n.__FEE_RATE:"__FEE"===e?n.__FEE:void 0}function R(e,t,r,n,i){const o=f.checkForInput(e,t),{hash:a,sighashType:c,script:s}=C(t,o,n,i);return P(r,s,"sign"),{hash:a,sighashType:c}}function C(e,t,r,n){const i=r.__TX,f=t.sighashType||p.Transaction.SIGHASH_ALL;if(n&&n.indexOf(f)<0){const e=function(e){let t=e&p.Transaction.SIGHASH_ANYONECANPAY?"SIGHASH_ANYONECANPAY | ":"";switch(31&e){case p.Transaction.SIGHASH_ALL:t+="SIGHASH_ALL";break;case p.Transaction.SIGHASH_SINGLE:t+="SIGHASH_SINGLE";break;case p.Transaction.SIGHASH_NONE:t+="SIGHASH_NONE"}return t}(f);throw new Error("Sighash type is not allowed. Retry the sign method passing the "+`sighashTypes array of whitelisted types. Sighash type: ${e}`)}let o,a;if(t.nonWitnessUtxo){const n=K(r,t,e),c=i.ins[e].hash,s=n.getHash();if(!c.equals(s))throw new Error(`Non-witness UTXO hash for input #${e} doesn't match the hash specified in the prevout`);const u=i.ins[e].index,h=n.outs[u];if(t.redeemScript?(O(e,h.script,t.redeemScript),a=t.redeemScript):a=h.script,I(a)){if(!t.witnessScript)throw new Error("Segwit input needs witnessScript if not P2WPKH");B(e,a,t.witnessScript),o=i.hashForWitnessV0(e,t.witnessScript,h.value,f),a=t.witnessScript}else if(A(a)){const t=d.p2pkh({hash:a.slice(2)}).output;o=i.hashForWitnessV0(e,t,h.value,f)}else o=i.hashForSignature(e,a,f)}else{if(!t.witnessUtxo)throw new Error("Need a Utxo input item for signing");{let r;if(t.redeemScript?(O(e,t.witnessUtxo.script,t.redeemScript),r=t.redeemScript):r=t.witnessUtxo.script,A(r)){const n=d.p2pkh({hash:r.slice(2)}).output;o=i.hashForWitnessV0(e,n,t.witnessUtxo.value,f),a=r}else{if(!I(r))throw new Error(`Input #${e} has witnessUtxo but non-segwit script: `+`${r.toString("hex")}`);if(!t.witnessScript)throw new Error("Segwit input needs witnessScript if not P2WPKH");B(e,r,t.witnessScript),o=i.hashForWitnessV0(e,t.witnessScript,t.witnessUtxo.value,f),a=t.witnessScript}}}return{script:a,sighashType:f,hash:o}}function U(e,t,r){const n=f.checkForInput(t,e);if(!n.bip32Derivation||0===n.bip32Derivation.length)throw new Error("Need bip32Derivation to sign with HD");const i=n.bip32Derivation.map(e=>e.masterFingerprint.equals(r.fingerprint)?e:void 0).filter(e=>!!e);if(0===i.length)throw new Error("Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint");return i.map(e=>{const t=r.derivePath(e.path);if(!e.pubkey.equals(t.publicKey))throw new Error("pubkey did not match bip32Derivation");return t})}function L(e){let t=0;function r(){const r=i.decode(e,t);return t+=i.decode.bytes,r}function n(){return n=r(),t+=n,e.slice(t-n,t);var n}return function(){const e=r(),t=[];for(let r=0;r{if(n&&e.finalScriptSig&&(t.ins[f].script=e.finalScriptSig),n&&e.finalScriptWitness&&(t.ins[f].witness=L(e.finalScriptWitness)),e.witnessUtxo)i+=e.witnessUtxo.value;else if(e.nonWitnessUtxo){const n=K(r,e,f),o=t.ins[f].index,a=n.outs[o];i+=a.value}});const f=t.outs.reduce((e,t)=>e+t.value,0),o=i-f;if(o<0)throw new Error("Outputs are spending more than Inputs");const a=t.virtualSize();r.__FEE=o,r.__EXTRACTED_TX=t,r.__FEE_RATE=Math.floor(o/a)}function K(e,t,r){const n=e.__NON_WITNESS_UTXO_TX_CACHE;return n[r]||j(e,t,r),n[r]}function H(e){return[...Array(e).keys()]}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(287);function i(e,t,r){return n=>{if(e.has(n))return;const i=r.filter(e=>e.key.toString("hex")===n)[0];t.push(i),e.add(n)}}function f(e){return e.globalMap.unsignedTx}function o(e){const t=new Set;return e.forEach(e=>{const r=e.key.toString("hex");if(t.has(r))throw new Error("Combine: KeyValue Map keys should be unique");t.add(r)}),t}t.combine=function(e){const t=e[0],r=n.psbtToKeyVals(t),a=e.slice(1);if(0===a.length)throw new Error("Combine: Nothing to combine");const c=f(t);if(void 0===c)throw new Error("Combine: Self missing transaction");const s=o(r.globalKeyVals),u=r.inputKeyVals.map(o),d=r.outputKeyVals.map(o);for(const e of a){const t=f(e);if(void 0===t||!t.toBuffer().equals(c.toBuffer()))throw new Error("Combine: One of the Psbts does not have the same transaction.");const a=n.psbtToKeyVals(e);o(a.globalKeyVals).forEach(i(s,r.globalKeyVals,a.globalKeyVals)),a.inputKeyVals.map(o).forEach((e,t)=>e.forEach(i(u[t],r.inputKeyVals[t],a.inputKeyVals[t]))),a.outputKeyVals.map(o).forEach((e,t)=>e.forEach(i(d[t],r.outputKeyVals[t],a.outputKeyVals[t])))}return n.psbtFromKeyVals(c,{globalMapKeyVals:r.globalKeyVals,inputKeyVals:r.inputKeyVals,outputKeyVals:r.outputKeyVals})}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(183),i=r(184),f=r(92),o=r(25);function a(t,r,n){if(!r.equals(e.from([n])))throw new Error(`Format Error: Invalid ${t} key: ${r.toString("hex")}`)}function c(e,{globalMapKeyVals:t,inputKeyVals:r,outputKeyVals:f}){const c={unsignedTx:e};let s=0;for(const e of t)switch(e.key[0]){case o.GlobalTypes.UNSIGNED_TX:if(a("global",e.key,o.GlobalTypes.UNSIGNED_TX),s>0)throw new Error("Format Error: GlobalMap has multiple UNSIGNED_TX");s++;break;case o.GlobalTypes.GLOBAL_XPUB:void 0===c.globalXpub&&(c.globalXpub=[]),c.globalXpub.push(n.globals.globalXpub.decode(e));break;default:c.unknownKeyVals||(c.unknownKeyVals=[]),c.unknownKeyVals.push(e)}const u=r.length,d=f.length,h=[],p=[];for(const e of i.range(u)){const t={};for(const i of r[e])switch(n.inputs.checkPubkey(i),i.key[0]){case o.InputTypes.NON_WITNESS_UTXO:if(a("input",i.key,o.InputTypes.NON_WITNESS_UTXO),void 0!==t.nonWitnessUtxo||void 0!==t.witnessUtxo)throw new Error("Format Error: Input has multiple [NON_]WITNESS_UTXO");t.nonWitnessUtxo=n.inputs.nonWitnessUtxo.decode(i);break;case o.InputTypes.WITNESS_UTXO:if(a("input",i.key,o.InputTypes.WITNESS_UTXO),void 0!==t.nonWitnessUtxo||void 0!==t.witnessUtxo)throw new Error("Format Error: Input has multiple [NON_]WITNESS_UTXO");t.witnessUtxo=n.inputs.witnessUtxo.decode(i);break;case o.InputTypes.PARTIAL_SIG:void 0===t.partialSig&&(t.partialSig=[]),t.partialSig.push(n.inputs.partialSig.decode(i));break;case o.InputTypes.SIGHASH_TYPE:if(a("input",i.key,o.InputTypes.SIGHASH_TYPE),void 0!==t.sighashType)throw new Error("Format Error: Input has multiple SIGHASH_TYPE");t.sighashType=n.inputs.sighashType.decode(i);break;case o.InputTypes.REDEEM_SCRIPT:if(a("input",i.key,o.InputTypes.REDEEM_SCRIPT),void 0!==t.redeemScript)throw new Error("Format Error: Input has multiple REDEEM_SCRIPT");t.redeemScript=n.inputs.redeemScript.decode(i);break;case o.InputTypes.WITNESS_SCRIPT:if(a("input",i.key,o.InputTypes.WITNESS_SCRIPT),void 0!==t.witnessScript)throw new Error("Format Error: Input has multiple WITNESS_SCRIPT");t.witnessScript=n.inputs.witnessScript.decode(i);break;case o.InputTypes.BIP32_DERIVATION:void 0===t.bip32Derivation&&(t.bip32Derivation=[]),t.bip32Derivation.push(n.inputs.bip32Derivation.decode(i));break;case o.InputTypes.FINAL_SCRIPTSIG:a("input",i.key,o.InputTypes.FINAL_SCRIPTSIG),t.finalScriptSig=n.inputs.finalScriptSig.decode(i);break;case o.InputTypes.FINAL_SCRIPTWITNESS:a("input",i.key,o.InputTypes.FINAL_SCRIPTWITNESS),t.finalScriptWitness=n.inputs.finalScriptWitness.decode(i);break;case o.InputTypes.POR_COMMITMENT:a("input",i.key,o.InputTypes.POR_COMMITMENT),t.porCommitment=n.inputs.porCommitment.decode(i);break;default:t.unknownKeyVals||(t.unknownKeyVals=[]),t.unknownKeyVals.push(i)}h.push(t)}for(const e of i.range(d)){const t={};for(const r of f[e])switch(n.outputs.checkPubkey(r),r.key[0]){case o.OutputTypes.REDEEM_SCRIPT:if(a("output",r.key,o.OutputTypes.REDEEM_SCRIPT),void 0!==t.redeemScript)throw new Error("Format Error: Output has multiple REDEEM_SCRIPT");t.redeemScript=n.outputs.redeemScript.decode(r);break;case o.OutputTypes.WITNESS_SCRIPT:if(a("output",r.key,o.OutputTypes.WITNESS_SCRIPT),void 0!==t.witnessScript)throw new Error("Format Error: Output has multiple WITNESS_SCRIPT");t.witnessScript=n.outputs.witnessScript.decode(r);break;case o.OutputTypes.BIP32_DERIVATION:void 0===t.bip32Derivation&&(t.bip32Derivation=[]),t.bip32Derivation.push(n.outputs.bip32Derivation.decode(r));break;default:t.unknownKeyVals||(t.unknownKeyVals=[]),t.unknownKeyVals.push(r)}p.push(t)}return{globalMap:c,inputs:h,outputs:p}}t.psbtFromBuffer=function(e,t){let r=0;function n(){const t=f.decode(e,r);r+=f.encodingLength(t);const n=e.slice(r,r+t);return r+=t,n}function a(){return{key:n(),value:n()}}function s(){if(r>=e.length)throw new Error("Format Error: Unexpected End of PSBT");const t=0===e.readUInt8(r);return t&&r++,t}if(1886610036!==function(){const t=e.readUInt32BE(r);return r+=4,t}())throw new Error("Format Error: Invalid Magic Number");if(255!==function(){const t=e.readUInt8(r);return r+=1,t}())throw new Error("Format Error: Magic Number must be followed by 0xff separator");const u=[],d={};for(;!s();){const e=a(),t=e.key.toString("hex");if(d[t])throw new Error("Format Error: Keys must be unique for global keymap: key "+t);d[t]=1,u.push(e)}const h=u.filter(e=>e.key[0]===o.GlobalTypes.UNSIGNED_TX);if(1!==h.length)throw new Error("Format Error: Only one UNSIGNED_TX allowed");const p=t(h[0].value),{inputCount:l,outputCount:b}=p.getInputOutputCounts(),y=[],m=[];for(const e of i.range(l)){const t={},r=[];for(;!s();){const n=a(),i=n.key.toString("hex");if(t[i])throw new Error("Format Error: Keys must be unique for each input: input index "+e+" key "+i);t[i]=1,r.push(n)}y.push(r)}for(const e of i.range(b)){const t={},r=[];for(;!s();){const n=a(),i=n.key.toString("hex");if(t[i])throw new Error("Format Error: Keys must be unique for each output: output index "+e+" key "+i);t[i]=1,r.push(n)}m.push(r)}return c(p,{globalMapKeyVals:u,inputKeyVals:y,outputKeyVals:m})},t.checkKeyBuffer=a,t.psbtFromKeyVals=c}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.GlobalTypes.GLOBAL_XPUB)throw new Error("Decode Error: could not decode globalXpub with key 0x"+e.key.toString("hex"));if(79!==e.key.length||![2,3].includes(e.key[46]))throw new Error("Decode Error: globalXpub has invalid extended pubkey in key 0x"+e.key.toString("hex"));if(e.value.length/4%1!=0)throw new Error("Decode Error: Global GLOBAL_XPUB value length should be multiple of 4");const t=e.key.slice(1),r={masterFingerprint:e.value.slice(0,4),extendedPubkey:t,path:"m"};for(const t of(i=e.value.length/4-1,[...Array(i).keys()])){const n=e.value.readUInt32LE(4*t+4),i=!!(2147483648&n),f=2147483647&n;r.path+="/"+f.toString(10)+(i?"'":"")}var i;return r},t.encode=function(t){const r=e.from([n.GlobalTypes.GLOBAL_XPUB]),i=e.concat([r,t.extendedPubkey]),f=t.path.split("/"),o=e.allocUnsafe(4*f.length);t.masterFingerprint.copy(o,0);let a=4;return f.slice(1).forEach(e=>{const t="'"===e.slice(-1);let r=2147483647&parseInt(t?e.slice(0,-1):e,10);t&&(r+=2147483648),o.writeUInt32LE(r,a),a+=4}),{key:i,value:o}},t.expected="{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }",t.check=function(t){const r=t.extendedPubkey,n=t.masterFingerprint,i=t.path;return e.isBuffer(r)&&78===r.length&&[2,3].indexOf(r[45])>-1&&e.isBuffer(n)&&4===n.length&&"string"==typeof i&&!!i.match(/^m(\/\d+'?)+$/)},t.canAddToArray=function(e,t,r){const n=t.extendedPubkey.toString("hex");return!r.has(n)&&(r.add(n),0===e.filter(e=>e.extendedPubkey.equals(t.extendedPubkey)).length)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.encode=function(t){return{key:e.from([n.GlobalTypes.UNSIGNED_TX]),value:t.toBuffer()}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.FINAL_SCRIPTSIG)throw new Error("Decode Error: could not decode finalScriptSig with key 0x"+e.key.toString("hex"));return e.value},t.encode=function(t){return{key:e.from([n.InputTypes.FINAL_SCRIPTSIG]),value:t}},t.expected="Buffer",t.check=function(t){return e.isBuffer(t)},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.finalScriptSig}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.FINAL_SCRIPTWITNESS)throw new Error("Decode Error: could not decode finalScriptWitness with key 0x"+e.key.toString("hex"));return e.value},t.encode=function(t){return{key:e.from([n.InputTypes.FINAL_SCRIPTWITNESS]),value:t}},t.expected="Buffer",t.check=function(t){return e.isBuffer(t)},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.finalScriptWitness}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.NON_WITNESS_UTXO)throw new Error("Decode Error: could not decode nonWitnessUtxo with key 0x"+e.key.toString("hex"));return e.value},t.encode=function(t){return{key:e.from([n.InputTypes.NON_WITNESS_UTXO]),value:t}},t.expected="Buffer",t.check=function(t){return e.isBuffer(t)},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.witnessUtxo&&void 0===e.nonWitnessUtxo}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.PARTIAL_SIG)throw new Error("Decode Error: could not decode partialSig with key 0x"+e.key.toString("hex"));if(34!==e.key.length&&66!==e.key.length||![2,3,4].includes(e.key[1]))throw new Error("Decode Error: partialSig has invalid pubkey in key 0x"+e.key.toString("hex"));return{pubkey:e.key.slice(1),signature:e.value}},t.encode=function(t){const r=e.from([n.InputTypes.PARTIAL_SIG]);return{key:e.concat([r,t.pubkey]),value:t.signature}},t.expected="{ pubkey: Buffer; signature: Buffer; }",t.check=function(t){return e.isBuffer(t.pubkey)&&e.isBuffer(t.signature)&&[33,65].includes(t.pubkey.length)&&[2,3,4].includes(t.pubkey[0])&&function(t){if(!e.isBuffer(t)||t.length<9)return!1;if(48!==t[0])return!1;if(t.length!==t[1]+3)return!1;if(2!==t[2])return!1;const r=t[3];if(r>33||r<1)return!1;if(2!==t[3+r+1])return!1;const n=t[3+r+2];return!(n>33||n<1)&&t.length===3+r+2+n+2}(t.signature)},t.canAddToArray=function(e,t,r){const n=t.pubkey.toString("hex");return!r.has(n)&&(r.add(n),0===e.filter(e=>e.pubkey.equals(t.pubkey)).length)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.POR_COMMITMENT)throw new Error("Decode Error: could not decode porCommitment with key 0x"+e.key.toString("hex"));return e.value.toString("utf8")},t.encode=function(t){return{key:e.from([n.InputTypes.POR_COMMITMENT]),value:e.from(t,"utf8")}},t.expected="string",t.check=function(e){return"string"==typeof e},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.porCommitment}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.SIGHASH_TYPE)throw new Error("Decode Error: could not decode sighashType with key 0x"+e.key.toString("hex"));return e.value.readUInt32LE(0)},t.encode=function(t){const r=e.from([n.InputTypes.SIGHASH_TYPE]),i=e.allocUnsafe(4);return i.writeUInt32LE(t,0),{key:r,value:i}},t.expected="number",t.check=function(e){return"number"==typeof e},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.sighashType}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25),i=r(184),f=r(92);t.decode=function(e){if(e.key[0]!==n.InputTypes.WITNESS_UTXO)throw new Error("Decode Error: could not decode witnessUtxo with key 0x"+e.key.toString("hex"));const t=i.readUInt64LE(e.value,0);let r=8;const o=f.decode(e.value,r);r+=f.encodingLength(o);const a=e.value.slice(r);if(a.length!==o)throw new Error("Decode Error: WITNESS_UTXO script is not proper length");return{script:a,value:t}},t.encode=function(t){const{script:r,value:o}=t,a=f.encodingLength(r.length),c=e.allocUnsafe(8+a+r.length);return i.writeUInt64LE(c,o,0),f.encode(r.length,c,8),r.copy(c,8+a),{key:e.from([n.InputTypes.WITNESS_UTXO]),value:c}},t.expected="{ script: Buffer; value: number; }",t.check=function(t){return e.isBuffer(t.script)&&"number"==typeof t.value},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.witnessUtxo&&void 0===e.nonWitnessUtxo}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});t.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t)throw new Error("Decode Error: could not decode bip32Derivation with key 0x"+e.key.toString("hex"));if(34!==e.key.length&&66!==e.key.length||![2,3,4].includes(e.key[1]))throw new Error("Decode Error: bip32Derivation has invalid pubkey in key 0x"+e.key.toString("hex"));if(e.value.length/4%1!=0)throw new Error("Decode Error: Input BIP32_DERIVATION value length should be multiple of 4");const r=e.key.slice(1),n={masterFingerprint:e.value.slice(0,4),pubkey:r,path:"m"};for(const t of(i=e.value.length/4-1,[...Array(i).keys()])){const r=e.value.readUInt32LE(4*t+4),i=!!(2147483648&r),f=2147483647&r;n.path+="/"+f.toString(10)+(i?"'":"")}var i;return n},encode:function(r){const n=e.from([t]),i=e.concat([n,r.pubkey]),f=r.path.split("/"),o=e.allocUnsafe(4*f.length);r.masterFingerprint.copy(o,0);let a=4;return f.slice(1).forEach(e=>{const t="'"===e.slice(-1);let r=2147483647&parseInt(t?e.slice(0,-1):e,10);t&&(r+=2147483648),o.writeUInt32LE(r,a),a+=4}),{key:i,value:o}},check:function(t){return e.isBuffer(t.pubkey)&&e.isBuffer(t.masterFingerprint)&&"string"==typeof t.path&&[33,65].includes(t.pubkey.length)&&[2,3,4].includes(t.pubkey[0])&&4===t.masterFingerprint.length},expected:"{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }",canAddToArray:function(e,t,r){const n=t.pubkey.toString("hex");return!r.has(n)&&(r.add(n),0===e.filter(e=>e.pubkey.equals(t.pubkey)).length)}}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeChecker=function(e){return function(t){let r;if(e.includes(t.key[0])&&(r=t.key.slice(1),33!==r.length&&65!==r.length||![2,3,4].includes(r[0])))throw new Error("Format Error: invalid pubkey in key 0x"+t.key.toString("hex"));return r}}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t)throw new Error("Decode Error: could not decode redeemScript with key 0x"+e.key.toString("hex"));return e.value},encode:function(r){return{key:e.from([t]),value:r}},check:function(t){return e.isBuffer(t)},expected:"Buffer",canAdd:function(e,t){return!!e&&!!t&&void 0===e.redeemScript}}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t)throw new Error("Decode Error: could not decode witnessScript with key 0x"+e.key.toString("hex"));return e.value},encode:function(r){return{key:e.from([t]),value:r}},check:function(t){return e.isBuffer(t)},expected:"Buffer",canAdd:function(e,t){return!!e&&!!t&&void 0===e.witnessScript}}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(183),i=r(184);t.psbtToBuffer=function({globalMap:t,inputs:r,outputs:n}){const{globalKeyVals:f,inputKeyVals:o,outputKeyVals:c}=a({globalMap:t,inputs:r,outputs:n}),s=i.keyValsToBuffer(f),u=t=>0===t.length?[e.from([0])]:t.map(i.keyValsToBuffer),d=u(o),h=u(c),p=e.allocUnsafe(5);return p.writeUIntBE(482972169471,0,5),e.concat([p,s].concat(d,h))};const f=(e,t)=>e.key.compare(t.key);function o(e,t){const r=new Set,n=Object.entries(e).reduce((e,[n,i])=>{if("unknownKeyVals"===n)return e;const f=t[n];if(void 0===f)return e;const o=(Array.isArray(i)?i:[i]).map(f.encode);return o.map(e=>e.key.toString("hex")).forEach(e=>{if(r.has(e))throw new Error("Serialize Error: Duplicate key: "+e);r.add(e)}),e.concat(o)},[]),i=e.unknownKeyVals?e.unknownKeyVals.filter(e=>!r.has(e.key.toString("hex"))):[];return n.concat(i).sort(f)}function a({globalMap:e,inputs:t,outputs:r}){return{globalKeyVals:o(e,n.globals),inputKeyVals:t.map(e=>o(e,n.inputs)),outputKeyVals:r.map(e=>o(e,n.outputs))}}t.psbtToKeyVals=a}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(179),i=r(85),f=r(359),o=r(35),a=r(182),c=r(24),s=r(122),u=r(3),d=r(3),h=r(123),p=r(34),l=r(13),b=f.types,y=new Set(["p2pkh","p2pk","p2wpkh","p2ms","p2sh-p2pkh","p2sh-p2pk","p2sh-p2wpkh","p2sh-p2ms","p2wsh-p2pkh","p2wsh-p2pk","p2wsh-p2ms","p2sh-p2wsh-p2pkh","p2sh-p2wsh-p2pk","p2sh-p2wsh-p2ms"]);function m(e,t,r){try{l(e,t)}catch(e){throw new Error(r)}}class v{constructor(e=c.bitcoin,t=2500){this.network=e,this.maximumFeeRate=t,this.__PREV_TX_SET={},this.__INPUTS=[],this.__TX=new h.Transaction,this.__TX.version=2,this.__USE_LOW_R=!1}static fromTransaction(e,t){const r=new v(t);return r.setVersion(e.version),r.setLockTime(e.locktime),e.outs.forEach(e=>{r.addOutput(e.script,e.value)}),e.ins.forEach(e=>{r.__addInputUnsafe(e.hash,e.index,{sequence:e.sequence,script:e.script,witness:e.witness})}),r.__INPUTS.forEach((t,r)=>{!function(e,t,r){if(e.redeemScriptType!==b.P2MS||!e.redeemScript)return;if(e.pubkeys.length===e.signatures.length)return;const n=e.signatures.concat();e.signatures=e.pubkeys.map(i=>{const f=a.fromPublicKey(i);let o;return n.some((i,a)=>{if(!i)return!1;const c=u.signature.decode(i),s=t.hashForSignature(r,e.redeemScript,c.hashType);return!!f.verify(s,c.signature)&&(n[a]=void 0,o=i,!0)}),o})}(t,e,r)}),r}setLowR(e){return l(l.maybe(l.Boolean),e),void 0===e&&(e=!0),this.__USE_LOW_R=e,e}setLockTime(e){if(l(p.UInt32,e),this.__INPUTS.some(e=>!!e.signatures&&e.signatures.some(e=>void 0!==e)))throw new Error("No, this would invalidate signatures");this.__TX.locktime=e}setVersion(e){l(p.UInt32,e),this.__TX.version=e}addInput(t,r,n,f){if(!this.__canModifyInputs())throw new Error("No, this would invalidate signatures");let o;if("string"==typeof(a=t)||a instanceof String)t=i.reverseBuffer(e.from(t,"hex"));else if(function(e){return e instanceof h.Transaction}(t)){const e=t.outs[r];f=e.script,o=e.value,t=t.getHash(!1)}var a;return this.__addInputUnsafe(t,r,{sequence:n,prevOutScript:f,value:o})}addOutput(e,t){if(!this.__canModifyOutputs())throw new Error("No, this would invalidate signatures");return"string"==typeof e&&(e=n.toOutputScript(e,this.network)),this.__TX.addOutput(e,t)}build(){return this.__build(!1)}buildIncomplete(){return this.__build(!0)}sign(e,t,r,n,i,f){!function({input:e,ourPubKey:t,keyPair:r,signatureHash:n,hashType:i,useLowR:f}){let o=!1;for(const[a,c]of e.pubkeys.entries()){if(!t.equals(c))continue;if(e.signatures[a])throw new Error("Signature already exists");if(33!==t.length&&e.hasWitness)throw new Error("BIP143 rejects uncompressed public keys in P2WPKH or P2WSH");const s=r.sign(n,f);e.signatures[a]=u.signature.encode(s,i),o=!0}if(!o)throw new Error("Key pair cannot sign for this input")}(function(e,t,r,n,i,f,o,a,c,d,v){let _;if("number"==typeof i)_=i;else{if("object"!=typeof i)throw new TypeError("TransactionBuilder sign first arg must be TxbSignArg or number");!function(e,t){if(!y.has(t.prevOutScriptType))throw new TypeError(`Unknown prevOutScriptType "${t.prevOutScriptType}"`);m(l.Number,t.vin,"sign must include vin parameter as Number (input index)"),m(p.Signer,t.keyPair,"sign must include keyPair parameter as Signer interface"),m(l.maybe(l.Number),t.hashType,"sign hashType parameter must be a number");const r=(e[t.vin]||[]).prevOutType,n=t.prevOutScriptType;switch(n){case"p2pkh":if(r&&"pubkeyhash"!==r)throw new TypeError(`input #${t.vin} is not of type p2pkh: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(l.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2pk":if(r&&"pubkey"!==r)throw new TypeError(`input #${t.vin} is not of type p2pk: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(l.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2wpkh":if(r&&"witnesspubkeyhash"!==r)throw new TypeError(`input #${t.vin} is not of type p2wpkh: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(p.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2ms":if(r&&"multisig"!==r)throw new TypeError(`input #${t.vin} is not of type p2ms: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(l.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2sh-p2wpkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${t.vin} is not of type p2sh-p2wpkh: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.Buffer,t.redeemScript,`${n} requires redeemScript`),m(p.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2sh-p2ms":case"p2sh-p2pk":case"p2sh-p2pkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.Buffer,t.redeemScript,`${n} requires redeemScript`),m(l.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2wsh-p2ms":case"p2wsh-p2pk":case"p2wsh-p2pkh":if(r&&"witnessscripthash"!==r)throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);m(l.Buffer,t.witnessScript,`${n} requires witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(p.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2sh-p2wsh-p2ms":case"p2sh-p2wsh-p2pk":case"p2sh-p2wsh-p2pkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);m(l.Buffer,t.witnessScript,`${n} requires witnessScript`),m(l.Buffer,t.redeemScript,`${n} requires witnessScript`),m(p.Satoshi,t.witnessValue,`${n} requires witnessScript`)}}(t,i),({vin:_,keyPair:f,redeemScript:o,hashType:a,witnessValue:c,witnessScript:d}=i)}if(void 0===f)throw new Error("sign requires keypair");if(f.network&&f.network!==e)throw new TypeError("Inconsistent network");if(!t[_])throw new Error("No input at index: "+_);if(a=a||h.Transaction.SIGHASH_ALL,r(a))throw new Error("Transaction needs outputs");const S=t[_];if(void 0!==S.redeemScript&&o&&!S.redeemScript.equals(o))throw new Error("Inconsistent redeemScript");const E=f.publicKey||f.getPublicKey&&f.getPublicKey();if(!w(S)){if(void 0!==c){if(void 0!==S.value&&S.value!==c)throw new Error("Input did not match witnessValue");l(p.Satoshi,c),S.value=c}if(!w(S)){const e=function(e,t,r,n){if(r&&n){const i=s.p2wsh({redeem:{output:n}}),f=s.p2wsh({output:r}),o=s.p2sh({redeem:{output:r}}),a=s.p2sh({redeem:i});if(!i.hash.equals(f.hash))throw new Error("Witness script inconsistent with prevOutScript");if(!o.hash.equals(a.hash))throw new Error("Redeem script inconsistent with prevOutScript");const c=g(i.redeem.output,t);if(!c.pubkeys)throw new Error(c.type+" not supported as witnessScript ("+u.toASM(n)+")");e.signatures&&e.signatures.some(e=>void 0!==e)&&(c.signatures=e.signatures);const d=n;if(c.type===b.P2WPKH)throw new Error("P2SH(P2WSH(P2WPKH)) is a consensus failure");return{redeemScript:r,redeemScriptType:b.P2WSH,witnessScript:n,witnessScriptType:c.type,prevOutType:b.P2SH,prevOutScript:o.output,hasWitness:!0,signScript:d,signType:c.type,pubkeys:c.pubkeys,signatures:c.signatures,maxSignatures:c.maxSignatures}}if(r){const n=s.p2sh({redeem:{output:r}});if(e.prevOutScript){let t;try{t=s.p2sh({output:e.prevOutScript})}catch(e){throw new Error("PrevOutScript must be P2SH")}if(!n.hash.equals(t.hash))throw new Error("Redeem script inconsistent with prevOutScript")}const i=g(n.redeem.output,t);if(!i.pubkeys)throw new Error(i.type+" not supported as redeemScript ("+u.toASM(r)+")");e.signatures&&e.signatures.some(e=>void 0!==e)&&(i.signatures=e.signatures);let f=r;return i.type===b.P2WPKH&&(f=s.p2pkh({pubkey:i.pubkeys[0]}).output),{redeemScript:r,redeemScriptType:i.type,prevOutType:b.P2SH,prevOutScript:n.output,hasWitness:i.type===b.P2WPKH,signScript:f,signType:i.type,pubkeys:i.pubkeys,signatures:i.signatures,maxSignatures:i.maxSignatures}}if(n){const r=s.p2wsh({redeem:{output:n}});if(e.prevOutScript){const t=s.p2wsh({output:e.prevOutScript});if(!r.hash.equals(t.hash))throw new Error("Witness script inconsistent with prevOutScript")}const i=g(r.redeem.output,t);if(!i.pubkeys)throw new Error(i.type+" not supported as witnessScript ("+u.toASM(n)+")");e.signatures&&e.signatures.some(e=>void 0!==e)&&(i.signatures=e.signatures);const f=n;if(i.type===b.P2WPKH)throw new Error("P2WSH(P2WPKH) is a consensus failure");return{witnessScript:n,witnessScriptType:i.type,prevOutType:b.P2WSH,prevOutScript:r.output,hasWitness:!0,signScript:f,signType:i.type,pubkeys:i.pubkeys,signatures:i.signatures,maxSignatures:i.maxSignatures}}if(e.prevOutType&&e.prevOutScript){if(e.prevOutType===b.P2SH)throw new Error("PrevOutScript is "+e.prevOutType+", requires redeemScript");if(e.prevOutType===b.P2WSH)throw new Error("PrevOutScript is "+e.prevOutType+", requires witnessScript");if(!e.prevOutScript)throw new Error("PrevOutScript is missing");const r=g(e.prevOutScript,t);if(!r.pubkeys)throw new Error(r.type+" not supported ("+u.toASM(e.prevOutScript)+")");e.signatures&&e.signatures.some(e=>void 0!==e)&&(r.signatures=e.signatures);let n=e.prevOutScript;return r.type===b.P2WPKH&&(n=s.p2pkh({pubkey:r.pubkeys[0]}).output),{prevOutType:r.type,prevOutScript:e.prevOutScript,hasWitness:r.type===b.P2WPKH,signScript:n,signType:r.type,pubkeys:r.pubkeys,signatures:r.signatures,maxSignatures:r.maxSignatures}}const i=s.p2pkh({pubkey:t}).output;return{prevOutType:b.P2PKH,prevOutScript:i,hasWitness:!1,signScript:i,signType:b.P2PKH,pubkeys:[t],signatures:[void 0]}}(S,E,o,d);Object.assign(S,e)}if(!w(S))throw Error(S.prevOutType+" not supported")}let A;A=S.hasWitness?n.hashForWitnessV0(_,S.signScript,S.value,a):n.hashForSignature(_,S.signScript,a);return{input:S,ourPubKey:E,keyPair:f,signatureHash:A,hashType:a,useLowR:!!v}}(this.network,this.__INPUTS,this.__needsOutputs.bind(this),this.__TX,e,t,r,n,i,f,this.__USE_LOW_R))}__addInputUnsafe(e,t,r){if(h.Transaction.isCoinbaseHash(e))throw new Error("coinbase inputs not supported");const n=e.toString("hex")+":"+t;if(void 0!==this.__PREV_TX_SET[n])throw new Error("Duplicate TxOut: "+n);let i={};if(void 0!==r.script&&(i=function e(t,r,n,i){if(0===t.length&&0===r.length)return{};if(!n){let e=f.input(t,!0),i=f.witness(r,!0);e===b.NONSTANDARD&&(e=void 0),i===b.NONSTANDARD&&(i=void 0),n=e||i}switch(n){case b.P2WPKH:{const{output:e,pubkey:t,signature:n}=s.p2wpkh({witness:r});return{prevOutScript:e,prevOutType:b.P2WPKH,pubkeys:[t],signatures:[n]}}case b.P2PKH:{const{output:e,pubkey:r,signature:n}=s.p2pkh({input:t});return{prevOutScript:e,prevOutType:b.P2PKH,pubkeys:[r],signatures:[n]}}case b.P2PK:{const{signature:e}=s.p2pk({input:t});return{prevOutType:b.P2PK,pubkeys:[void 0],signatures:[e]}}case b.P2MS:{const{m:e,pubkeys:r,signatures:n}=s.p2ms({input:t,output:i},{allowIncomplete:!0});return{prevOutType:b.P2MS,pubkeys:r,signatures:n,maxSignatures:e}}}if(n===b.P2SH){const{output:n,redeem:i}=s.p2sh({input:t,witness:r}),o=f.output(i.output),a=e(i.input,i.witness,o,i.output);return a.prevOutType?{prevOutScript:n,prevOutType:b.P2SH,redeemScript:i.output,redeemScriptType:a.prevOutType,witnessScript:a.witnessScript,witnessScriptType:a.witnessScriptType,pubkeys:a.pubkeys,signatures:a.signatures}:{}}if(n===b.P2WSH){const{output:n,redeem:i}=s.p2wsh({input:t,witness:r}),o=f.output(i.output);let a;return a=o===b.P2WPKH?e(i.input,i.witness,o):e(u.compile(i.witness),[],o,i.output),a.prevOutType?{prevOutScript:n,prevOutType:b.P2WSH,witnessScript:i.output,witnessScriptType:a.prevOutType,pubkeys:a.pubkeys,signatures:a.signatures}:{}}return{prevOutType:b.NONSTANDARD,prevOutScript:t}}(r.script,r.witness||[])),void 0!==r.value&&(i.value=r.value),!i.prevOutScript&&r.prevOutScript){let e;if(!i.pubkeys&&!i.signatures){const t=g(r.prevOutScript);t.pubkeys&&(i.pubkeys=t.pubkeys,i.signatures=t.signatures),e=t.type}i.prevOutScript=r.prevOutScript,i.prevOutType=e||f.output(r.prevOutScript)}const o=this.__TX.addInput(e,t,r.sequence,r.scriptSig);return this.__INPUTS[o]=i,this.__PREV_TX_SET[n]=!0,o}__build(e){if(!e){if(!this.__TX.ins.length)throw new Error("Transaction has no inputs");if(!this.__TX.outs.length)throw new Error("Transaction has no outputs")}const t=this.__TX.clone();if(this.__INPUTS.forEach((r,n)=>{if(!r.prevOutType&&!e)throw new Error("Transaction is not complete");const i=function e(t,r,n){const i=r.pubkeys||[];let f=r.signatures||[];switch(t){case b.P2PKH:if(0===i.length)break;if(0===f.length)break;return s.p2pkh({pubkey:i[0],signature:f[0]});case b.P2WPKH:if(0===i.length)break;if(0===f.length)break;return s.p2wpkh({pubkey:i[0],signature:f[0]});case b.P2PK:if(0===i.length)break;if(0===f.length)break;return s.p2pk({signature:f[0]});case b.P2MS:{const e=r.maxSignatures;f=n?f.map(e=>e||d.OPS.OP_0):f.filter(e=>e);const t=!n||e===f.length;return s.p2ms({m:e,pubkeys:i,signatures:f},{allowIncomplete:n,validate:t})}case b.P2SH:{const t=e(r.redeemScriptType,r,n);if(!t)return;return s.p2sh({redeem:{output:t.output||r.redeemScript,input:t.input,witness:t.witness}})}case b.P2WSH:{const t=e(r.witnessScriptType,r,n);if(!t)return;return s.p2wsh({redeem:{output:r.witnessScript,input:t.input,witness:t.witness}})}}}(r.prevOutType,r,e);if(i)t.setInputScript(n,i.input),t.setWitness(n,i.witness);else{if(!e&&r.prevOutType===b.NONSTANDARD)throw new Error("Unknown input type");if(!e)throw new Error("Not enough information")}}),!e&&this.__overMaximumFees(t.virtualSize()))throw new Error("Transaction has absurd fees");return t}__canModifyInputs(){return this.__INPUTS.every(e=>!e.signatures||e.signatures.every(e=>{if(!e)return!0;return 0!=(_(e)&h.Transaction.SIGHASH_ANYONECANPAY)}))}__needsOutputs(e){return e===h.Transaction.SIGHASH_ALL?0===this.__TX.outs.length:0===this.__TX.outs.length&&this.__INPUTS.some(e=>!!e.signatures&&e.signatures.some(e=>{if(!e)return!1;return!(_(e)&h.Transaction.SIGHASH_NONE)}))}__canModifyOutputs(){const e=this.__TX.ins.length,t=this.__TX.outs.length;return this.__INPUTS.every(r=>void 0===r.signatures||r.signatures.every(r=>{if(!r)return!0;const n=31&_(r);return n===h.Transaction.SIGHASH_NONE||n===h.Transaction.SIGHASH_SINGLE&&e<=t}))}__overMaximumFees(e){return(this.__INPUTS.reduce((e,t)=>e+(t.value>>>0),0)-this.__TX.outs.reduce((e,t)=>e+t.value,0))/e>this.maximumFeeRate}}function g(e,t){l(p.Buffer,e);const r=f.output(e);switch(r){case b.P2PKH:{if(!t)return{type:r};const n=s.p2pkh({output:e}).hash,i=o.hash160(t);return n.equals(i)?{type:r,pubkeys:[t],signatures:[void 0]}:{type:r}}case b.P2WPKH:{if(!t)return{type:r};const n=s.p2wpkh({output:e}).hash,i=o.hash160(t);return n.equals(i)?{type:r,pubkeys:[t],signatures:[void 0]}:{type:r}}case b.P2PK:return{type:r,pubkeys:[s.p2pk({output:e}).pubkey],signatures:[void 0]};case b.P2MS:{const t=s.p2ms({output:e});return{type:r,pubkeys:t.pubkeys,signatures:t.pubkeys.map(()=>{}),maxSignatures:t.m}}}return{type:r}}function w(e){return void 0!==e.signScript&&void 0!==e.signType&&void 0!==e.pubkeys&&void 0!==e.signatures&&e.signatures.length===e.pubkeys.length&&e.pubkeys.length>0&&(!1===e.hasWitness||void 0!==e.value)}function _(e){return e.readUInt8(e.length-1)}t.TransactionBuilder=v}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(185),f=r(362),o=r(186),a=r(187),c=r(367),s=r(370),u=r(372),d=r(374),h={P2MS:"multisig",NONSTANDARD:"nonstandard",NULLDATA:"nulldata",P2PK:"pubkey",P2PKH:"pubkeyhash",P2SH:"scripthash",P2WPKH:"witnesspubkeyhash",P2WSH:"witnessscripthash",WITNESS_COMMITMENT:"witnesscommitment"};t.types=h,t.output=function(e){if(u.output.check(e))return h.P2WPKH;if(d.output.check(e))return h.P2WSH;if(a.output.check(e))return h.P2PKH;if(c.output.check(e))return h.P2SH;const t=n.decompile(e);if(!t)throw new TypeError("Invalid script");return i.output.check(t)?h.P2MS:o.output.check(t)?h.P2PK:s.output.check(t)?h.WITNESS_COMMITMENT:f.output.check(t)?h.NULLDATA:h.NONSTANDARD},t.input=function(e,t){const r=n.decompile(e);if(!r)throw new TypeError("Invalid script");return a.input.check(r)?h.P2PKH:c.input.check(r,t)?h.P2SH:i.input.check(r,t)?h.P2MS:o.input.check(r)?h.P2PK:h.NONSTANDARD},t.witness=function(e,t){const r=n.decompile(e);if(!r)throw new TypeError("Invalid script");return u.input.check(r)?h.P2WPKH:d.input.check(r,t)?h.P2WSH:h.NONSTANDARD}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){return e===i.OPS.OP_0||n.isCanonicalScriptSignature(e)}function o(e,t){const r=n.decompile(e);return!(r.length<2)&&(r[0]===i.OPS.OP_0&&(t?r.slice(1).every(f):r.slice(1).every(n.isCanonicalScriptSignature)))}t.check=o,o.toJSON=()=>"multisig input"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3),f=r(34),o=i.OPS.OP_RESERVED;function a(e,t){const r=n.decompile(e);if(r.length<4)return!1;if(r[r.length-1]!==i.OPS.OP_CHECKMULTISIG)return!1;if(!f.Number(r[0]))return!1;if(!f.Number(r[r.length-2]))return!1;const a=r[0]-o,c=r[r.length-2]-o;return!(a<=0)&&(!(c>16)&&(!(a>c)&&(c===r.length-3&&(!!t||r.slice(1,-2).every(n.isCanonicalPubKey)))))}t.check=a,a.toJSON=()=>"multi-sig output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=n.OPS;function f(e){const t=n.compile(e);return t.length>1&&t[0]===i.OP_RETURN}t.check=f,f.toJSON=()=>"null data output";const o={check:f};t.output=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);function i(e){const t=n.decompile(e);return 1===t.length&&n.isCanonicalScriptSignature(t[0])}t.check=i,i.toJSON=()=>"pubKey input"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.decompile(e);return 2===t.length&&n.isCanonicalPubKey(t[0])&&t[1]===i.OPS.OP_CHECKSIG}t.check=f,f.toJSON=()=>"pubKey output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);function i(e){const t=n.decompile(e);return 2===t.length&&n.isCanonicalScriptSignature(t[0])&&n.isCanonicalPubKey(t[1])}t.check=i,i.toJSON=()=>"pubKeyHash input"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.compile(e);return 25===t.length&&t[0]===i.OPS.OP_DUP&&t[1]===i.OPS.OP_HASH160&&20===t[2]&&t[23]===i.OPS.OP_EQUALVERIFY&&t[24]===i.OPS.OP_CHECKSIG}t.check=f,f.toJSON=()=>"pubKeyHash output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(368);t.input=n;const i=r(369);t.output=i},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(185),f=r(186),o=r(187),a=r(288),c=r(289);function s(t,r){const s=n.decompile(t);if(s.length<1)return!1;const u=s[s.length-1];if(!e.isBuffer(u))return!1;const d=n.decompile(n.compile(s.slice(0,-1))),h=n.decompile(u);return!!h&&(!!n.isPushOnly(d)&&(1===s.length?c.check(h)||a.check(h):!(!o.input.check(d)||!o.output.check(h))||(!(!i.input.check(d,r)||!i.output.check(h))||!(!f.input.check(d)||!f.output.check(h)))))}t.check=s,s.toJSON=()=>"scriptHash input"}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.compile(e);return 23===t.length&&t[0]===i.OPS.OP_HASH160&&20===t[1]&&t[22]===i.OPS.OP_EQUAL}t.check=f,f.toJSON=()=>"scriptHash output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(371);t.output=n},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3),f=r(34),o=r(13),a=e.from("aa21a9ed","hex");function c(e){const t=n.compile(e);return t.length>37&&t[0]===i.OPS.OP_RETURN&&36===t[1]&&t.slice(2,6).equals(a)}t.check=c,c.toJSON=()=>"Witness commitment output",t.encode=function(t){o(f.Hash256bit,t);const r=e.allocUnsafe(36);return a.copy(r,0),t.copy(r,4),n.compile([i.OPS.OP_RETURN,r])},t.decode=function(e){return o(c,e),n.decompile(e)[1].slice(4,36)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(373);t.input=n;const i=r(288);t.output=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);function i(e){const t=n.decompile(e);return 2===t.length&&n.isCanonicalScriptSignature(t[0])&&(r=t[1],n.isCanonicalPubKey(r)&&33===r.length);var r}t.check=i,i.toJSON=()=>"witnessPubKeyHash input"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(375);t.input=n;const i=r(289);t.output=i},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(13),f=r(185),o=r(186),a=r(187);function c(t,r){if(i(i.Array,t),t.length<1)return!1;const c=t[t.length-1];if(!e.isBuffer(c))return!1;const s=n.decompile(c);if(!s||0===s.length)return!1;const u=n.compile(t.slice(0,-1));return!(!a.input.check(u)||!a.output.check(s))||(!(!f.input.check(u,r)||!f.output.check(s))||!(!o.input.check(u)||!o.output.check(s)))}t.check=c,c.toJSON=()=>"witnessScriptHash input"}).call(this,r(0).Buffer)},,,,,,,,,,,,,,,,,function(e,t,r){"use strict";(function(e){var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var f=r(87),o=n(r(87)),a=i(r(393));t.DUST_AMOUNT=546,t.USDT_PROPERTYID_MAINNET=31,t.USDT_PROPERTYID_TESTNET=1;var c=function(){function r(r){var n=this;this.addInputsForPsbt=function(e){if(n.verifyInput(e))return e.inputs.forEach((function(e){return n.addInputForPsbt(e)})),n;throw new Error("input value are invaild")},this.addOutputForPsbt=function(e){if(n.isDestinationOutputs(e.outputs)){n.psbt.addOutput({address:e.outputs.to,value:e.outputs.amount});var t=e.inputs.reduce((function(e,t){return e+t.utxo.value}),0)-e.outputs.amount-e.outputs.fee;n.psbt.addOutput({address:e.outputs.changeAddress,value:t})}else n.psbt.addOutputs(e.outputs);return n},this.getPsbt=function(){return n.psbt},this.calculateScript=function(t){var r=o.payments.p2wpkh({pubkey:e.from(t,"hex"),network:n.network}),i=o.payments.p2sh({redeem:r,network:n.network});return o.script.compile([o.script.OPS.OP_HASH160,f.crypto.hash160(i.redeem.output),o.script.OPS.OP_EQUAL])},this.verifyOmniInput=function(e){return e.inputs.reduce((function(e,t){return e+t.utxo.value}),0)>=t.DUST_AMOUNT+e.fee},this.generateOmniPayload=function(t,r){var n=a.default(t.toString(16),16,"0").toUpperCase(),i=["6f6d6e69","0000",a.default(r.toString(16),12,"0"),n].join(""),f=[e.from(i,"hex")];return o.payments.embed({data:f}).output},this.buildOmniPsbt=function(e){var r=e.inputs.reduce((function(e,t){return e+t.utxo.value}),0);if(r>=t.DUST_AMOUNT+e.fee){e.inputs.forEach((function(e){return n.addInputForPsbt(e)})),n.psbt.addOutput({address:e.to,value:t.DUST_AMOUNT});var i=n.network===o.networks.bitcoin?t.USDT_PROPERTYID_MAINNET:t.USDT_PROPERTYID_TESTNET;n.psbt.addOutput({script:n.generateOmniPayload(e.omniAmount,e.propertyId||i),value:0});var f=r-t.DUST_AMOUNT-e.fee;return f>t.DUST_AMOUNT&&n.psbt.addOutput({address:e.changeAddress,value:f}),n}throw new Error("input value are invalid")},this.verifyInput=function(e,t){void 0===t&&(t=!0);var r=e.inputs.reduce((function(e,t){return e+t.utxo.value}),0);if(n.isDestinationOutputs(e.outputs)){if(r>=e.outputs.fee+e.outputs.amount)return!0}else{var i=r-e.outputs.reduce((function(e,t){return e+t.value}),0);if(i>=0&&(!t||i<1e6))return!0}return!1},this.isNonWitnessUtxo=function(e){return void 0!==e.nonWitnessUtxo},this.isDestinationOutputs=function(e){var t=e;return void 0!==t.to&&void 0!==t.amount&&void 0!==t.fee&&void 0!==t.changeAddress},this.network=r,this.psbt=new o.Psbt({network:r})}return r.prototype.addInputForPsbt=function(t){return this.isNonWitnessUtxo(t.utxo)?this.psbt.addInput({hash:t.hash,index:t.index,sequence:t.sequence,nonWitnessUtxo:e.from(t.utxo.nonWitnessUtxo,"hex")}):this.psbt.addInput({hash:t.hash,index:t.index,sequence:t.sequence,witnessUtxo:{script:e.from(t.utxo.script||this.calculateScript(t.utxo.publicKey).toString("hex"),"hex"),value:t.utxo.value},redeemScript:o.payments.p2wpkh({pubkey:e.from(t.utxo.publicKey,"hex"),network:this.network}).output})},r}();t.default=c}).call(this,r(0).Buffer)},function(e,t,r){(function(t){var r,n=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,o=/^0o[0-7]+$/i,a="[\\ud800-\\udfff]",c="[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]",s="\\ud83c[\\udffb-\\udfff]",u="[^\\ud800-\\udfff]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",h="[\\ud800-\\udbff][\\udc00-\\udfff]",p="(?:"+c+"|"+s+")"+"?",l="[\\ufe0e\\ufe0f]?"+p+("(?:\\u200d(?:"+[u,d,h].join("|")+")[\\ufe0e\\ufe0f]?"+p+")*"),b="(?:"+[u+c+"?",c,d,h,a].join("|")+")",y=RegExp(s+"(?="+s+")|"+b+l,"g"),m=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),v=parseInt,g="object"==typeof t&&t&&t.Object===Object&&t,w="object"==typeof self&&self&&self.Object===Object&&self,_=g||w||Function("return this")(),S=(r="length",function(e){return null==e?void 0:e[r]});function E(e){return m.test(e)}function A(e){return E(e)?function(e){var t=y.lastIndex=0;for(;y.test(e);)t++;return t}(e):S(e)}function I(e){return E(e)?function(e){return e.match(y)||[]}(e):function(e){return e.split("")}(e)}var k=Object.prototype.toString,T=_.Symbol,P=Math.ceil,x=Math.floor,M=T?T.prototype:void 0,O=M?M.toString:void 0;function B(e,t){var r="";if(!e||t<1||t>9007199254740991)return r;do{t%2&&(r+=e),(t=x(t/2))&&(e+=e)}while(t);return r}function N(e){if("string"==typeof e)return e;if(U(e))return O?O.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function R(e,t,r){var n=e.length;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var f=Array(i);++n=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function l(e,t){if(s.isBuffer(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=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return K(e).length;default:if(n)return q(e).length;t=(""+t).toLowerCase(),n=!0}}function b(e,t,r){var n=!1;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 x(this,t,r);case"utf8":case"utf-8":return k(this,t,r);case"ascii":return T(this,t,r);case"latin1":case"binary":return P(this,t,r);case"base64":return A(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,i){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=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:v(e,t,r,n,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,n,i){var f,o=1,a=e.length,s=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;o=2,a/=2,s/=2,r/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(f=r;fa&&(r=a-s),f=r;f>=0;f--){for(var d=!0,h=0;hi&&(n=i):n=i;var f=t.length;if(f%2!=0)throw new TypeError("Invalid hex string");n>f/2&&(n=f/2);for(var o=0;o>8,i=r%256,f.push(i),f.push(n);return f}(t,e.length-r),e,r,n)}function A(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function k(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+d<=r)switch(d){case 1:c<128&&(u=c);break;case 2:128==(192&(f=e[i+1]))&&(s=(31&c)<<6|63&f)>127&&(u=s);break;case 3:f=e[i+1],o=e[i+2],128==(192&f)&&128==(192&o)&&(s=(15&c)<<12|(63&f)<<6|63&o)>2047&&(s<55296||s>57343)&&(u=s);break;case 4:f=e[i+1],o=e[i+2],a=e[i+3],128==(192&f)&&128==(192&o)&&128==(192&a)&&(s=(15&c)<<18|(63&f)<<12|(63&o)<<6|63&a)>65535&&s<1114112&&(u=s)}null===u?(u=65533,d=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},s.prototype.compare=function(e,t,r,n,i){if(!s.isBuffer(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===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var f=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),a=Math.min(f,o),c=this.slice(n,i),u=e.slice(t,r),d=0;di)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var f=!1;;)switch(n){case"hex":return g(this,e,t,r);case"utf8":case"utf-8":return w(this,e,t,r);case"ascii":return _(this,e,t,r);case"latin1":case"binary":return S(this,e,t,r);case"base64":return E(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,r);default:if(f)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),f=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",f=t;fr)throw new RangeError("Trying to access beyond buffer length")}function B(e,t,r,n,i,f){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function N(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,f=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function R(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,f=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function C(e,t,r,n,i,f){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(e,t,r,n,f){return f||C(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function L(e,t,r,n,f){return f||C(e,0,r,8),i.write(e,t,r,n,52,8),r+8}s.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),t0&&(i*=256);)n+=this[e+--t]*i;return n},s.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],i=1,f=0;++f=(i*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,i=1,f=this[e+--n];n>0&&(i*=256);)f+=this[e+--n]*i;return f>=(i*=128)&&(f-=Math.pow(2,8*t)),f},s.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),i.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),i.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),i.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),i.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||B(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,f=0;for(this[t]=255&e;++f=0&&(f*=256);)this[t+i]=e/f&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);B(this,e,t,r,i-1,-i)}var f=0,o=1,a=0;for(this[t]=255&e;++f>0)-a&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);B(this,e,t,r,i-1,-i)}var f=r-1,o=1,a=0;for(this[t+f]=255&e;--f>=0&&(o*=256);)e<0&&0===a&&0!==this[t+f+1]&&(a=1),this[t+f]=(e/o>>0)-a&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||B(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return L(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return L(this,e,t,!1,r)},s.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=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=0;--i)e[i+t]=this[i+r];else if(f<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(f=t;f55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&f.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&f.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&f.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&f.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;f.push(r)}else if(r<2048){if((t-=2)<0)break;f.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;f.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;f.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return f}function K(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(D,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function H(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}}).call(this,r(6))},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},function(e,t,r){(function(e){!function(e,t){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function f(e,t,r){if(f.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 o;"object"==typeof e?e.exports=f:t.BN=f,f.BN=f,f.wordSize=26;try{o=r(125).Buffer}catch(e){}function a(e,t,r){for(var n=0,i=Math.min(e.length,r),f=t;f=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function s(e,t,r,n){for(var i=0,f=Math.min(e.length,r),o=t;o=49?a-49+10:a>=17?a-17+10:a}return i}f.isBN=function(e){return e instanceof f||null!==e&&"object"==typeof e&&e.constructor.wordSize===f.wordSize&&Array.isArray(e.words)},f.max=function(e,t){return e.cmp(t)>0?e:t},f.min=function(e,t){return e.cmp(t)<0?e:t},f.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&i++,16===t?this._parseHex(e,i):this._parseBase(e,t,i),"-"===e[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),t,r)},f.prototype._initNumber=function(e,t,r){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):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},f.prototype._initArray=function(e,t,r){if(n("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 i=0;i=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[f]|=o<>>26-a&67108863,(a+=24)>=26&&(a-=26,f++);else if("le"===r)for(i=0,f=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,f++);return this.strip()},f.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=6)i=a(e,r,r+6),this.words[n]|=i<>>26-f&4194303,(f+=24)>=26&&(f-=26,n++);r+6!==t&&(i=a(e,t,r+6),this.words[n]|=i<>>26-f&4194303),this.strip()},f.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var f=e.length-r,o=f%n,a=Math.min(f,f-o)+r,c=0,u=r;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},f.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},f.prototype.inspect=function(){return(this.red?""};var c=["","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"],u=[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],d=[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 h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],f=0|t.words[0],o=i*f,a=67108863&o,s=o/67108864|0;r.words[0]=a;for(var c=1;c>>26,d=67108863&s,h=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=h;p++){var l=c-p|0;u+=(o=(i=0|e.words[l])*(f=0|t.words[p])+d)/67108864|0,d=67108863&o}r.words[c]=0|d,s=0|u}return 0!==s?r.words[c]=0|s:r.length--,r.strip()}f.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,f=0,o=0;o>>24-i&16777215)||o!==this.length-1?c[6-s.length]+s+r:s+r,(i+=2)>=26&&(i-=26,o--)}for(0!==f&&(r=f.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var h=u[e],p=d[e];r="";var l=this.clone();for(l.negative=0;!l.isZero();){var b=l.modn(p).toString(e);r=(l=l.idivn(p)).isZero()?b+r:c[h-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},f.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&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},f.prototype.toJSON=function(){return this.toString(16)},f.prototype.toBuffer=function(e,t){return n(void 0!==o),this.toArrayLike(o,e,t)},f.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},f.prototype.toArrayLike=function(e,t,r){var i=this.byteLength(),f=r||Math.max(1,i);n(i<=f,"byte array longer than desired length"),n(f>0,"Requested array length <= 0"),this.strip();var o,a,s="le"===t,c=new e(f),u=this.clone();if(s){for(a=0;!u.isZero();a++)o=u.andln(255),u.iushrn(8),c[a]=o;for(;a=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},f.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},f.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},f.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},f.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},f.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},f.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},f.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},f.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},f.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},f.prototype.notn=function(e){return this.clone().inotn(e)},f.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var i=0,f=0;f>>26;for(;0!==i&&f>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;fe.length?this.clone().iadd(e):e.clone().iadd(this)},f.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,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var f=0,o=0;o>26,this.words[o]=67108863&t;for(;0!==f&&o>26,this.words[o]=67108863&t;if(0===f&&o>>13,p=0|o[1],l=8191&p,b=p>>>13,y=0|o[2],m=8191&y,v=y>>>13,g=0|o[3],w=8191&g,_=g>>>13,S=0|o[4],E=8191&S,I=S>>>13,A=0|o[5],k=8191&A,T=A>>>13,P=0|o[6],x=8191&P,M=P>>>13,O=0|o[7],B=8191&O,N=O>>>13,R=0|o[8],C=8191&R,U=R>>>13,L=0|o[9],D=8191&L,j=L>>>13,q=0|a[0],K=8191&q,H=q>>>13,z=0|a[1],F=8191&z,V=z>>>13,W=0|a[2],Y=8191&W,G=W>>>13,X=0|a[3],J=8191&X,$=X>>>13,Z=0|a[4],Q=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],fe=8191&ie,oe=ie>>>13,ae=0|a[7],se=8191&ae,ce=ae>>>13,ue=0|a[8],de=8191&ue,he=ue>>>13,pe=0|a[9],le=8191&pe,be=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(c+(n=Math.imul(d,K))|0)+((8191&(i=(i=Math.imul(d,H))+Math.imul(h,K)|0))<<13)|0;c=((f=Math.imul(h,H))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(l,K),i=(i=Math.imul(l,H))+Math.imul(b,K)|0,f=Math.imul(b,H);var me=(c+(n=n+Math.imul(d,F)|0)|0)+((8191&(i=(i=i+Math.imul(d,V)|0)+Math.imul(h,F)|0))<<13)|0;c=((f=f+Math.imul(h,V)|0)+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(m,K),i=(i=Math.imul(m,H))+Math.imul(v,K)|0,f=Math.imul(v,H),n=n+Math.imul(l,F)|0,i=(i=i+Math.imul(l,V)|0)+Math.imul(b,F)|0,f=f+Math.imul(b,V)|0;var ve=(c+(n=n+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,G)|0)+Math.imul(h,Y)|0))<<13)|0;c=((f=f+Math.imul(h,G)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(w,K),i=(i=Math.imul(w,H))+Math.imul(_,K)|0,f=Math.imul(_,H),n=n+Math.imul(m,F)|0,i=(i=i+Math.imul(m,V)|0)+Math.imul(v,F)|0,f=f+Math.imul(v,V)|0,n=n+Math.imul(l,Y)|0,i=(i=i+Math.imul(l,G)|0)+Math.imul(b,Y)|0,f=f+Math.imul(b,G)|0;var ge=(c+(n=n+Math.imul(d,J)|0)|0)+((8191&(i=(i=i+Math.imul(d,$)|0)+Math.imul(h,J)|0))<<13)|0;c=((f=f+Math.imul(h,$)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(E,K),i=(i=Math.imul(E,H))+Math.imul(I,K)|0,f=Math.imul(I,H),n=n+Math.imul(w,F)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,F)|0,f=f+Math.imul(_,V)|0,n=n+Math.imul(m,Y)|0,i=(i=i+Math.imul(m,G)|0)+Math.imul(v,Y)|0,f=f+Math.imul(v,G)|0,n=n+Math.imul(l,J)|0,i=(i=i+Math.imul(l,$)|0)+Math.imul(b,J)|0,f=f+Math.imul(b,$)|0;var we=(c+(n=n+Math.imul(d,Q)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,Q)|0))<<13)|0;c=((f=f+Math.imul(h,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(k,K),i=(i=Math.imul(k,H))+Math.imul(T,K)|0,f=Math.imul(T,H),n=n+Math.imul(E,F)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(I,F)|0,f=f+Math.imul(I,V)|0,n=n+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,Y)|0,f=f+Math.imul(_,G)|0,n=n+Math.imul(m,J)|0,i=(i=i+Math.imul(m,$)|0)+Math.imul(v,J)|0,f=f+Math.imul(v,$)|0,n=n+Math.imul(l,Q)|0,i=(i=i+Math.imul(l,ee)|0)+Math.imul(b,Q)|0,f=f+Math.imul(b,ee)|0;var _e=(c+(n=n+Math.imul(d,re)|0)|0)+((8191&(i=(i=i+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;c=((f=f+Math.imul(h,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(x,K),i=(i=Math.imul(x,H))+Math.imul(M,K)|0,f=Math.imul(M,H),n=n+Math.imul(k,F)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(T,F)|0,f=f+Math.imul(T,V)|0,n=n+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(I,Y)|0,f=f+Math.imul(I,G)|0,n=n+Math.imul(w,J)|0,i=(i=i+Math.imul(w,$)|0)+Math.imul(_,J)|0,f=f+Math.imul(_,$)|0,n=n+Math.imul(m,Q)|0,i=(i=i+Math.imul(m,ee)|0)+Math.imul(v,Q)|0,f=f+Math.imul(v,ee)|0,n=n+Math.imul(l,re)|0,i=(i=i+Math.imul(l,ne)|0)+Math.imul(b,re)|0,f=f+Math.imul(b,ne)|0;var Se=(c+(n=n+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,oe)|0)+Math.imul(h,fe)|0))<<13)|0;c=((f=f+Math.imul(h,oe)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(B,K),i=(i=Math.imul(B,H))+Math.imul(N,K)|0,f=Math.imul(N,H),n=n+Math.imul(x,F)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(M,F)|0,f=f+Math.imul(M,V)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(T,Y)|0,f=f+Math.imul(T,G)|0,n=n+Math.imul(E,J)|0,i=(i=i+Math.imul(E,$)|0)+Math.imul(I,J)|0,f=f+Math.imul(I,$)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,f=f+Math.imul(_,ee)|0,n=n+Math.imul(m,re)|0,i=(i=i+Math.imul(m,ne)|0)+Math.imul(v,re)|0,f=f+Math.imul(v,ne)|0,n=n+Math.imul(l,fe)|0,i=(i=i+Math.imul(l,oe)|0)+Math.imul(b,fe)|0,f=f+Math.imul(b,oe)|0;var Ee=(c+(n=n+Math.imul(d,se)|0)|0)+((8191&(i=(i=i+Math.imul(d,ce)|0)+Math.imul(h,se)|0))<<13)|0;c=((f=f+Math.imul(h,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(C,K),i=(i=Math.imul(C,H))+Math.imul(U,K)|0,f=Math.imul(U,H),n=n+Math.imul(B,F)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(N,F)|0,f=f+Math.imul(N,V)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(M,Y)|0,f=f+Math.imul(M,G)|0,n=n+Math.imul(k,J)|0,i=(i=i+Math.imul(k,$)|0)+Math.imul(T,J)|0,f=f+Math.imul(T,$)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(I,Q)|0,f=f+Math.imul(I,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,f=f+Math.imul(_,ne)|0,n=n+Math.imul(m,fe)|0,i=(i=i+Math.imul(m,oe)|0)+Math.imul(v,fe)|0,f=f+Math.imul(v,oe)|0,n=n+Math.imul(l,se)|0,i=(i=i+Math.imul(l,ce)|0)+Math.imul(b,se)|0,f=f+Math.imul(b,ce)|0;var Ie=(c+(n=n+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;c=((f=f+Math.imul(h,he)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(D,K),i=(i=Math.imul(D,H))+Math.imul(j,K)|0,f=Math.imul(j,H),n=n+Math.imul(C,F)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(U,F)|0,f=f+Math.imul(U,V)|0,n=n+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,G)|0)+Math.imul(N,Y)|0,f=f+Math.imul(N,G)|0,n=n+Math.imul(x,J)|0,i=(i=i+Math.imul(x,$)|0)+Math.imul(M,J)|0,f=f+Math.imul(M,$)|0,n=n+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(T,Q)|0,f=f+Math.imul(T,ee)|0,n=n+Math.imul(E,re)|0,i=(i=i+Math.imul(E,ne)|0)+Math.imul(I,re)|0,f=f+Math.imul(I,ne)|0,n=n+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,oe)|0)+Math.imul(_,fe)|0,f=f+Math.imul(_,oe)|0,n=n+Math.imul(m,se)|0,i=(i=i+Math.imul(m,ce)|0)+Math.imul(v,se)|0,f=f+Math.imul(v,ce)|0,n=n+Math.imul(l,de)|0,i=(i=i+Math.imul(l,he)|0)+Math.imul(b,de)|0,f=f+Math.imul(b,he)|0;var Ae=(c+(n=n+Math.imul(d,le)|0)|0)+((8191&(i=(i=i+Math.imul(d,be)|0)+Math.imul(h,le)|0))<<13)|0;c=((f=f+Math.imul(h,be)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(D,F),i=(i=Math.imul(D,V))+Math.imul(j,F)|0,f=Math.imul(j,V),n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(U,Y)|0,f=f+Math.imul(U,G)|0,n=n+Math.imul(B,J)|0,i=(i=i+Math.imul(B,$)|0)+Math.imul(N,J)|0,f=f+Math.imul(N,$)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(M,Q)|0,f=f+Math.imul(M,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(T,re)|0,f=f+Math.imul(T,ne)|0,n=n+Math.imul(E,fe)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(I,fe)|0,f=f+Math.imul(I,oe)|0,n=n+Math.imul(w,se)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,se)|0,f=f+Math.imul(_,ce)|0,n=n+Math.imul(m,de)|0,i=(i=i+Math.imul(m,he)|0)+Math.imul(v,de)|0,f=f+Math.imul(v,he)|0;var ke=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(i=(i=i+Math.imul(l,be)|0)+Math.imul(b,le)|0))<<13)|0;c=((f=f+Math.imul(b,be)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(D,Y),i=(i=Math.imul(D,G))+Math.imul(j,Y)|0,f=Math.imul(j,G),n=n+Math.imul(C,J)|0,i=(i=i+Math.imul(C,$)|0)+Math.imul(U,J)|0,f=f+Math.imul(U,$)|0,n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(N,Q)|0,f=f+Math.imul(N,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(M,re)|0,f=f+Math.imul(M,ne)|0,n=n+Math.imul(k,fe)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(T,fe)|0,f=f+Math.imul(T,oe)|0,n=n+Math.imul(E,se)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(I,se)|0,f=f+Math.imul(I,ce)|0,n=n+Math.imul(w,de)|0,i=(i=i+Math.imul(w,he)|0)+Math.imul(_,de)|0,f=f+Math.imul(_,he)|0;var Te=(c+(n=n+Math.imul(m,le)|0)|0)+((8191&(i=(i=i+Math.imul(m,be)|0)+Math.imul(v,le)|0))<<13)|0;c=((f=f+Math.imul(v,be)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(D,J),i=(i=Math.imul(D,$))+Math.imul(j,J)|0,f=Math.imul(j,$),n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(U,Q)|0,f=f+Math.imul(U,ee)|0,n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(N,re)|0,f=f+Math.imul(N,ne)|0,n=n+Math.imul(x,fe)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(M,fe)|0,f=f+Math.imul(M,oe)|0,n=n+Math.imul(k,se)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(T,se)|0,f=f+Math.imul(T,ce)|0,n=n+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(I,de)|0,f=f+Math.imul(I,he)|0;var Pe=(c+(n=n+Math.imul(w,le)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,le)|0))<<13)|0;c=((f=f+Math.imul(_,be)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(D,Q),i=(i=Math.imul(D,ee))+Math.imul(j,Q)|0,f=Math.imul(j,ee),n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(U,re)|0,f=f+Math.imul(U,ne)|0,n=n+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,oe)|0)+Math.imul(N,fe)|0,f=f+Math.imul(N,oe)|0,n=n+Math.imul(x,se)|0,i=(i=i+Math.imul(x,ce)|0)+Math.imul(M,se)|0,f=f+Math.imul(M,ce)|0,n=n+Math.imul(k,de)|0,i=(i=i+Math.imul(k,he)|0)+Math.imul(T,de)|0,f=f+Math.imul(T,he)|0;var xe=(c+(n=n+Math.imul(E,le)|0)|0)+((8191&(i=(i=i+Math.imul(E,be)|0)+Math.imul(I,le)|0))<<13)|0;c=((f=f+Math.imul(I,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(D,re),i=(i=Math.imul(D,ne))+Math.imul(j,re)|0,f=Math.imul(j,ne),n=n+Math.imul(C,fe)|0,i=(i=i+Math.imul(C,oe)|0)+Math.imul(U,fe)|0,f=f+Math.imul(U,oe)|0,n=n+Math.imul(B,se)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(N,se)|0,f=f+Math.imul(N,ce)|0,n=n+Math.imul(x,de)|0,i=(i=i+Math.imul(x,he)|0)+Math.imul(M,de)|0,f=f+Math.imul(M,he)|0;var Me=(c+(n=n+Math.imul(k,le)|0)|0)+((8191&(i=(i=i+Math.imul(k,be)|0)+Math.imul(T,le)|0))<<13)|0;c=((f=f+Math.imul(T,be)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(D,fe),i=(i=Math.imul(D,oe))+Math.imul(j,fe)|0,f=Math.imul(j,oe),n=n+Math.imul(C,se)|0,i=(i=i+Math.imul(C,ce)|0)+Math.imul(U,se)|0,f=f+Math.imul(U,ce)|0,n=n+Math.imul(B,de)|0,i=(i=i+Math.imul(B,he)|0)+Math.imul(N,de)|0,f=f+Math.imul(N,he)|0;var Oe=(c+(n=n+Math.imul(x,le)|0)|0)+((8191&(i=(i=i+Math.imul(x,be)|0)+Math.imul(M,le)|0))<<13)|0;c=((f=f+Math.imul(M,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(D,se),i=(i=Math.imul(D,ce))+Math.imul(j,se)|0,f=Math.imul(j,ce),n=n+Math.imul(C,de)|0,i=(i=i+Math.imul(C,he)|0)+Math.imul(U,de)|0,f=f+Math.imul(U,he)|0;var Be=(c+(n=n+Math.imul(B,le)|0)|0)+((8191&(i=(i=i+Math.imul(B,be)|0)+Math.imul(N,le)|0))<<13)|0;c=((f=f+Math.imul(N,be)|0)+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,n=Math.imul(D,de),i=(i=Math.imul(D,he))+Math.imul(j,de)|0,f=Math.imul(j,he);var Ne=(c+(n=n+Math.imul(C,le)|0)|0)+((8191&(i=(i=i+Math.imul(C,be)|0)+Math.imul(U,le)|0))<<13)|0;c=((f=f+Math.imul(U,be)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863;var Re=(c+(n=Math.imul(D,le))|0)+((8191&(i=(i=Math.imul(D,be))+Math.imul(j,le)|0))<<13)|0;return c=((f=Math.imul(j,be))+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,s[0]=ye,s[1]=me,s[2]=ve,s[3]=ge,s[4]=we,s[5]=_e,s[6]=Se,s[7]=Ee,s[8]=Ie,s[9]=Ae,s[10]=ke,s[11]=Te,s[12]=Pe,s[13]=xe,s[14]=Me,s[15]=Oe,s[16]=Be,s[17]=Ne,s[18]=Re,0!==c&&(s[19]=c,r.length++),r};function l(e,t,r){return(new b).mulp(e,t,r)}function b(e,t){this.x=e,this.y=t}Math.imul||(p=h),f.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):r<63?h(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,f=0;f>>26)|0)>>>26,o&=67108863}r.words[f]=a,n=o,o=i}return 0!==n?r.words[f]=n:r.length--,r.strip()}(this,e,t):l(this,e,t)},b.prototype.makeRBT=function(e){for(var t=new Array(e),r=f.prototype._countBits(e)-1,n=0;n>=1;return n},b.prototype.permute=function(e,t,r,n,i,f){for(var o=0;o>>=1)i++;return 1<>>=13,r[2*o+1]=8191&f,f>>>=13;for(o=2*t;o>=26,t+=i/67108864|0,t+=f>>>26,this.words[r]=67108863&f}return 0!==t&&(this.words[r]=t,this.length++),this},f.prototype.muln=function(e){return this.clone().imuln(e)},f.prototype.sqr=function(){return this.mul(this)},f.prototype.isqr=function(){return this.imul(this.clone())},f.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>i}return t}(e);if(0===t.length)return new f(1);for(var r=this,n=0;n=0);var t,r=e%26,i=(e-r)/26,f=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t=0),i=t?(t-t%26)/26:0;var f=e%26,o=Math.min((e-f)/26,this.length),a=67108863^67108863>>>f<o)for(this.length-=o,c=0;c=0&&(0!==u||c>=i);c--){var d=0|this.words[c];this.words[c]=u<<26-f|d>>>f,u=d&a}return s&&0!==u&&(s.words[s.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},f.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},f.prototype.shln=function(e){return this.clone().ishln(e)},f.prototype.ushln=function(e){return this.clone().iushln(e)},f.prototype.shrn=function(e){return this.clone().ishrn(e)},f.prototype.ushrn=function(e){return this.clone().iushrn(e)},f.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>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},f.prototype.isubn=function(e){if(n("number"==typeof e),n(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>26)-(s/67108864|0),this.words[i+r]=67108863&f}for(;i>26,this.words[i+r]=67108863&f;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i>26,this.words[i]=67108863&f;return this.negative=1,this.strip()},f.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var a,s=n.length-i.length;if("mod"!==t){(a=new f(null)).length=s+1,a.words=new Array(a.length);for(var c=0;c=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,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}},f.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new f(0),mod:new f(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:i,mod:o}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:a.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new f(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new f(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new f(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,o,a},f.prototype.div=function(e){return this.divmod(e,"div",!1).div},f.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},f.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},f.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),i=e.andln(1),f=r.cmp(n);return f<0||1===i&&0===f?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},f.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,i=this.length-1;i>=0;i--)r=(t*r+(0|this.words[i]))%e;return r},f.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*t;this.words[r]=i/e|0,t=i%e}return this.strip()},f.prototype.divn=function(e){return this.clone().idivn(e)},f.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new f(1),o=new f(0),a=new f(0),s=new f(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var u=r.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;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(d)),i.iushrn(1),o.iushrn(1);for(var l=0,b=1;0==(r.words[0]&b)&&l<26;++l,b<<=1);if(l>0)for(r.iushrn(l);l-- >0;)(a.isOdd()||s.isOdd())&&(a.iadd(u),s.isub(d)),a.iushrn(1),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),i.isub(a),o.isub(s)):(r.isub(t),a.isub(i),s.isub(o))}return{a:a,b:s,gcd:r.iushln(c)}},f.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,o=new f(1),a=new f(0),s=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(t.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(s),o.iushrn(1);for(var d=0,h=1;0==(r.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(r.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(s),a.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(a)):(r.isub(t),a.isub(o))}return(i=0===t.cmpn(1)?o:a).cmpn(0)<0&&i.iadd(e),i},f.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 i=t.cmp(r);if(i<0){var f=t;t=r,r=f}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},f.prototype.invm=function(e){return this.egcd(e).a.umod(e)},f.prototype.isEven=function(){return 0==(1&this.words[0])},f.prototype.isOdd=function(){return 1==(1&this.words[0])},f.prototype.andln=function(e){return this.words[0]&e},f.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<>>26,a&=67108863,this.words[o]=a}return 0!==f&&(this.words[o]=f,this.length++),this},f.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},f.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){ni&&(t=1);break}}return t},f.prototype.gtn=function(e){return 1===this.cmpn(e)},f.prototype.gt=function(e){return 1===this.cmp(e)},f.prototype.gten=function(e){return this.cmpn(e)>=0},f.prototype.gte=function(e){return this.cmp(e)>=0},f.prototype.ltn=function(e){return-1===this.cmpn(e)},f.prototype.lt=function(e){return-1===this.cmp(e)},f.prototype.lten=function(e){return this.cmpn(e)<=0},f.prototype.lte=function(e){return this.cmp(e)<=0},f.prototype.eqn=function(e){return 0===this.cmpn(e)},f.prototype.eq=function(e){return 0===this.cmp(e)},f.red=function(e){return new S(e)},f.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},f.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},f.prototype._forceRed=function(e){return this.red=e,this},f.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},f.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},f.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},f.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},f.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},f.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},f.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},f.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},f.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},f.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},f.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},f.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},f.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},f.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function m(e,t){this.name=e,this.p=new f(t,16),this.n=this.p.bitLength(),this.k=new f(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function g(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=f._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new f(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)}m.prototype._tmp=function(){var e=new f(null);return e.words=new Array(Math.ceil(this.n/13)),e},m.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=t0?r.isub(this.p):r.strip(),r},m.prototype.split=function(e,t){e.iushrn(this.n,0,t)},m.prototype.imulK=function(e){return e.imul(this.k)},i(v,m),v.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n>>22,i=f}i>>>=22,e.words[n-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},v.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>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},f._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new g;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return y[e]=t,t},S.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.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)},S.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},S.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)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new f(1)).iushrn(2);return this.pow(e,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var a=new f(1).toRed(this),s=a.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new f(2*u*u).toRed(this);0!==this.pow(u,c).cmp(s);)u.redIAdd(s);for(var d=this.pow(u,i),h=this.pow(e,i.addn(1).iushrn(1)),p=this.pow(e,i),l=o;0!==p.cmp(a);){for(var b=p,y=0;0!==b.cmp(a);y++)b=b.redSqr();n(y=0;n--){for(var c=t.words[n],u=s-1;u>=0;u--){var d=c>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==o?(o<<=1,o|=d,(4===++a||0===n&&0===u)&&(i=this.mul(i,r[o]),a=0,o=0)):a=0}s=26}return i},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},f.mont=function(e){return new E(e)},i(E,S),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.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),i=r.isub(n).iushrn(this.shift),f=i;return i.cmp(this.m)>=0?f=i.isub(this.m):i.cmpn(0)<0&&(f=i.iadd(this.m)),f._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new f(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)}).call(this,r(69)(e))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(326),i=r(327),f=r(34),o=r(70),a=r(53),s=r(328),c=r(13);t.OPS=r(180);const u=r(329),d=t.OPS.OP_RESERVED;function h(e){return f.Buffer(e)||function(e){return f.Number(e)&&(e===t.OPS.OP_0||e>=t.OPS.OP_1&&e<=t.OPS.OP_16||e===t.OPS.OP_1NEGATE)}(e)}function p(e){return f.Array(e)&&e.every(h)}function l(e){return 0===e.length?t.OPS.OP_0:1===e.length?e[0]>=1&&e[0]<=16?d+e[0]:129===e[0]?t.OPS.OP_1NEGATE:void 0:void 0}function b(t){return e.isBuffer(t)}function y(t){return e.isBuffer(t)}function m(t){if(b(t))return t;c(f.Array,t);const r=t.reduce((e,t)=>y(t)?1===t.length&&void 0!==l(t)?e+1:e+s.encodingLength(t.length)+t.length:e+1,0),n=e.allocUnsafe(r);let i=0;if(t.forEach(e=>{if(y(e)){const t=l(e);if(void 0!==t)return n.writeUInt8(t,i),void(i+=1);i+=s.encode(n,e.length,i),e.copy(n,i),i+=e.length}else n.writeUInt8(e,i),i+=1}),i!==n.length)throw new Error("Could not decode chunks");return n}function v(e){if(r=e,f.Array(r))return e;var r;c(f.Buffer,e);const n=[];let i=0;for(;it.OPS.OP_0&&r<=t.OPS.OP_PUSHDATA4){const t=s.decode(e,i);if(null===t)return null;if(i+=t.size,i+t.number>e.length)return null;const r=e.slice(i,i+t.number);i+=t.number;const f=l(r);void 0!==f?n.push(f):n.push(r)}else n.push(r),i+=1}return n}function g(e){const t=-129&e;return t>0&&t<4}t.isPushOnly=p,t.compile=m,t.decompile=v,t.toASM=function(e){return b(e)&&(e=v(e)),e.map(e=>{if(y(e)){const t=l(e);if(void 0===t)return e.toString("hex");e=t}return u[e]}).join(" ")},t.fromASM=function(r){return c(f.String,r),m(r.split(" ").map(r=>void 0!==t.OPS[r]?t.OPS[r]:(c(f.Hex,r),e.from(r,"hex"))))},t.toStack=function(r){return r=v(r),c(p,r),r.map(r=>y(r)?r:r===t.OPS.OP_0?e.allocUnsafe(0):n.encode(r-d))},t.isCanonicalPubKey=function(e){return a.isPoint(e)},t.isDefinedHashType=g,t.isCanonicalScriptSignature=function(t){return!!e.isBuffer(t)&&(!!g(t[t.length-1])&&o.check(t.slice(0,-1)))},t.number=n,t.signature=i}).call(this,r(0).Buffer)},function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=r,r.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},function(e,t,r){"use strict";var n=t,i=r(2),f=r(4),o=r(28);n.assert=f,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(e,t){for(var r=[],n=1<=0;){var f;if(i.isOdd()){var o=i.andln(n-1);f=o>(n>>1)-1?(n>>1)-o:o,i.isubn(f)}else f=0;r.push(f);for(var a=0!==i.cmpn(0)&&0===i.andln(n-1)?t+1:1,s=1;s0||t.cmpn(-i)>0;){var f,o,a,s=e.andln(3)+n&3,c=t.andln(3)+i&3;if(3===s&&(s=-1),3===c&&(c=-1),0==(1&s))f=0;else f=3!==(a=e.andln(7)+n&7)&&5!==a||2!==c?s:-s;if(r[0].push(f),0==(1&c))o=0;else o=3!==(a=t.andln(7)+i&7)&&5!==a||2!==s?c:-c;r[1].push(o),2*n===f+1&&(n=1-n),2*i===o+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var n=r(4),i=r(1);function f(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function s(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,r[n++]=63&o|128):f(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i>>0}return o},t.split32=function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n>>24,r[i+1]=f>>>16&255,r[i+2]=f>>>8&255,r[i+3]=255&f):(r[i+3]=f>>>24,r[i+2]=f>>>16&255,r[i+1]=f>>>8&255,r[i]=255&f)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,n){return e+t+r+n>>>0},t.sum32_5=function(e,t,r,n,i){return e+t+r+n+i>>>0},t.sum64=function(e,t,r,n){var i=e[t],f=n+e[t+1]>>>0,o=(f>>0,e[t+1]=f},t.sum64_hi=function(e,t,r,n){return(t+n>>>0>>0},t.sum64_lo=function(e,t,r,n){return t+n>>>0},t.sum64_4_hi=function(e,t,r,n,i,f,o,a){var s=0,c=t;return s+=(c=c+n>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,r,n,i,f,o,a){return t+n+f+a>>>0},t.sum64_5_hi=function(e,t,r,n,i,f,o,a,s,c){var u=0,d=t;return u+=(d=d+n>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,r,n,i,f,o,a,s,c){return t+n+f+a+c>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},function(e,t,r){"use strict";var n=t,i=r(2),f=r(4),o=r(28);n.assert=f,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-s:s,f.isubn(a)):a=0,n[o]=a,f.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n=0,i=0;e.cmpn(-n)>0||t.cmpn(-i)>0;){var f,o,a,s=e.andln(3)+n&3,c=t.andln(3)+i&3;if(3===s&&(s=-1),3===c&&(c=-1),0==(1&s))f=0;else f=3!==(a=e.andln(7)+n&7)&&5!==a||2!==c?s:-s;if(r[0].push(f),0==(1&c))o=0;else o=3!==(a=t.andln(7)+i&7)&&5!==a||2!==s?c:-c;r[1].push(o),2*n===f+1&&(n=1-n),2*i===o+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t,r){"use strict";var n=t,i=r(2),f=r(4),o=r(28);n.assert=f,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-s:s,f.isubn(a)):a=0,n[o]=a,f.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n=0,i=0;e.cmpn(-n)>0||t.cmpn(-i)>0;){var f,o,a,s=e.andln(3)+n&3,c=t.andln(3)+i&3;if(3===s&&(s=-1),3===c&&(c=-1),0==(1&s))f=0;else f=3!==(a=e.andln(7)+n&7)&&5!==a||2!==c?s:-s;if(r[0].push(f),0==(1&c))o=0;else o=3!==(a=t.andln(7)+i&7)&&5!==a||2!==s?c:-c;r[1].push(o),2*n===f+1&&(n=1-n),2*i===o+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t,r){"use strict";var n=r(1),i=r(50),f=r(51),o=r(52),a=r(17);function s(e){a.call(this,"digest"),this._hash=e}n(s,a),s.prototype._update=function(e){this._hash.update(e)},s.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new f:new s(o(e))}},function(e,t){var r,n,i=e.exports={};function f(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(r===setTimeout)return setTimeout(e,0);if((r===f||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:f}catch(e){r=f}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var s,c=[],u=!1,d=-1;function h(){u&&s&&(u=!1,s.length?c=s.concat(c):d=-1,c.length&&p())}function p(){if(!u){var e=a(h);u=!0;for(var t=c.length;t;){for(s=c,c=[];++d1)for(var r=1;rt.maxLength)&&((void 0===t.length||r.length===t.length)&&r.every((function(t,r){try{return h(e,t,n)}catch(e){throw s(e,r)}}))))))}return e=d(e),t=t||{},r.toJSON=function(){var r="["+f(e)+"]";return void 0!==t.length?r+="{"+t.length+"}":void 0===t.minLength&&void 0===t.maxLength||(r+="{"+(void 0===t.minLength?0:t.minLength)+","+(void 0===t.maxLength?1/0:t.maxLength)+"}"),r},r},maybe:function e(t){function r(r,n){return i.Nil(r)||t(r,n,e)}return t=d(t),r.toJSON=function(){return"?"+f(t)},r},map:function(e,t){function r(r,n){if(!i.Object(r))return!1;if(i.Nil(r))return!1;for(var f in r){try{t&&h(t,f,n)}catch(e){throw s(e,f,"key")}try{var o=r[f];h(e,o,n)}catch(e){throw s(e,f)}}return!0}return e=d(e),t&&(t=d(t)),r.toJSON=t?function(){return"{"+f(t)+": "+f(e)+"}"}:function(){return"{"+f(e)+"}"},r},object:function(e){var t={};for(var r in e)t[r]=d(e[r]);function n(e,r){if(!i.Object(e))return!1;if(i.Nil(e))return!1;var n;try{for(n in t){h(t[n],e[n],r)}}catch(e){throw s(e,n)}if(r)for(n in e)if(!t[n])throw new a(void 0,n);return!0}return n.toJSON=function(){return f(t)},n},anyOf:function(){var e=[].slice.call(arguments).map(d);function t(t,r){return e.some((function(e){try{return h(e,t,r)}catch(e){return!1}}))}return t.toJSON=function(){return e.map(f).join("|")},t},allOf:function(){var e=[].slice.call(arguments).map(d);function t(t,r){return e.every((function(e){try{return h(e,t,r)}catch(e){return!1}}))}return t.toJSON=function(){return e.map(f).join(" & ")},t},quacksLike:function(e){function t(t){return e===c(t)}return t.toJSON=function(){return e},t},tuple:function(){var e=[].slice.call(arguments).map(d);function t(t,r){return!i.Nil(t)&&(!i.Nil(t.length)&&((!r||t.length===e.length)&&e.every((function(e,n){try{return h(e,t[n],r)}catch(e){throw s(e,n)}}))))}return t.toJSON=function(){return"("+e.map(f).join(", ")+")"},t},value:function(e){function t(t){return t===e}return t.toJSON=function(){return e},t}};function d(e){if(i.String(e))return"?"===e[0]?u.maybe(e.slice(1)):i[e]||u.quacksLike(e);if(e&&i.Object(e)){if(i.Array(e)){if(1!==e.length)throw new TypeError("Expected compile() parameter of type Array of length 1");return u.arrayOf(e[0])}return u.object(e)}return i.Function(e)?e:u.value(e)}function h(e,t,r,n){if(i.Function(e)){if(e(t,r))return!0;throw new o(n||e,t)}return h(d(e),t,r)}for(var p in u.oneOf=u.anyOf,i)h[p]=i[p];for(p in u)h[p]=u[p];var l=r(321);for(p in l)h[p]=l[p];h.compile=d,h.TfTypeError=o,h.TfPropertyTypeError=a,e.exports=h},function(e,t,r){var n=t;n.utils=r(7),n.common=r(20),n.sha=r(131),n.ripemd=r(135),n.hmac=r(136),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},function(e,t,r){"use strict";var n=r(27),i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=d;var f=r(23);f.inherits=r(1);var o=r(73),a=r(46);f.inherits(d,o);for(var s=i(a.prototype),c=0;c=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var f=this._hash();return e?f.toString(e):f},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,r){"use strict";var n=r(7),i=r(4);function f(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=f,f.prototype.update=function(e,t){if(e=n.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=n.join32(e,0,e.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,f=8;f4294967295)throw new RangeError("requested too many random bytes");var r=i.allocUnsafe(e);if(e>0)if(e>65536)for(var o=0;o0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=s,s.prototype.point=function(){throw new Error("Not implemented")},s.prototype.validate=function(){throw new Error("Not implemented")},s.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),n=f(t,1),i=(1<=s;t--)c=(c<<1)+n[t];o.push(c)}for(var u=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(s=0;s=0;c--){for(t=0;c>=0&&0===o[c];c--)t++;if(c>=0&&t++,s=s.dblp(t),c<0)break;var u=o[c];a(0!==u),s="affine"===e.type?u>0?s.mixedAdd(i[u-1>>1]):s.mixedAdd(i[-u-1>>1].neg()):u>0?s.add(i[u-1>>1]):s.add(i[-u-1>>1].neg())}return"affine"===e.type?s.toP():s},s.prototype._wnafMulAdd=function(e,t,r,n,i){for(var a=this._wnafT1,s=this._wnafT2,c=this._wnafT3,u=0,d=0;d=1;d-=2){var p=d-1,l=d;if(1===a[p]&&1===a[l]){var b=[t[p],null,null,t[l]];0===t[p].y.cmp(t[l].y)?(b[1]=t[p].add(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg())):0===t[p].y.cmp(t[l].y.redNeg())?(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].add(t[l].neg())):(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],m=o(r[p],r[l]);u=Math.max(m[0].length,u),c[p]=new Array(u),c[l]=new Array(u);for(var v=0;v=0;d--){for(var E=0;d>=0;){var I=!0;for(v=0;v=0&&E++,_=_.dblp(E),d<0)break;for(v=0;v0?A=s[v][k-1>>1]:k<0&&(A=s[v][-k-1>>1].neg()),_="affine"===A.type?_.mixedAdd(A):_.add(A))}}for(d=0;d=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i>8,o=255&i;f?r.push(f,o):r.push(o)}return r},n.zero2=i,n.toHex=f,n.encode=function(e,t){return"hex"===t?f(e):e}},function(e,t,r){(function(t){e.exports=function(e,r){for(var n=Math.min(e.length,r.length),i=new t(n),f=0;f"BIP32 derivation path",t.Signer=function(e){return(n.Buffer(e.publicKey)||"function"==typeof e.getPublicKey)&&"function"==typeof e.sign};t.Satoshi=function(e){return n.UInt53(e)&&e<=21e14},t.ECPoint=n.quacksLike("Point"),t.Network=n.compile({messagePrefix:n.oneOf(n.Buffer,n.String),bip32:{public:n.UInt32,private:n.UInt32},pubKeyHash:n.UInt8,scriptHash:n.UInt8,wif:n.UInt8}),t.Buffer256bit=n.BufferN(32),t.Hash160bit=n.BufferN(20),t.Hash256bit=n.BufferN(32),t.Number=n.Number,t.Array=n.Array,t.Boolean=n.Boolean,t.String=n.String,t.Buffer=n.Buffer,t.Hex=n.Hex,t.maybe=n.maybe,t.tuple=n.tuple,t.UInt8=n.UInt8,t.UInt32=n.UInt32,t.Function=n.Function,t.BufferN=n.BufferN,t.Null=n.Null,t.oneOf=n.oneOf},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10);function i(e){try{return n("rmd160").update(e).digest()}catch(t){return n("ripemd160").update(e).digest()}}function f(e){return n("sha256").update(e).digest()}t.ripemd160=i,t.sha1=function(e){return n("sha1").update(e).digest()},t.sha256=f,t.hash160=function(e){return i(f(e))},t.hash256=function(e){return f(f(e))}},function(e,t,r){"use strict";var n,i=t,f=r(14),o=r(57),a=r(5).assert;function s(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function c(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new s(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=s,c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:f.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:f.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:f.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:f.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:f.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(137)}catch(e){n=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:f.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(e,t,r){e.exports=i;var n=r(44).EventEmitter;function i(){n.call(this)}r(1)(i,n),i.Readable=r(45),i.Writable=r(159),i.Duplex=r(160),i.Transform=r(161),i.PassThrough=r(162),i.Stream=i,i.prototype.pipe=function(e,t){var r=this;function i(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function f(){r.readable&&r.resume&&r.resume()}r.on("data",i),e.on("drain",f),e._isStdio||t&&!1===t.end||(r.on("end",a),r.on("close",s));var o=!1;function a(){o||(o=!0,e.end())}function s(){o||(o=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(u(),0===n.listenerCount(this,"error"))throw e}function u(){r.removeListener("data",i),e.removeListener("drain",f),r.removeListener("end",a),r.removeListener("close",s),r.removeListener("error",c),e.removeListener("error",c),r.removeListener("end",u),r.removeListener("close",u),e.removeListener("close",u)}return r.on("error",c),e.on("error",c),r.on("end",u),r.on("close",u),e.on("close",u),e.emit("pipe",r),e}},function(e,t,r){var n=r(12).Buffer;function i(e){n.isBuffer(e)||(e=n.from(e));for(var t=e.length/4|0,r=new Array(t),i=0;i>>24]^u[l>>>16&255]^d[b>>>8&255]^h[255&y]^t[m++],o=c[l>>>24]^u[b>>>16&255]^d[y>>>8&255]^h[255&p]^t[m++],a=c[b>>>24]^u[y>>>16&255]^d[p>>>8&255]^h[255&l]^t[m++],s=c[y>>>24]^u[p>>>16&255]^d[l>>>8&255]^h[255&b]^t[m++],p=f,l=o,b=a,y=s;return f=(n[p>>>24]<<24|n[l>>>16&255]<<16|n[b>>>8&255]<<8|n[255&y])^t[m++],o=(n[l>>>24]<<24|n[b>>>16&255]<<16|n[y>>>8&255]<<8|n[255&p])^t[m++],a=(n[b>>>24]<<24|n[y>>>16&255]<<16|n[p>>>8&255]<<8|n[255&l])^t[m++],s=(n[y>>>24]<<24|n[p>>>16&255]<<16|n[l>>>8&255]<<8|n[255&b])^t[m++],[f>>>=0,o>>>=0,a>>>=0,s>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],s=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],i=[[],[],[],[]],f=[[],[],[],[]],o=0,a=0,s=0;s<256;++s){var c=a^a<<1^a<<2^a<<3^a<<4;c=c>>>8^255&c^99,r[o]=c,n[c]=o;var u=e[o],d=e[u],h=e[d],p=257*e[c]^16843008*c;i[0][o]=p<<24|p>>>8,i[1][o]=p<<16|p>>>16,i[2][o]=p<<8|p>>>24,i[3][o]=p,p=16843009*h^65537*d^257*u^16843008*o,f[0][c]=p<<24|p>>>8,f[1][c]=p<<16|p>>>16,f[2][c]=p<<8|p>>>24,f[3][c]=p,0===o?o=a=1:(o=u^e[e[e[h^u]]],a^=e[e[a]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:f}}();function c(e){this._key=i(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),i=[],f=0;f>>24,o=s.SBOX[o>>>24]<<24|s.SBOX[o>>>16&255]<<16|s.SBOX[o>>>8&255]<<8|s.SBOX[255&o],o^=a[f/t|0]<<24):t>6&&f%t==4&&(o=s.SBOX[o>>>24]<<24|s.SBOX[o>>>16&255]<<16|s.SBOX[o>>>8&255]<<8|s.SBOX[255&o]),i[f]=i[f-t]^o}for(var c=[],u=0;u>>24]]^s.INV_SUB_MIX[1][s.SBOX[h>>>16&255]]^s.INV_SUB_MIX[2][s.SBOX[h>>>8&255]]^s.INV_SUB_MIX[3][s.SBOX[255&h]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return o(e=i(e),this._keySchedule,s.SUB_MIX,s.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=n.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r},c.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var r=o(e,this._invKeySchedule,s.INV_SUB_MIX,s.INV_SBOX,this._nRounds),f=n.allocUnsafe(16);return f.writeUInt32BE(r[0],0),f.writeUInt32BE(r[3],4),f.writeUInt32BE(r[2],8),f.writeUInt32BE(r[1],12),f},c.prototype.scrub=function(){f(this._keySchedule),f(this._invKeySchedule),f(this._key)},e.exports.AES=c},function(e,t,r){var n=r(212).Buffer,i=r(50);e.exports=function(e,t,r,f){if(n.isBuffer(e)||(e=n.from(e,"binary")),t&&(n.isBuffer(t)||(t=n.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=r/8,a=n.alloc(o),s=n.alloc(f||0),c=n.alloc(0);o>0||f>0;){var u=new i;u.update(c),u.update(e),t&&u.update(t),c=u.digest();var d=0;if(o>0){var h=a.length-o;d=Math.min(o,c.length),c.copy(a,h,0,d),o-=d}if(d0){var p=s.length-f,l=Math.min(f,c.length-d);c.copy(s,p,d,d+l),f-=l}}return c.fill(0),{key:a,iv:s}}},function(e,t,r){"use strict";var n=r(2),i=r(8),f=i.getNAF,o=i.getJSF,a=i.assert;function s(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=s,s.prototype.point=function(){throw new Error("Not implemented")},s.prototype.validate=function(){throw new Error("Not implemented")},s.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),n=f(t,1,this._bitLength),i=(1<=s;t--)c=(c<<1)+n[t];o.push(c)}for(var u=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(s=0;s=0;c--){for(t=0;c>=0&&0===o[c];c--)t++;if(c>=0&&t++,s=s.dblp(t),c<0)break;var u=o[c];a(0!==u),s="affine"===e.type?u>0?s.mixedAdd(i[u-1>>1]):s.mixedAdd(i[-u-1>>1].neg()):u>0?s.add(i[u-1>>1]):s.add(i[-u-1>>1].neg())}return"affine"===e.type?s.toP():s},s.prototype._wnafMulAdd=function(e,t,r,n,i){for(var a=this._wnafT1,s=this._wnafT2,c=this._wnafT3,u=0,d=0;d=1;d-=2){var p=d-1,l=d;if(1===a[p]&&1===a[l]){var b=[t[p],null,null,t[l]];0===t[p].y.cmp(t[l].y)?(b[1]=t[p].add(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg())):0===t[p].y.cmp(t[l].y.redNeg())?(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].add(t[l].neg())):(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],m=o(r[p],r[l]);u=Math.max(m[0].length,u),c[p]=new Array(u),c[l]=new Array(u);for(var v=0;v=0;d--){for(var E=0;d>=0;){var I=!0;for(v=0;v=0&&E++,_=_.dblp(E),d<0)break;for(v=0;v0?A=s[v][k-1>>1]:k<0&&(A=s[v][-k-1>>1].neg()),_="affine"===A.type?_.mixedAdd(A):_.add(A))}}for(d=0;d=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=s,s.prototype.point=function(){throw new Error("Not implemented")},s.prototype.validate=function(){throw new Error("Not implemented")},s.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),n=f(t,1,this._bitLength),i=(1<=s;t--)c=(c<<1)+n[t];o.push(c)}for(var u=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(s=0;s=0;c--){for(t=0;c>=0&&0===o[c];c--)t++;if(c>=0&&t++,s=s.dblp(t),c<0)break;var u=o[c];a(0!==u),s="affine"===e.type?u>0?s.mixedAdd(i[u-1>>1]):s.mixedAdd(i[-u-1>>1].neg()):u>0?s.add(i[u-1>>1]):s.add(i[-u-1>>1].neg())}return"affine"===e.type?s.toP():s},s.prototype._wnafMulAdd=function(e,t,r,n,i){for(var a=this._wnafT1,s=this._wnafT2,c=this._wnafT3,u=0,d=0;d=1;d-=2){var p=d-1,l=d;if(1===a[p]&&1===a[l]){var b=[t[p],null,null,t[l]];0===t[p].y.cmp(t[l].y)?(b[1]=t[p].add(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg())):0===t[p].y.cmp(t[l].y.redNeg())?(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].add(t[l].neg())):(b[1]=t[p].toJ().mixedAdd(t[l]),b[2]=t[p].toJ().mixedAdd(t[l].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],m=o(r[p],r[l]);u=Math.max(m[0].length,u),c[p]=new Array(u),c[l]=new Array(u);for(var v=0;v=0;d--){for(var E=0;d>=0;){var I=!0;for(v=0;v=0&&E++,_=_.dblp(E),d<0)break;for(v=0;v0?A=s[v][k-1>>1]:k<0&&(A=s[v][-k-1>>1].neg()),_="affine"===A.type?_.mixedAdd(A):_.add(A))}}for(d=0;d=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=o.length,console&&console.warn}return e}function d(){for(var e=[],t=0;t0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=i[e];if(void 0===s)return!1;if("function"==typeof s)f(s,this,t);else{var c=s.length,u=b(s,c);for(r=0;r=0;f--)if(r[f]===t||r[f].listener===t){o=r[f].listener,i=f;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):l.call(e,t)},a.prototype.listenerCount=l,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){(t=e.exports=r(73)).Stream=t,t.Readable=t,t.Writable=r(46),t.Duplex=r(15),t.Transform=r(76),t.PassThrough=r(158)},function(e,t,r){"use strict";(function(t,n,i){var f=r(27);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=v;var a,s=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?n:f.nextTick;v.WritableState=m;var c=r(23);c.inherits=r(1);var u={deprecate:r(156)},d=r(74),h=r(33).Buffer,p=i.Uint8Array||function(){};var l,b=r(75);function y(){}function m(e,t){a=a||r(15),e=e||{};var n=t instanceof a;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,c=e.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(c||0===c)?c:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var d=!1===e.decodeStrings;this.decodeStrings=!d,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(f.nextTick(i,n),f.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),I(e,t))}(e,r,n,t,i);else{var o=S(r);o||r.corked||r.bufferProcessing||!r.bufferedRequest||_(e,r),n?s(w,e,r,o,i):w(e,r,o,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function v(e){if(a=a||r(15),!(l.call(v,this)||this instanceof a))return new v(e);this._writableState=new m(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),d.call(this)}function g(e,t,r,n,i,f,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,f,t.onwrite),t.sync=!1}function w(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),I(e,t)}function _(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),f=t.corkedRequestsFree;f.entry=r;for(var a=0,s=!0;r;)i[a]=r,r.isBuf||(s=!1),r=r.next,a+=1;i.allBuffers=s,g(e,t,!0,t.length,i,"",f.finish),t.pendingcb++,t.lastBufferedRequest=null,f.next?(t.corkedRequestsFree=f.next,f.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,u=r.encoding,d=r.callback;if(g(e,t,!1,t.objectMode?1:c.length,c,u,d),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function E(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var r=S(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,f.nextTick(E,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}c.inherits(v,d),m.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(m.prototype,"buffer",{get:u.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(l=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return!!l.call(this,e)||this===v&&(e&&e._writableState instanceof m)}})):l=function(e){return e instanceof this},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},v.prototype.write=function(e,t,r){var n,i=this._writableState,o=!1,a=!i.objectMode&&(n=e,h.isBuffer(n)||n instanceof p);return a&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(r=t,t=null),a?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=y),i.ended?function(e,t){var r=new Error("write after end");e.emit("error",r),f.nextTick(t,r)}(this,r):(a||function(e,t,r,n){var i=!0,o=!1;return null===r?o=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),f.nextTick(n,o),i=!1),i}(this,i,e,r))&&(i.pendingcb++,o=function(e,t,r,n,i,f){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,r));return t}(t,n,i);n!==o&&(r=!0,i="buffer",n=o)}var a=t.objectMode?1:n.length;t.length+=a;var s=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(v.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),v.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},v.prototype._writev=null,v.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,I(e,t),r&&(t.finished?f.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),v.prototype.destroy=b.destroy,v.prototype._undestroy=b.undestroy,v.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,r(11),r(154).setImmediate,r(6))},function(e,t,r){"use strict";var n=r(157).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function f(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=s,this.end=c,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=u,this.end=d,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function s(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=f,f.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},f.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,r){"use strict";(function(t){var n=r(175);function i(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,f=Math.min(r,n);i=0;c--)if(u[c]!==d[c])return!1;for(c=u.length-1;c>=0;c--)if(a=u[c],!g(e[a],t[a],r,n))return!1;return!0}(e,t,r,n))}return r?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function _(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function S(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&m(i,r,"Missing expected exception"+n);var f="string"==typeof n,a=!e&&i&&!r;if((!e&&o.isError(i)&&f&&_(i,r)||a)&&m(i,r,"Got unwanted exception"+n),e&&i&&r&&!_(i,r)||!e&&i)throw i}h.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return b(y(e.actual),128)+" "+e.operator+" "+b(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||m;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=l(t),f=n.indexOf("\n"+i);if(f>=0){var o=n.indexOf("\n",f+1);n=n.substring(o+1)}this.stack=n}}},o.inherits(h.AssertionError,Error),h.fail=m,h.ok=v,h.equal=function(e,t,r){e!=t&&m(e,t,r,"==",h.equal)},h.notEqual=function(e,t,r){e==t&&m(e,t,r,"!=",h.notEqual)},h.deepEqual=function(e,t,r){g(e,t,!1)||m(e,t,r,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(e,t,r){g(e,t,!0)||m(e,t,r,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(e,t,r){g(e,t,!1)&&m(e,t,r,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function e(t,r,n){g(t,r,!0)&&m(t,r,n,"notDeepStrictEqual",e)},h.strictEqual=function(e,t,r){e!==t&&m(e,t,r,"===",h.strictEqual)},h.notStrictEqual=function(e,t,r){e===t&&m(e,t,r,"!==",h.notStrictEqual)},h.throws=function(e,t,r){S(!0,e,t,r)},h.doesNotThrow=function(e,t,r){S(!1,e,t,r)},h.ifError=function(e){if(e)throw e},h.strict=n((function e(t,r){t||m(t,!0,r,"==",e)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var E=Object.keys||function(e){var t=[];for(var r in e)a.call(e,r)&&t.push(r);return t}}).call(this,r(6))},function(e,t,r){"use strict";var n=r(14),i=r(28),f=r(4);function o(e){if(!(this instanceof o))return new o(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),r=i.toArray(e.nonce,e.nonceEnc||"hex"),n=i.toArray(e.pers,e.persEnc||"hex");f(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}e.exports=o,o.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},o.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var f=[];f.length>>32-t}function c(e,t,r,n,i,f,o){return s(e+(t&r|~t&n)+i+f|0,o)+t|0}function u(e,t,r,n,i,f,o){return s(e+(t&n|r&~n)+i+f|0,o)+t|0}function d(e,t,r,n,i,f,o){return s(e+(t^r^n)+i+f|0,o)+t|0}function h(e,t,r,n,i,f,o){return s(e+(r^(t|~n))+i+f|0,o)+t|0}n(a,i),a.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,i=this._c,f=this._d;r=c(r,n,i,f,e[0],3614090360,7),f=c(f,r,n,i,e[1],3905402710,12),i=c(i,f,r,n,e[2],606105819,17),n=c(n,i,f,r,e[3],3250441966,22),r=c(r,n,i,f,e[4],4118548399,7),f=c(f,r,n,i,e[5],1200080426,12),i=c(i,f,r,n,e[6],2821735955,17),n=c(n,i,f,r,e[7],4249261313,22),r=c(r,n,i,f,e[8],1770035416,7),f=c(f,r,n,i,e[9],2336552879,12),i=c(i,f,r,n,e[10],4294925233,17),n=c(n,i,f,r,e[11],2304563134,22),r=c(r,n,i,f,e[12],1804603682,7),f=c(f,r,n,i,e[13],4254626195,12),i=c(i,f,r,n,e[14],2792965006,17),r=u(r,n=c(n,i,f,r,e[15],1236535329,22),i,f,e[1],4129170786,5),f=u(f,r,n,i,e[6],3225465664,9),i=u(i,f,r,n,e[11],643717713,14),n=u(n,i,f,r,e[0],3921069994,20),r=u(r,n,i,f,e[5],3593408605,5),f=u(f,r,n,i,e[10],38016083,9),i=u(i,f,r,n,e[15],3634488961,14),n=u(n,i,f,r,e[4],3889429448,20),r=u(r,n,i,f,e[9],568446438,5),f=u(f,r,n,i,e[14],3275163606,9),i=u(i,f,r,n,e[3],4107603335,14),n=u(n,i,f,r,e[8],1163531501,20),r=u(r,n,i,f,e[13],2850285829,5),f=u(f,r,n,i,e[2],4243563512,9),i=u(i,f,r,n,e[7],1735328473,14),r=d(r,n=u(n,i,f,r,e[12],2368359562,20),i,f,e[5],4294588738,4),f=d(f,r,n,i,e[8],2272392833,11),i=d(i,f,r,n,e[11],1839030562,16),n=d(n,i,f,r,e[14],4259657740,23),r=d(r,n,i,f,e[1],2763975236,4),f=d(f,r,n,i,e[4],1272893353,11),i=d(i,f,r,n,e[7],4139469664,16),n=d(n,i,f,r,e[10],3200236656,23),r=d(r,n,i,f,e[13],681279174,4),f=d(f,r,n,i,e[0],3936430074,11),i=d(i,f,r,n,e[3],3572445317,16),n=d(n,i,f,r,e[6],76029189,23),r=d(r,n,i,f,e[9],3654602809,4),f=d(f,r,n,i,e[12],3873151461,11),i=d(i,f,r,n,e[15],530742520,16),r=h(r,n=d(n,i,f,r,e[2],3299628645,23),i,f,e[0],4096336452,6),f=h(f,r,n,i,e[7],1126891415,10),i=h(i,f,r,n,e[14],2878612391,15),n=h(n,i,f,r,e[5],4237533241,21),r=h(r,n,i,f,e[12],1700485571,6),f=h(f,r,n,i,e[3],2399980690,10),i=h(i,f,r,n,e[10],4293915773,15),n=h(n,i,f,r,e[1],2240044497,21),r=h(r,n,i,f,e[8],1873313359,6),f=h(f,r,n,i,e[15],4264355552,10),i=h(i,f,r,n,e[6],2734768916,15),n=h(n,i,f,r,e[13],1309151649,21),r=h(r,n,i,f,e[4],4149444226,6),f=h(f,r,n,i,e[11],3174756917,10),i=h(i,f,r,n,e[2],718787259,15),n=h(n,i,f,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+f|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=f.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=a},function(e,t,r){"use strict";var n=r(0).Buffer,i=r(1),f=r(72),o=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],s=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],u=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],d=[0,1518500249,1859775393,2400959708,2840853838],h=[1352829926,1548603684,1836072691,2053994217,0];function p(){f.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function l(e,t){return e<>>32-t}function b(e,t,r,n,i,f,o,a){return l(e+(t^r^n)+f+o|0,a)+i|0}function y(e,t,r,n,i,f,o,a){return l(e+(t&r|~t&n)+f+o|0,a)+i|0}function m(e,t,r,n,i,f,o,a){return l(e+((t|~r)^n)+f+o|0,a)+i|0}function v(e,t,r,n,i,f,o,a){return l(e+(t&n|r&~n)+f+o|0,a)+i|0}function g(e,t,r,n,i,f,o,a){return l(e+(t^(r|~n))+f+o|0,a)+i|0}i(p,f),p.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,i=0|this._c,f=0|this._d,p=0|this._e,w=0|this._a,_=0|this._b,S=0|this._c,E=0|this._d,I=0|this._e,A=0;A<80;A+=1){var k,T;A<16?(k=b(r,n,i,f,p,e[a[A]],d[0],c[A]),T=g(w,_,S,E,I,e[s[A]],h[0],u[A])):A<32?(k=y(r,n,i,f,p,e[a[A]],d[1],c[A]),T=v(w,_,S,E,I,e[s[A]],h[1],u[A])):A<48?(k=m(r,n,i,f,p,e[a[A]],d[2],c[A]),T=m(w,_,S,E,I,e[s[A]],h[2],u[A])):A<64?(k=v(r,n,i,f,p,e[a[A]],d[3],c[A]),T=y(w,_,S,E,I,e[s[A]],h[3],u[A])):(k=g(r,n,i,f,p,e[a[A]],d[4],c[A]),T=b(w,_,S,E,I,e[s[A]],h[4],u[A])),r=p,p=f,f=l(i,10),i=n,n=k,w=I,I=E,E=l(S,10),S=_,_=T}var P=this._b+i+E|0;this._b=this._c+f+I|0,this._c=this._d+p+w|0,this._d=this._e+r+_|0,this._e=this._a+n+S|0,this._a=P},p.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=p},function(e,t,r){(t=e.exports=function(e){e=e.toLowerCase();var r=t[e];if(!r)throw new Error(e+" is not supported (we accept pull requests)");return new r}).sha=r(164),t.sha1=r(165),t.sha224=r(166),t.sha256=r(77),t.sha384=r(167),t.sha512=r(78)},function(e,t,r){(function(t){const n=r(2),i=new(0,r(82).ec)("secp256k1"),f=r(320),o=t.alloc(32,0),a=t.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),s=t.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex"),c=i.curve.n,u=c.shrn(1),d=i.curve.g;function h(e){return t.isBuffer(e)&&32===e.length}function p(e){return!!h(e)&&e.compare(a)<0}function l(e){if(!t.isBuffer(e))return!1;if(e.length<33)return!1;const r=e[0],n=e.slice(1,33);if(0===n.compare(o))return!1;if(n.compare(s)>=0)return!1;if((2===r||3===r)&&33===e.length){try{w(e)}catch(e){return!1}return!0}const i=e.slice(33);return 0!==i.compare(o)&&(!(i.compare(s)>=0)&&(4===r&&65===e.length))}function b(e){return 4!==e[0]}function y(e){return!!h(e)&&(e.compare(o)>0&&e.compare(a)<0)}function m(e,t){return void 0===e&&void 0!==t?b(t):void 0===e||e}function v(e){return new n(e)}function g(e){return e.toArrayLike(t,"be",32)}function w(e){return i.curve.decodePoint(e)}function _(e,r){return t.from(e._encode(r))}function S(e,r,n){if(!h(e))throw new TypeError("Expected Hash");if(!y(r))throw new TypeError("Expected Private");if(void 0!==n&&!h(n))throw new TypeError("Expected Extra Data (32 bytes)");const i=v(r),o=v(e);let a,s;f(e,r,(function(e){const t=v(e),r=d.mul(t);return!r.isInfinity()&&(a=r.x.umod(c),0!==a.isZero()&&(s=t.invm(c).mul(o.add(i.mul(a))).umod(c),0!==s.isZero()))}),y,n),s.cmp(u)>0&&(s=c.sub(s));const p=t.allocUnsafe(64);return g(a).copy(p,0),g(s).copy(p,32),p}e.exports={isPoint:l,isPointCompressed:function(e){return!!l(e)&&b(e)},isPrivate:y,pointAdd:function(e,t,r){if(!l(e))throw new TypeError("Expected Point");if(!l(t))throw new TypeError("Expected Point");const n=w(e),i=w(t),f=n.add(i);return f.isInfinity()?null:_(f,m(r,e))},pointAddScalar:function(e,t,r){if(!l(e))throw new TypeError("Expected Point");if(!p(t))throw new TypeError("Expected Tweak");const n=m(r,e),i=w(e);if(0===t.compare(o))return _(i,n);const f=v(t),a=d.mul(f),s=i.add(a);return s.isInfinity()?null:_(s,n)},pointCompress:function(e,t){if(!l(e))throw new TypeError("Expected Point");const r=w(e);if(r.isInfinity())throw new TypeError("Expected Point");return _(r,t)},pointFromScalar:function(e,t){if(!y(e))throw new TypeError("Expected Private");const r=v(e),n=d.mul(r);return n.isInfinity()?null:_(n,m(t))},pointMultiply:function(e,t,r){if(!l(e))throw new TypeError("Expected Point");if(!p(t))throw new TypeError("Expected Tweak");const n=m(r,e),i=w(e),f=v(t),o=i.mul(f);return o.isInfinity()?null:_(o,n)},privateAdd:function(e,t){if(!y(e))throw new TypeError("Expected Private");if(!p(t))throw new TypeError("Expected Tweak");const r=v(e),n=v(t),i=g(r.add(n).umod(c));return y(i)?i:null},privateSub:function(e,t){if(!y(e))throw new TypeError("Expected Private");if(!p(t))throw new TypeError("Expected Tweak");const r=v(e),n=v(t),i=g(r.sub(n).umod(c));return y(i)?i:null},sign:function(e,t){return S(e,t)},signWithEntropy:function(e,t,r){return S(e,t,r)},verify:function(e,r,n){if(!h(e))throw new TypeError("Expected Hash");if(!l(r))throw new TypeError("Expected Point");if(!function(e){const r=e.slice(0,32),n=e.slice(32,64);return t.isBuffer(e)&&64===e.length&&r.compare(a)<0&&n.compare(a)<0}(n))throw new TypeError("Expected Signature");const i=w(r),f=v(n.slice(0,32)),o=v(n.slice(32,64));if(f.gtn(0)<=0)return!1;if(o.gtn(0)<=0)return!1;const s=v(e),u=o.invm(c),p=s.mul(u).umod(c),b=f.mul(u).umod(c),y=d.mulAdd(p,i,b);return!y.isInfinity()&&y.x.umod(c).eq(f)}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prop=function(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){const e=r.call(this);return this[t]=e,e},set(e){Object.defineProperty(this,t,{configurable:!0,enumerable:!0,value:e,writable:!0})}})},t.value=function(e){let t;return()=>(void 0!==t||(t=e()),t)}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){"use strict";var n=r(1),i=r(193),f=r(17),o=r(90).Buffer,a=r(91),s=r(51),c=r(52),u=o.alloc(128);function d(e,t){f.call(this,"digest"),"string"==typeof t&&(t=o.from(t));var r="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>r)?t=("rmd160"===e?new s:c(e)).update(t).digest():t.length>>3},t.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},function(e,t,r){"use strict";var n=r(7),i=r(20),f=r(58),o=r(4),a=n.sum32,s=n.sum32_4,c=n.sum32_5,u=f.ch32,d=f.maj32,h=f.s0_256,p=f.s1_256,l=f.g0_256,b=f.g1_256,y=i.BlockHash,m=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function v(){if(!(this instanceof v))return new v;y.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=m,this.W=new Array(64)}n.inherits(v,y),e.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(i,r);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t=0||!r.umod(e.prime1)||!r.umod(e.prime2);)r=new n(i(t));return r}e.exports=f,f.getr=o}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n,i=t,f=r(14),o=r(109),a=r(8).assert;function s(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function c(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new s(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=s,c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:f.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:f.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:f.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:f.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:f.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(224)}catch(e){n=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:f.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(e,t,r){"use strict";var n,i=t,f=r(14),o=r(116),a=r(9).assert;function s(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function c(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new s(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=s,c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:f.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:f.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:f.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:f.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:f.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:f.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(251)}catch(e){n=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:f.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},,,function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){var n=r(169).Buffer;e.exports={check:function(e){if(e.length<8)return!1;if(e.length>72)return!1;if(48!==e[0])return!1;if(e[1]!==e.length-2)return!1;if(2!==e[2])return!1;var t=e[3];if(0===t)return!1;if(5+t>=e.length)return!1;if(2!==e[4+t])return!1;var r=e[5+t];return 0!==r&&(6+t+r===e.length&&(!(128&e[4])&&(!(t>1&&0===e[4]&&!(128&e[5]))&&(!(128&e[t+6])&&!(r>1&&0===e[t+6]&&!(128&e[t+7]))))))},decode:function(e){if(e.length<8)throw new Error("DER sequence length is too short");if(e.length>72)throw new Error("DER sequence length is too long");if(48!==e[0])throw new Error("Expected DER sequence");if(e[1]!==e.length-2)throw new Error("DER sequence length is invalid");if(2!==e[2])throw new Error("Expected DER integer");var t=e[3];if(0===t)throw new Error("R length is zero");if(5+t>=e.length)throw new Error("R length is too long");if(2!==e[4+t])throw new Error("Expected DER integer (2)");var r=e[5+t];if(0===r)throw new Error("S length is zero");if(6+t+r!==e.length)throw new Error("S length is invalid");if(128&e[4])throw new Error("R value is negative");if(t>1&&0===e[4]&&!(128&e[5]))throw new Error("R value excessively padded");if(128&e[t+6])throw new Error("S value is negative");if(r>1&&0===e[t+6]&&!(128&e[t+7]))throw new Error("S value excessively padded");return{r:e.slice(4,4+t),s:e.slice(6+t)}},encode:function(e,t){var r=e.length,i=t.length;if(0===r)throw new Error("R length is zero");if(0===i)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(i>33)throw new Error("S length is too long");if(128&e[0])throw new Error("R value is negative");if(128&t[0])throw new Error("S value is negative");if(r>1&&0===e[0]&&!(128&e[1]))throw new Error("R value excessively padded");if(i>1&&0===t[0]&&!(128&t[1]))throw new Error("S value excessively padded");var f=n.allocUnsafe(6+r+i);return f[0]=48,f[1]=f.length-2,f[2]=2,f[3]=e.length,e.copy(f,4),f[4+r]=2,f[5+r]=t.length,t.copy(f,6+r),f}}},,function(e,t,r){"use strict";var n=r(150).Buffer,i=r(37).Transform;function f(e){i.call(this),this._block=n.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(1)(f,i),f.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},f.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},f.prototype.update=function(e,t){if(function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(e)||(e=n.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var f=this._blockOffset;f0;++o)this._length[o]+=a,(a=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*a);return this},f.prototype._update=function(){throw new Error("_update is not implemented")},f.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},f.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=f},function(e,t,r){"use strict";(function(t,n){var i=r(27);e.exports=g;var f,o=r(55);g.ReadableState=v;r(44).EventEmitter;var a=function(e,t){return e.listeners(t).length},s=r(74),c=r(33).Buffer,u=t.Uint8Array||function(){};var d=r(23);d.inherits=r(1);var h=r(151),p=void 0;p=h&&h.debuglog?h.debuglog("stream"):function(){};var l,b=r(152),y=r(75);d.inherits(g,s);var m=["error","close","destroy","pause","resume"];function v(e,t){e=e||{};var n=t instanceof(f=f||r(15));this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,o=e.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(o||0===o)?o:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new b,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(l||(l=r(47).StringDecoder),this.decoder=new l(e.encoding),this.encoding=e.encoding)}function g(e){if(f=f||r(15),!(this instanceof g))return new g(e);this._readableState=new v(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),s.call(this)}function w(e,t,r,n,i){var f,o=e._readableState;null===t?(o.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,E(e)}(e,o)):(i||(f=function(e,t){var r;n=t,c.isBuffer(n)||n instanceof u||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r}(o,t)),f?e.emit("error",f):o.objectMode||t&&t.length>0?("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),n?o.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):_(e,o,t,!0):o.ended?e.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?_(e,o,t,!1):A(e,o)):_(e,o,t,!1))):n||(o.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function E(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function A(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(k,e,t))}function k(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;ef.length?f.length:e;if(o===f.length?i+=f:i+=f.slice(0,e),0===(e-=o)){o===f.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=f.slice(o));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=c.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var f=n.data,o=e>f.length?f.length:e;if(f.copy(r,r.length-e,0,o),0===(e-=o)){o===f.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=f.slice(o));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function O(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(B,t,e))}function B(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function N(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):E(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&O(this),null;var n,i=t.needReadable;return p("need readable",i),(0===t.length||t.length-e0?M(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&O(this)),null!==n&&this.emit("data",n),n},g.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},g.prototype.pipe=function(e,t){var r=this,f=this._readableState;switch(f.pipesCount){case 0:f.pipes=e;break;case 1:f.pipes=[f.pipes,e];break;default:f.pipes.push(e)}f.pipesCount+=1,p("pipe count=%d opts=%j",f.pipesCount,t);var s=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?u:g;function c(t,n){p("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,p("cleanup"),e.removeListener("close",m),e.removeListener("finish",v),e.removeListener("drain",d),e.removeListener("error",y),e.removeListener("unpipe",c),r.removeListener("end",u),r.removeListener("end",g),r.removeListener("data",b),h=!0,!f.awaitDrain||e._writableState&&!e._writableState.needDrain||d())}function u(){p("onend"),e.end()}f.endEmitted?i.nextTick(s):r.once("end",s),e.on("unpipe",c);var d=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,x(e))}}(r);e.on("drain",d);var h=!1;var l=!1;function b(t){p("ondata"),l=!1,!1!==e.write(t)||l||((1===f.pipesCount&&f.pipes===e||f.pipesCount>1&&-1!==N(f.pipes,e))&&!h&&(p("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,l=!0),r.pause())}function y(t){p("onerror",t),g(),e.removeListener("error",y),0===a(e,"error")&&e.emit("error",t)}function m(){e.removeListener("finish",v),g()}function v(){p("onfinish"),e.removeListener("close",m),g()}function g(){p("unpipe"),r.unpipe(e)}return r.on("data",b),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?o(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",y),e.once("close",m),e.once("finish",v),e.emit("pipe",r),f.flowing||(p("pipe resume"),r.resume()),e},g.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var f=0;f>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function h(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function p(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(s,i),s.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},s.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,f=0|this._c,a=0|this._d,s=0|this._e,l=0|this._f,b=0|this._g,y=0|this._h,m=0;m<16;++m)r[m]=e.readInt32BE(4*m);for(;m<64;++m)r[m]=0|(((t=r[m-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[m-7]+p(r[m-15])+r[m-16];for(var v=0;v<64;++v){var g=y+h(s)+c(s,l,b)+o[v]+r[v]|0,w=d(n)+u(n,i,f)|0;y=b,b=l,l=s,s=a+g|0,a=f,f=i,i=n,n=g+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=f+this._c|0,this._d=a+this._d|0,this._e=s+this._e|0,this._f=l+this._f|0,this._g=b+this._g|0,this._h=y+this._h|0},s.prototype._hash=function(){var e=f.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=s},function(e,t,r){var n=r(1),i=r(19),f=r(16).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function s(){this.init(),this._w=a,i.call(this,128,112)}function c(e,t,r){return r^e&(t^r)}function u(e,t,r){return e&t|r&(e|t)}function d(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function h(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function l(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function b(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function m(e,t){return e>>>0>>0?1:0}n(s,i),s.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},s.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,f=0|this._dh,a=0|this._eh,s=0|this._fh,v=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,S=0|this._cl,E=0|this._dl,I=0|this._el,A=0|this._fl,k=0|this._gl,T=0|this._hl,P=0;P<32;P+=2)t[P]=e.readInt32BE(4*P),t[P+1]=e.readInt32BE(4*P+4);for(;P<160;P+=2){var x=t[P-30],M=t[P-30+1],O=p(x,M),B=l(M,x),N=b(x=t[P-4],M=t[P-4+1]),R=y(M,x),C=t[P-14],U=t[P-14+1],L=t[P-32],D=t[P-32+1],j=B+U|0,q=O+C+m(j,B)|0;q=(q=q+N+m(j=j+R|0,R)|0)+L+m(j=j+D|0,D)|0,t[P]=q,t[P+1]=j}for(var K=0;K<160;K+=2){q=t[K],j=t[K+1];var H=u(r,n,i),z=u(w,_,S),F=d(r,w),V=d(w,r),W=h(a,I),Y=h(I,a),G=o[K],X=o[K+1],J=c(a,s,v),$=c(I,A,k),Z=T+Y|0,Q=g+W+m(Z,T)|0;Q=(Q=(Q=Q+J+m(Z=Z+$|0,$)|0)+G+m(Z=Z+X|0,X)|0)+q+m(Z=Z+j|0,j)|0;var ee=V+z|0,te=F+H+m(ee,V)|0;g=v,T=k,v=s,k=A,s=a,A=I,a=f+Q+m(I=E+Z|0,E)|0,f=i,E=S,i=n,S=_,n=r,_=w,r=Q+te+m(w=Z+ee|0,Z)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+S|0,this._dl=this._dl+E|0,this._el=this._el+I|0,this._fl=this._fl+A|0,this._gl=this._gl+k|0,this._hl=this._hl+T|0,this._ah=this._ah+r+m(this._al,w)|0,this._bh=this._bh+n+m(this._bl,_)|0,this._ch=this._ch+i+m(this._cl,S)|0,this._dh=this._dh+f+m(this._dl,E)|0,this._eh=this._eh+a+m(this._el,I)|0,this._fh=this._fh+s+m(this._fl,A)|0,this._gh=this._gh+v+m(this._gl,k)|0,this._hh=this._hh+g+m(this._hl,T)|0},s.prototype._hash=function(){var e=f.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=s},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e){e.exports=JSON.parse('{"COMPRESSED_TYPE_INVALID":"compressed should be a boolean","EC_PRIVATE_KEY_TYPE_INVALID":"private key should be a Buffer","EC_PRIVATE_KEY_LENGTH_INVALID":"private key length is invalid","EC_PRIVATE_KEY_RANGE_INVALID":"private key range is invalid","EC_PRIVATE_KEY_TWEAK_ADD_FAIL":"tweak out of range or resulting private key is invalid","EC_PRIVATE_KEY_TWEAK_MUL_FAIL":"tweak out of range","EC_PRIVATE_KEY_EXPORT_DER_FAIL":"couldn\'t export to DER format","EC_PRIVATE_KEY_IMPORT_DER_FAIL":"couldn\'t import from DER format","EC_PUBLIC_KEYS_TYPE_INVALID":"public keys should be an Array","EC_PUBLIC_KEYS_LENGTH_INVALID":"public keys Array should have at least 1 element","EC_PUBLIC_KEY_TYPE_INVALID":"public key should be a Buffer","EC_PUBLIC_KEY_LENGTH_INVALID":"public key length is invalid","EC_PUBLIC_KEY_PARSE_FAIL":"the public key could not be parsed or is invalid","EC_PUBLIC_KEY_CREATE_FAIL":"private was invalid, try again","EC_PUBLIC_KEY_TWEAK_ADD_FAIL":"tweak out of range or resulting public key is invalid","EC_PUBLIC_KEY_TWEAK_MUL_FAIL":"tweak out of range","EC_PUBLIC_KEY_COMBINE_FAIL":"the sum of the public keys is not valid","ECDH_FAIL":"scalar was invalid (zero or overflow)","ECDSA_SIGNATURE_TYPE_INVALID":"signature should be a Buffer","ECDSA_SIGNATURE_LENGTH_INVALID":"signature length is invalid","ECDSA_SIGNATURE_PARSE_FAIL":"couldn\'t parse signature","ECDSA_SIGNATURE_PARSE_DER_FAIL":"couldn\'t parse DER signature","ECDSA_SIGNATURE_SERIALIZE_DER_FAIL":"couldn\'t serialize signature to DER format","ECDSA_SIGN_FAIL":"nonce generation function failed or private key is invalid","ECDSA_RECOVER_FAIL":"couldn\'t recover public key from signature","MSG32_TYPE_INVALID":"message should be a Buffer","MSG32_LENGTH_INVALID":"message length is invalid","OPTIONS_TYPE_INVALID":"options should be an Object","OPTIONS_DATA_TYPE_INVALID":"options.data should be a Buffer","OPTIONS_DATA_LENGTH_INVALID":"options.data length is invalid","OPTIONS_NONCEFN_TYPE_INVALID":"options.noncefn should be a Function","RECOVERY_ID_TYPE_INVALID":"recovery should be a Number","RECOVERY_ID_VALUE_INVALID":"recovery should have value between -1 and 4","TWEAK_TYPE_INVALID":"tweak should be a Buffer","TWEAK_LENGTH_INVALID":"tweak length is invalid"}')},,function(e,t,r){"use strict";var n=t;n.version=r(126).version,n.utils=r(5),n.rand=r(18),n.curve=r(57),n.curves=r(36),n.ec=r(138),n.eddsa=r(141)},function(e,t,r){"use strict";e.exports=r(170)(r(173))},function(e,t,r){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=r(21),t.createHash=t.Hash=r(10),t.createHmac=t.Hmac=r(56);var n=r(196),i=Object.keys(n),f=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return f};var o=r(94);t.pbkdf2=o.pbkdf2,t.pbkdf2Sync=o.pbkdf2Sync;var a=r(198);t.Cipher=a.Cipher,t.createCipher=a.createCipher,t.Cipheriv=a.Cipheriv,t.createCipheriv=a.createCipheriv,t.Decipher=a.Decipher,t.createDecipher=a.createDecipher,t.Decipheriv=a.Decipheriv,t.createDecipheriv=a.createDecipheriv,t.getCiphers=a.getCiphers,t.listCiphers=a.listCiphers;var s=r(215);t.DiffieHellmanGroup=s.DiffieHellmanGroup,t.createDiffieHellmanGroup=s.createDiffieHellmanGroup,t.getDiffieHellman=s.getDiffieHellman,t.createDiffieHellman=s.createDiffieHellman,t.DiffieHellman=s.DiffieHellman;var c=r(218);t.createSign=c.createSign,t.Sign=c.Sign,t.createVerify=c.createVerify,t.Verify=c.Verify,t.createECDH=r(245);var u=r(258);t.publicEncrypt=u.publicEncrypt,t.privateEncrypt=u.privateEncrypt,t.publicDecrypt=u.publicDecrypt,t.privateDecrypt=u.privateDecrypt;var d=r(261);t.randomFill=d.randomFill,t.randomFillSync=d.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(e,t,r){"use strict";function n(e,t){if("number"!=typeof e)throw new Error("cannot write a non-number as a number");if(e<0)throw new Error("specified a negative value for writing an unsigned value");if(e>t)throw new Error("RangeError: value out of range");if(Math.floor(e)!==e)throw new Error("value has a fractional component")}Object.defineProperty(t,"__esModule",{value:!0}),t.readUInt64LE=function(e,t){const r=e.readUInt32LE(t);let i=e.readUInt32LE(t+4);return i*=4294967296,n(i+r,9007199254740991),i+r},t.writeUInt64LE=function(e,t,r){return n(t,9007199254740991),e.writeInt32LE(-1&t,r),e.writeUInt32LE(Math.floor(t/4294967296),r+4),r+8},t.reverseBuffer=function(e){if(e.length<1)return e;let t=e.length-1,r=0;for(let n=0;n9007199254740991||e%1!=0)throw new RangeError("value out of range")}function n(e){return r(e),e<253?1:e<=65535?3:e<=4294967295?5:9}t.encode=function t(i,f,o){if(r(i),f||(f=e.allocUnsafe(n(i))),!e.isBuffer(f))throw new TypeError("buffer must be a Buffer instance");return o||(o=0),i<253?(f.writeUInt8(i,o),Object.assign(t,{bytes:1})):i<=65535?(f.writeUInt8(253,o),f.writeUInt16LE(i,o+1),Object.assign(t,{bytes:3})):i<=4294967295?(f.writeUInt8(254,o),f.writeUInt32LE(i,o+1),Object.assign(t,{bytes:5})):(f.writeUInt8(255,o),f.writeUInt32LE(i>>>0,o+1),f.writeUInt32LE(i/4294967296|0,o+5),Object.assign(t,{bytes:9})),f},t.decode=function t(n,i){if(!e.isBuffer(n))throw new TypeError("buffer must be a Buffer instance");i||(i=0);const f=n.readUInt8(i);if(f<253)return Object.assign(t,{bytes:1}),f;if(253===f)return Object.assign(t,{bytes:3}),n.readUInt16LE(i+1);if(254===f)return Object.assign(t,{bytes:5}),n.readUInt32LE(i+1);{Object.assign(t,{bytes:9});const e=n.readUInt32LE(i+1),f=4294967296*n.readUInt32LE(i+5)+e;return r(f),f}},t.encodingLength=n}).call(this,r(0).Buffer)},function(e){e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},function(e,t,r){t.pbkdf2=r(197),t.pbkdf2Sync=r(97)},function(e,t,r){(function(t){var r=Math.pow(2,30)-1;function n(e,r){if("string"!=typeof e&&!t.isBuffer(e))throw new TypeError(r+" must be a buffer or string")}e.exports=function(e,t,i,f){if(n(e,"Password"),n(t,"Salt"),"number"!=typeof i)throw new TypeError("Iterations not a number");if(i<0)throw new TypeError("Bad iterations");if("number"!=typeof f)throw new TypeError("Key length not a number");if(f<0||f>r||f!=f)throw new TypeError("Bad key length")}}).call(this,r(0).Buffer)},function(e,t,r){(function(t){var r;t.browser?r="utf-8":r=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";e.exports=r}).call(this,r(11))},function(e,t,r){var n=r(91),i=r(51),f=r(52),o=r(95),a=r(96),s=r(98).Buffer,c=s.alloc(128),u={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function d(e,t,r){var o=function(e){function t(t){return f(e).update(t).digest()}return"rmd160"===e||"ripemd160"===e?function(e){return(new i).update(e).digest()}:"md5"===e?n:t}(e),a="sha512"===e||"sha384"===e?128:64;t.length>a?t=o(t):t.length>>0},t.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},t.ip=function(e,t,r,n){for(var i=0,f=0,o=6;o>=0;o-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>>a+o&1}for(o=6;o>=0;o-=2){for(a=1;a<=25;a+=8)f<<=1,f|=t>>>a+o&1;for(a=1;a<=25;a+=8)f<<=1,f|=e>>>a+o&1}r[n+0]=i>>>0,r[n+1]=f>>>0},t.rip=function(e,t,r,n){for(var i=0,f=0,o=0;o<4;o++)for(var a=24;a>=0;a-=8)i<<=1,i|=t>>>a+o&1,i<<=1,i|=e>>>a+o&1;for(o=4;o<8;o++)for(a=24;a>=0;a-=8)f<<=1,f|=t>>>a+o&1,f<<=1,f|=e>>>a+o&1;r[n+0]=i>>>0,r[n+1]=f>>>0},t.pc1=function(e,t,r,n){for(var i=0,f=0,o=7;o>=5;o--){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+o&1}for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+o&1;for(o=1;o<=3;o++){for(a=0;a<=24;a+=8)f<<=1,f|=t>>a+o&1;for(a=0;a<=24;a+=8)f<<=1,f|=e>>a+o&1}for(a=0;a<=24;a+=8)f<<=1,f|=e>>a+o&1;r[n+0]=i>>>0,r[n+1]=f>>>0},t.r28shl=function(e,t){return e<>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,i){for(var f=0,o=0,a=n.length>>>1,s=0;s>>n[s]&1;for(s=a;s>>n[s]&1;r[i+0]=f>>>0,r[i+1]=o>>>0},t.expand=function(e,t,r){var n=0,i=0;n=(1&e)<<5|e>>>27;for(var f=23;f>=15;f-=4)n<<=6,n|=e>>>f&63;for(f=11;f>=3;f-=4)i|=e>>>f&63,i<<=6;i|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var r=0,n=0;n<4;n++){r<<=4,r|=i[64*n+(e>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=i[256+64*n+(t>>>18-6*n&63)]}return r>>>0};var f=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,r=0;r>>f[r]&1;return t>>>0},t.padSplit=function(e,t,r){for(var n=e.toString(2);n.length>>1];r=f.r28shl(r,a),i=f.r28shl(i,a),f.pc2(r,i,e.keys,o)}},s.prototype._update=function(e,t,r,n){var i=this._desState,o=f.readUInt32BE(e,t),a=f.readUInt32BE(e,t+4);f.ip(o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],"encrypt"===this.type?this._encrypt(i,o,a,i.tmp,0):this._decrypt(i,o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],f.writeUInt32BE(r,o,n),f.writeUInt32BE(r,a,n+4)},s.prototype._pad=function(e,t){for(var r=e.length-t,n=t;n>>0,o=h}f.rip(a,o,n,i)},s.prototype._decrypt=function(e,t,r,n,i){for(var o=r,a=t,s=e.keys.length-2;s>=0;s-=2){var c=e.keys[s],u=e.keys[s+1];f.expand(o,e.tmp,0),c^=e.tmp[0],u^=e.tmp[1];var d=f.substitute(c,u),h=o;o=(a^f.permute(d))>>>0,a=h}f.rip(o,a,n,i)}},function(e,t,r){var n=r(29),i=r(12).Buffer,f=r(102);function o(e){var t=e._cipher.encryptBlockRaw(e._prev);return f(e._prev),t}t.encrypt=function(e,t){var r=Math.ceil(t.length/16),f=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*r)]);for(var a=0;ae;)r.ishrn(1);if(r.isEven()&&r.iadd(a),r.testn(1)||r.iadd(s),t.cmp(s)){if(!t.cmp(c))for(;r.mod(u).cmp(d);)r.iadd(p)}else for(;r.mod(f).cmp(h);)r.iadd(p);if(y(l=r.shrn(1))&&y(r)&&m(l)&&m(r)&&o.test(l)&&o.test(r))return r}}},function(e,t,r){var n=r(2),i=r(18);function f(e){this.rand=e||new i.Rand}e.exports=f,f.create=function(e){return new f(e)},f.prototype._randbelow=function(e){var t=e.bitLength(),r=Math.ceil(t/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(e)>=0);return i},f.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},f.prototype.test=function(e,t,r){var i=e.bitLength(),f=n.mont(e),o=new n(1).toRed(f);t||(t=Math.max(1,i/48|0));for(var a=e.subn(1),s=0;!a.testn(s);s++);for(var c=e.shrn(s),u=a.toRed(f);t>0;t--){var d=this._randrange(new n(2),a);r&&r(d);var h=d.toRed(f).redPow(c);if(0!==h.cmp(o)&&0!==h.cmp(u)){for(var p=1;p0;t--){var u=this._randrange(new n(2),o),d=e.gcd(u);if(0!==d.cmpn(1))return d;var h=u.toRed(i).redPow(s);if(0!==h.cmp(f)&&0!==h.cmp(c)){for(var p=1;p>6],i=0==(32&r);if(31==(31&r)){var f=r;for(r=0;128==(128&f);){if(f=e.readUInt8(t),e.isError(f))return f;r<<=7,r|=127&f}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:a.tag[r]}}function d(e,t,r){var n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(0==(128&n))return n;var i=127&n;if(i>4)return e.error("length octect is too long");n=0;for(var f=0;f=31)return n.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=a.tagClassByName[r||"universal"]<<6}(e,t,r,this.reporter);if(n.length<128)return(f=new i(2))[0]=o,f[1]=n.length,this._createEncoderBuffer([f,n]);for(var s=1,c=n.length;c>=256;c>>=8)s++;(f=new i(2+s))[0]=o,f[1]=128|s;c=1+s;for(var u=n.length;u>0;c--,u>>=8)f[c]=255&u;return this._createEncoderBuffer([f,n])},c.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var r=new i(2*e.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var f=0;for(n=0;n=128;o>>=7)f++}var a=new i(f),s=a.length-1;for(n=e.length-1;n>=0;n--){o=e[n];for(a[s--]=127&o;(o>>=7)>0;)a[s--]=128|127&o}return this._createEncoderBuffer(a)},c.prototype._encodeTime=function(e,t){var r,n=new Date(e);return"gentime"===t?r=[u(n.getFullYear()),u(n.getUTCMonth()+1),u(n.getUTCDate()),u(n.getUTCHours()),u(n.getUTCMinutes()),u(n.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[u(n.getFullYear()%100),u(n.getUTCMonth()+1),u(n.getUTCDate()),u(n.getUTCHours()),u(n.getUTCMinutes()),u(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(r,"octstr")},c.prototype._encodeNull=function(){return this._createEncoderBuffer("")},c.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){var r=e.toArray();!e.sign&&128&r[0]&&r.unshift(0),e=new i(r)}if(i.isBuffer(e)){var n=e.length;0===e.length&&n++;var f=new i(n);return e.copy(f),0===e.length&&(f[0]=0),this._createEncoderBuffer(f)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);n=1;for(var o=e;o>=256;o>>=8)n++;for(o=(f=new Array(n)).length-1;o>=0;o--)f[o]=255&e,e>>=8;return 128&f[0]&&f.unshift(0),this._createEncoderBuffer(new i(f))},c.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},c.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},c.prototype._skipDefault=function(e,t,r){var n,i=this._baseState;if(null===i.default)return!1;var f=e.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,t,r).join()),f.length!==i.defaultBuffer.length)return!1;for(n=0;n0?o-4:o;for(r=0;r>16&255,s[u++]=t>>8&255,s[u++]=255&t;2===a&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,s[u++]=255&t);1===a&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,s[u++]=t>>8&255,s[u++]=255&t);return s},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,f=[],o=0,a=r-i;oa?a:o+16383));1===i?(t=e[r-1],f.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],f.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return f.join("")};for(var n=[],i=[],f="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function u(e,t,r){for(var i,f,o=[],a=t;a>18&63]+n[f>>12&63]+n[f>>6&63]+n[63&f]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,n,i){var f,o,a=8*i-n-1,s=(1<>1,u=-7,d=r?i-1:0,h=r?-1:1,p=e[t+d];for(d+=h,f=p&(1<<-u)-1,p>>=-u,u+=a;u>0;f=256*f+e[t+d],d+=h,u-=8);for(o=f&(1<<-u)-1,f>>=-u,u+=n;u>0;o=256*o+e[t+d],d+=h,u-=8);if(0===f)f=1-c;else{if(f===s)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),f-=c}return(p?-1:1)*o*Math.pow(2,f-n)},t.write=function(e,t,r,n,i,f){var o,a,s,c=8*f-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:f-1,l=n?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-o))<1&&(o--,s*=2),(t+=o+d>=1?h/s:h*Math.pow(2,1-d))*s>=2&&(o++,s/=2),o+d>=u?(a=0,o=u):o+d>=1?(a=(t*s-1)*Math.pow(2,i),o+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+p]=255&a,p+=l,a/=256,i-=8);for(o=o<0;e[r+p]=255&o,p+=l,o/=256,c-=8);e[r+p-l]|=128*b}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(325);t.embed=n.p2data;const i=r(330);t.p2ms=i.p2ms;const f=r(331);t.p2pk=f.p2pk;const o=r(332);t.p2pkh=o.p2pkh;const a=r(335);t.p2sh=a.p2sh;const s=r(336);t.p2wpkh=s.p2wpkh;const c=r(337);t.p2wsh=c.p2wsh},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(85),i=r(85),f=r(35),o=r(3),a=r(3),s=r(34),c=r(13),u=r(286);function d(e){const t=e.length;return u.encodingLength(t)+t}const h=e.allocUnsafe(0),p=[],l=e.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),b=e.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),y=e.from("ffffffffffffffff","hex"),m={script:h,valueBuffer:y};class v{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(e,t){let r=0;function i(t){return r+=t,e.slice(r-t,r)}function f(){const t=e.readUInt32LE(r);return r+=4,t}function o(){const t=n.readUInt64LE(e,r);return r+=8,t}function a(){const t=u.decode(e,r);return r+=u.decode.bytes,t}function s(){return i(a())}function c(){const e=a(),t=[];for(let r=0;r0!==e.witness.length)}weight(){return 3*this.__byteLength(!1)+this.__byteLength(!0)}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(){return this.__byteLength(!0)}clone(){const e=new v;return e.version=this.version,e.locktime=this.locktime,e.ins=this.ins.map(e=>({hash:e.hash,index:e.index,script:e.script,sequence:e.sequence,witness:e.witness})),e.outs=this.outs.map(e=>({script:e.script,value:e.value})),e}hashForSignature(t,r,n){if(c(s.tuple(s.UInt32,s.Buffer,s.Number),arguments),t>=this.ins.length)return b;const i=o.compile(o.decompile(r).filter(e=>e!==a.OPS.OP_CODESEPARATOR)),u=this.clone();if((31&n)===v.SIGHASH_NONE)u.outs=[],u.ins.forEach((e,r)=>{r!==t&&(e.sequence=0)});else if((31&n)===v.SIGHASH_SINGLE){if(t>=this.outs.length)return b;u.outs.length=t+1;for(let e=0;e{r!==t&&(e.sequence=0)})}n&v.SIGHASH_ANYONECANPAY?(u.ins=[u.ins[t]],u.ins[0].script=i):(u.ins.forEach(e=>{e.script=h}),u.ins[t].script=i);const d=e.allocUnsafe(u.__byteLength(!1)+4);return d.writeInt32LE(n,d.length-4),u.__toBuffer(d,0,!1),f.hash256(d)}hashForWitnessV0(t,r,i,o){c(s.tuple(s.UInt32,s.Buffer,s.Satoshi,s.UInt32),arguments);let a=e.from([]),h=0;function p(e){h+=e.copy(a,h)}function b(e){h=a.writeUInt32LE(e,h)}function y(e){h=n.writeUInt64LE(a,e,h)}function m(e){var t;t=e.length,u.encode(t,a,h),h+=u.encode.bytes,p(e)}let g=l,w=l,_=l;if(o&v.SIGHASH_ANYONECANPAY||(a=e.allocUnsafe(36*this.ins.length),h=0,this.ins.forEach(e=>{p(e.hash),b(e.index)}),w=f.hash256(a)),o&v.SIGHASH_ANYONECANPAY||(31&o)===v.SIGHASH_SINGLE||(31&o)===v.SIGHASH_NONE||(a=e.allocUnsafe(4*this.ins.length),h=0,this.ins.forEach(e=>{b(e.sequence)}),_=f.hash256(a)),(31&o)!==v.SIGHASH_SINGLE&&(31&o)!==v.SIGHASH_NONE){const t=this.outs.reduce((e,t)=>e+8+d(t.script),0);a=e.allocUnsafe(t),h=0,this.outs.forEach(e=>{y(e.value),m(e.script)}),g=f.hash256(a)}else if((31&o)===v.SIGHASH_SINGLE&&te+40+d(t.script),0)+this.outs.reduce((e,t)=>e+8+d(t.script),0)+(t?this.ins.reduce((e,t)=>e+function(e){const t=e.length;return u.encodingLength(t)+e.reduce((e,t)=>e+d(t),0)}(t.witness),0):0)}__toBuffer(t,r,i){t||(t=e.allocUnsafe(this.__byteLength(i)));let f=r||0;function o(e){f+=e.copy(t,f)}function a(e){f=t.writeUInt8(e,f)}function s(e){f=t.writeUInt32LE(e,f)}function c(e){u.encode(e,t,f),f+=u.encode.bytes}function d(e){c(e.length),o(e)}var h;h=this.version,f=t.writeInt32LE(h,f);const p=i&&this.hasWitnesses();return p&&(a(v.ADVANCED_TRANSACTION_MARKER),a(v.ADVANCED_TRANSACTION_FLAG)),c(this.ins.length),this.ins.forEach(e=>{o(e.hash),s(e.index),d(e.script),s(e.sequence)}),c(this.outs.length),this.outs.forEach(e=>{void 0!==e.value?function(e){f=n.writeUInt64LE(t,e,f)}(e.value):o(e.valueBuffer),d(e.script)}),p&&this.ins.forEach(e=>{var t;c((t=e.witness).length),t.forEach(d)}),s(this.locktime),void 0!==r?t.slice(r,f):t}}v.DEFAULT_SEQUENCE=4294967295,v.SIGHASH_ALL=1,v.SIGHASH_NONE=2,v.SIGHASH_SINGLE=3,v.SIGHASH_ANYONECANPAY=128,v.ADVANCED_TRANSACTION_MARKER=0,v.ADVANCED_TRANSACTION_FLAG=1,t.Transaction=v}).call(this,r(0).Buffer)},function(e,t,r){"use strict";for(var n="qpzry9x8gf2tvdw0s3jn54khce6mua7l",i={},f=0;f>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function s(e){for(var t=1,r=0;r126)throw new Error("Invalid prefix ("+e+")");t=a(t)^n>>5}for(t=a(t),r=0;r=r;)f-=r,a.push(i>>f&o);if(n)f>0&&a.push(i<=t)throw new Error("Excess padding");if(i<t)throw new TypeError("Exceeds length limit");var r=e.toLowerCase(),n=e.toUpperCase();if(e!==r&&e!==n)throw new Error("Mixed-case string "+e);var f=(e=r).lastIndexOf("1");if(-1===f)throw new Error("No separator character for "+e);if(0===f)throw new Error("Missing prefix for "+e);var o=e.slice(0,f),c=e.slice(f+1);if(c.length<6)throw new Error("Data too short");for(var u=s(o),d=[],h=0;h=c.length||d.push(l)}if(1!==u)throw new Error("Invalid checksum for "+e);return{prefix:o,words:d}},encode:function(e,t,r){if(r=r||90,e.length+7+t.length>r)throw new TypeError("Exceeds length limit");for(var i=s(e=e.toLowerCase()),f=e+"1",o=0;o>5!=0)throw new Error("Non 5-bit word");i=a(i)^c,f+=n.charAt(c)}for(o=0;o<6;++o)i=a(i);for(i^=1,o=0;o<6;++o){f+=n.charAt(i>>5*(5-o)&31)}return f},toWords:function(e){return c(e,8,5,!0)},fromWords:function(e){return c(e,5,8,!1)}}},function(e,t){},function(e){e.exports=JSON.parse('{"name":"elliptic","version":"6.5.1","description":"EC cryptography","main":"lib/elliptic.js","files":["lib"],"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","unit":"istanbul test _mocha --reporter=spec test/index.js","test":"npm run lint && npm run unit","version":"grunt dist && git add dist/"},"repository":{"type":"git","url":"git@github.com:indutny/elliptic"},"keywords":["EC","Elliptic","curve","Cryptography"],"author":"Fedor Indutny ","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.4","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.6.0","mocha":"^6.1.4"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(e,t){},function(e,t,r){"use strict";var n=r(5),i=r(2),f=r(1),o=r(26),a=n.assert;function s(e){o.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,r,n){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,r,n){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}f(s,o),e.exports=s,s.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var f=this._getEndoRoots(this.n);0===this.g.mul(f[0]).x.cmp(this.g.x.redMul(t))?r=f[0]:(r=f[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},s.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),f=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(f).fromRed(),n.redSub(f).fromRed()]},s.prototype._getEndoBasis=function(e){for(var t,r,n,f,o,a,s,c,u,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=e,p=this.n.clone(),l=new i(1),b=new i(0),y=new i(0),m=new i(1),v=0;0!==h.cmpn(0);){var g=p.div(h);c=p.sub(g.mul(h)),u=y.sub(g.mul(l));var w=m.sub(g.mul(b));if(!n&&c.cmp(d)<0)t=s.neg(),r=l,n=c.neg(),f=u;else if(n&&2==++v)break;s=c,p=h,h=c,y=l,l=u,m=b,b=w}o=c.neg(),a=u;var _=n.sqr().add(f.sqr());return o.sqr().add(a.sqr()).cmp(_)>=0&&(o=t,a=r),n.negative&&(n=n.neg(),f=f.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:f},{a:o,b:a}]},s.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),f=r.b.neg().mul(e).divRound(this.n),o=i.mul(r.a),a=f.mul(n.a),s=i.mul(r.b),c=f.mul(n.b);return{k1:e.sub(o).sub(a),k2:s.add(c).neg()}},s.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var f=n.fromRed().isOdd();return(t&&!f||!t&&f)&&(n=n.redNeg()),this.point(e,n)},s.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},s.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,f=0;f":""},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),f=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,o)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},c.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},f(u,o.BasePoint),s.prototype.jpoint=function(e,t,r){return new u(this,e,t,r)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),f=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),s=f.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),d=n.redMul(c),h=s.redSqr().redIAdd(u).redISub(d).redISub(d),p=s.redMul(d.redISub(h)).redISub(f.redMul(u)),l=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,l)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,f=e.y.redMul(t).redMul(this.z),o=r.redSub(n),a=i.redSub(f);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var s=o.redSqr(),c=s.redMul(o),u=r.redMul(s),d=a.redSqr().redIAdd(c).redISub(u).redISub(u),h=a.redMul(u.redISub(d)).redISub(i.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(d,h,p)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(2),i=r(1),f=r(26),o=r(5);function a(e){f.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function s(e,t,r){f.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,f),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(s,f.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new s(this,e,t)},a.prototype.pointFromJSON=function(e){return s.fromJSON(this,e)},s.prototype.precompute=function(){},s.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},s.fromJSON=function(e,t){return new s(e,t[0],t[1]||e.one)},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},s.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},s.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),f=e.x.redSub(e.z).redMul(r),o=i.redMul(n),a=t.z.redMul(f.redAdd(o).redSqr()),s=t.x.redMul(f.redISub(o).redSqr());return this.curve.point(a,s)},s.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var f=i.length-1;f>=0;f--)0===i[f]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},s.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},s.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(5),i=r(2),f=r(1),o=r(26),a=n.assert;function s(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function c(e,t,r,n,f){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=f&&new i(f,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}f(s,o),e.exports=s,s.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},s.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},s.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},s.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),f=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=n.redMul(f.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var s=a.fromRed().isOdd();return(t&&!s||!t&&s)&&(a=a.redNeg()),this.point(e,a)},s.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),f=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(f.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},s.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},f(c,o.BasePoint),s.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},s.prototype.point=function(e,t,r,n){return new c(this,e,t,r,n)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),f=n.redAdd(t),o=f.redSub(r),a=n.redSub(t),s=i.redMul(o),c=f.redMul(a),u=i.redMul(a),d=o.redMul(f);return this.curve.point(s,c,d,u)},c.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),f=this.y.redSqr();if(this.curve.twisted){var o=(c=this.curve._mulA(i)).redAdd(f);if(this.zOne)e=n.redSub(i).redSub(f).redMul(o.redSub(this.curve.two)),t=o.redMul(c.redSub(f)),r=o.redSqr().redSub(o).redSub(o);else{var a=this.z.redSqr(),s=o.redSub(a).redISub(a);e=n.redSub(i).redISub(f).redMul(s),t=o.redMul(c.redSub(f)),r=o.redMul(s)}}else{var c=i.redAdd(f);a=this.curve._mulC(this.z).redSqr(),s=c.redSub(a).redSub(a);e=this.curve._mulC(n.redISub(c)).redMul(s),t=this.curve._mulC(c).redMul(i.redISub(f)),r=c.redMul(s)}return this.curve.point(e,t,r)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),f=r.redSub(t),o=i.redSub(n),a=i.redAdd(n),s=r.redAdd(t),c=f.redMul(o),u=a.redMul(s),d=f.redMul(s),h=o.redMul(a);return this.curve.point(c,u,h,d)},c.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),f=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(f).redMul(o),s=i.redSub(a),c=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(f).redISub(o),d=n.redMul(s).redMul(u);return this.curve.twisted?(t=n.redMul(c).redMul(o.redSub(this.curve._mulA(f))),r=s.redMul(c)):(t=n.redMul(c).redMul(o.redSub(f)),r=this.curve._mulC(s).redMul(c)),this.curve.point(d,t,r)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},c.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},function(e,t,r){"use strict";t.sha1=r(132),t.sha224=r(133),t.sha256=r(59),t.sha384=r(134),t.sha512=r(60)},function(e,t,r){"use strict";var n=r(7),i=r(20),f=r(58),o=n.rotl32,a=n.sum32,s=n.sum32_5,c=f.ft_1,u=i.BlockHash,d=[1518500249,1859775393,2400959708,3395469782];function h(){if(!(this instanceof h))return new h;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(h,u),e.exports=h,h.blockSize=512,h.outSize=160,h.hmacStrength=80,h.padLength=64,h.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;nthis.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t0))return o.iaddn(1),this.keyFromPrivate(o)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,f){"object"==typeof r&&(f=r,r=null),f||(f={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray("be",o),s=e.toArray("be",o),c=new i({hash:this.hash,entropy:a,nonce:s,pers:f.pers,persEnc:f.persEnc||"utf8"}),d=this.n.sub(new n(1)),h=0;;h++){var p=f.k?f.k(h):new n(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var l=this.g.mul(p);if(!l.isInfinity()){var b=l.getX(),y=b.umod(this.n);if(0!==y.cmpn(0)){var m=p.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(l.getY().isOdd()?1:0)|(0!==b.cmp(y)?2:0);return f.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new u({r:y,s:m,recoveryParam:v})}}}}}},d.prototype.verify=function(e,t,r,i){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,i);var f=(t=new u(t,"hex")).r,o=t.s;if(f.cmpn(1)<0||f.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,s=o.invm(this.n),c=s.mul(e).umod(this.n),d=s.mul(f).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(c,r.getPublic(),d)).isInfinity()&&a.eqXToP(f):!(a=this.g.mulAdd(c,r.getPublic(),d)).isInfinity()&&0===a.getX().umod(this.n).cmp(f)},d.prototype.recoverPubKey=function(e,t,r,i){s((3&r)===r,"The recovery param is more than two bits"),t=new u(t,i);var f=this.n,o=new n(e),a=t.r,c=t.s,d=1&r,h=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error("Unable to find sencond key candinate");a=h?this.curve.pointFromX(a.add(this.curve.n),d):this.curve.pointFromX(a,d);var p=t.r.invm(f),l=f.sub(o).mul(p).umod(f),b=c.mul(p).umod(f);return this.g.mulAdd(l,a,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new u(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var f;try{f=this.recoverPubKey(e,t,i)}catch(e){continue}if(f.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(2),i=r(5).assert;function f(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=f,f.fromPublic=function(e,t,r){return t instanceof f?t:new f(e,{pub:t,pubEnc:r})},f.fromPrivate=function(e,t,r){return t instanceof f?t:new f(e,{priv:t,privEnc:r})},f.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},f.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},f.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},f.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},f.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},f.prototype.derive=function(e){return e.mul(this.priv).getX()},f.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},f.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},f.prototype.inspect=function(){return""}},function(e,t,r){"use strict";var n=r(2),i=r(5),f=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(f(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function s(e,t){var r=e[t.place++];if(!(128&r))return r;for(var n=15&r,i=0,f=0,o=t.place;f>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;if(s(e,r)+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var f=s(e,r),o=e.slice(r.place,f+r.place);if(r.place+=f,2!==e[r.place++])return!1;var c=s(e,r);if(e.length!==c+r.place)return!1;var u=e.slice(r.place,c+r.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new n(o),this.s=new n(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=c(t),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];u(n,t.length),(n=n.concat(t)).push(2),u(n,r.length);var f=n.concat(r),o=[48];return u(o,f.length),o=o.concat(f),i.encode(o,e)}},function(e,t,r){"use strict";var n=r(14),i=r(36),f=r(5),o=f.assert,a=f.parseBytes,s=r(142),c=r(143);function u(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),f=this.encodePoint(i),o=this.hashInt(f,r.pubBytes(),e).mul(r.priv()),s=n.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:s,Rencoded:f})},u.prototype.verify=function(e,t,r){e=a(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),f=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(f)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=f)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),l(r)?n.showHidden=r:r&&t._extend(n,r),v(n.showHidden)&&(n.showHidden=!1),v(n.depth)&&(n.depth=2),v(n.colors)&&(n.colors=!1),v(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=s),u(n,e,n.depth)}function s(e,t){var r=a.styles[t];return r?"["+a.colors[r][0]+"m"+e+"["+a.colors[r][1]+"m":e}function c(e,t){return e}function u(e,r,n){if(e.customInspect&&r&&E(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return m(i)||(i=u(e,i,n)),i}var f=function(e,t){if(v(t))return e.stylize("undefined","undefined");if(m(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(y(t))return e.stylize(""+t,"number");if(l(t))return e.stylize(""+t,"boolean");if(b(t))return e.stylize("null","null")}(e,r);if(f)return f;var o=Object.keys(r),a=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),S(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return d(r);if(0===o.length){if(E(r)){var s=r.name?": "+r.name:"";return e.stylize("[Function"+s+"]","special")}if(g(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(_(r))return e.stylize(Date.prototype.toString.call(r),"date");if(S(r))return d(r)}var c,w="",I=!1,k=["{","}"];(p(r)&&(I=!0,k=["[","]"]),E(r))&&(w=" [Function"+(r.name?": "+r.name:"")+"]");return g(r)&&(w=" "+RegExp.prototype.toString.call(r)),_(r)&&(w=" "+Date.prototype.toUTCString.call(r)),S(r)&&(w=" "+d(r)),0!==o.length||I&&0!=r.length?n<0?g(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),c=I?function(e,t,r,n,i){for(var f=[],o=0,a=t.length;o=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(c,w,k)):k[0]+w+k[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,r,n,i,f){var o,a,s;if((s=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=s.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):s.set&&(a=e.stylize("[Setter]","special")),A(n,i)||(o="["+i+"]"),a||(e.seen.indexOf(s.value)<0?(a=b(r)?u(e,s.value,null):u(e,s.value,r-1)).indexOf("\n")>-1&&(a=f?a.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),v(o)){if(f&&i.match(/^\d+$/))return a;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+a}function p(e){return Array.isArray(e)}function l(e){return"boolean"==typeof e}function b(e){return null===e}function y(e){return"number"==typeof e}function m(e){return"string"==typeof e}function v(e){return void 0===e}function g(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function _(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function E(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}t.debuglog=function(r){if(v(f)&&(f=e.env.NODE_DEBUG||""),r=r.toUpperCase(),!o[r])if(new RegExp("\\b"+r+"\\b","i").test(f)){e.pid;o[r]=function(){t.format.apply(t,arguments)}}else o[r]=function(){};return o[r]},t.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=l,t.isNull=b,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=m,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=v,t.isRegExp=g,t.isObject=w,t.isDate=_,t.isError=S,t.isFunction=E,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(176);function A(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){},t.inherits=r(177),t._extend=function(e,t){if(!t||!w(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var k="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function T(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(k&&e[k]){var t;if("function"!=typeof(t=e[k]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,k,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),i=[],f=0;f0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var t,r,i,f=n.allocUnsafe(e>>>0),o=this.head,a=0;o;)t=o.data,r=f,i=a,t.copy(r,i),a+=o.data.length,o=o.next;return f},e}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,r){(function(e){var n=void 0!==e&&e||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function f(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new f(i.call(setTimeout,n,arguments),clearTimeout)},t.setInterval=function(){return new f(i.call(setInterval,n,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},f.prototype.unref=f.prototype.ref=function(){},f.prototype.close=function(){this._clearFn.call(n,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(155),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(6))},function(e,t,r){(function(e,t){!function(e,r){"use strict";if(!e.setImmediate){var n,i,f,o,a,s=1,c={},u=!1,d=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?n=function(e){t.nextTick((function(){l(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?e.MessageChannel?((f=new MessageChannel).port1.onmessage=function(e){l(e.data)},n=function(e){f.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(i=d.documentElement,n=function(e){var t=d.createElement("script");t.onreadystatechange=function(){l(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):n=function(e){setTimeout(l,0,e)}:(o="setImmediate$"+Math.random()+"$",a=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&l(+t.data.slice(o.length))},e.addEventListener?e.addEventListener("message",a,!1):e.attachEvent("onmessage",a),n=function(t){e.postMessage(o+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r>>2}function u(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(s,i),s.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},s.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,f=0|this._c,a=0|this._d,s=0|this._e,d=0;d<16;++d)r[d]=e.readInt32BE(4*d);for(;d<80;++d)r[d]=r[d-3]^r[d-8]^r[d-14]^r[d-16];for(var h=0;h<80;++h){var p=~~(h/20),l=0|((t=n)<<5|t>>>27)+u(p,i,f,a)+s+r[h]+o[p];s=a,a=f,f=c(i),i=n,n=l}this._a=n+this._a|0,this._b=i+this._b|0,this._c=f+this._c|0,this._d=a+this._d|0,this._e=s+this._e|0},s.prototype._hash=function(){var e=f.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=s},function(e,t,r){var n=r(1),i=r(19),f=r(16).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function s(){this.init(),this._w=a,i.call(this,64,56)}function c(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function d(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(s,i),s.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},s.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,f=0|this._c,a=0|this._d,s=0|this._e,h=0;h<16;++h)r[h]=e.readInt32BE(4*h);for(;h<80;++h)r[h]=(t=r[h-3]^r[h-8]^r[h-14]^r[h-16])<<1|t>>>31;for(var p=0;p<80;++p){var l=~~(p/20),b=c(n)+d(l,i,f,a)+s+r[p]+o[l]|0;s=a,a=f,f=u(i),i=n,n=b}this._a=n+this._a|0,this._b=i+this._b|0,this._c=f+this._c|0,this._d=a+this._d|0,this._e=s+this._e|0},s.prototype._hash=function(){var e=f.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=s},function(e,t,r){var n=r(1),i=r(77),f=r(19),o=r(16).Buffer,a=new Array(64);function s(){this.init(),this._w=a,f.call(this,64,56)}n(s,i),s.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},s.prototype._hash=function(){var e=o.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=s},function(e,t,r){var n=r(1),i=r(78),f=r(19),o=r(16).Buffer,a=new Array(160);function s(){this.init(),this._w=a,f.call(this,128,112)}n(s,i),s.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},s.prototype._hash=function(){var e=o.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=s},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";var n=r(171),i=r(172),f=r(80);function o(e,t){return void 0===e?t:(n.isBoolean(e,f.COMPRESSED_TYPE_INVALID),e)}e.exports=function(e){return{privateKeyVerify:function(t){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),32===t.length&&e.privateKeyVerify(t)},privateKeyExport:function(t,r){n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),r=o(r,!0);var a=e.privateKeyExport(t,r);return i.privateKeyExport(t,a,r)},privateKeyImport:function(t){if(n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),(t=i.privateKeyImport(t))&&32===t.length&&e.privateKeyVerify(t))return t;throw new Error(f.EC_PRIVATE_KEY_IMPORT_DER_FAIL)},privateKeyNegate:function(t){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),e.privateKeyNegate(t)},privateKeyModInverse:function(t){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),e.privateKeyModInverse(t)},privateKeyTweakAdd:function(t,r){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),n.isBuffer(r,f.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,f.TWEAK_LENGTH_INVALID),e.privateKeyTweakAdd(t,r)},privateKeyTweakMul:function(t,r){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),n.isBuffer(r,f.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,f.TWEAK_LENGTH_INVALID),e.privateKeyTweakMul(t,r)},publicKeyCreate:function(t,r){return n.isBuffer(t,f.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,f.EC_PRIVATE_KEY_LENGTH_INVALID),r=o(r,!0),e.publicKeyCreate(t,r)},publicKeyConvert:function(t,r){return n.isBuffer(t,f.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,f.EC_PUBLIC_KEY_LENGTH_INVALID),r=o(r,!0),e.publicKeyConvert(t,r)},publicKeyVerify:function(t){return n.isBuffer(t,f.EC_PUBLIC_KEY_TYPE_INVALID),e.publicKeyVerify(t)},publicKeyTweakAdd:function(t,r,i){return n.isBuffer(t,f.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,f.EC_PUBLIC_KEY_LENGTH_INVALID),n.isBuffer(r,f.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,f.TWEAK_LENGTH_INVALID),i=o(i,!0),e.publicKeyTweakAdd(t,r,i)},publicKeyTweakMul:function(t,r,i){return n.isBuffer(t,f.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,f.EC_PUBLIC_KEY_LENGTH_INVALID),n.isBuffer(r,f.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,f.TWEAK_LENGTH_INVALID),i=o(i,!0),e.publicKeyTweakMul(t,r,i)},publicKeyCombine:function(t,r){n.isArray(t,f.EC_PUBLIC_KEYS_TYPE_INVALID),n.isLengthGTZero(t,f.EC_PUBLIC_KEYS_LENGTH_INVALID);for(var i=0;i=r)throw RangeError(n)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n=r(79).Buffer,i=r(70),f=n.from([48,129,211,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,133,48,129,130,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,33,2,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,36,3,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),o=n.from([48,130,1,19,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,165,48,129,162,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,65,4,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,72,58,218,119,38,163,196,101,93,164,251,252,14,17,8,168,253,23,180,72,166,133,84,25,156,71,208,143,251,16,212,184,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,68,3,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);t.privateKeyExport=function(e,t,r){var i=n.from(r?f:o);return e.copy(i,r?8:9),t.copy(i,r?181:214),i},t.privateKeyImport=function(e){var t=e.length,r=0;if(!(t2||t1?e[r+n-2]<<8:0);if(!(t<(r+=n)+i||t32||t1&&0===t[f]&&!(128&t[f+1]);--r,++f);for(var o=n.concat([n.from([0]),e.s]),a=33,s=0;a>1&&0===o[s]&&!(128&o[s+1]);--a,++s);return i.encode(t.slice(f),o.slice(s))},t.signatureImport=function(e){var t=n.alloc(32,0),r=n.alloc(32,0);try{var f=i.decode(e);if(33===f.r.length&&0===f.r[0]&&(f.r=f.r.slice(1)),f.r.length>32)throw new Error("R length is too long");if(33===f.s.length&&0===f.s[0]&&(f.s=f.s.slice(1)),f.s.length>32)throw new Error("S length is too long")}catch(e){return}return f.r.copy(t,32-f.r.length),f.s.copy(r,32-f.s.length),{r:t,s:r}},t.signatureImportLax=function(e){var t=n.alloc(32,0),r=n.alloc(32,0),i=e.length,f=0;if(48===e[f++]){var o=e[f++];if(!(128&o&&(f+=o-128)>i)&&2===e[f++]){var a=e[f++];if(128&a){if(f+(o=a-128)>i)return;for(;o>0&&0===e[f];f+=1,o-=1);for(a=0;o>0;f+=1,o-=1)a=(a<<8)+e[f]}if(!(a>i-f)){var s=f;if(f+=a,2===e[f++]){var c=e[f++];if(128&c){if(f+(o=c-128)>i)return;for(;o>0&&0===e[f];f+=1,o-=1);for(c=0;o>0;f+=1,o-=1)c=(c<<8)+e[f]}if(!(c>i-f)){var u=f;for(f+=c;a>0&&0===e[s];a-=1,s+=1);if(!(a>32)){var d=e.slice(s,s+a);for(d.copy(t,32-d.length);c>0&&0===e[u];c-=1,u+=1);if(!(c>32)){var h=e.slice(u,u+c);return h.copy(r,32-h.length),{r:t,s:r}}}}}}}}}},function(e,t,r){"use strict";var n=r(79).Buffer,i=r(10),f=r(2),o=r(82).ec,a=r(80),s=new o("secp256k1"),c=s.curve;function u(e){var t=e[0];switch(t){case 2:case 3:return 33!==e.length?null:function(e,t){var r=new f(t);if(r.cmp(c.p)>=0)return null;var n=(r=r.toRed(c.red)).redSqr().redIMul(r).redIAdd(c.b).redSqrt();return 3===e!==n.isOdd()&&(n=n.redNeg()),s.keyPair({pub:{x:r,y:n}})}(t,e.slice(1,33));case 4:case 6:case 7:return 65!==e.length?null:function(e,t,r){var n=new f(t),i=new f(r);if(n.cmp(c.p)>=0||i.cmp(c.p)>=0)return null;if(n=n.toRed(c.red),i=i.toRed(c.red),(6===e||7===e)&&i.isOdd()!==(7===e))return null;var o=n.redSqr().redIMul(n);return i.redSqr().redISub(o.redIAdd(c.b)).isZero()?s.keyPair({pub:{x:n,y:i}}):null}(t,e.slice(1,33),e.slice(33,65));default:return null}}t.privateKeyVerify=function(e){var t=new f(e);return t.cmp(c.n)<0&&!t.isZero()},t.privateKeyExport=function(e,t){var r=new f(e);if(r.cmp(c.n)>=0||r.isZero())throw new Error(a.EC_PRIVATE_KEY_EXPORT_DER_FAIL);return n.from(s.keyFromPrivate(e).getPublic(t,!0))},t.privateKeyNegate=function(e){var t=new f(e);return t.isZero()?n.alloc(32):c.n.sub(t).umod(c.n).toArrayLike(n,"be",32)},t.privateKeyModInverse=function(e){var t=new f(e);if(t.cmp(c.n)>=0||t.isZero())throw new Error(a.EC_PRIVATE_KEY_RANGE_INVALID);return t.invm(c.n).toArrayLike(n,"be",32)},t.privateKeyTweakAdd=function(e,t){var r=new f(t);if(r.cmp(c.n)>=0)throw new Error(a.EC_PRIVATE_KEY_TWEAK_ADD_FAIL);if(r.iadd(new f(e)),r.cmp(c.n)>=0&&r.isub(c.n),r.isZero())throw new Error(a.EC_PRIVATE_KEY_TWEAK_ADD_FAIL);return r.toArrayLike(n,"be",32)},t.privateKeyTweakMul=function(e,t){var r=new f(t);if(r.cmp(c.n)>=0||r.isZero())throw new Error(a.EC_PRIVATE_KEY_TWEAK_MUL_FAIL);return r.imul(new f(e)),r.cmp(c.n)&&(r=r.umod(c.n)),r.toArrayLike(n,"be",32)},t.publicKeyCreate=function(e,t){var r=new f(e);if(r.cmp(c.n)>=0||r.isZero())throw new Error(a.EC_PUBLIC_KEY_CREATE_FAIL);return n.from(s.keyFromPrivate(e).getPublic(t,!0))},t.publicKeyConvert=function(e,t){var r=u(e);if(null===r)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);return n.from(r.getPublic(t,!0))},t.publicKeyVerify=function(e){return null!==u(e)},t.publicKeyTweakAdd=function(e,t,r){var i=u(e);if(null===i)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);if((t=new f(t)).cmp(c.n)>=0)throw new Error(a.EC_PUBLIC_KEY_TWEAK_ADD_FAIL);var o=c.g.mul(t).add(i.pub);if(o.isInfinity())throw new Error(a.EC_PUBLIC_KEY_TWEAK_ADD_FAIL);return n.from(o.encode(!0,r))},t.publicKeyTweakMul=function(e,t,r){var i=u(e);if(null===i)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);if((t=new f(t)).cmp(c.n)>=0||t.isZero())throw new Error(a.EC_PUBLIC_KEY_TWEAK_MUL_FAIL);return n.from(i.pub.mul(t).encode(!0,r))},t.publicKeyCombine=function(e,t){for(var r=new Array(e.length),i=0;i=0||r.cmp(c.n)>=0)throw new Error(a.ECDSA_SIGNATURE_PARSE_FAIL);var i=n.from(e);return 1===r.cmp(s.nh)&&c.n.sub(r).toArrayLike(n,"be",32).copy(i,32),i},t.signatureExport=function(e){var t=e.slice(0,32),r=e.slice(32,64);if(new f(t).cmp(c.n)>=0||new f(r).cmp(c.n)>=0)throw new Error(a.ECDSA_SIGNATURE_PARSE_FAIL);return{r:t,s:r}},t.signatureImport=function(e){var t=new f(e.r);t.cmp(c.n)>=0&&(t=new f(0));var r=new f(e.s);return r.cmp(c.n)>=0&&(r=new f(0)),n.concat([t.toArrayLike(n,"be",32),r.toArrayLike(n,"be",32)])},t.sign=function(e,t,r,i){if("function"==typeof r){var o=r;r=function(r){var s=o(e,t,null,i,r);if(!n.isBuffer(s)||32!==s.length)throw new Error(a.ECDSA_SIGN_FAIL);return new f(s)}}var u=new f(t);if(u.cmp(c.n)>=0||u.isZero())throw new Error(a.ECDSA_SIGN_FAIL);var d=s.sign(e,t,{canonical:!0,k:r,pers:i});return{signature:n.concat([d.r.toArrayLike(n,"be",32),d.s.toArrayLike(n,"be",32)]),recovery:d.recoveryParam}},t.verify=function(e,t,r){var n={r:t.slice(0,32),s:t.slice(32,64)},i=new f(n.r),o=new f(n.s);if(i.cmp(c.n)>=0||o.cmp(c.n)>=0)throw new Error(a.ECDSA_SIGNATURE_PARSE_FAIL);if(1===o.cmp(s.nh)||i.isZero()||o.isZero())return!1;var d=u(r);if(null===d)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);return s.verify(e,n,{x:d.pub.x,y:d.pub.y})},t.recover=function(e,t,r,i){var o={r:t.slice(0,32),s:t.slice(32,64)},u=new f(o.r),d=new f(o.s);if(u.cmp(c.n)>=0||d.cmp(c.n)>=0)throw new Error(a.ECDSA_SIGNATURE_PARSE_FAIL);try{if(u.isZero()||d.isZero())throw new Error;var h=s.recoverPubKey(e,o,r);return n.from(h.encode(!0,i))}catch(e){throw new Error(a.ECDSA_RECOVER_FAIL)}},t.ecdh=function(e,r){var n=t.ecdhUnsafe(e,r,!0);return i("sha256").update(n).digest()},t.ecdhUnsafe=function(e,t,r){var i=u(e);if(null===i)throw new Error(a.EC_PUBLIC_KEY_PARSE_FAIL);var o=new f(t);if(o.cmp(c.n)>=0||o.isZero())throw new Error(a.ECDH_FAIL);return n.from(i.pub.mul(o).encode(!0,r))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.toString(16);return t.length%2==1?"0"+t:t}},function(e,t,r){"use strict";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,a,s=o(e),c=1;c21)throw new TypeError(e+" is too long");return{version:t.readUInt8(0),hash:t.slice(1)}}function d(t){const r=a.decode(t),n=a.fromWords(r.words.slice(1));return{version:r.words[0],prefix:r.prefix,data:e.from(n)}}t.fromBase58Check=u,t.fromBech32=d,t.toBase58Check=function(t,r){c(o.tuple(o.Hash160bit,o.UInt8),arguments);const n=e.allocUnsafe(21);return n.writeUInt8(r,0),t.copy(n,1),s.encode(n)},t.toBech32=function(e,t,r){const n=a.toWords(e);return n.unshift(t),a.encode(r,n)},t.fromOutputScript=function(e,t){t=t||n.bitcoin;try{return i.p2pkh({output:e,network:t}).address}catch(e){}try{return i.p2sh({output:e,network:t}).address}catch(e){}try{return i.p2wpkh({output:e,network:t}).address}catch(e){}try{return i.p2wsh({output:e,network:t}).address}catch(e){}throw new Error(f.toASM(e)+" has no matching Address")},t.toOutputScript=function(e,t){let r,f;t=t||n.bitcoin;try{r=u(e)}catch(e){}if(r){if(r.version===t.pubKeyHash)return i.p2pkh({hash:r.hash}).output;if(r.version===t.scriptHash)return i.p2sh({hash:r.hash}).output}else{try{f=d(e)}catch(e){}if(f){if(f.prefix!==t.bech32)throw new Error(e+" has an invalid prefix");if(0===f.version){if(20===f.data.length)return i.p2wpkh({hash:f.data}).output;if(32===f.data.length)return i.p2wsh({hash:f.data}).output}}}throw new Error(e+" has no matching Script")}}).call(this,r(0).Buffer)},function(e){e.exports=JSON.parse('{"OP_FALSE":0,"OP_0":0,"OP_PUSHDATA1":76,"OP_PUSHDATA2":77,"OP_PUSHDATA4":78,"OP_1NEGATE":79,"OP_RESERVED":80,"OP_TRUE":81,"OP_1":81,"OP_2":82,"OP_3":83,"OP_4":84,"OP_5":85,"OP_6":86,"OP_7":87,"OP_8":88,"OP_9":89,"OP_10":90,"OP_11":91,"OP_12":92,"OP_13":93,"OP_14":94,"OP_15":95,"OP_16":96,"OP_NOP":97,"OP_VER":98,"OP_IF":99,"OP_NOTIF":100,"OP_VERIF":101,"OP_VERNOTIF":102,"OP_ELSE":103,"OP_ENDIF":104,"OP_VERIFY":105,"OP_RETURN":106,"OP_TOALTSTACK":107,"OP_FROMALTSTACK":108,"OP_2DROP":109,"OP_2DUP":110,"OP_3DUP":111,"OP_2OVER":112,"OP_2ROT":113,"OP_2SWAP":114,"OP_IFDUP":115,"OP_DEPTH":116,"OP_DROP":117,"OP_DUP":118,"OP_NIP":119,"OP_OVER":120,"OP_PICK":121,"OP_ROLL":122,"OP_ROT":123,"OP_SWAP":124,"OP_TUCK":125,"OP_CAT":126,"OP_SUBSTR":127,"OP_LEFT":128,"OP_RIGHT":129,"OP_SIZE":130,"OP_INVERT":131,"OP_AND":132,"OP_OR":133,"OP_XOR":134,"OP_EQUAL":135,"OP_EQUALVERIFY":136,"OP_RESERVED1":137,"OP_RESERVED2":138,"OP_1ADD":139,"OP_1SUB":140,"OP_2MUL":141,"OP_2DIV":142,"OP_NEGATE":143,"OP_ABS":144,"OP_NOT":145,"OP_0NOTEQUAL":146,"OP_ADD":147,"OP_SUB":148,"OP_MUL":149,"OP_DIV":150,"OP_MOD":151,"OP_LSHIFT":152,"OP_RSHIFT":153,"OP_BOOLAND":154,"OP_BOOLOR":155,"OP_NUMEQUAL":156,"OP_NUMEQUALVERIFY":157,"OP_NUMNOTEQUAL":158,"OP_LESSTHAN":159,"OP_GREATERTHAN":160,"OP_LESSTHANOREQUAL":161,"OP_GREATERTHANOREQUAL":162,"OP_MIN":163,"OP_MAX":164,"OP_WITHIN":165,"OP_RIPEMD160":166,"OP_SHA1":167,"OP_SHA256":168,"OP_HASH160":169,"OP_HASH256":170,"OP_CODESEPARATOR":171,"OP_CHECKSIG":172,"OP_CHECKSIGVERIFY":173,"OP_CHECKMULTISIG":174,"OP_CHECKMULTISIGVERIFY":175,"OP_NOP1":176,"OP_NOP2":177,"OP_CHECKLOCKTIMEVERIFY":177,"OP_NOP3":178,"OP_CHECKSEQUENCEVERIFY":178,"OP_NOP4":179,"OP_NOP5":180,"OP_NOP6":181,"OP_NOP7":182,"OP_NOP8":183,"OP_NOP9":184,"OP_NOP10":185,"OP_PUBKEYHASH":253,"OP_PUBKEY":254,"OP_INVALIDOPCODE":255}')},function(e,t,r){"use strict";var n=r(10),i=r(333);e.exports=i((function(e){var t=n("sha256").update(e).digest();return n("sha256").update(t).digest()}))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=r(34),f=r(53),o=r(21),a=r(13),s=r(285),c=a.maybe(a.compile({compressed:i.maybe(i.Boolean),network:i.maybe(i.Network)}));class u{constructor(e,t,r){this.__D=e,this.__Q=t,this.lowR=!1,void 0===r&&(r={}),this.compressed=void 0===r.compressed||r.compressed,this.network=r.network||n.bitcoin,void 0!==t&&(this.__Q=f.pointCompress(t,this.compressed))}get privateKey(){return this.__D}get publicKey(){return this.__Q||(this.__Q=f.pointFromScalar(this.__D,this.compressed)),this.__Q}toWIF(){if(!this.__D)throw new Error("Missing private key");return s.encode(this.network.wif,this.__D,this.compressed)}sign(t,r){if(!this.__D)throw new Error("Missing private key");if(void 0===r&&(r=this.lowR),!1===r)return f.sign(t,this.__D);{let r=f.sign(t,this.__D);const n=e.alloc(32,0);let i=0;for(;r[0]>127;)i++,n.writeUIntLE(i,0,6),r=f.signWithEntropy(t,this.__D,n);return r}}verify(e,t){return f.verify(e,this.publicKey,t)}}function d(e,t){if(a(i.Buffer256bit,e),!f.isPrivate(e))throw new TypeError("Private key not in range [1, n)");return a(c,t),new u(e,void 0,t)}t.fromPrivateKey=d,t.fromPublicKey=function(e,t){return a(f.isPoint,e),a(c,t),new u(void 0,e,t)},t.fromWIF=function(e,t){const r=s.decode(e),f=r.version;if(i.Array(t)){if(!(t=t.filter(e=>f===e.wif).pop()))throw new Error("Unknown network version")}else if(t=t||n.bitcoin,f!==t.wif)throw new Error("Invalid network version");return d(r.privateKey,{compressed:r.compressed,network:t})},t.makeRandom=function(e){a(c,e),void 0===e&&(e={});const t=e.rng||o;let r;do{r=t(32),a(i.Buffer256bit,r)}while(!f.isPrivate(r));return d(r,e)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(25),i=r(344),f=r(345),o=r(346),a=r(347),s=r(348),c=r(349),u=r(350),d=r(351),h=r(352),p=r(353),l=r(354),b=r(355),y=r(356),m={unsignedTx:f,globalXpub:i,checkPubkey:l.makeChecker([])};t.globals=m;const v={nonWitnessUtxo:s,partialSig:c,sighashType:d,finalScriptSig:o,finalScriptWitness:a,porCommitment:u,witnessUtxo:h,bip32Derivation:p.makeConverter(n.InputTypes.BIP32_DERIVATION),redeemScript:b.makeConverter(n.InputTypes.REDEEM_SCRIPT),witnessScript:y.makeConverter(n.InputTypes.WITNESS_SCRIPT),checkPubkey:l.makeChecker([n.InputTypes.PARTIAL_SIG,n.InputTypes.BIP32_DERIVATION])};t.inputs=v;const g={bip32Derivation:p.makeConverter(n.OutputTypes.BIP32_DERIVATION),redeemScript:b.makeConverter(n.OutputTypes.REDEEM_SCRIPT),witnessScript:y.makeConverter(n.OutputTypes.WITNESS_SCRIPT),checkPubkey:l.makeChecker([n.OutputTypes.BIP32_DERIVATION])};t.outputs=g},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(92);function i(t){const r=t.key.length,i=t.value.length,f=n.encodingLength(r),o=n.encodingLength(i),a=e.allocUnsafe(f+r+o+i);return n.encode(r,a,0),t.key.copy(a,f),n.encode(i,a,f+r),t.value.copy(a,f+r+o),a}function f(e,t){if("number"!=typeof e)throw new Error("cannot write a non-number as a number");if(e<0)throw new Error("specified a negative value for writing an unsigned value");if(e>t)throw new Error("RangeError: value out of range");if(Math.floor(e)!==e)throw new Error("value has a fractional component")}t.range=e=>[...Array(e).keys()],t.reverseBuffer=function(e){if(e.length<1)return e;let t=e.length-1,r=0;for(let n=0;n64?t=e(t):t.length<64&&(t=n.concat([t,s],64));for(var i=new n(64),f=new n(64),o=0;o<64;o++)i[o]=54^t[o],f[o]=92^t[o];var a=e(n.concat([i,r]));return e(n.concat([f,a]))}(r,t,f):r(f);return i=null,e?o.toString(e):o}}}function u(){var e=[].slice.call(arguments).join(" ");throw new Error([e,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}s.fill(0),t.createHash=function(e){return c(e)},t.createHmac=function(e,t){return c(e,t)},t.randomBytes=function(e,t){if(!t||!t.call)return new n(o(e));try{t.call(this,void 0,new n(o(e)))}catch(e){t(e)}},function(e,t){for(var r in e)t(e[r],r)}(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],(function(e){t[e]=function(){u("sorry,",e,"is not implemented yet")}}))},,,function(e,t,r){"use strict";var n=r(1),i=r(90).Buffer,f=r(17),o=i.alloc(128);function a(e,t){f.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>64?t=e(t):t.length<64&&(t=i.concat([t,o],64));for(var r=this._ipad=i.allocUnsafe(64),n=this._opad=i.allocUnsafe(64),a=0;a<64;a++)r[a]=54^t[a],n[a]=92^t[a];this._hash=[r]}n(a,f),a.prototype._update=function(e){this._hash.push(e)},a.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},e.exports=a},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";(function(e){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(r(83));t.default=function(e){if(e.length<128)throw new Error("not a valid signature");var t=e.toUpperCase();return"30440220"+t.slice(0,64)+"0220"+t.slice(64,128)},t.fromSignResultToDER=function(t){var r=e.from(t.r,"hex"),n=e.from(t.s,"hex"),f=e.concat([r,n]);return i.default.signatureExport(f).toString("hex")}}).call(this,r(0).Buffer)},function(e,t,r){e.exports=r(93)},function(e,t,r){(function(t,n){var i,f=r(95),o=r(96),a=r(97),s=r(98).Buffer,c=t.crypto&&t.crypto.subtle,u={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},d=[];function h(e,t,r,n,i){return c.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return c.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:i}},e,n<<3)})).then((function(e){return s.from(e)}))}e.exports=function(e,r,p,l,b,y){"function"==typeof b&&(y=b,b=void 0);var m=u[(b=b||"sha1").toLowerCase()];if(!m||"function"!=typeof t.Promise)return n.nextTick((function(){var t;try{t=a(e,r,p,l,b)}catch(e){return y(e)}y(null,t)}));if(f(e,r,p,l),"function"!=typeof y)throw new Error("No callback provided to pbkdf2");s.isBuffer(e)||(e=s.from(e,o)),s.isBuffer(r)||(r=s.from(r,o)),function(e,t){e.then((function(e){n.nextTick((function(){t(null,e)}))}),(function(e){n.nextTick((function(){t(e)}))}))}(function(e){if(t.process&&!t.process.browser)return Promise.resolve(!1);if(!c||!c.importKey||!c.deriveBits)return Promise.resolve(!1);if(void 0!==d[e])return d[e];var r=h(i=i||s.alloc(8),i,10,128,e).then((function(){return!0})).catch((function(){return!1}));return d[e]=r,r}(m).then((function(t){return t?h(e,r,p,l,m):a(e,r,p,l,b)})),y)}}).call(this,r(6),r(11))},function(e,t,r){var n=r(199),i=r(62),f=r(63),o=r(214),a=r(39);function s(e,t,r){if(e=e.toLowerCase(),f[e])return i.createCipheriv(e,t,r);if(o[e])return new n({key:t,iv:r,mode:e});throw new TypeError("invalid suite type")}function c(e,t,r){if(e=e.toLowerCase(),f[e])return i.createDecipheriv(e,t,r);if(o[e])return new n({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var r,n;if(e=e.toLowerCase(),f[e])r=f[e].key,n=f[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");r=8*o[e].key,n=o[e].iv}var i=a(t,!1,r,n);return s(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=s,t.createDecipher=t.Decipher=function(e,t){var r,n;if(e=e.toLowerCase(),f[e])r=f[e].key,n=f[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");r=8*o[e].key,n=o[e].iv}var i=a(t,!1,r,n);return c(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=c,t.listCiphers=t.getCiphers=function(){return Object.keys(o).concat(i.getCiphers())}},function(e,t,r){var n=r(17),i=r(200),f=r(1),o=r(203).Buffer,a={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function s(e){n.call(this);var t,r=e.mode.toLowerCase(),i=a[r];t=e.decrypt?"decrypt":"encrypt";var f=e.key;o.isBuffer(f)||(f=o.from(f)),"des-ede"!==r&&"des-ede-cbc"!==r||(f=o.concat([f,f.slice(0,8)]));var s=e.iv;o.isBuffer(s)||(s=o.from(s)),this._des=i.create({key:f,iv:s,type:t})}a.des=a["des-cbc"],a.des3=a["des-ede3-cbc"],e.exports=s,f(s,n),s.prototype._update=function(e){return o.from(this._des.update(e))},s.prototype._final=function(){return o.from(this._des.final())}},function(e,t,r){"use strict";t.utils=r(99),t.Cipher=r(61),t.DES=r(100),t.CBC=r(201),t.EDE=r(202)},function(e,t,r){"use strict";var n=r(4),i=r(1),f={};function o(e){n.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},h.prototype.flush=function(){for(var e=16-this.cache.length,t=f.allocUnsafe(e),r=-1;++r>o%8,e._prev=f(e._prev,r?n:i);return a}function f(e,t){var r=e.length,i=-1,f=n.allocUnsafe(e.length);for(e=n.concat([e,n.from([t])]);++i>7;return f}t.encrypt=function(e,t,r){for(var f=t.length,o=n.allocUnsafe(f),a=-1;++a>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function o(e){this.h=e,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}o.prototype.ghash=function(e){for(var t=-1;++t0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=f(i)},o.prototype.update=function(e){var t;for(this.cache=n.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},o.prototype.final=function(e,t){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(f([0,e,0,t])),this.state},e.exports=o},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){var n=r(104),i=r(12).Buffer,f=r(63),o=r(105),a=r(17),s=r(38),c=r(39);function u(e,t,r){a.call(this),this._cache=new d,this._last=void 0,this._cipher=new s.AES(t),this._prev=i.from(r),this._mode=e,this._autopadding=!0}function d(){this.cache=i.allocUnsafe(0)}function h(e,t,r){var a=f[e.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof r&&(r=i.from(r)),"GCM"!==a.mode&&r.length!==a.iv)throw new TypeError("invalid iv length "+r.length);if("string"==typeof t&&(t=i.from(t)),t.length!==a.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===a.type?new o(a.module,t,r,!0):"auth"===a.type?new n(a.module,t,r,!0):new u(a.module,t,r)}r(1)(u,a),u.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),n.push(r);return i.concat(n)},u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");var r=-1;for(;++r16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},d.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var r=f[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=c(t,!1,r.key,r.iv);return h(e,n.key,n.iv)},t.createDecipheriv=h},function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},function(e,t,r){(function(e){var n=r(106),i=r(216),f=r(217);var o={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(t){var r=new e(i[t].prime,"hex"),n=new e(i[t].gen,"hex");return new f(r,n)},t.createDiffieHellman=t.DiffieHellman=function t(r,i,a,s){return e.isBuffer(i)||void 0===o[i]?t(r,"binary",i,a):(i=i||"binary",s=s||"binary",a=a||new e([2]),e.isBuffer(a)||(a=new e(a,s)),"number"==typeof r?new f(n(r,a),a,!0):(e.isBuffer(r)||(r=new e(r,i)),new f(r,a,!0)))}}).call(this,r(0).Buffer)},function(e){e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(e,t,r){(function(t){var n=r(2),i=new(r(107)),f=new n(24),o=new n(11),a=new n(10),s=new n(3),c=new n(7),u=r(106),d=r(21);function h(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this._pub=new n(e),this}function p(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this._priv=new n(e),this}e.exports=b;var l={};function b(e,t,r){this.setGenerator(t),this.__prime=new n(e),this._prime=n.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=h,this.setPrivateKey=p):this._primeCode=8}function y(e,r){var n=new t(e.toArray());return r?n.toString(r):n}Object.defineProperty(b.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var r=t.toString("hex"),n=[r,e.toString(16)].join("_");if(n in l)return l[n];var d,h=0;if(e.isEven()||!u.simpleSieve||!u.fermatTest(e)||!i.test(e))return h+=1,h+="02"===r||"05"===r?8:4,l[n]=h,h;switch(i.test(e.shrn(1))||(h+=2),r){case"02":e.mod(f).cmp(o)&&(h+=8);break;case"05":(d=e.mod(a)).cmp(s)&&d.cmp(c)&&(h+=8);break;default:h+=4}return l[n]=h,h}(this.__prime,this.__gen)),this._primeCode}}),b.prototype.generateKeys=function(){return this._priv||(this._priv=new n(d(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},b.prototype.computeSecret=function(e){var r=(e=(e=new n(e)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new t(r.toArray()),f=this.getPrime();if(i.length0&&r.ishrn(n),r}function d(e,r,i){var f,o;do{for(f=new t(0);8*f.length","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(e,t,r){"use strict";var n=r(8),i=r(2),f=r(1),o=r(40),a=n.assert;function s(e){o.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,r,n){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,r,n){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}f(s,o),e.exports=s,s.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var f=this._getEndoRoots(this.n);0===this.g.mul(f[0]).x.cmp(this.g.x.redMul(t))?r=f[0]:(r=f[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},s.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),f=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(f).fromRed(),n.redSub(f).fromRed()]},s.prototype._getEndoBasis=function(e){for(var t,r,n,f,o,a,s,c,u,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=e,p=this.n.clone(),l=new i(1),b=new i(0),y=new i(0),m=new i(1),v=0;0!==h.cmpn(0);){var g=p.div(h);c=p.sub(g.mul(h)),u=y.sub(g.mul(l));var w=m.sub(g.mul(b));if(!n&&c.cmp(d)<0)t=s.neg(),r=l,n=c.neg(),f=u;else if(n&&2==++v)break;s=c,p=h,h=c,y=l,l=u,m=b,b=w}o=c.neg(),a=u;var _=n.sqr().add(f.sqr());return o.sqr().add(a.sqr()).cmp(_)>=0&&(o=t,a=r),n.negative&&(n=n.neg(),f=f.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:f},{a:o,b:a}]},s.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),f=r.b.neg().mul(e).divRound(this.n),o=i.mul(r.a),a=f.mul(n.a),s=i.mul(r.b),c=f.mul(n.b);return{k1:e.sub(o).sub(a),k2:s.add(c).neg()}},s.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var f=n.fromRed().isOdd();return(t&&!f||!t&&f)&&(n=n.redNeg()),this.point(e,n)},s.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},s.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,f=0;f":""},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),f=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,o)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},c.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},f(u,o.BasePoint),s.prototype.jpoint=function(e,t,r){return new u(this,e,t,r)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),f=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),s=f.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),d=n.redMul(c),h=s.redSqr().redIAdd(u).redISub(d).redISub(d),p=s.redMul(d.redISub(h)).redISub(f.redMul(u)),l=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,l)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,f=e.y.redMul(t).redMul(this.z),o=r.redSub(n),a=i.redSub(f);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var s=o.redSqr(),c=s.redMul(o),u=r.redMul(s),d=a.redSqr().redIAdd(c).redISub(u).redISub(u),h=a.redMul(u.redISub(d)).redISub(i.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(d,h,p)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(2),i=r(1),f=r(40),o=r(8);function a(e){f.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function s(e,t,r){f.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,f),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(s,f.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new s(this,e,t)},a.prototype.pointFromJSON=function(e){return s.fromJSON(this,e)},s.prototype.precompute=function(){},s.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},s.fromJSON=function(e,t){return new s(e,t[0],t[1]||e.one)},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},s.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},s.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),f=e.x.redSub(e.z).redMul(r),o=i.redMul(n),a=t.z.redMul(f.redAdd(o).redSqr()),s=t.x.redMul(f.redISub(o).redSqr());return this.curve.point(a,s)},s.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var f=i.length-1;f>=0;f--)0===i[f]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},s.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},s.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(8),i=r(2),f=r(1),o=r(40),a=n.assert;function s(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function c(e,t,r,n,f){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=f&&new i(f,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}f(s,o),e.exports=s,s.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},s.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},s.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},s.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),f=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=n.redMul(f.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var s=a.fromRed().isOdd();return(t&&!s||!t&&s)&&(a=a.redNeg()),this.point(e,a)},s.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),f=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(f.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},s.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},f(c,o.BasePoint),s.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},s.prototype.point=function(e,t,r,n){return new c(this,e,t,r,n)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),f=n.redAdd(t),o=f.redSub(r),a=n.redSub(t),s=i.redMul(o),c=f.redMul(a),u=i.redMul(a),d=o.redMul(f);return this.curve.point(s,c,d,u)},c.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),f=this.y.redSqr();if(this.curve.twisted){var o=(c=this.curve._mulA(i)).redAdd(f);if(this.zOne)e=n.redSub(i).redSub(f).redMul(o.redSub(this.curve.two)),t=o.redMul(c.redSub(f)),r=o.redSqr().redSub(o).redSub(o);else{var a=this.z.redSqr(),s=o.redSub(a).redISub(a);e=n.redSub(i).redISub(f).redMul(s),t=o.redMul(c.redSub(f)),r=o.redMul(s)}}else{var c=i.redAdd(f);a=this.curve._mulC(this.z).redSqr(),s=c.redSub(a).redSub(a);e=this.curve._mulC(n.redISub(c)).redMul(s),t=this.curve._mulC(c).redMul(i.redISub(f)),r=c.redMul(s)}return this.curve.point(e,t,r)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),f=r.redSub(t),o=i.redSub(n),a=i.redAdd(n),s=r.redAdd(t),c=f.redMul(o),u=a.redMul(s),d=f.redMul(s),h=o.redMul(a);return this.curve.point(c,u,h,d)},c.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),f=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(f).redMul(o),s=i.redSub(a),c=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(f).redISub(o),d=n.redMul(s).redMul(u);return this.curve.twisted?(t=n.redMul(c).redMul(o.redSub(this.curve._mulA(f))),r=s.redMul(c)):(t=n.redMul(c).redMul(o.redSub(f)),r=this.curve._mulC(s).redMul(c)),this.curve.point(d,t,r)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},c.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},function(e,t){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(e,t,r){"use strict";var n=r(2),i=r(49),f=r(8),o=r(65),a=r(18),s=f.assert,c=r(226),u=r(227);function d(e){if(!(this instanceof d))return new d(e);"string"==typeof e&&(s(o.hasOwnProperty(e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=d,d.prototype.keyPair=function(e){return new c(this,e)},d.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},d.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},d.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),f=this.n.sub(new n(2));;){var o=new n(t.generate(r));if(!(o.cmp(f)>0))return o.iaddn(1),this.keyFromPrivate(o)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,f){"object"==typeof r&&(f=r,r=null),f||(f={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray("be",o),s=e.toArray("be",o),c=new i({hash:this.hash,entropy:a,nonce:s,pers:f.pers,persEnc:f.persEnc||"utf8"}),d=this.n.sub(new n(1)),h=0;;h++){var p=f.k?f.k(h):new n(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var l=this.g.mul(p);if(!l.isInfinity()){var b=l.getX(),y=b.umod(this.n);if(0!==y.cmpn(0)){var m=p.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(l.getY().isOdd()?1:0)|(0!==b.cmp(y)?2:0);return f.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new u({r:y,s:m,recoveryParam:v})}}}}}},d.prototype.verify=function(e,t,r,i){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,i);var f=(t=new u(t,"hex")).r,o=t.s;if(f.cmpn(1)<0||f.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,s=o.invm(this.n),c=s.mul(e).umod(this.n),d=s.mul(f).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(c,r.getPublic(),d)).isInfinity()&&a.eqXToP(f):!(a=this.g.mulAdd(c,r.getPublic(),d)).isInfinity()&&0===a.getX().umod(this.n).cmp(f)},d.prototype.recoverPubKey=function(e,t,r,i){s((3&r)===r,"The recovery param is more than two bits"),t=new u(t,i);var f=this.n,o=new n(e),a=t.r,c=t.s,d=1&r,h=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error("Unable to find sencond key candinate");a=h?this.curve.pointFromX(a.add(this.curve.n),d):this.curve.pointFromX(a,d);var p=t.r.invm(f),l=f.sub(o).mul(p).umod(f),b=c.mul(p).umod(f);return this.g.mulAdd(l,a,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new u(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var f;try{f=this.recoverPubKey(e,t,i)}catch(e){continue}if(f.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(2),i=r(8).assert;function f(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=f,f.fromPublic=function(e,t,r){return t instanceof f?t:new f(e,{pub:t,pubEnc:r})},f.fromPrivate=function(e,t,r){return t instanceof f?t:new f(e,{priv:t,privEnc:r})},f.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},f.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},f.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},f.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},f.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},f.prototype.derive=function(e){return e.mul(this.priv).getX()},f.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},f.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},f.prototype.inspect=function(){return""}},function(e,t,r){"use strict";var n=r(2),i=r(8),f=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(f(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function s(e,t){var r=e[t.place++];if(!(128&r))return r;for(var n=15&r,i=0,f=0,o=t.place;f>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;if(s(e,r)+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var f=s(e,r),o=e.slice(r.place,f+r.place);if(r.place+=f,2!==e[r.place++])return!1;var c=s(e,r);if(e.length!==c+r.place)return!1;var u=e.slice(r.place,c+r.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new n(o),this.s=new n(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=c(t),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];u(n,t.length),(n=n.concat(t)).push(2),u(n,r.length);var f=n.concat(r),o=[48];return u(o,f.length),o=o.concat(f),i.encode(o,e)}},function(e,t,r){"use strict";var n=r(14),i=r(65),f=r(8),o=f.assert,a=f.parseBytes,s=r(229),c=r(230);function u(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),f=this.encodePoint(i),o=this.hashInt(f,r.pubBytes(),e).mul(r.priv()),s=n.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:s,Rencoded:f})},u.prototype.verify=function(e,t,r){e=a(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),f=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(f)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=t)throw new Error("invalid sig")}e.exports=function(e,r,s,c,u){var d=f(s);if("ec"===d.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(e,t,r){var n=o[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var f=new i(n),a=r.data.subjectPrivateKey.data;return f.verify(t,e,a)}(e,r,d)}if("dsa"===d.type){if("dsa"!==c)throw new Error("wrong public key type");return function(e,t,r){var i=r.data.p,o=r.data.q,s=r.data.g,c=r.data.pub_key,u=f.signature.decode(e,"der"),d=u.s,h=u.r;a(d,o),a(h,o);var p=n.mont(i),l=d.invm(o);return 0===s.toRed(p).redPow(new n(t).mul(l).mod(o)).fromRed().mul(c.toRed(p).redPow(h.mul(l).mod(o)).fromRed()).mod(i).mod(o).cmp(h)}(e,r,d)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");r=t.concat([u,r]);for(var h=d.modulus.byteLength(),p=[1],l=0;r.length+p.length+2","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(e,t,r){"use strict";var n=r(9),i=r(2),f=r(1),o=r(42),a=n.assert;function s(e){o.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,r,n){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,r,n){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}f(s,o),e.exports=s,s.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var f=this._getEndoRoots(this.n);0===this.g.mul(f[0]).x.cmp(this.g.x.redMul(t))?r=f[0]:(r=f[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},s.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),f=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(f).fromRed(),n.redSub(f).fromRed()]},s.prototype._getEndoBasis=function(e){for(var t,r,n,f,o,a,s,c,u,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=e,p=this.n.clone(),l=new i(1),b=new i(0),y=new i(0),m=new i(1),v=0;0!==h.cmpn(0);){var g=p.div(h);c=p.sub(g.mul(h)),u=y.sub(g.mul(l));var w=m.sub(g.mul(b));if(!n&&c.cmp(d)<0)t=s.neg(),r=l,n=c.neg(),f=u;else if(n&&2==++v)break;s=c,p=h,h=c,y=l,l=u,m=b,b=w}o=c.neg(),a=u;var _=n.sqr().add(f.sqr());return o.sqr().add(a.sqr()).cmp(_)>=0&&(o=t,a=r),n.negative&&(n=n.neg(),f=f.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:f},{a:o,b:a}]},s.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),f=r.b.neg().mul(e).divRound(this.n),o=i.mul(r.a),a=f.mul(n.a),s=i.mul(r.b),c=f.mul(n.b);return{k1:e.sub(o).sub(a),k2:s.add(c).neg()}},s.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var f=n.fromRed().isOdd();return(t&&!f||!t&&f)&&(n=n.redNeg()),this.point(e,n)},s.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},s.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,f=0;f":""},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),f=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,o)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},c.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},f(u,o.BasePoint),s.prototype.jpoint=function(e,t,r){return new u(this,e,t,r)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),f=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),s=f.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),d=n.redMul(c),h=s.redSqr().redIAdd(u).redISub(d).redISub(d),p=s.redMul(d.redISub(h)).redISub(f.redMul(u)),l=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,l)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,f=e.y.redMul(t).redMul(this.z),o=r.redSub(n),a=i.redSub(f);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var s=o.redSqr(),c=s.redMul(o),u=r.redMul(s),d=a.redSqr().redIAdd(c).redISub(u).redISub(u),h=a.redMul(u.redISub(d)).redISub(i.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(d,h,p)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(2),i=r(1),f=r(42),o=r(9);function a(e){f.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function s(e,t,r){f.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,f),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(s,f.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new s(this,e,t)},a.prototype.pointFromJSON=function(e){return s.fromJSON(this,e)},s.prototype.precompute=function(){},s.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},s.fromJSON=function(e,t){return new s(e,t[0],t[1]||e.one)},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},s.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},s.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),f=e.x.redSub(e.z).redMul(r),o=i.redMul(n),a=t.z.redMul(f.redAdd(o).redSqr()),s=t.x.redMul(f.redISub(o).redSqr());return this.curve.point(a,s)},s.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var f=i.length-1;f>=0;f--)0===i[f]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},s.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},s.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(9),i=r(2),f=r(1),o=r(42),a=n.assert;function s(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function c(e,t,r,n,f){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=f&&new i(f,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}f(s,o),e.exports=s,s.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},s.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},s.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},s.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),f=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=n.redMul(f.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var s=a.fromRed().isOdd();return(t&&!s||!t&&s)&&(a=a.redNeg()),this.point(e,a)},s.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),f=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(f.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},s.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},f(c,o.BasePoint),s.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},s.prototype.point=function(e,t,r,n){return new c(this,e,t,r,n)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),f=n.redAdd(t),o=f.redSub(r),a=n.redSub(t),s=i.redMul(o),c=f.redMul(a),u=i.redMul(a),d=o.redMul(f);return this.curve.point(s,c,d,u)},c.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),f=this.y.redSqr();if(this.curve.twisted){var o=(c=this.curve._mulA(i)).redAdd(f);if(this.zOne)e=n.redSub(i).redSub(f).redMul(o.redSub(this.curve.two)),t=o.redMul(c.redSub(f)),r=o.redSqr().redSub(o).redSub(o);else{var a=this.z.redSqr(),s=o.redSub(a).redISub(a);e=n.redSub(i).redISub(f).redMul(s),t=o.redMul(c.redSub(f)),r=o.redMul(s)}}else{var c=i.redAdd(f);a=this.curve._mulC(this.z).redSqr(),s=c.redSub(a).redSub(a);e=this.curve._mulC(n.redISub(c)).redMul(s),t=this.curve._mulC(c).redMul(i.redISub(f)),r=c.redMul(s)}return this.curve.point(e,t,r)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),f=r.redSub(t),o=i.redSub(n),a=i.redAdd(n),s=r.redAdd(t),c=f.redMul(o),u=a.redMul(s),d=f.redMul(s),h=o.redMul(a);return this.curve.point(c,u,h,d)},c.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),f=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(f).redMul(o),s=i.redSub(a),c=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(f).redISub(o),d=n.redMul(s).redMul(u);return this.curve.twisted?(t=n.redMul(c).redMul(o.redSub(this.curve._mulA(f))),r=s.redMul(c)):(t=n.redMul(c).redMul(o.redSub(f)),r=this.curve._mulC(s).redMul(c)),this.curve.point(d,t,r)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},c.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},function(e,t){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(e,t,r){"use strict";var n=r(2),i=r(49),f=r(9),o=r(66),a=r(18),s=f.assert,c=r(253),u=r(254);function d(e){if(!(this instanceof d))return new d(e);"string"==typeof e&&(s(o.hasOwnProperty(e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=d,d.prototype.keyPair=function(e){return new c(this,e)},d.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},d.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},d.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),f=this.n.sub(new n(2));;){var o=new n(t.generate(r));if(!(o.cmp(f)>0))return o.iaddn(1),this.keyFromPrivate(o)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,f){"object"==typeof r&&(f=r,r=null),f||(f={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray("be",o),s=e.toArray("be",o),c=new i({hash:this.hash,entropy:a,nonce:s,pers:f.pers,persEnc:f.persEnc||"utf8"}),d=this.n.sub(new n(1)),h=0;;h++){var p=f.k?f.k(h):new n(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var l=this.g.mul(p);if(!l.isInfinity()){var b=l.getX(),y=b.umod(this.n);if(0!==y.cmpn(0)){var m=p.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(l.getY().isOdd()?1:0)|(0!==b.cmp(y)?2:0);return f.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new u({r:y,s:m,recoveryParam:v})}}}}}},d.prototype.verify=function(e,t,r,i){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,i);var f=(t=new u(t,"hex")).r,o=t.s;if(f.cmpn(1)<0||f.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,s=o.invm(this.n),c=s.mul(e).umod(this.n),d=s.mul(f).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(c,r.getPublic(),d)).isInfinity()&&a.eqXToP(f):!(a=this.g.mulAdd(c,r.getPublic(),d)).isInfinity()&&0===a.getX().umod(this.n).cmp(f)},d.prototype.recoverPubKey=function(e,t,r,i){s((3&r)===r,"The recovery param is more than two bits"),t=new u(t,i);var f=this.n,o=new n(e),a=t.r,c=t.s,d=1&r,h=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error("Unable to find sencond key candinate");a=h?this.curve.pointFromX(a.add(this.curve.n),d):this.curve.pointFromX(a,d);var p=t.r.invm(f),l=f.sub(o).mul(p).umod(f),b=c.mul(p).umod(f);return this.g.mulAdd(l,a,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new u(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var f;try{f=this.recoverPubKey(e,t,i)}catch(e){continue}if(f.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(2),i=r(9).assert;function f(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=f,f.fromPublic=function(e,t,r){return t instanceof f?t:new f(e,{pub:t,pubEnc:r})},f.fromPrivate=function(e,t,r){return t instanceof f?t:new f(e,{priv:t,privEnc:r})},f.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},f.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},f.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},f.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},f.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},f.prototype.derive=function(e){return e.mul(this.priv).getX()},f.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},f.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},f.prototype.inspect=function(){return""}},function(e,t,r){"use strict";var n=r(2),i=r(9),f=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(f(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function s(e,t){var r=e[t.place++];if(!(128&r))return r;for(var n=15&r,i=0,f=0,o=t.place;f>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;if(s(e,r)+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var f=s(e,r),o=e.slice(r.place,f+r.place);if(r.place+=f,2!==e[r.place++])return!1;var c=s(e,r);if(e.length!==c+r.place)return!1;var u=e.slice(r.place,c+r.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new n(o),this.s=new n(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=c(t),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];u(n,t.length),(n=n.concat(t)).push(2),u(n,r.length);var f=n.concat(r),o=[48];return u(o,f.length),o=o.concat(f),i.encode(o,e)}},function(e,t,r){"use strict";var n=r(14),i=r(66),f=r(9),o=f.assert,a=f.parseBytes,s=r(256),c=r(257);function u(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),f=this.encodePoint(i),o=this.hashInt(f,r.pubBytes(),e).mul(r.priv()),s=n.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:s,Rencoded:f})},u.prototype.verify=function(e,t,r){e=a(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),f=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(f)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;tr-h-2)throw new Error("message too long");var p=d.alloc(r-n-h-2),l=r-u-1,b=i(u),y=a(d.concat([c,p,d.alloc(1,1),t],l),o(b,l)),m=a(b,o(y,u));return new s(d.concat([d.alloc(1),m,y],r))}(l,t);else if(1===h)p=function(e,t,r){var n,f=t.length,o=e.modulus.byteLength();if(f>o-11)throw new Error("message too long");n=r?d.alloc(o-f-3,255):function(e){var t,r=d.allocUnsafe(e),n=0,f=i(2*e),o=0;for(;n=0)throw new Error("data too long for modulus")}return r?u(p,l):c(p,l)}},function(e,t,r){var n=r(41),i=r(117),f=r(118),o=r(2),a=r(64),s=r(10),c=r(119),u=r(43).Buffer;e.exports=function(e,t,r){var d;d=e.padding?e.padding:r?1:4;var h,p=n(e),l=p.modulus.byteLength();if(t.length>l||new o(t).cmp(p.modulus)>=0)throw new Error("decryption error");h=r?c(new o(t),p):a(t,p);var b=u.alloc(l-h.length);if(h=u.concat([b,h],l),4===d)return function(e,t){var r=e.modulus.byteLength(),n=s("sha1").update(u.alloc(0)).digest(),o=n.length;if(0!==t[0])throw new Error("decryption error");var a=t.slice(1,o+1),c=t.slice(o+1),d=f(a,i(c,o)),h=f(c,i(d,r-o-1));if(function(e,t){e=u.from(e),t=u.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));var i=-1;for(;++i=t.length){f++;break}var o=t.slice(2,i-1);("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&f++;o.length<8&&f++;if(f)throw new Error("decryption error");return t.slice(i)}(0,h,r);if(3===d)return h;throw new Error("unknown padding")}},function(e,t,r){"use strict";(function(e,n){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var f=r(262),o=r(21),a=f.Buffer,s=f.kMaxLength,c=e.crypto||e.msCrypto,u=Math.pow(2,32)-1;function d(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>u||e<0)throw new TypeError("offset must be a uint32");if(e>s||e>t)throw new RangeError("offset out of range")}function h(e,t,r){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>u||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>s)throw new RangeError("buffer too small")}function p(e,t,r,i){if(n.browser){var f=e.buffer,a=new Uint8Array(f,t,r);return c.getRandomValues(a),i?void n.nextTick((function(){i(null,e)})):e}if(!i)return o(r).copy(e,t),e;o(r,(function(r,n){if(r)return i(r);n.copy(e,t),i(null,e)}))}c&&c.getRandomValues||!n.browser?(t.randomFill=function(t,r,n,i){if(!(a.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof r)i=r,r=0,n=t.length;else if("function"==typeof n)i=n,n=t.length-r;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return d(r,t.length),h(n,r,t.length),p(t,r,n,i)},t.randomFillSync=function(t,r,n){void 0===r&&(r=0);if(!(a.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');d(r,t.length),void 0===n&&(n=t.length-r);return h(n,r,t.length),p(t,r,n)}):(t.randomFill=i,t.randomFillSync=i)}).call(this,r(6),r(11))},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){var n=r(32);function i(e,t){e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var r=Array(80),n=1732584193,i=-271733879,c=-1732584194,u=271733878,d=-1009589776,h=0;h>16)+(t>>16)+(r>>16)<<16|65535&r}function s(e,t){return e<>>32-t}e.exports=function(e){return n.hash(e,i,20,!0)}},function(e,t,r){var n=r(32),i=function(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r},f=function(e,t){return e>>>t|e<<32-t},o=function(e,t){return e>>>t},a=function(e,t,r){return e&t^~e&r},s=function(e,t,r){return e&t^e&r^t&r},c=function(e){return f(e,2)^f(e,13)^f(e,22)},u=function(e){return f(e,6)^f(e,11)^f(e,25)},d=function(e){return f(e,7)^f(e,18)^o(e,3)},h=function(e,t){var r,n,h,p,l,b,y,m,v,g,w,_=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),S=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),E=new Array(64);e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var I=0;I>>((3&n)<<3)&255;return r},this.crypto&&crypto.getRandomValues&&(r=function(e){var t=new Uint8Array(e);return crypto.getRandomValues(t),t}),e.exports=r||t}()},function(e,t,r){var n=r(32);function i(e,t){e[t>>5]|=128<>>9<<4)]=t;for(var r=1732584193,n=-271733879,i=-1732584194,f=271733878,d=0;d>>32-a,r);var o,a}function o(e,t,r,n,i,o,a){return f(t&r|~t&n,e,t,i,o,a)}function a(e,t,r,n,i,o,a){return f(t&n|r&~n,e,t,i,o,a)}function s(e,t,r,n,i,o,a){return f(t^r^n,e,t,i,o,a)}function c(e,t,r,n,i,o,a){return f(r^(t|~n),e,t,i,o,a)}function u(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}e.exports=function(e){return n.hash(e,i,16)}},function(e,t,r){var n=r(32),i=function(){var e={},t=e.lib={},r=t.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var r=new e;return t&&r.mixIn(t),r.$super=this,r},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},isA:function(e){for(var t=this;t;){if(t==e)return!0;t=t.$super}return!1},clone:function(){return this.$super.extend(this)}}}(),n=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=void 0!==t?t:4*e.length},toString:function(e){return(e||this.encoder).toString(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;this.clamp();for(var f=0;f>>2]>>>24-f%4*8&255;t[n>>>2]|=o<<24-n%4*8,n++}return this.sigBytes=n,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=Math.ceil(t/4)},clone:function(){var e=n.$super.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r>>2]>>>24-i%4*8&255;n.push((f>>>4).toString(16)),n.push((15&f).toString(16))}return n.join("")},fromString:function(e){for(var t=e.length,r=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return n.create(r,t/2)}},o=i.Latin1={toString:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(f))}return n.join("")},fromString:function(e){for(var t=e.length,r=[],i=0;i>>2]|=e.charCodeAt(i)<<24-i%4*8;return n.create(r,t)}},a=i.Utf8={toString:function(e){return decodeURIComponent(escape(o.toString(e)))},fromString:function(e){return o.fromString(unescape(encodeURIComponent(e)))}};n.encoder=f;var s=e.algo={};return e}(),f=i,o=f.lib,a=o.WordArray,s=o.Hash,c=f.algo,u=[608135816,-2052912941,320440878,57701188,-1542899678,698298832,137296536,-330404727,1160258022,953160567,-1101764913,887688300,-1062458953,-914599715,1065670069,-1253635817],d=[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],[11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4],[7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8],[9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13],[2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9],[12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11],[13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10],[6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5],[10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]],h=c.BLAKE256=s.extend({_cfg:s._cfg.extend({salt:a.create([0,0,0,0])}),_doReset:function(){var e=this._hash.words;e[0]=1779033703,e[1]=-1150833019,e[2]=1013904242,e[3]=-1521486534,e[4]=1359893119,e[5]=-1694144372,e[6]=528734635,e[7]=1541459225,this._t=0},_doHashBlock:function(e,t){var r=this._message.words,n=this._hash.words,i=this._cfg.salt.words,f=this._t+=512,o=[n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],608135816^i[0],-2052912941^i[1],320440878^i[2],57701188^i[3],-1542899678,698298832,137296536,-330404727];t||(o[12]=o[12]^f,o[13]=o[13]^f);for(var a=0;a55&&(r=!0);var n=8*this._length,i=8*e.sigBytes;i?this._t-=512-i:this._t=-512,t[i>>>5]|=128<<24-i%32,t[13+(i+64>>>9<<4)]|=1,t[t.length+1]=n,e.sigBytes=4*t.length,this._hashBlocks(r)}});function p(e,t,r,n,i,f,o,a,s){var c=d[n][s],h=d[n][s+1];r[i]=r[i]+r[f]+(e[t+c]^u[h])|0;var p=r[a]^r[i];r[a]=p<<16|p>>>16,r[o]=r[o]+r[a]|0;p=r[f]^r[o];r[f]=p<<20|p>>>12,r[i]=r[i]+r[f]+(e[t+h]^u[c])|0;p=r[a]^r[i];r[a]=p<<24|p>>>8,r[o]=r[o]+r[a]|0;p=r[f]^r[o];r[f]=p<<25|p>>>7}function l(e,t){return f.BLAKE256(i.enc.Hex.fromString(e.toString("hex"))).words}f.BLAKE256=s._createHelper(h),f.HMAC_BLAKE256=s._createHmacHelper(h),e.exports=function(e){return n.hash2(e,l,32,!0)}},function(e,t,r){var n=r(32),i=function(){var e={},t=e.lib={},r=t.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var r=new e;return t&&r.mixIn(t),r.$super=this,r},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},isA:function(e){for(var t=this;t;){if(t==e)return!0;t=t.$super}return!1},clone:function(){return this.$super.extend(this)}}}(),n=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=void 0!==t?t:4*e.length},toString:function(e){return(e||this.encoder).toString(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;this.clamp();for(var f=0;f>>2]>>>24-f%4*8&255;t[n>>>2]|=o<<24-n%4*8,n++}return this.sigBytes=n,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=Math.ceil(t/4)},clone:function(){var e=n.$super.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r>>2]>>>24-i%4*8&255;n.push((f>>>4).toString(16)),n.push((15&f).toString(16))}return n.join("")},fromString:function(e){for(var t=e.length,r=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return n.create(r,t/2)}},o=i.Latin1={toString:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(f))}return n.join("")},fromString:function(e){for(var t=e.length,r=[],i=0;i>>2]|=e.charCodeAt(i)<<24-i%4*8;return n.create(r,t)}},a=i.Utf8={toString:function(e){return decodeURIComponent(escape(o.toString(e)))},fromString:function(e){return o.fromString(unescape(encodeURIComponent(e)))}};n.encoder=f;var s=e.algo={};return e}(),f=i,o=f.lib,a=o.WordArray,s=o.Hash,c=f.algo,u=a.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),d=a.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),h=a.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),p=a.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),l=a.create([0,1518500249,1859775393,2400959708,2840853838]),b=a.create([1352829926,1548603684,1836072691,2053994217,0]),y=c.RIPEMD160=s.extend({_doReset:function(){this._hash=a.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var f,o,a,s,c,y,E,I,A,k,T,P=this._hash.words,x=l.words,M=b.words,O=u.words,B=d.words,N=h.words,R=p.words;y=f=P[0],E=o=P[1],I=a=P[2],A=s=P[3],k=c=P[4];for(r=0;r<80;r+=1)T=f+e[t+O[r]]|0,T+=r<16?m(o,a,s)+x[0]:r<32?v(o,a,s)+x[1]:r<48?g(o,a,s)+x[2]:r<64?w(o,a,s)+x[3]:_(o,a,s)+x[4],T=(T=S(T|=0,N[r]))+c|0,f=c,c=s,s=S(a,10),a=o,o=T,T=y+e[t+B[r]]|0,T+=r<16?_(E,I,A)+M[0]:r<32?w(E,I,A)+M[1]:r<48?g(E,I,A)+M[2]:r<64?v(E,I,A)+M[3]:m(E,I,A)+M[4],T=(T=S(T|=0,R[r]))+k|0,y=k,k=A,A=S(I,10),I=E,E=T;T=P[1]+a+A|0,P[1]=P[2]+s+k|0,P[2]=P[3]+c+y|0,P[3]=P[4]+f+E|0,P[4]=P[0]+o+I|0,P[0]=T},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,f=i.words,o=0;o<5;o++){var a=f[o];f[o]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return i},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});function m(e,t,r){return e^t^r}function v(e,t,r){return e&t|~e&r}function g(e,t,r){return(e|~t)^r}function w(e,t,r){return e&r|t&~r}function _(e,t,r){return e^(t|~r)}function S(e,t){return e<>>32-t}function E(e,t){return f.RIPEMD160(i.enc.Hex.fromString(e.toString("hex"))).words}f.RIPEMD160=s._createHelper(y),f.HmacRIPEMD160=s._createHmacHelper(y),e.exports=function(e){return n.hash(e,E,20,!0)}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(t){for(var r=e.alloc(t.length),n=0;n1&&"'"===e[e.length-1],f=parseInt(e,10);n(f<2147483648,"Invalid index"),i&&(f+=2147483648),r=r.deriveChild(f)}else n(/^[mM]{1}/.test(e),'Path must start with "m" or "M"')})),r},u.prototype.deriveChild=function(e){var t,r=e>=2147483648,o=i.allocUnsafe(4);if(o.writeUInt32BE(e,0),r){n(this.privateKey,"Could not derive hardened child key");var s=this.privateKey,c=i.alloc(1,0);s=i.concat([c,s]),t=i.concat([s,o])}else t=i.concat([this.publicKey,o]);var d=f.createHmac("sha512",this.chainCode).update(t).digest(),h=d.slice(0,32),p=d.slice(32),l=new u(this.versions);if(this.privateKey)try{l.privateKey=a.privateKeyTweakAdd(this.privateKey,h)}catch(t){return this.derive(e+1)}else try{l.publicKey=a.publicKeyTweakAdd(this.publicKey,h,!0)}catch(t){return this.derive(e+1,r)}return l.chainCode=p,l.depth=this.depth+1,l.parentFingerprint=this.fingerprint,l.index=e,l},u.prototype.sign=function(e){return a.sign(e,this.privateKey).signature},u.prototype.verify=function(e,t){return a.verify(e,t,this.publicKey)},u.prototype.wipePrivateData=function(){return this._privateKey&&f.randomBytes(this._privateKey.length).copy(this._privateKey),this._privateKey=null,this},u.prototype.toJSON=function(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}},u.fromMasterSeed=function(e,t){var r=f.createHmac("sha512",s).update(e).digest(),n=r.slice(0,32),i=r.slice(32),o=new u(t);return o.chainCode=i,o.privateKey=n,o},u.fromExtendedKey=function(e,t){var r=new u(t=t||c),i=o.decode(e),f=i.readUInt32BE(0);n(f===t.private||f===t.public,"Version mismatch: does not match private or public"),r.depth=i.readUInt8(4),r.parentFingerprint=i.readUInt32BE(5),r.index=i.readUInt32BE(9),r.chainCode=i.slice(13,45);var a=i.slice(45);return 0===a.readUInt8(0)?(n(f===t.private,"Version mismatch: version does not match private"),r.privateKey=a.slice(1)):(n(f===t.public,"Version mismatch: version does not match public"),r.publicKey=a),r},u.fromJSON=function(e){return u.fromExtendedKey(e.xpriv)},u.HARDENED_OFFSET=2147483648,e.exports=u},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){(function(t){var n=r(274),i=r(10);function f(e,r){var i;(Array.isArray(e)||e instanceof Uint8Array)&&(e=new t(e)),null!=r?("number"==typeof r&&(r=new t([r])),i=t.concat([r,e])):i=e;var f=s(i).slice(0,4),o=t.concat([i,f]);return n.encode(o)}function o(e,r){var i,f=n.decode(e),o=new t(f);if(null==r)i=0;else if("number"==typeof r&&(r=new t([r])),i=r.length,o.slice(0,i).toString("hex")!==r.toString("hex"))throw new Error("Invalid version");var a=o.slice(-4),c=o.length-4,u=o.slice(0,c),d=s(u).slice(0,4);if(a.toString("hex")!==d.toString("hex"))throw new Error("Invalid checksum");return u.slice(i)}function a(e,t){try{o(e,t)}catch(e){return!1}return!0}function s(e){var t=i("sha256").update(e).digest();return i("sha256").update(t).digest()}e.exports={encode:f,decode:o,isValid:a,createEncoder:function(e){return function(t){return f(t,e)}},createDecoder:function(e){return function(t){return o(t,e)}},createValidator:function(e){return function(t){return a(t,e)}}}}).call(this,r(0).Buffer)},function(e,t){for(var r="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",n={},i=0;i=0;o--)f+=r[n[o]];return f},decode:function(e){if(0===e.length)return[];var t,r,i=[0];for(t=0;t>8,i[r]&=255;for(;o;)i.push(255&o),o>>=8}for(t=0;"1"===e[t]&&t{for(const i of Object.keys(t)){const o=t[i],{canAdd:a,canAddToArray:s,check:c,expected:u}=n[e+"s"][i]||{},d=!!s;if(c)if(d){if(!Array.isArray(o)||r[i]&&!Array.isArray(r[i]))throw new Error(`Key type ${i} must be an array`);o.every(c)||f(e,i,u,o);const t=r[i]||[],n=new Set;if(!o.every(e=>s(t,e,n)))throw new Error("Can not add duplicate data to array");r[i]=t.concat(o)}else{if(c(o)||f(e,i,u,o),!a(r,o))throw new Error(`Can not add duplicate data to ${e}`);r[i]=o}}}}t.checkForInput=i,t.checkForOutput=function(e,t){const r=e[t];if(void 0===r)throw new Error(`No output #${t}`);return r},t.checkHasKey=function(e,t,r){if(e.key[0]t.key.equals(e.key)).length)throw new Error(`Duplicate Key: ${e.key.toString("hex")}`)},t.getEnumLength=function(e){let t=0;return Object.keys(e).forEach(e=>{Number(isNaN(Number(e)))&&t++}),t},t.inputCheckUncleanFinalized=function(e,t){let r=!1;if(!t.nonWitnessUtxo!=!t.witnessUtxo){const e=!!t.redeemScript,n=!!t.witnessScript,i=!e||!!t.finalScriptSig,f=!n||!!t.finalScriptWitness,o=!!t.finalScriptSig||!!t.finalScriptWitness;r=i&&f&&o}if(!1===r)throw new Error(`Input #${e} has too much or too little data to clean`)},t.updateGlobal=o("global"),t.updateInput=o("input"),t.updateOutput=o("output"),t.addInputAttributes=function(e,r){const n=i(e,e.length-1);t.updateInput(r,n)},t.addOutputAttributes=function(e,r){const n=i(e,e.length-1);t.updateOutput(r,n)},t.defaultVersionSetter=function(t,r){if(!e.isBuffer(r)||r.length<4)throw new Error("Set Version: Invalid Transaction");return r.writeUInt32LE(t,0),r},t.defaultLocktimeSetter=function(t,r){if(!e.isBuffer(r)||r.length<4)throw new Error("Set Locktime: Invalid Transaction");return r.writeUInt32LE(t,r.length-4),r}}).call(this,r(0).Buffer)},,,,,,,function(e,t,r){var n=r(178);function i(e){return e.name||e.toString().match(/function (.*?)\s*\(/)[1]}function f(e){return n.Nil(e)?"":i(e.constructor)}function o(e,t){Error.captureStackTrace&&Error.captureStackTrace(e,t)}function a(e){return n.Function(e)?e.toJSON?e.toJSON():i(e):n.Array(e)?"Array":e&&n.Object(e)?"Object":void 0!==e?e:""}function s(e,t,r){var i=function(e){return n.Function(e)?"":n.String(e)?JSON.stringify(e):e&&n.Object(e)?"":e}(t);return"Expected "+a(e)+", got"+(""!==r?" "+r:"")+(""!==i?" "+i:"")}function c(e,t,r){r=r||f(t),this.message=s(e,t,r),o(this,c),this.__type=e,this.__value=t,this.__valueTypeName=r}function u(e,t,r,n,i){e?(i=i||f(n),this.message=function(e,t,r,n,i){var f='" of type ';return"key"===t&&(f='" with key type '),s('property "'+a(r)+f+a(e),n,i)}(e,r,t,n,i)):this.message='Unexpected property "'+t+'"',o(this,c),this.__label=r,this.__property=t,this.__type=e,this.__value=n,this.__valueTypeName=i}c.prototype=Object.create(Error.prototype),c.prototype.constructor=c,u.prototype=Object.create(Error.prototype),u.prototype.constructor=c,e.exports={TfTypeError:c,TfPropertyTypeError:u,tfCustomError:function(e,t){return new c(e,{},t)},tfSubError:function(e,t,r){return e instanceof u?(t=t+"."+e.__property,e=new u(e.__type,t,e.__label,e.__value,e.__valueTypeName)):e instanceof c&&(e=new u(e.__type,t,r,e.__value,e.__valueTypeName)),o(e),e},tfJSON:a,getValueTypeName:f}},function(e,t,r){(function(t){var n=r(322);function i(e,t){if(void 0!==t&&e[0]!==t)throw new Error("Invalid network version");if(33===e.length)return{version:e[0],privateKey:e.slice(1,33),compressed:!1};if(34!==e.length)throw new Error("Invalid WIF length");if(1!==e[33])throw new Error("Invalid compression flag");return{version:e[0],privateKey:e.slice(1,33),compressed:!0}}function f(e,r,n){var i=new t(n?34:33);return i.writeUInt8(e,0),r.copy(i,1),n&&(i[33]=1),i}e.exports={decode:function(e,t){return i(n.decode(e),t)},decodeRaw:i,encode:function(e,t,r){return"number"==typeof e?n.encode(f(e,t,r)):n.encode(f(e.version,e.privateKey,e.compressed))},encodeRaw:f}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n=r(339).Buffer;function i(e){if(e<0||e>9007199254740991||e%1!=0)throw new RangeError("value out of range")}function f(e){return i(e),e<253?1:e<=65535?3:e<=4294967295?5:9}e.exports={encode:function e(t,r,o){if(i(t),r||(r=n.allocUnsafe(f(t))),!n.isBuffer(r))throw new TypeError("buffer must be a Buffer instance");return o||(o=0),t<253?(r.writeUInt8(t,o),e.bytes=1):t<=65535?(r.writeUInt8(253,o),r.writeUInt16LE(t,o+1),e.bytes=3):t<=4294967295?(r.writeUInt8(254,o),r.writeUInt32LE(t,o+1),e.bytes=5):(r.writeUInt8(255,o),r.writeUInt32LE(t>>>0,o+1),r.writeUInt32LE(t/4294967296|0,o+5),e.bytes=9),r},decode:function e(t,r){if(!n.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");r||(r=0);var f=t.readUInt8(r);if(f<253)return e.bytes=1,f;if(253===f)return e.bytes=3,t.readUInt16LE(r+1);if(254===f)return e.bytes=5,t.readUInt32LE(r+1);e.bytes=9;var o=t.readUInt32LE(r+1),a=4294967296*t.readUInt32LE(r+5)+o;return i(a),a},encodingLength:f}},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(343)),n(r(357))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.compile(e);return 22===t.length&&t[0]===i.OPS.OP_0&&20===t[1]}t.check=f,f.toJSON=()=>"Witness pubKeyHash output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.compile(e);return 34===t.length&&t[0]===i.OPS.OP_0&&32===t[1]}t.check=f,f.toJSON=()=>"Witness scriptHash output"},,function(e,t,r){"use strict";(function(t){var n=r(88),i=r(10);function f(e){var t=i("sha256").update(e).digest();return i("sha256").update(t).digest()}function o(e){var t=e.slice(0,-4),r=e.slice(-4),n=f(t);if(!(r[0]^n[0]|r[1]^n[1]|r[2]^n[2]|r[3]^n[3]))return t}function a(e){var t=n.decodeUnsafe(e);if(t)return o(t)}e.exports={encode:function(e){var r=f(e);return n.encode(t.concat([e,r],e.length+4))},decode:function(e){var t=o(n.decode(e));if(!t)throw new Error("Invalid checksum");return t},decodeUnsafe:a,decodeRaw:a}}).call(this,r(0).Buffer)},,,,,,,,,,,function(e,t,r){"use strict";var n=r(303).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");var t=new Uint8Array(256);t.fill(255);for(var r=0;r>>0,u=new Uint8Array(c);e[r];){var d=t[e.charCodeAt(r)];if(255===d)return;for(var h=0,p=c-1;(0!==d||h>>0,u[p]=d%256>>>0,d=d/256>>>0;if(0!==d)throw new Error("Non-zero carry");f=h,r++}if(" "!==e[r]){for(var l=c-f;l!==c&&0===u[l];)l++;var b=n.allocUnsafe(i+(c-l));b.fill(0,0,i);for(var y=i;l!==c;)b[y++]=u[l++];return b}}}return{encode:function(t){if(!n.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var r=0,i=0,f=0,s=t.length;f!==s&&0===t[f];)f++,r++;for(var u=(s-f)*c+1>>>0,d=new Uint8Array(u);f!==s;){for(var h=t[f],p=0,l=u-1;(0!==h||p>>0,d[l]=h%o>>>0,h=h/o>>>0;if(0!==h)throw new Error("Non-zero carry");i=p,f++}for(var b=u-i;b!==u&&0===d[b];)b++;for(var y=a.repeat(r);bthis.addUnknownKeyValToInput(r,e)),o.addInputAttributes(this.inputs,e),this}addOutput(e){this.globalMap.unsignedTx.addOutput(e),this.outputs.push({unknownKeyVals:[]});const t=e.unknownKeyVals||[],r=this.outputs.length-1;if(!Array.isArray(t))throw new Error("unknownKeyVals must be an Array");return t.forEach(e=>this.addUnknownKeyValToInput(r,e)),o.addOutputAttributes(this.outputs,e),this}clearFinalizedInput(e){const t=o.checkForInput(this.inputs,e);o.inputCheckUncleanFinalized(e,t);for(const e of Object.keys(t))["witnessUtxo","nonWitnessUtxo","finalScriptSig","finalScriptWitness","unknownKeyVals"].includes(e)||delete t[e];return this}combine(...e){const t=n.combine([this].concat(e));return Object.assign(this,t),this}getTransaction(){return this.globalMap.unsignedTx.toBuffer()}}}).call(this,r(0).Buffer)},,,,,,,,,function(e,t,r){"use strict";(function(e){var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,f){function o(e){try{s(n.next(e))}catch(e){f(e)}}function a(e){try{s(n.throw(e))}catch(e){f(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}s((n=n.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var r,n,i,f,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return f={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(f[Symbol.iterator]=function(){return this}),f;function a(f){return function(a){return function(f){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(i=2&f[0]?n.return:f[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,f[1])).done)return i;switch(n=0,i&&(f=[2&f[0],i.value]),f[0]){case 0:case 1:i=f;break;case 4:return o.label++,{value:f[1],done:!1};case 5:o.label++,n=f[1],f=[0];continue;case 7:f=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===f[0]||2===f[0])){o=0;continue}if(3===f[0]&&(!i||f[1]>i[0]&&f[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var s,c,u=r(124),d=o(r(87)),h=a(r(291)),p=r(33),l=r(144),b=a(r(392));!function(e){e.P2PKH="P2PKH",e.P2SH="P2SH",e.P2WPKH="P2WPKH"}(s=t.AddressType||(t.AddressType={})),function(e){e.mainNet="mainNet",e.testNet="testNet"}(c=t.NetWorkType||(t.NetWorkType={}));var y=function(){function t(t){var r=this;void 0===t&&(t=c.mainNet),this.generateOmniTransaction=function(e,t){return n(r,void 0,void 0,(function(){var r,n;return i(this,(function(i){switch(i.label){case 0:return r=new b.default(this.network),n=r.buildOmniPsbt(e).getPsbt(),[4,this.signAllInputsAsync(t,n)];case 1:return i.sent(),[2,this.extractTx(n)]}}))}))},this.generateOmniTransactionSync=function(e,t){var n=new b.default(r.network).buildOmniPsbt(e).getPsbt();return r.signAllInputsSync(t,n),r.extractTx(n)},this.parseTxHex=function(e){return d.Transaction.fromHex(e)},this.signMessage=function(e,t){return n(r,void 0,void 0,(function(){var r,n,f,o;return i(this,(function(i){switch(i.label){case 0:return r=this.constructMessageHash(e),[4,t.sign(r)];case 1:return n=i.sent(),f=n.r,o=n.s,[2,""+f+o]}}))}))},this.signMessageSync=function(e,t){var n=r.constructMessageHash(e),i=t.sign(n);return""+i.r+i.s},this.generatePsbt=function(e){return new b.default(r.network).addInputsForPsbt(e).addOutputForPsbt(e).getPsbt().toBase64()},this.parsePsbt=function(e){var t=d.Psbt.fromBase64(e),n=t.data.getTransaction(),i=d.Transaction.fromBuffer(n);return{inputs:i.ins.map((function(e,r){var n=t.data.inputs[r].bip32Derivation;if(!n)throw new Error("invalid psbt");var i=t.data.inputs[r].witnessUtxo;if(!i)throw new Error("invalid witnessUtxo");return{txId:e.hash.reverse().toString("hex"),index:e.index,value:i.value,hdPath:n.map((function(e){return{masterFingerprint:e.masterFingerprint.toString("hex"),path:e.path,pubkey:e.pubkey.toString("hex")}}))}})),outputs:i.outs.map((function(e){return{address:d.address.fromOutputScript(e.script,r.network),value:e.value}}))}},this.signPSBTHex=function(e,t){return n(r,void 0,void 0,(function(){var r;return i(this,(function(n){switch(n.label){case 0:return[4,this.getSignedPSBT(e,t)];case 1:return r=n.sent(),[2,this.extractTx(r)]}}))}))},this.signPSBTHexSync=function(e,t){var n=r.getSignedPSBTSync(e,t);return r.extractTx(n)},this.signPSBTBase64=function(e,t){return n(r,void 0,void 0,(function(){var r;return i(this,(function(n){switch(n.label){case 0:return[4,this.getSignedPSBT(e,t)];case 1:return(r=n.sent()).validateSignaturesOfAllInputs()&&r.finalizeAllInputs(),[2,{txId:r.extractTransaction().getId(),psbtB64:r.toBase64()}]}}))}))},this.signPSBTBase64Sync=function(e,t){var n=r.getSignedPSBTSync(e,t);return n.validateSignaturesOfAllInputs()&&n.finalizeAllInputs(),{txId:n.extractTransaction().getId(),psbtB64:n.toBase64()}},this.filterUniqueSigner=function(e){var t={};return e.forEach((function(e){return t[e.publicKey]=e})),Object.values(t)},this.getSignedPSBT=function(e,t){return n(r,void 0,void 0,(function(){var r;return i(this,(function(n){switch(n.label){case 0:return r=d.Psbt.fromBase64(e),[4,this.signAllInputsAsync(t,r)];case 1:return n.sent(),[2,r]}}))}))},this.getSignedPSBTSync=function(e,t){var n=d.Psbt.fromBase64(e);return r.signAllInputsSync(t,n),n},this.constructMessageHash=function(t){var n=e.from(r.network.messagePrefix,"utf-8"),i=e.from(t,"utf-8"),f=e.from(l.numberToHex(i.length),"hex"),o=e.concat([n,f,i]);return l.hash256(o).toString("hex")},this.extractTx=function(e){if(e.validateSignaturesOfAllInputs()){e.finalizeAllInputs();var t=e.extractTransaction().toHex();return{txId:e.extractTransaction().getId(),txHex:t}}throw new Error("signature verification failed")},this.extractMultiSignSignatures=function(e){if(e.validateSignaturesOfAllInputs())return e.data.inputs.reduce((function(e,t){var r=t.partialSig,n=(void 0===r?[]:r).map((function(e){return e.signature.toString("hex")}));return e.concat(n)}),[]);throw new Error("signature verification failed")},t===c.mainNet?this.network=d.networks.bitcoin:this.network=d.networks.regtest}return t.prototype.generateAddress=function(e,t){var r;void 0===t&&(t=s.P2SH);var n=p.Buffer.from(e,"hex");t===s.P2PKH&&(r=d.payments.p2pkh({pubkey:n,network:this.network}).address);t===s.P2SH&&(r=d.payments.p2sh({redeem:d.payments.p2wpkh({pubkey:n,network:this.network}),network:this.network}).address);t===s.P2WPKH&&(r=d.payments.p2wpkh({pubkey:n,network:this.network}).address);if(r)return r;throw new Error("generate address failed")},t.prototype.generateMultiSignAddress=function(e,t){var r=e.map((function(e){return p.Buffer.from(e,"hex")})),n=d.payments.p2ms({m:t,pubkeys:r,network:this.network}),i=d.payments.p2wsh({redeem:n,network:this.network}),f=d.payments.p2sh({redeem:i,network:this.network}).address;if(f)return f;throw new Error("generate address failed")},t.prototype.isAddressValid=function(e){if(e.startsWith("1")||e.startsWith("3")||e.startsWith("2"))try{return h.default.decode(e),!0}catch(e){return!1}else{if(!e.startsWith("bc"))return!1;try{return u.decode(e),!0}catch(e){return!1}}},t.prototype.generateTransaction=function(e,t){return n(this,void 0,void 0,(function(){var r,n;return i(this,(function(i){switch(i.label){case 0:return r=new b.default(this.network),n=r.addInputsForPsbt(e).addOutputForPsbt(e).getPsbt(),e.locktime&&n.setLocktime(e.locktime),e.version&&n.setVersion(e.version),[4,this.signAllInputsAsync(t,n)];case 1:return i.sent(),[2,this.extractTx(n)]}}))}))},t.prototype.generateTransactionSync=function(e,t){var r=new b.default(this.network).addInputsForPsbt(e).addOutputForPsbt(e).getPsbt();return e.locktime&&r.setLocktime(e.locktime),e.version&&r.setVersion(e.version),this.signAllInputsSync(t,r),this.extractTx(r)},t.prototype.generateMultiSignTransaction=function(e,t){return n(this,void 0,void 0,(function(){var r;return i(this,(function(n){switch(n.label){case 0:return[4,this.psbtSignMultiSignTx(e,t)];case 1:return r=n.sent(),[2,this.extractTx(r)]}}))}))},t.prototype.generateMultiSignTransactionSync=function(e,t){var r=this.psbtSignMultiSignTxSync(e,t);return this.extractTx(r)},t.prototype.getMultiSignTransactionSignature=function(e,t){return n(this,void 0,void 0,(function(){var r;return i(this,(function(n){switch(n.label){case 0:return[4,this.psbtSignMultiSignTx(e,t)];case 1:return r=n.sent(),[2,this.extractMultiSignSignatures(r)]}}))}))},t.prototype.getMultiSignTransactionSignatureSync=function(e,t){var r=this.psbtSignMultiSignTxSync(e,t);return this.extractMultiSignSignatures(r)},t.prototype.signAllInputsAsync=function(t,r){return n(this,void 0,void 0,(function(){var o,a,s,c,u,d,h,p,l=this;return i(this,(function(b){switch(b.label){case 0:o=this.filterUniqueSigner(t),a=function(t){var f;return i(this,(function(o){switch(o.label){case 0:return f={publicKey:e.from(t.publicKey,"hex"),sign:function(r){return n(l,void 0,void 0,(function(){var n,f,o,a;return i(this,(function(i){switch(i.label){case 0:return n=r.toString("hex"),[4,t.sign(n)];case 1:return f=i.sent(),o=f.r,a=f.s,[2,e.concat([e.from(o,"hex"),e.from(a,"hex")])]}}))}))}},[4,r.signAllInputsAsync(f)];case 1:return o.sent(),[2]}}))},b.label=1;case 1:b.trys.push([1,6,7,8]),s=f(o),c=s.next(),b.label=2;case 2:return c.done?[3,5]:(u=c.value,[5,a(u)]);case 3:b.sent(),b.label=4;case 4:return c=s.next(),[3,2];case 5:return[3,8];case 6:return d=b.sent(),h={error:d},[3,8];case 7:try{c&&!c.done&&(p=s.return)&&p.call(s)}finally{if(h)throw h.error}return[7];case 8:return[2]}}))}))},t.prototype.signAllInputsSync=function(t,r){var n,i,o=this.filterUniqueSigner(t),a=function(t){var n={publicKey:e.from(t.publicKey,"hex"),sign:function(r){var n=r.toString("hex"),i=t.sign(n),f=i.r,o=i.s;return e.concat([e.from(f,"hex"),e.from(o,"hex")])}};r.signAllInputs(n)};try{for(var s=f(o),c=s.next();!c.done;c=s.next()){a(c.value)}}catch(e){n={error:e}}finally{try{c&&!c.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}},t.prototype.psbtSignMultiSignTx=function(e,t){return n(this,void 0,void 0,(function(){var r,n;return i(this,(function(i){switch(i.label){case 0:return r=new b.default(this.network),n=r.addMultiSignInputsForPsbt(e).addOutputForPsbt(e).getPsbt(),[4,this.signAllInputsAsync(t,n)];case 1:return i.sent(),[2,n]}}))}))},t.prototype.psbtSignMultiSignTxSync=function(e,t){var r=new b.default(this.network).addMultiSignInputsForPsbt(e).addOutputForPsbt(e).getPsbt();return this.signAllInputsSync(t,r),r},t}();t.BTC=y}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(315);t.fromSeed=n.fromSeed,t.fromBase58=n.fromBase58,t.fromPublicKey=n.fromPublicKey,t.fromPrivateKey=n.fromPrivateKey},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(316),i=r(317),f=r(53),o=r(13),a=r(285),s=o.BufferN(32),c=o.compile({wif:o.UInt8,bip32:{public:o.UInt32,private:o.UInt32}}),u={wif:128,bip32:{public:76067358,private:76066276}},d=Math.pow(2,31)-1;function h(e){return o.String(e)&&null!==e.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}function p(e){return o.UInt32(e)&&e<=d}class l{constructor(e,t,r,n,i=0,f=0,a=0){this.__D=e,this.__Q=t,this.chainCode=r,this.network=n,this.__DEPTH=i,this.__INDEX=f,this.__PARENT_FINGERPRINT=a,o(c,n),this.lowR=!1}get depth(){return this.__DEPTH}get index(){return this.__INDEX}get parentFingerprint(){return this.__PARENT_FINGERPRINT}get publicKey(){return void 0===this.__Q&&(this.__Q=f.pointFromScalar(this.__D,!0)),this.__Q}get privateKey(){return this.__D}get identifier(){return n.hash160(this.publicKey)}get fingerprint(){return this.identifier.slice(0,4)}isNeutered(){return void 0===this.__D}neutered(){return m(this.publicKey,this.chainCode,this.network,this.depth,this.index,this.parentFingerprint)}toBase58(){const t=this.network,r=this.isNeutered()?t.bip32.public:t.bip32.private,n=e.allocUnsafe(78);return n.writeUInt32BE(r,0),n.writeUInt8(this.depth,4),n.writeUInt32BE(this.parentFingerprint,5),n.writeUInt32BE(this.index,9),this.chainCode.copy(n,13),this.isNeutered()?this.publicKey.copy(n,45):(n.writeUInt8(0,45),this.privateKey.copy(n,46)),i.encode(n)}toWIF(){if(!this.privateKey)throw new TypeError("Missing private key");return a.encode(this.network.wif,this.privateKey,!0)}derive(t){o(o.UInt32,t);const r=t>=2147483648,i=e.allocUnsafe(37);if(r){if(this.isNeutered())throw new TypeError("Missing private key for hardened child key");i[0]=0,this.privateKey.copy(i,1),i.writeUInt32BE(t,33)}else this.publicKey.copy(i,0),i.writeUInt32BE(t,33);const a=n.hmacSHA512(this.chainCode,i),s=a.slice(0,32),c=a.slice(32);if(!f.isPrivate(s))return this.derive(t+1);let u;if(this.isNeutered()){const e=f.pointAddScalar(this.publicKey,s,!0);if(null===e)return this.derive(t+1);u=m(e,c,this.network,this.depth+1,t,this.fingerprint.readUInt32BE(0))}else{const e=f.privateAdd(this.privateKey,s);if(null==e)return this.derive(t+1);u=y(e,c,this.network,this.depth+1,t,this.fingerprint.readUInt32BE(0))}return u}deriveHardened(e){return o(p,e),this.derive(e+2147483648)}derivePath(e){o(h,e);let t=e.split("/");if("m"===t[0]){if(this.parentFingerprint)throw new TypeError("Expected master, got child");t=t.slice(1)}return t.reduce((e,t)=>{let r;return"'"===t.slice(-1)?(r=parseInt(t.slice(0,-1),10),e.deriveHardened(r)):(r=parseInt(t,10),e.derive(r))},this)}sign(t,r){if(!this.privateKey)throw new Error("Missing private key");if(void 0===r&&(r=this.lowR),!1===r)return f.sign(t,this.privateKey);{let r=f.sign(t,this.privateKey);const n=e.alloc(32,0);let i=0;for(;r[0]>127;)i++,n.writeUIntLE(i,0,6),r=f.signWithEntropy(t,this.privateKey,n);return r}}verify(e,t){return f.verify(e,this.publicKey,t)}}function b(e,t,r){return y(e,t,r)}function y(e,t,r,n,i,a){if(o({privateKey:s,chainCode:s},{privateKey:e,chainCode:t}),r=r||u,!f.isPrivate(e))throw new TypeError("Private key not in range [1, n)");return new l(e,void 0,t,r,n,i,a)}function m(e,t,r,n,i,a){if(o({publicKey:o.BufferN(33),chainCode:s},{publicKey:e,chainCode:t}),r=r||u,!f.isPoint(e))throw new TypeError("Point is not on the curve");return new l(void 0,e,t,r,n,i,a)}t.fromBase58=function(e,t){const r=i.decode(e);if(78!==r.length)throw new TypeError("Invalid buffer length");t=t||u;const n=r.readUInt32BE(0);if(n!==t.bip32.private&&n!==t.bip32.public)throw new TypeError("Invalid network version");const f=r[4],o=r.readUInt32BE(5);if(0===f&&0!==o)throw new TypeError("Invalid parent fingerprint");const a=r.readUInt32BE(9);if(0===f&&0!==a)throw new TypeError("Invalid index");const s=r.slice(13,45);let c;if(n===t.bip32.private){if(0!==r.readUInt8(45))throw new TypeError("Invalid private key");c=y(r.slice(46,78),s,t,f,a,o)}else{c=m(r.slice(45,78),s,t,f,a,o)}return c},t.fromPrivateKey=b,t.fromPublicKey=function(e,t,r){return m(e,t,r)},t.fromSeed=function(t,r){if(o(o.Buffer,t),t.length<16)throw new TypeError("Seed should be at least 128 bits");if(t.length>64)throw new TypeError("Seed should be at most 512 bits");r=r||u;const i=n.hmacSHA512(e.from("Bitcoin seed","utf8"),t);return b(i.slice(0,32),i.slice(32),r)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10),i=r(56);t.hash160=function(e){const t=n("sha256").update(e).digest();try{return n("rmd160").update(t).digest()}catch(e){return n("ripemd160").update(t).digest()}},t.hmacSHA512=function(e,t){return i("sha512",e).update(t).digest()}},function(e,t,r){"use strict";var n=r(10),i=r(318);e.exports=i((function(e){var t=n("sha256").update(e).digest();return n("sha256").update(t).digest()}))},function(e,t,r){"use strict";var n=r(88),i=r(319).Buffer;e.exports=function(e){function t(t){var r=t.slice(0,-4),n=t.slice(-4),i=e(r);if(!(n[0]^i[0]|n[1]^i[1]|n[2]^i[2]|n[3]^i[3]))return r}return{encode:function(t){var r=e(t);return n.encode(i.concat([t,r],t.length+4))},decode:function(e){var r=t(n.decode(e));if(!r)throw new Error("Invalid checksum");return r},decodeUnsafe:function(e){var r=n.decodeUnsafe(e);if(r)return t(r)}}}},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){(function(t){const n=r(56),i=t.alloc(1,1),f=t.alloc(1,0);e.exports=function(e,r,o,a,s){let c=t.alloc(32,0),u=t.alloc(32,1);c=n("sha256",c).update(u).update(f).update(r).update(e).update(s||"").digest(),u=n("sha256",c).update(u).digest(),c=n("sha256",c).update(u).update(i).update(r).update(e).update(s||"").digest(),u=n("sha256",c).update(u).digest(),u=n("sha256",c).update(u).digest();let d=u;for(;!a(d)||!o(d);)c=n("sha256",c).update(u).update(f).digest(),u=n("sha256",c).update(u).digest(),u=n("sha256",c).update(u).digest(),d=u;return d}}).call(this,r(0).Buffer)},function(e,t,r){(function(t){var n=r(178),i=r(284);function f(e){return t.isBuffer(e)}function o(e){return"string"==typeof e&&/^([0-9a-f]{2})+$/i.test(e)}function a(e,t){var r=e.toJSON();function n(n){if(!e(n))return!1;if(n.length===t)return!0;throw i.tfCustomError(r+"(Length: "+t+")",r+"(Length: "+n.length+")")}return n.toJSON=function(){return r},n}var s=a.bind(null,n.Array),c=a.bind(null,f),u=a.bind(null,o),d=a.bind(null,n.String);var h=Math.pow(2,53)-1;var p={ArrayN:s,Buffer:f,BufferN:c,Finite:function(e){return"number"==typeof e&&isFinite(e)},Hex:o,HexN:u,Int8:function(e){return e<<24>>24===e},Int16:function(e){return e<<16>>16===e},Int32:function(e){return(0|e)===e},Int53:function(e){return"number"==typeof e&&e>=-h&&e<=h&&Math.floor(e)===e},Range:function(e,t,r){function i(n,i){return r(n,i)&&n>e&&n>>0===e},UInt53:function(e){return"number"==typeof e&&e>=0&&e<=h&&Math.floor(e)===e}};for(var l in p)p[l].toJSON=function(e){return e}.bind(null,l);e.exports=p}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n=r(10),i=r(323);e.exports=i((function(e){var t=n("sha256").update(e).digest();return n("sha256").update(t).digest()}))},function(e,t,r){"use strict";var n=r(88),i=r(324).Buffer;e.exports=function(e){function t(t){var r=t.slice(0,-4),n=t.slice(-4),i=e(r);if(!(n[0]^i[0]|n[1]^i[1]|n[2]^i[2]|n[3]^i[3]))return r}return{encode:function(t){var r=e(t);return n.encode(i.concat([t,r],t.length+4))},decode:function(e){var r=t(n.decode(e));if(!r)throw new Error("Invalid checksum");return r},decodeUnsafe:function(e){var r=n.decodeUnsafe(e);if(r)return t(r)}}}},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=r(3),f=r(54),o=r(13),a=i.OPS;t.p2data=function(e,t){if(!e.data&&!e.output)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),o({network:o.maybe(o.Object),output:o.maybe(o.Buffer),data:o.maybe(o.arrayOf(o.Buffer))},e);const r={name:"embed",network:e.network||n.bitcoin};if(f.prop(r,"output",()=>{if(e.data)return i.compile([a.OP_RETURN].concat(e.data))}),f.prop(r,"data",()=>{if(e.output)return i.decompile(e.output).slice(1)}),t.validate&&e.output){const t=i.decompile(e.output);if(t[0]!==a.OP_RETURN)throw new TypeError("Output is invalid");if(!t.slice(1).every(o.Buffer))throw new TypeError("Output is invalid");if(e.data&&!function(e,t){return e.length===t.length&&e.every((e,r)=>e.equals(t[r]))}(e.data,r.data))throw new TypeError("Data mismatch")}return Object.assign(r,e)}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e,t,r){t=t||4,r=void 0===r||r;const n=e.length;if(0===n)return 0;if(n>t)throw new TypeError("Script number overflow");if(r&&0==(127&e[n-1])&&(n<=1||0==(128&e[n-2])))throw new Error("Non-minimally encoded script number");if(5===n){const t=e.readUInt32LE(0),r=e.readUInt8(4);return 128&r?-(4294967296*(-129&r)+t):4294967296*r+t}let i=0;for(let t=0;t2147483647?5:i>8388607?4:i>32767?3:i>127?2:i>0?1:0;var i;const f=e.allocUnsafe(n),o=t<0;for(let e=0;e>=8;return 128&f[n-1]?f.writeUInt8(o?128:0,n-1):o&&(f[n-1]|=128),f}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(34),i=r(70),f=r(13),o=e.alloc(1,0);function a(t){let r=0;for(;0===t[r];)++r;return r===t.length?o:128&(t=t.slice(r))[0]?e.concat([o,t],1+t.length):t}function s(t){0===t[0]&&(t=t.slice(1));const r=e.alloc(32,0),n=Math.max(0,32-t.length);return t.copy(r,n),r}t.decode=function(t){const r=t.readUInt8(t.length-1),n=-129&r;if(n<=0||n>=4)throw new Error("Invalid hashType "+r);const f=i.decode(t.slice(0,-1)),o=s(f.r),a=s(f.s);return{signature:e.concat([o,a],64),hashType:r}},t.encode=function(t,r){f({signature:n.BufferN(64),hashType:n.UInt8},{signature:t,hashType:r});const o=-129&r;if(o<=0||o>=4)throw new Error("Invalid hashType "+r);const s=e.allocUnsafe(1);s.writeUInt8(r,0);const c=a(t.slice(0,32)),u=a(t.slice(32,64));return e.concat([i.encode(c,u),s])}}).call(this,r(0).Buffer)},function(e,t,r){var n=r(180);function i(e){return ee.length)return null;r=e.readUInt8(t+1),i=2}else if(f===n.OP_PUSHDATA2){if(t+3>e.length)return null;r=e.readUInt16LE(t+1),i=3}else{if(t+5>e.length)return null;if(f!==n.OP_PUSHDATA4)throw new Error("Unexpected opcode");r=e.readUInt32LE(t+1),i=5}return{opcode:f,number:r,size:i}}}},function(e,t,r){var n=r(180),i={};for(var f in n){i[n[f]]=f}e.exports=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=r(3),f=r(54),o=i.OPS,a=r(13),s=r(53),c=o.OP_RESERVED;function u(e,t){return e.length===t.length&&e.every((e,r)=>e.equals(t[r]))}t.p2ms=function(e,t){if(!(e.input||e.output||e.pubkeys&&void 0!==e.m||e.signatures))throw new TypeError("Not enough data");function r(e){return i.isCanonicalScriptSignature(e)||void 0!==(t.allowIncomplete&&e===o.OP_0)}t=Object.assign({validate:!0},t||{}),a({network:a.maybe(a.Object),m:a.maybe(a.Number),n:a.maybe(a.Number),output:a.maybe(a.Buffer),pubkeys:a.maybe(a.arrayOf(s.isPoint)),signatures:a.maybe(a.arrayOf(r)),input:a.maybe(a.Buffer)},e);const d={network:e.network||n.bitcoin};let h=[],p=!1;function l(e){p||(p=!0,h=i.decompile(e),d.m=h[0]-c,d.n=h[h.length-2]-c,d.pubkeys=h.slice(1,-2))}if(f.prop(d,"output",()=>{if(e.m&&d.n&&e.pubkeys)return i.compile([].concat(c+e.m,e.pubkeys,c+d.n,o.OP_CHECKMULTISIG))}),f.prop(d,"m",()=>{if(d.output)return l(d.output),d.m}),f.prop(d,"n",()=>{if(d.pubkeys)return d.pubkeys.length}),f.prop(d,"pubkeys",()=>{if(e.output)return l(e.output),d.pubkeys}),f.prop(d,"signatures",()=>{if(e.input)return i.decompile(e.input).slice(1)}),f.prop(d,"input",()=>{if(e.signatures)return i.compile([o.OP_0].concat(e.signatures))}),f.prop(d,"witness",()=>{if(d.input)return[]}),f.prop(d,"name",()=>{if(d.m&&d.n)return`p2ms(${d.m} of ${d.n})`}),t.validate){if(e.output){if(l(e.output),!a.Number(h[0]))throw new TypeError("Output is invalid");if(!a.Number(h[h.length-2]))throw new TypeError("Output is invalid");if(h[h.length-1]!==o.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(d.m<=0||d.n>16||d.m>d.n||d.n!==h.length-3)throw new TypeError("Output is invalid");if(!d.pubkeys.every(e=>s.isPoint(e)))throw new TypeError("Output is invalid");if(void 0!==e.m&&e.m!==d.m)throw new TypeError("m mismatch");if(void 0!==e.n&&e.n!==d.n)throw new TypeError("n mismatch");if(e.pubkeys&&!u(e.pubkeys,d.pubkeys))throw new TypeError("Pubkeys mismatch")}if(e.pubkeys){if(void 0!==e.n&&e.n!==e.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(d.n=e.pubkeys.length,d.nd.m)throw new TypeError("Too many signatures provided")}if(e.input){if(e.input[0]!==o.OP_0)throw new TypeError("Input is invalid");if(0===d.signatures.length||!d.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(e.signatures&&!u(e.signatures,d.signatures))throw new TypeError("Signature mismatch");if(void 0!==e.m&&e.m!==e.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(d,e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=r(3),f=r(54),o=r(13),a=i.OPS,s=r(53);t.p2pk=function(e,t){if(!(e.input||e.output||e.pubkey||e.input||e.signature))throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),o({network:o.maybe(o.Object),output:o.maybe(o.Buffer),pubkey:o.maybe(s.isPoint),signature:o.maybe(i.isCanonicalScriptSignature),input:o.maybe(o.Buffer)},e);const r=f.value(()=>i.decompile(e.input)),c={name:"p2pk",network:e.network||n.bitcoin};if(f.prop(c,"output",()=>{if(e.pubkey)return i.compile([e.pubkey,a.OP_CHECKSIG])}),f.prop(c,"pubkey",()=>{if(e.output)return e.output.slice(1,-1)}),f.prop(c,"signature",()=>{if(e.input)return r()[0]}),f.prop(c,"input",()=>{if(e.signature)return i.compile([e.signature])}),f.prop(c,"witness",()=>{if(c.input)return[]}),t.validate){if(e.output){if(e.output[e.output.length-1]!==a.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!s.isPoint(c.pubkey))throw new TypeError("Output pubkey is invalid");if(e.pubkey&&!e.pubkey.equals(c.pubkey))throw new TypeError("Pubkey mismatch")}if(e.signature&&e.input&&!e.input.equals(c.input))throw new TypeError("Signature mismatch");if(e.input){if(1!==r().length)throw new TypeError("Input is invalid");if(!i.isCanonicalScriptSignature(c.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(c,e)}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(35),i=r(24),f=r(3),o=r(54),a=r(13),s=f.OPS,c=r(53),u=r(181);t.p2pkh=function(t,r){if(!(t.address||t.hash||t.output||t.pubkey||t.input))throw new TypeError("Not enough data");r=Object.assign({validate:!0},r||{}),a({network:a.maybe(a.Object),address:a.maybe(a.String),hash:a.maybe(a.BufferN(20)),output:a.maybe(a.BufferN(25)),pubkey:a.maybe(c.isPoint),signature:a.maybe(f.isCanonicalScriptSignature),input:a.maybe(a.Buffer)},t);const d=o.value(()=>{const e=u.decode(t.address);return{version:e.readUInt8(0),hash:e.slice(1)}}),h=o.value(()=>f.decompile(t.input)),p=t.network||i.bitcoin,l={name:"p2pkh",network:p};if(o.prop(l,"address",()=>{if(!l.hash)return;const t=e.allocUnsafe(21);return t.writeUInt8(p.pubKeyHash,0),l.hash.copy(t,1),u.encode(t)}),o.prop(l,"hash",()=>t.output?t.output.slice(3,23):t.address?d().hash:t.pubkey||l.pubkey?n.hash160(t.pubkey||l.pubkey):void 0),o.prop(l,"output",()=>{if(l.hash)return f.compile([s.OP_DUP,s.OP_HASH160,l.hash,s.OP_EQUALVERIFY,s.OP_CHECKSIG])}),o.prop(l,"pubkey",()=>{if(t.input)return h()[1]}),o.prop(l,"signature",()=>{if(t.input)return h()[0]}),o.prop(l,"input",()=>{if(t.pubkey&&t.signature)return f.compile([t.signature,t.pubkey])}),o.prop(l,"witness",()=>{if(l.input)return[]}),r.validate){let r=e.from([]);if(t.address){if(d().version!==p.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(20!==d().hash.length)throw new TypeError("Invalid address");r=d().hash}if(t.hash){if(r.length>0&&!r.equals(t.hash))throw new TypeError("Hash mismatch");r=t.hash}if(t.output){if(25!==t.output.length||t.output[0]!==s.OP_DUP||t.output[1]!==s.OP_HASH160||20!==t.output[2]||t.output[23]!==s.OP_EQUALVERIFY||t.output[24]!==s.OP_CHECKSIG)throw new TypeError("Output is invalid");const e=t.output.slice(3,23);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.pubkey){const e=n.hash160(t.pubkey);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.input){const e=h();if(2!==e.length)throw new TypeError("Input is invalid");if(!f.isCanonicalScriptSignature(e[0]))throw new TypeError("Input has invalid signature");if(!c.isPoint(e[1]))throw new TypeError("Input has invalid pubkey");if(t.signature&&!t.signature.equals(e[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(e[1]))throw new TypeError("Pubkey mismatch");const i=n.hash160(e[1]);if(r.length>0&&!r.equals(i))throw new TypeError("Hash mismatch")}}return Object.assign(l,t)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";var n=r(88),i=r(334).Buffer;e.exports=function(e){function t(t){var r=t.slice(0,-4),n=t.slice(-4),i=e(r);if(!(n[0]^i[0]|n[1]^i[1]|n[2]^i[2]|n[3]^i[3]))return r}return{encode:function(t){var r=e(t);return n.encode(i.concat([t,r],t.length+4))},decode:function(e){var r=t(n.decode(e));if(!r)throw new Error("Invalid checksum");return r},decodeUnsafe:function(e){var r=n.decodeUnsafe(e);if(r)return t(r)}}}},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(35),i=r(24),f=r(3),o=r(54),a=r(13),s=f.OPS,c=r(181);t.p2sh=function(t,r){if(!(t.address||t.hash||t.output||t.redeem||t.input))throw new TypeError("Not enough data");r=Object.assign({validate:!0},r||{}),a({network:a.maybe(a.Object),address:a.maybe(a.String),hash:a.maybe(a.BufferN(20)),output:a.maybe(a.BufferN(23)),redeem:a.maybe({network:a.maybe(a.Object),output:a.maybe(a.Buffer),input:a.maybe(a.Buffer),witness:a.maybe(a.arrayOf(a.Buffer))}),input:a.maybe(a.Buffer),witness:a.maybe(a.arrayOf(a.Buffer))},t);let u=t.network;u||(u=t.redeem&&t.redeem.network||i.bitcoin);const d={network:u},h=o.value(()=>{const e=c.decode(t.address);return{version:e.readUInt8(0),hash:e.slice(1)}}),p=o.value(()=>f.decompile(t.input)),l=o.value(()=>{const e=p();return{network:u,output:e[e.length-1],input:f.compile(e.slice(0,-1)),witness:t.witness||[]}});if(o.prop(d,"address",()=>{if(!d.hash)return;const t=e.allocUnsafe(21);return t.writeUInt8(d.network.scriptHash,0),d.hash.copy(t,1),c.encode(t)}),o.prop(d,"hash",()=>t.output?t.output.slice(2,22):t.address?h().hash:d.redeem&&d.redeem.output?n.hash160(d.redeem.output):void 0),o.prop(d,"output",()=>{if(d.hash)return f.compile([s.OP_HASH160,d.hash,s.OP_EQUAL])}),o.prop(d,"redeem",()=>{if(t.input)return l()}),o.prop(d,"input",()=>{if(t.redeem&&t.redeem.input&&t.redeem.output)return f.compile([].concat(f.decompile(t.redeem.input),t.redeem.output))}),o.prop(d,"witness",()=>d.redeem&&d.redeem.witness?d.redeem.witness:d.input?[]:void 0),o.prop(d,"name",()=>{const e=["p2sh"];return void 0!==d.redeem&&e.push(d.redeem.name),e.join("-")}),r.validate){let r=e.from([]);if(t.address){if(h().version!==u.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(20!==h().hash.length)throw new TypeError("Invalid address");r=h().hash}if(t.hash){if(r.length>0&&!r.equals(t.hash))throw new TypeError("Hash mismatch");r=t.hash}if(t.output){if(23!==t.output.length||t.output[0]!==s.OP_HASH160||20!==t.output[1]||t.output[22]!==s.OP_EQUAL)throw new TypeError("Output is invalid");const e=t.output.slice(2,22);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}const i=e=>{if(e.output){const t=f.decompile(e.output);if(!t||t.length<1)throw new TypeError("Redeem.output too short");const i=n.hash160(e.output);if(r.length>0&&!r.equals(i))throw new TypeError("Hash mismatch");r=i}if(e.input){const t=e.input.length>0,r=e.witness&&e.witness.length>0;if(!t&&!r)throw new TypeError("Empty input");if(t&&r)throw new TypeError("Input and witness provided");if(t){const t=f.decompile(e.input);if(!f.isPushOnly(t))throw new TypeError("Non push-only scriptSig")}}};if(t.input){const t=p();if(!t||t.length<1)throw new TypeError("Input too short");if(!e.isBuffer(l().output))throw new TypeError("Input is invalid");i(l())}if(t.redeem){if(t.redeem.network&&t.redeem.network!==u)throw new TypeError("Network mismatch");if(t.input){const e=l();if(t.redeem.output&&!t.redeem.output.equals(e.output))throw new TypeError("Redeem.output mismatch");if(t.redeem.input&&!t.redeem.input.equals(e.input))throw new TypeError("Redeem.input mismatch")}i(t.redeem)}if(t.witness&&t.redeem&&t.redeem.witness&&!function(e,t){return e.length===t.length&&e.every((e,r)=>e.equals(t[r]))}(t.redeem.witness,t.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(d,t)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(35),i=r(24),f=r(3),o=r(54),a=r(13),s=f.OPS,c=r(53),u=r(124),d=e.alloc(0);t.p2wpkh=function(t,r){if(!(t.address||t.hash||t.output||t.pubkey||t.witness))throw new TypeError("Not enough data");r=Object.assign({validate:!0},r||{}),a({address:a.maybe(a.String),hash:a.maybe(a.BufferN(20)),input:a.maybe(a.BufferN(0)),network:a.maybe(a.Object),output:a.maybe(a.BufferN(22)),pubkey:a.maybe(c.isPoint),signature:a.maybe(f.isCanonicalScriptSignature),witness:a.maybe(a.arrayOf(a.Buffer))},t);const h=o.value(()=>{const r=u.decode(t.address),n=r.words.shift(),i=u.fromWords(r.words);return{version:n,prefix:r.prefix,data:e.from(i)}}),p=t.network||i.bitcoin,l={name:"p2wpkh",network:p};if(o.prop(l,"address",()=>{if(!l.hash)return;const e=u.toWords(l.hash);return e.unshift(0),u.encode(p.bech32,e)}),o.prop(l,"hash",()=>t.output?t.output.slice(2,22):t.address?h().data:t.pubkey||l.pubkey?n.hash160(t.pubkey||l.pubkey):void 0),o.prop(l,"output",()=>{if(l.hash)return f.compile([s.OP_0,l.hash])}),o.prop(l,"pubkey",()=>t.pubkey?t.pubkey:t.witness?t.witness[1]:void 0),o.prop(l,"signature",()=>{if(t.witness)return t.witness[0]}),o.prop(l,"input",()=>{if(l.witness)return d}),o.prop(l,"witness",()=>{if(t.pubkey&&t.signature)return[t.signature,t.pubkey]}),r.validate){let r=e.from([]);if(t.address){if(p&&p.bech32!==h().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(0!==h().version)throw new TypeError("Invalid address version");if(20!==h().data.length)throw new TypeError("Invalid address data");r=h().data}if(t.hash){if(r.length>0&&!r.equals(t.hash))throw new TypeError("Hash mismatch");r=t.hash}if(t.output){if(22!==t.output.length||t.output[0]!==s.OP_0||20!==t.output[1])throw new TypeError("Output is invalid");if(r.length>0&&!r.equals(t.output.slice(2)))throw new TypeError("Hash mismatch");r=t.output.slice(2)}if(t.pubkey){const e=n.hash160(t.pubkey);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.witness){if(2!==t.witness.length)throw new TypeError("Witness is invalid");if(!f.isCanonicalScriptSignature(t.witness[0]))throw new TypeError("Witness has invalid signature");if(!c.isPoint(t.witness[1]))throw new TypeError("Witness has invalid pubkey");if(t.signature&&!t.signature.equals(t.witness[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(t.witness[1]))throw new TypeError("Pubkey mismatch");const e=n.hash160(t.witness[1]);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch")}}return Object.assign(l,t)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(35),i=r(24),f=r(3),o=r(54),a=r(13),s=f.OPS,c=r(124),u=e.alloc(0);t.p2wsh=function(t,r){if(!(t.address||t.hash||t.output||t.redeem||t.witness))throw new TypeError("Not enough data");r=Object.assign({validate:!0},r||{}),a({network:a.maybe(a.Object),address:a.maybe(a.String),hash:a.maybe(a.BufferN(32)),output:a.maybe(a.BufferN(34)),redeem:a.maybe({input:a.maybe(a.Buffer),network:a.maybe(a.Object),output:a.maybe(a.Buffer),witness:a.maybe(a.arrayOf(a.Buffer))}),input:a.maybe(a.BufferN(0)),witness:a.maybe(a.arrayOf(a.Buffer))},t);const d=o.value(()=>{const r=c.decode(t.address),n=r.words.shift(),i=c.fromWords(r.words);return{version:n,prefix:r.prefix,data:e.from(i)}}),h=o.value(()=>f.decompile(t.redeem.input));let p=t.network;p||(p=t.redeem&&t.redeem.network||i.bitcoin);const l={network:p};if(o.prop(l,"address",()=>{if(!l.hash)return;const e=c.toWords(l.hash);return e.unshift(0),c.encode(p.bech32,e)}),o.prop(l,"hash",()=>t.output?t.output.slice(2):t.address?d().data:l.redeem&&l.redeem.output?n.sha256(l.redeem.output):void 0),o.prop(l,"output",()=>{if(l.hash)return f.compile([s.OP_0,l.hash])}),o.prop(l,"redeem",()=>{if(t.witness)return{output:t.witness[t.witness.length-1],input:u,witness:t.witness.slice(0,-1)}}),o.prop(l,"input",()=>{if(l.witness)return u}),o.prop(l,"witness",()=>{if(t.redeem&&t.redeem.input&&t.redeem.input.length>0&&t.redeem.output&&t.redeem.output.length>0){const e=f.toStack(h());return l.redeem=Object.assign({witness:e},t.redeem),l.redeem.input=u,[].concat(e,t.redeem.output)}if(t.redeem&&t.redeem.output&&t.redeem.witness)return[].concat(t.redeem.witness,t.redeem.output)}),o.prop(l,"name",()=>{const e=["p2wsh"];return void 0!==l.redeem&&e.push(l.redeem.name),e.join("-")}),r.validate){let r=e.from([]);if(t.address){if(d().prefix!==p.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(0!==d().version)throw new TypeError("Invalid address version");if(32!==d().data.length)throw new TypeError("Invalid address data");r=d().data}if(t.hash){if(r.length>0&&!r.equals(t.hash))throw new TypeError("Hash mismatch");r=t.hash}if(t.output){if(34!==t.output.length||t.output[0]!==s.OP_0||32!==t.output[1])throw new TypeError("Output is invalid");const e=t.output.slice(2);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.redeem){if(t.redeem.network&&t.redeem.network!==p)throw new TypeError("Network mismatch");if(t.redeem.input&&t.redeem.input.length>0&&t.redeem.witness&&t.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(t.redeem.output){if(0===f.decompile(t.redeem.output).length)throw new TypeError("Redeem.output is invalid");const e=n.sha256(t.redeem.output);if(r.length>0&&!r.equals(e))throw new TypeError("Hash mismatch");r=e}if(t.redeem.input&&!f.isPushOnly(h()))throw new TypeError("Non push-only scriptSig");if(t.witness&&t.redeem.witness&&!function(e,t){return e.length===t.length&&e.every((e,r)=>e.equals(t[r]))}(t.witness,t.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch")}if(t.witness&&t.redeem&&t.redeem.output&&!t.redeem.output.equals(t.witness[t.witness.length-1]))throw new TypeError("Witness and redeem.output mismatch")}return Object.assign(l,t)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(85),i=r(35),f=r(123),o=r(34),a=r(340),s=r(13),c=r(286),u=new TypeError("Cannot compute merkle root for zero transactions"),d=new TypeError("Cannot compute witness commit for non-segwit block");class h{constructor(){this.version=1,this.prevHash=void 0,this.merkleRoot=void 0,this.timestamp=0,this.witnessCommit=void 0,this.bits=0,this.nonce=0,this.transactions=void 0}static fromBuffer(e){if(e.length<80)throw new Error("Buffer too small (< 80 bytes)");let t=0;const r=r=>(t+=r,e.slice(t-r,t)),n=()=>{const r=e.readUInt32LE(t);return t+=4,r},i=new h;if(i.version=(()=>{const r=e.readInt32LE(t);return t+=4,r})(),i.prevHash=r(32),i.merkleRoot=r(32),i.timestamp=n(),i.bits=n(),i.nonce=n(),80===e.length)return i;const o=()=>{const r=f.Transaction.fromBuffer(e.slice(t),!0);return t+=r.byteLength(),r},a=(()=>{const r=c.decode(e,t);return t+=c.decode.bytes,r})();i.transactions=[];for(let e=0;e>24)-3,n=8388607&t,i=e.alloc(32,0);return i.writeUIntBE(n,29-r,3),i}static calculateMerkleRoot(t,r){if(s([{getHash:o.Function}],t),0===t.length)throw u;if(r&&!p(t))throw d;const n=t.map(e=>e.getHash(r)),f=a(n,i.hash256);return r?i.hash256(e.concat([f,t[0].ins[0].witness[0]])):f}getWitnessCommit(){if(!p(this.transactions))return null;const t=this.transactions[0].outs.filter(t=>t.script.slice(0,6).equals(e.from("6a24aa21a9ed","hex"))).map(e=>e.script.slice(6,38));if(0===t.length)return null;const r=t[t.length-1];return r instanceof e&&32===r.length?r:null}hasWitnessCommit(){return this.witnessCommit instanceof e&&32===this.witnessCommit.length||null!==this.getWitnessCommit()}hasWitness(){return(e=this.transactions)instanceof Array&&e.some(e=>"object"==typeof e&&e.ins instanceof Array&&e.ins.some(e=>"object"==typeof e&&e.witness instanceof Array&&e.witness.length>0));var e}byteLength(e){return e||!this.transactions?80:80+c.encodingLength(this.transactions.length)+this.transactions.reduce((e,t)=>e+t.byteLength(),0)}getHash(){return i.hash256(this.toBuffer(!0))}getId(){return n.reverseBuffer(this.getHash()).toString("hex")}getUTCDate(){const e=new Date(0);return e.setUTCSeconds(this.timestamp),e}toBuffer(t){const r=e.allocUnsafe(this.byteLength(t));let n=0;const i=e=>{e.copy(r,n),n+=e.length},f=e=>{r.writeUInt32LE(e,n),n+=4};var o;return o=this.version,r.writeInt32LE(o,n),n+=4,i(this.prevHash),i(this.merkleRoot),f(this.timestamp),f(this.bits),f(this.nonce),t||!this.transactions||(c.encode(this.transactions.length,r,n),n+=c.encode.bytes,this.transactions.forEach(e=>{const t=e.byteLength();e.toBuffer(r,n),n+=t})),r}toHex(e){return this.toBuffer(e).toString("hex")}checkTxRoots(){const e=this.hasWitnessCommit();return!(!e&&this.hasWitness())&&(this.__checkMerkleRoot()&&(!e||this.__checkWitnessCommit()))}checkProofOfWork(){const e=n.reverseBuffer(this.getHash()),t=h.calculateTarget(this.bits);return e.compare(t)<=0}__checkMerkleRoot(){if(!this.transactions)throw u;const e=h.calculateMerkleRoot(this.transactions);return 0===this.merkleRoot.compare(e)}__checkWitnessCommit(){if(!this.transactions)throw u;if(!this.hasWitnessCommit())throw d;const e=h.calculateMerkleRoot(this.transactions,!0);return 0===this.witnessCommit.compare(e)}}function p(e){return e instanceof Array&&e[0]&&e[0].ins&&e[0].ins instanceof Array&&e[0].ins[0]&&e[0].ins[0].witness&&e[0].ins[0].witness instanceof Array&&e[0].ins[0].witness.length>0}t.Block=h}).call(this,r(0).Buffer)},function(e,t,r){var n=r(0),i=n.Buffer;function f(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(f(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),f(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){(function(t){e.exports=function(e,r){if(!Array.isArray(e))throw TypeError("Expected values Array");if("function"!=typeof r)throw TypeError("Expected digest Function");for(var n=e.length,i=e.concat();n>1;){for(var f=0,o=0;oObject.defineProperty(e,t,{enumerable:r,writable:n});r(this,"__CACHE",!1,!0),r(this,"opts",!1,!0)}static fromBase64(t,r={}){const n=e.from(t,"base64");return this.fromBuffer(n,r)}static fromHex(t,r={}){const n=e.from(t,"hex");return this.fromBuffer(n,r)}static fromBuffer(e,t={}){const r=n.Psbt.fromBuffer(e,y),i=new b(t,r);var f,o;return f=i.__CACHE.__TX,o=i.__CACHE,f.ins.forEach(e=>{x(o,e)}),i}get inputCount(){return this.data.inputs.length}combine(...e){return this.data.combine(...e.map(e=>e.data)),this}clone(){const e=b.fromBuffer(this.data.toBuffer());return e.opts=JSON.parse(JSON.stringify(this.opts)),e}setMaximumFeeRate(e){k(e),this.opts.maximumFeeRate=e}setVersion(e){k(e),T(this.data.inputs,"setVersion");const t=this.__CACHE;return t.__TX.version=e,t.__EXTRACTED_TX=void 0,this}setLocktime(e){k(e),T(this.data.inputs,"setLocktime");const t=this.__CACHE;return t.__TX.locktime=e,t.__EXTRACTED_TX=void 0,this}setInputSequence(e,t){k(t),T(this.data.inputs,"setInputSequence");const r=this.__CACHE;if(r.__TX.ins.length<=e)throw new Error("Input index too high");return r.__TX.ins[e].sequence=t,r.__EXTRACTED_TX=void 0,this}addInputs(e){return e.forEach(e=>this.addInput(e)),this}addInput(e){T(this.data.inputs,"addInput");const t=this.__CACHE;this.data.addInput(e),x(t,t.__TX.ins[t.__TX.ins.length-1]);const r=this.data.inputs.length-1,n=this.data.inputs[r];return n.nonWitnessUtxo&&j(this.__CACHE,n,r),t.__FEE=void 0,t.__FEE_RATE=void 0,t.__EXTRACTED_TX=void 0,this}addOutputs(e){return e.forEach(e=>this.addOutput(e)),this}addOutput(e){T(this.data.inputs,"addOutput");const{address:t}=e;if("string"==typeof t){const{network:r}=this.opts,n=o.toOutputScript(t,r);e=Object.assign(e,{script:n})}const r=this.__CACHE;return this.data.addOutput(e),r.__FEE=void 0,r.__FEE_RATE=void 0,r.__EXTRACTED_TX=void 0,this}extractTransaction(e){if(!this.data.inputs.every(g))throw new Error("Not finalized");const t=this.__CACHE;if(e||function(e,t,r){const n=t.__FEE_RATE||e.getFeeRate(),i=t.__EXTRACTED_TX.virtualSize(),f=n*i;if(n>=r.maximumFeeRate)throw new Error(`Warning: You are paying around ${(f/1e8).toFixed(8)} in `+`fees, which is ${n} satoshi per byte for a transaction `+`with a VSize of ${i} bytes (segwit counted as 0.25 byte per `+"byte). Use setMaximumFeeRate method to raise your threshold, or pass true to the first arg of extractTransaction.")}(this,t,this.opts),t.__EXTRACTED_TX)return t.__EXTRACTED_TX;const r=t.__TX.clone();return q(this.data.inputs,r,t,!0),r}getFeeRate(){return N("__FEE_RATE","fee rate",this.data.inputs,this.__CACHE)}getFee(){return N("__FEE","fee",this.data.inputs,this.__CACHE)}finalizeAllInputs(){return f.checkForInput(this.data.inputs,0),H(this.data.inputs.length).forEach(e=>this.finalizeInput(e)),this}finalizeInput(e){const t=f.checkForInput(this.data.inputs,e),{script:r,isP2SH:n,isP2WSH:i,isSegwit:o}=function(e,t,r){const n=r.__TX,i={script:null,isSegwit:!1,isP2SH:!1,isP2WSH:!1};if(i.isP2SH=!!t.redeemScript,i.isP2WSH=!!t.witnessScript,t.witnessScript)i.script=t.witnessScript;else if(t.redeemScript)i.script=t.redeemScript;else if(t.nonWitnessUtxo){const f=K(r,t,e),o=n.ins[e].index;i.script=f.outs[o].script}else t.witnessUtxo&&(i.script=t.witnessUtxo.script);(t.witnessScript||I(i.script))&&(i.isSegwit=!0);return i}(e,t,this.__CACHE);if(!r)throw new Error(`No script found for input #${e}`);const a=function(e){return I(e)?"witnesspubkeyhash":E(e)?"pubkeyhash":_(e)?"multisig":S(e)?"pubkey":"nonstandard"}(r);if(!function(e,t,r){switch(r){case"pubkey":case"pubkeyhash":case"witnesspubkeyhash":return v(1,e.partialSig);case"multisig":return v(d.p2ms({output:t}).m,e.partialSig);default:return!1}}(t,r,a))throw new Error(`Can not finalize input #${e}`);!function(e){if(!e.sighashType||!e.partialSig)return;const{partialSig:t,sighashType:r}=e;t.forEach(e=>{const{hashType:t}=h.signature.decode(e.signature);if(r!==t)throw new Error("Signature sighash does not match input sighash type")})}(t);const{finalScriptSig:s,finalScriptWitness:c}=function(e,t,r,n,i,f){let o,a;const s=function(e,t,r){let n;switch(t){case"multisig":const t=function(e,t){return d.p2ms({output:e}).pubkeys.map(e=>(t.filter(t=>t.pubkey.equals(e))[0]||{}).signature).filter(e=>!!e)}(e,r);n=d.p2ms({output:e,signatures:t});break;case"pubkey":n=d.p2pk({output:e,signature:r[0].signature});break;case"pubkeyhash":n=d.p2pkh({output:e,pubkey:r[0].pubkey,signature:r[0].signature});break;case"witnesspubkeyhash":n=d.p2wpkh({output:e,pubkey:r[0].pubkey,signature:r[0].signature})}return n}(e,t,r),c=f?d.p2wsh({redeem:s}):null,u=i?d.p2sh({redeem:c||s}):null;n?(a=D(c?c.witness:s.witness),u&&(o=u.input)):o=u?u.input:s.input;return{finalScriptSig:o,finalScriptWitness:a}}(r,a,t.partialSig,o,n,i);if(s&&this.data.updateInput(e,{finalScriptSig:s}),c&&this.data.updateInput(e,{finalScriptWitness:c}),!s&&!c)throw new Error(`Unknown error finalizing input #${e}`);return this.data.clearFinalizedInput(e),this}validateSignaturesOfAllInputs(){return f.checkForInput(this.data.inputs,0),H(this.data.inputs.length).map(e=>this.validateSignaturesOfInput(e)).reduce((e,t)=>!0===t&&e,!0)}validateSignaturesOfInput(e,t){const r=this.data.inputs[e],n=(r||{}).partialSig;if(!r||!n||n.length<1)throw new Error("No signatures to validate");const i=t?n.filter(e=>e.pubkey.equals(t)):n;if(i.length<1)throw new Error("No signatures for this pubkey");const f=[];let o,a,s;for(const t of i){const n=h.signature.decode(t.signature),{hash:i,script:u}=s!==n.hashType?C(e,Object.assign({},r,{sighashType:n.hashType}),this.__CACHE):{hash:o,script:a};s=n.hashType,o=i,a=u,P(t.pubkey,u,"verify");const d=c.fromPublicKey(t.pubkey);f.push(d.verify(i,n.signature))}return f.every(e=>!0===e)}signAllInputsHD(e,t=[p.Transaction.SIGHASH_ALL]){if(!e||!e.publicKey||!e.fingerprint)throw new Error("Need HDSigner to sign input");const r=[];for(const n of H(this.data.inputs.length))try{this.signInputHD(n,e,t),r.push(!0)}catch(e){r.push(!1)}if(r.every(e=>!1===e))throw new Error("No inputs were signed");return this}signAllInputsHDAsync(e,t=[p.Transaction.SIGHASH_ALL]){return new Promise((r,n)=>{if(!e||!e.publicKey||!e.fingerprint)return n(new Error("Need HDSigner to sign input"));const i=[],f=[];for(const r of H(this.data.inputs.length))f.push(this.signInputHDAsync(r,e,t).then(()=>{i.push(!0)},()=>{i.push(!1)}));return Promise.all(f).then(()=>{if(i.every(e=>!1===e))return n(new Error("No inputs were signed"));r()})})}signInputHD(e,t,r=[p.Transaction.SIGHASH_ALL]){if(!t||!t.publicKey||!t.fingerprint)throw new Error("Need HDSigner to sign input");return U(e,this.data.inputs,t).forEach(t=>this.signInput(e,t,r)),this}signInputHDAsync(e,t,r=[p.Transaction.SIGHASH_ALL]){return new Promise((n,i)=>{if(!t||!t.publicKey||!t.fingerprint)return i(new Error("Need HDSigner to sign input"));const f=U(e,this.data.inputs,t).map(t=>this.signInputAsync(e,t,r));return Promise.all(f).then(()=>{n()}).catch(i)})}signAllInputs(e,t=[p.Transaction.SIGHASH_ALL]){if(!e||!e.publicKey)throw new Error("Need Signer to sign input");const r=[];for(const n of H(this.data.inputs.length))try{this.signInput(n,e,t),r.push(!0)}catch(e){r.push(!1)}if(r.every(e=>!1===e))throw new Error("No inputs were signed");return this}signAllInputsAsync(e,t=[p.Transaction.SIGHASH_ALL]){return new Promise((r,n)=>{if(!e||!e.publicKey)return n(new Error("Need Signer to sign input"));const i=[],f=[];for(const[r]of this.data.inputs.entries())f.push(this.signInputAsync(r,e,t).then(()=>{i.push(!0)},()=>{i.push(!1)}));return Promise.all(f).then(()=>{if(i.every(e=>!1===e))return n(new Error("No inputs were signed"));r()})})}signInput(e,t,r=[p.Transaction.SIGHASH_ALL]){if(!t||!t.publicKey)throw new Error("Need Signer to sign input");const{hash:n,sighashType:i}=R(this.data.inputs,e,t.publicKey,this.__CACHE,r),f=[{pubkey:t.publicKey,signature:h.signature.encode(t.sign(n),i)}];return this.data.updateInput(e,{partialSig:f}),this}signInputAsync(e,t,r=[p.Transaction.SIGHASH_ALL]){return new Promise((n,i)=>{if(!t||!t.publicKey)return i(new Error("Need Signer to sign input"));const{hash:f,sighashType:o}=R(this.data.inputs,e,t.publicKey,this.__CACHE,r);Promise.resolve(t.sign(f)).then(r=>{const i=[{pubkey:t.publicKey,signature:h.signature.encode(r,o)}];this.data.updateInput(e,{partialSig:i}),n()})})}toBuffer(){return this.data.toBuffer()}toHex(){return this.data.toHex()}toBase64(){return this.data.toBase64()}updateGlobal(e){return this.data.updateGlobal(e),this}updateInput(e,t){return this.data.updateInput(e,t),t.nonWitnessUtxo&&j(this.__CACHE,this.data.inputs[e],e),this}updateOutput(e,t){return this.data.updateOutput(e,t),this}addUnknownKeyValToGlobal(e){return this.data.addUnknownKeyValToGlobal(e),this}addUnknownKeyValToInput(e,t){return this.data.addUnknownKeyValToInput(e,t),this}addUnknownKeyValToOutput(e,t){return this.data.addUnknownKeyValToOutput(e,t),this}clearFinalizedInput(e){return this.data.clearFinalizedInput(e),this}}t.Psbt=b;const y=e=>new m(e);class m{constructor(t=e.from([2,0,0,0,0,0,0,0,0,0])){this.tx=p.Transaction.fromBuffer(t),function(e){if(!e.ins.every(e=>e.script&&0===e.script.length&&e.witness&&0===e.witness.length))throw new Error("Format Error: Transaction ScriptSigs are not empty")}(this.tx),Object.defineProperty(this,"tx",{enumerable:!1,writable:!0})}getInputOutputCounts(){return{inputCount:this.tx.ins.length,outputCount:this.tx.outs.length}}addInput(t){if(void 0===t.hash||void 0===t.index||!e.isBuffer(t.hash)&&"string"!=typeof t.hash||"number"!=typeof t.index)throw new Error("Error adding input.");const r="string"==typeof t.hash?a.reverseBuffer(e.from(t.hash,"hex")):t.hash;this.tx.addInput(r,t.index,t.sequence)}addOutput(t){if(void 0===t.script||void 0===t.value||!e.isBuffer(t.script)||"number"!=typeof t.value)throw new Error("Error adding output.");this.tx.addOutput(t.script,t.value)}toBuffer(){return this.tx.toBuffer()}}function v(e,t){if(!t)return!1;if(t.length>e)throw new Error("Too many signatures");return t.length===e}function g(e){return!!e.finalScriptSig||!!e.finalScriptWitness}function w(e){return t=>{try{return e({output:t}),!0}catch(e){return!1}}}const _=w(d.p2ms),S=w(d.p2pk),E=w(d.p2pkh),I=w(d.p2wpkh),A=w(d.p2wsh);function k(e){if("number"!=typeof e||e!==Math.floor(e)||e>4294967295||e<0)throw new Error("Invalid 32 bit integer")}function T(t,r){t.forEach(t=>{let n=!1,i=[];if(0===(t.partialSig||[]).length){if(!t.finalScriptSig&&!t.finalScriptWitness)return;i=function(t){const r=t.finalScriptSig&&h.decompile(t.finalScriptSig)||[],n=t.finalScriptWitness&&h.decompile(t.finalScriptWitness)||[];return r.concat(n).filter(t=>e.isBuffer(t)&&h.isCanonicalScriptSignature(t)).map(e=>({signature:e}))}(t)}else i=t.partialSig;if(i.forEach(e=>{const{hashType:t}=h.signature.decode(e.signature),i=[];switch(t&p.Transaction.SIGHASH_ANYONECANPAY&&i.push("addInput"),31&t){case p.Transaction.SIGHASH_ALL:break;case p.Transaction.SIGHASH_SINGLE:case p.Transaction.SIGHASH_NONE:i.push("addOutput"),i.push("setInputSequence")}-1===i.indexOf(r)&&(n=!0)}),n)throw new Error("Can not modify transaction, signatures exist.")})}function P(e,t,r){const n=s.hash160(e),i=h.decompile(t);if(null===i)throw new Error("Unknown script error");if(!i.some(t=>"number"!=typeof t&&(t.equals(e)||t.equals(n))))throw new Error(`Can not ${r} for this input with the key ${e.toString("hex")}`)}function x(t,r){const n=a.reverseBuffer(e.from(r.hash)).toString("hex")+":"+r.index;if(t.__TX_IN_CACHE[n])throw new Error("Duplicate input detected.");t.__TX_IN_CACHE[n]=1}function M(e,t){return(r,n,i)=>{const f=e({redeem:{output:i}}).output;if(!n.equals(f))throw new Error(`${t} for input #${r} doesn't match the scriptPubKey in the prevout`)}}const O=M(d.p2sh,"Redeem script"),B=M(d.p2wsh,"Witness script");function N(e,t,r,n){if(!r.every(g))throw new Error(`PSBT must be finalized to calculate ${t}`);if("__FEE_RATE"===e&&n.__FEE_RATE)return n.__FEE_RATE;if("__FEE"===e&&n.__FEE)return n.__FEE;let i,f=!0;return n.__EXTRACTED_TX?(i=n.__EXTRACTED_TX,f=!1):i=n.__TX.clone(),q(r,i,n,f),"__FEE_RATE"===e?n.__FEE_RATE:"__FEE"===e?n.__FEE:void 0}function R(e,t,r,n,i){const o=f.checkForInput(e,t),{hash:a,sighashType:s,script:c}=C(t,o,n,i);return P(r,c,"sign"),{hash:a,sighashType:s}}function C(e,t,r,n){const i=r.__TX,f=t.sighashType||p.Transaction.SIGHASH_ALL;if(n&&n.indexOf(f)<0){const e=function(e){let t=e&p.Transaction.SIGHASH_ANYONECANPAY?"SIGHASH_ANYONECANPAY | ":"";switch(31&e){case p.Transaction.SIGHASH_ALL:t+="SIGHASH_ALL";break;case p.Transaction.SIGHASH_SINGLE:t+="SIGHASH_SINGLE";break;case p.Transaction.SIGHASH_NONE:t+="SIGHASH_NONE"}return t}(f);throw new Error("Sighash type is not allowed. Retry the sign method passing the "+`sighashTypes array of whitelisted types. Sighash type: ${e}`)}let o,a;if(t.nonWitnessUtxo){const n=K(r,t,e),s=i.ins[e].hash,c=n.getHash();if(!s.equals(c))throw new Error(`Non-witness UTXO hash for input #${e} doesn't match the hash specified in the prevout`);const u=i.ins[e].index,h=n.outs[u];if(t.redeemScript?(O(e,h.script,t.redeemScript),a=t.redeemScript):a=h.script,A(a)){if(!t.witnessScript)throw new Error("Segwit input needs witnessScript if not P2WPKH");B(e,a,t.witnessScript),o=i.hashForWitnessV0(e,t.witnessScript,h.value,f),a=t.witnessScript}else if(I(a)){const t=d.p2pkh({hash:a.slice(2)}).output;o=i.hashForWitnessV0(e,t,h.value,f)}else o=i.hashForSignature(e,a,f)}else{if(!t.witnessUtxo)throw new Error("Need a Utxo input item for signing");{let r;if(t.redeemScript?(O(e,t.witnessUtxo.script,t.redeemScript),r=t.redeemScript):r=t.witnessUtxo.script,I(r)){const n=d.p2pkh({hash:r.slice(2)}).output;o=i.hashForWitnessV0(e,n,t.witnessUtxo.value,f),a=r}else{if(!A(r))throw new Error(`Input #${e} has witnessUtxo but non-segwit script: `+`${r.toString("hex")}`);if(!t.witnessScript)throw new Error("Segwit input needs witnessScript if not P2WPKH");B(e,r,t.witnessScript),o=i.hashForWitnessV0(e,t.witnessScript,t.witnessUtxo.value,f),a=t.witnessScript}}}return{script:a,sighashType:f,hash:o}}function U(e,t,r){const n=f.checkForInput(t,e);if(!n.bip32Derivation||0===n.bip32Derivation.length)throw new Error("Need bip32Derivation to sign with HD");const i=n.bip32Derivation.map(e=>e.masterFingerprint.equals(r.fingerprint)?e:void 0).filter(e=>!!e);if(0===i.length)throw new Error("Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint");return i.map(e=>{const t=r.derivePath(e.path);if(!e.pubkey.equals(t.publicKey))throw new Error("pubkey did not match bip32Derivation");return t})}function L(e){let t=0;function r(){const r=i.decode(e,t);return t+=i.decode.bytes,r}function n(){return n=r(),t+=n,e.slice(t-n,t);var n}return function(){const e=r(),t=[];for(let r=0;r{if(n&&e.finalScriptSig&&(t.ins[f].script=e.finalScriptSig),n&&e.finalScriptWitness&&(t.ins[f].witness=L(e.finalScriptWitness)),e.witnessUtxo)i+=e.witnessUtxo.value;else if(e.nonWitnessUtxo){const n=K(r,e,f),o=t.ins[f].index,a=n.outs[o];i+=a.value}});const f=t.outs.reduce((e,t)=>e+t.value,0),o=i-f;if(o<0)throw new Error("Outputs are spending more than Inputs");const a=t.virtualSize();r.__FEE=o,r.__EXTRACTED_TX=t,r.__FEE_RATE=Math.floor(o/a)}function K(e,t,r){const n=e.__NON_WITNESS_UTXO_TX_CACHE;return n[r]||j(e,t,r),n[r]}function H(e){return[...Array(e).keys()]}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(287);function i(e,t,r){return n=>{if(e.has(n))return;const i=r.filter(e=>e.key.toString("hex")===n)[0];t.push(i),e.add(n)}}function f(e){return e.globalMap.unsignedTx}function o(e){const t=new Set;return e.forEach(e=>{const r=e.key.toString("hex");if(t.has(r))throw new Error("Combine: KeyValue Map keys should be unique");t.add(r)}),t}t.combine=function(e){const t=e[0],r=n.psbtToKeyVals(t),a=e.slice(1);if(0===a.length)throw new Error("Combine: Nothing to combine");const s=f(t);if(void 0===s)throw new Error("Combine: Self missing transaction");const c=o(r.globalKeyVals),u=r.inputKeyVals.map(o),d=r.outputKeyVals.map(o);for(const e of a){const t=f(e);if(void 0===t||!t.toBuffer().equals(s.toBuffer()))throw new Error("Combine: One of the Psbts does not have the same transaction.");const a=n.psbtToKeyVals(e);o(a.globalKeyVals).forEach(i(c,r.globalKeyVals,a.globalKeyVals)),a.inputKeyVals.map(o).forEach((e,t)=>e.forEach(i(u[t],r.inputKeyVals[t],a.inputKeyVals[t]))),a.outputKeyVals.map(o).forEach((e,t)=>e.forEach(i(d[t],r.outputKeyVals[t],a.outputKeyVals[t])))}return n.psbtFromKeyVals(s,{globalMapKeyVals:r.globalKeyVals,inputKeyVals:r.inputKeyVals,outputKeyVals:r.outputKeyVals})}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(183),i=r(184),f=r(92),o=r(25);function a(t,r,n){if(!r.equals(e.from([n])))throw new Error(`Format Error: Invalid ${t} key: ${r.toString("hex")}`)}function s(e,{globalMapKeyVals:t,inputKeyVals:r,outputKeyVals:f}){const s={unsignedTx:e};let c=0;for(const e of t)switch(e.key[0]){case o.GlobalTypes.UNSIGNED_TX:if(a("global",e.key,o.GlobalTypes.UNSIGNED_TX),c>0)throw new Error("Format Error: GlobalMap has multiple UNSIGNED_TX");c++;break;case o.GlobalTypes.GLOBAL_XPUB:void 0===s.globalXpub&&(s.globalXpub=[]),s.globalXpub.push(n.globals.globalXpub.decode(e));break;default:s.unknownKeyVals||(s.unknownKeyVals=[]),s.unknownKeyVals.push(e)}const u=r.length,d=f.length,h=[],p=[];for(const e of i.range(u)){const t={};for(const i of r[e])switch(n.inputs.checkPubkey(i),i.key[0]){case o.InputTypes.NON_WITNESS_UTXO:if(a("input",i.key,o.InputTypes.NON_WITNESS_UTXO),void 0!==t.nonWitnessUtxo||void 0!==t.witnessUtxo)throw new Error("Format Error: Input has multiple [NON_]WITNESS_UTXO");t.nonWitnessUtxo=n.inputs.nonWitnessUtxo.decode(i);break;case o.InputTypes.WITNESS_UTXO:if(a("input",i.key,o.InputTypes.WITNESS_UTXO),void 0!==t.nonWitnessUtxo||void 0!==t.witnessUtxo)throw new Error("Format Error: Input has multiple [NON_]WITNESS_UTXO");t.witnessUtxo=n.inputs.witnessUtxo.decode(i);break;case o.InputTypes.PARTIAL_SIG:void 0===t.partialSig&&(t.partialSig=[]),t.partialSig.push(n.inputs.partialSig.decode(i));break;case o.InputTypes.SIGHASH_TYPE:if(a("input",i.key,o.InputTypes.SIGHASH_TYPE),void 0!==t.sighashType)throw new Error("Format Error: Input has multiple SIGHASH_TYPE");t.sighashType=n.inputs.sighashType.decode(i);break;case o.InputTypes.REDEEM_SCRIPT:if(a("input",i.key,o.InputTypes.REDEEM_SCRIPT),void 0!==t.redeemScript)throw new Error("Format Error: Input has multiple REDEEM_SCRIPT");t.redeemScript=n.inputs.redeemScript.decode(i);break;case o.InputTypes.WITNESS_SCRIPT:if(a("input",i.key,o.InputTypes.WITNESS_SCRIPT),void 0!==t.witnessScript)throw new Error("Format Error: Input has multiple WITNESS_SCRIPT");t.witnessScript=n.inputs.witnessScript.decode(i);break;case o.InputTypes.BIP32_DERIVATION:void 0===t.bip32Derivation&&(t.bip32Derivation=[]),t.bip32Derivation.push(n.inputs.bip32Derivation.decode(i));break;case o.InputTypes.FINAL_SCRIPTSIG:a("input",i.key,o.InputTypes.FINAL_SCRIPTSIG),t.finalScriptSig=n.inputs.finalScriptSig.decode(i);break;case o.InputTypes.FINAL_SCRIPTWITNESS:a("input",i.key,o.InputTypes.FINAL_SCRIPTWITNESS),t.finalScriptWitness=n.inputs.finalScriptWitness.decode(i);break;case o.InputTypes.POR_COMMITMENT:a("input",i.key,o.InputTypes.POR_COMMITMENT),t.porCommitment=n.inputs.porCommitment.decode(i);break;default:t.unknownKeyVals||(t.unknownKeyVals=[]),t.unknownKeyVals.push(i)}h.push(t)}for(const e of i.range(d)){const t={};for(const r of f[e])switch(n.outputs.checkPubkey(r),r.key[0]){case o.OutputTypes.REDEEM_SCRIPT:if(a("output",r.key,o.OutputTypes.REDEEM_SCRIPT),void 0!==t.redeemScript)throw new Error("Format Error: Output has multiple REDEEM_SCRIPT");t.redeemScript=n.outputs.redeemScript.decode(r);break;case o.OutputTypes.WITNESS_SCRIPT:if(a("output",r.key,o.OutputTypes.WITNESS_SCRIPT),void 0!==t.witnessScript)throw new Error("Format Error: Output has multiple WITNESS_SCRIPT");t.witnessScript=n.outputs.witnessScript.decode(r);break;case o.OutputTypes.BIP32_DERIVATION:void 0===t.bip32Derivation&&(t.bip32Derivation=[]),t.bip32Derivation.push(n.outputs.bip32Derivation.decode(r));break;default:t.unknownKeyVals||(t.unknownKeyVals=[]),t.unknownKeyVals.push(r)}p.push(t)}return{globalMap:s,inputs:h,outputs:p}}t.psbtFromBuffer=function(e,t){let r=0;function n(){const t=f.decode(e,r);r+=f.encodingLength(t);const n=e.slice(r,r+t);return r+=t,n}function a(){return{key:n(),value:n()}}function c(){if(r>=e.length)throw new Error("Format Error: Unexpected End of PSBT");const t=0===e.readUInt8(r);return t&&r++,t}if(1886610036!==function(){const t=e.readUInt32BE(r);return r+=4,t}())throw new Error("Format Error: Invalid Magic Number");if(255!==function(){const t=e.readUInt8(r);return r+=1,t}())throw new Error("Format Error: Magic Number must be followed by 0xff separator");const u=[],d={};for(;!c();){const e=a(),t=e.key.toString("hex");if(d[t])throw new Error("Format Error: Keys must be unique for global keymap: key "+t);d[t]=1,u.push(e)}const h=u.filter(e=>e.key[0]===o.GlobalTypes.UNSIGNED_TX);if(1!==h.length)throw new Error("Format Error: Only one UNSIGNED_TX allowed");const p=t(h[0].value),{inputCount:l,outputCount:b}=p.getInputOutputCounts(),y=[],m=[];for(const e of i.range(l)){const t={},r=[];for(;!c();){const n=a(),i=n.key.toString("hex");if(t[i])throw new Error("Format Error: Keys must be unique for each input: input index "+e+" key "+i);t[i]=1,r.push(n)}y.push(r)}for(const e of i.range(b)){const t={},r=[];for(;!c();){const n=a(),i=n.key.toString("hex");if(t[i])throw new Error("Format Error: Keys must be unique for each output: output index "+e+" key "+i);t[i]=1,r.push(n)}m.push(r)}return s(p,{globalMapKeyVals:u,inputKeyVals:y,outputKeyVals:m})},t.checkKeyBuffer=a,t.psbtFromKeyVals=s}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.GlobalTypes.GLOBAL_XPUB)throw new Error("Decode Error: could not decode globalXpub with key 0x"+e.key.toString("hex"));if(79!==e.key.length||![2,3].includes(e.key[46]))throw new Error("Decode Error: globalXpub has invalid extended pubkey in key 0x"+e.key.toString("hex"));if(e.value.length/4%1!=0)throw new Error("Decode Error: Global GLOBAL_XPUB value length should be multiple of 4");const t=e.key.slice(1),r={masterFingerprint:e.value.slice(0,4),extendedPubkey:t,path:"m"};for(const t of(i=e.value.length/4-1,[...Array(i).keys()])){const n=e.value.readUInt32LE(4*t+4),i=!!(2147483648&n),f=2147483647&n;r.path+="/"+f.toString(10)+(i?"'":"")}var i;return r},t.encode=function(t){const r=e.from([n.GlobalTypes.GLOBAL_XPUB]),i=e.concat([r,t.extendedPubkey]),f=t.path.split("/"),o=e.allocUnsafe(4*f.length);t.masterFingerprint.copy(o,0);let a=4;return f.slice(1).forEach(e=>{const t="'"===e.slice(-1);let r=2147483647&parseInt(t?e.slice(0,-1):e,10);t&&(r+=2147483648),o.writeUInt32LE(r,a),a+=4}),{key:i,value:o}},t.expected="{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }",t.check=function(t){const r=t.extendedPubkey,n=t.masterFingerprint,i=t.path;return e.isBuffer(r)&&78===r.length&&[2,3].indexOf(r[45])>-1&&e.isBuffer(n)&&4===n.length&&"string"==typeof i&&!!i.match(/^m(\/\d+'?)+$/)},t.canAddToArray=function(e,t,r){const n=t.extendedPubkey.toString("hex");return!r.has(n)&&(r.add(n),0===e.filter(e=>e.extendedPubkey.equals(t.extendedPubkey)).length)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.encode=function(t){return{key:e.from([n.GlobalTypes.UNSIGNED_TX]),value:t.toBuffer()}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.FINAL_SCRIPTSIG)throw new Error("Decode Error: could not decode finalScriptSig with key 0x"+e.key.toString("hex"));return e.value},t.encode=function(t){return{key:e.from([n.InputTypes.FINAL_SCRIPTSIG]),value:t}},t.expected="Buffer",t.check=function(t){return e.isBuffer(t)},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.finalScriptSig}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.FINAL_SCRIPTWITNESS)throw new Error("Decode Error: could not decode finalScriptWitness with key 0x"+e.key.toString("hex"));return e.value},t.encode=function(t){return{key:e.from([n.InputTypes.FINAL_SCRIPTWITNESS]),value:t}},t.expected="Buffer",t.check=function(t){return e.isBuffer(t)},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.finalScriptWitness}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.NON_WITNESS_UTXO)throw new Error("Decode Error: could not decode nonWitnessUtxo with key 0x"+e.key.toString("hex"));return e.value},t.encode=function(t){return{key:e.from([n.InputTypes.NON_WITNESS_UTXO]),value:t}},t.expected="Buffer",t.check=function(t){return e.isBuffer(t)},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.witnessUtxo&&void 0===e.nonWitnessUtxo}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.PARTIAL_SIG)throw new Error("Decode Error: could not decode partialSig with key 0x"+e.key.toString("hex"));if(34!==e.key.length&&66!==e.key.length||![2,3,4].includes(e.key[1]))throw new Error("Decode Error: partialSig has invalid pubkey in key 0x"+e.key.toString("hex"));return{pubkey:e.key.slice(1),signature:e.value}},t.encode=function(t){const r=e.from([n.InputTypes.PARTIAL_SIG]);return{key:e.concat([r,t.pubkey]),value:t.signature}},t.expected="{ pubkey: Buffer; signature: Buffer; }",t.check=function(t){return e.isBuffer(t.pubkey)&&e.isBuffer(t.signature)&&[33,65].includes(t.pubkey.length)&&[2,3,4].includes(t.pubkey[0])&&function(t){if(!e.isBuffer(t)||t.length<9)return!1;if(48!==t[0])return!1;if(t.length!==t[1]+3)return!1;if(2!==t[2])return!1;const r=t[3];if(r>33||r<1)return!1;if(2!==t[3+r+1])return!1;const n=t[3+r+2];return!(n>33||n<1)&&t.length===3+r+2+n+2}(t.signature)},t.canAddToArray=function(e,t,r){const n=t.pubkey.toString("hex");return!r.has(n)&&(r.add(n),0===e.filter(e=>e.pubkey.equals(t.pubkey)).length)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.POR_COMMITMENT)throw new Error("Decode Error: could not decode porCommitment with key 0x"+e.key.toString("hex"));return e.value.toString("utf8")},t.encode=function(t){return{key:e.from([n.InputTypes.POR_COMMITMENT]),value:e.from(t,"utf8")}},t.expected="string",t.check=function(e){return"string"==typeof e},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.porCommitment}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25);t.decode=function(e){if(e.key[0]!==n.InputTypes.SIGHASH_TYPE)throw new Error("Decode Error: could not decode sighashType with key 0x"+e.key.toString("hex"));return e.value.readUInt32LE(0)},t.encode=function(t){const r=e.from([n.InputTypes.SIGHASH_TYPE]),i=e.allocUnsafe(4);return i.writeUInt32LE(t,0),{key:r,value:i}},t.expected="number",t.check=function(e){return"number"==typeof e},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.sighashType}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(25),i=r(184),f=r(92);t.decode=function(e){if(e.key[0]!==n.InputTypes.WITNESS_UTXO)throw new Error("Decode Error: could not decode witnessUtxo with key 0x"+e.key.toString("hex"));const t=i.readUInt64LE(e.value,0);let r=8;const o=f.decode(e.value,r);r+=f.encodingLength(o);const a=e.value.slice(r);if(a.length!==o)throw new Error("Decode Error: WITNESS_UTXO script is not proper length");return{script:a,value:t}},t.encode=function(t){const{script:r,value:o}=t,a=f.encodingLength(r.length),s=e.allocUnsafe(8+a+r.length);return i.writeUInt64LE(s,o,0),f.encode(r.length,s,8),r.copy(s,8+a),{key:e.from([n.InputTypes.WITNESS_UTXO]),value:s}},t.expected="{ script: Buffer; value: number; }",t.check=function(t){return e.isBuffer(t.script)&&"number"==typeof t.value},t.canAdd=function(e,t){return!!e&&!!t&&void 0===e.witnessUtxo&&void 0===e.nonWitnessUtxo}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});t.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t)throw new Error("Decode Error: could not decode bip32Derivation with key 0x"+e.key.toString("hex"));if(34!==e.key.length&&66!==e.key.length||![2,3,4].includes(e.key[1]))throw new Error("Decode Error: bip32Derivation has invalid pubkey in key 0x"+e.key.toString("hex"));if(e.value.length/4%1!=0)throw new Error("Decode Error: Input BIP32_DERIVATION value length should be multiple of 4");const r=e.key.slice(1),n={masterFingerprint:e.value.slice(0,4),pubkey:r,path:"m"};for(const t of(i=e.value.length/4-1,[...Array(i).keys()])){const r=e.value.readUInt32LE(4*t+4),i=!!(2147483648&r),f=2147483647&r;n.path+="/"+f.toString(10)+(i?"'":"")}var i;return n},encode:function(r){const n=e.from([t]),i=e.concat([n,r.pubkey]),f=r.path.split("/"),o=e.allocUnsafe(4*f.length);r.masterFingerprint.copy(o,0);let a=4;return f.slice(1).forEach(e=>{const t="'"===e.slice(-1);let r=2147483647&parseInt(t?e.slice(0,-1):e,10);t&&(r+=2147483648),o.writeUInt32LE(r,a),a+=4}),{key:i,value:o}},check:function(t){return e.isBuffer(t.pubkey)&&e.isBuffer(t.masterFingerprint)&&"string"==typeof t.path&&[33,65].includes(t.pubkey.length)&&[2,3,4].includes(t.pubkey[0])&&4===t.masterFingerprint.length},expected:"{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }",canAddToArray:function(e,t,r){const n=t.pubkey.toString("hex");return!r.has(n)&&(r.add(n),0===e.filter(e=>e.pubkey.equals(t.pubkey)).length)}}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeChecker=function(e){return function(t){let r;if(e.includes(t.key[0])&&(r=t.key.slice(1),33!==r.length&&65!==r.length||![2,3,4].includes(r[0])))throw new Error("Format Error: invalid pubkey in key 0x"+t.key.toString("hex"));return r}}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t)throw new Error("Decode Error: could not decode redeemScript with key 0x"+e.key.toString("hex"));return e.value},encode:function(r){return{key:e.from([t]),value:r}},check:function(t){return e.isBuffer(t)},expected:"Buffer",canAdd:function(e,t){return!!e&&!!t&&void 0===e.redeemScript}}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t)throw new Error("Decode Error: could not decode witnessScript with key 0x"+e.key.toString("hex"));return e.value},encode:function(r){return{key:e.from([t]),value:r}},check:function(t){return e.isBuffer(t)},expected:"Buffer",canAdd:function(e,t){return!!e&&!!t&&void 0===e.witnessScript}}}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(183),i=r(184);t.psbtToBuffer=function({globalMap:t,inputs:r,outputs:n}){const{globalKeyVals:f,inputKeyVals:o,outputKeyVals:s}=a({globalMap:t,inputs:r,outputs:n}),c=i.keyValsToBuffer(f),u=t=>0===t.length?[e.from([0])]:t.map(i.keyValsToBuffer),d=u(o),h=u(s),p=e.allocUnsafe(5);return p.writeUIntBE(482972169471,0,5),e.concat([p,c].concat(d,h))};const f=(e,t)=>e.key.compare(t.key);function o(e,t){const r=new Set,n=Object.entries(e).reduce((e,[n,i])=>{if("unknownKeyVals"===n)return e;const f=t[n];if(void 0===f)return e;const o=(Array.isArray(i)?i:[i]).map(f.encode);return o.map(e=>e.key.toString("hex")).forEach(e=>{if(r.has(e))throw new Error("Serialize Error: Duplicate key: "+e);r.add(e)}),e.concat(o)},[]),i=e.unknownKeyVals?e.unknownKeyVals.filter(e=>!r.has(e.key.toString("hex"))):[];return n.concat(i).sort(f)}function a({globalMap:e,inputs:t,outputs:r}){return{globalKeyVals:o(e,n.globals),inputKeyVals:t.map(e=>o(e,n.inputs)),outputKeyVals:r.map(e=>o(e,n.outputs))}}t.psbtToKeyVals=a}).call(this,r(0).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(179),i=r(85),f=r(359),o=r(35),a=r(182),s=r(24),c=r(122),u=r(3),d=r(3),h=r(123),p=r(34),l=r(13),b=f.types,y=new Set(["p2pkh","p2pk","p2wpkh","p2ms","p2sh-p2pkh","p2sh-p2pk","p2sh-p2wpkh","p2sh-p2ms","p2wsh-p2pkh","p2wsh-p2pk","p2wsh-p2ms","p2sh-p2wsh-p2pkh","p2sh-p2wsh-p2pk","p2sh-p2wsh-p2ms"]);function m(e,t,r){try{l(e,t)}catch(e){throw new Error(r)}}class v{constructor(e=s.bitcoin,t=2500){this.network=e,this.maximumFeeRate=t,this.__PREV_TX_SET={},this.__INPUTS=[],this.__TX=new h.Transaction,this.__TX.version=2,this.__USE_LOW_R=!1}static fromTransaction(e,t){const r=new v(t);return r.setVersion(e.version),r.setLockTime(e.locktime),e.outs.forEach(e=>{r.addOutput(e.script,e.value)}),e.ins.forEach(e=>{r.__addInputUnsafe(e.hash,e.index,{sequence:e.sequence,script:e.script,witness:e.witness})}),r.__INPUTS.forEach((t,r)=>{!function(e,t,r){if(e.redeemScriptType!==b.P2MS||!e.redeemScript)return;if(e.pubkeys.length===e.signatures.length)return;const n=e.signatures.concat();e.signatures=e.pubkeys.map(i=>{const f=a.fromPublicKey(i);let o;return n.some((i,a)=>{if(!i)return!1;const s=u.signature.decode(i),c=t.hashForSignature(r,e.redeemScript,s.hashType);return!!f.verify(c,s.signature)&&(n[a]=void 0,o=i,!0)}),o})}(t,e,r)}),r}setLowR(e){return l(l.maybe(l.Boolean),e),void 0===e&&(e=!0),this.__USE_LOW_R=e,e}setLockTime(e){if(l(p.UInt32,e),this.__INPUTS.some(e=>!!e.signatures&&e.signatures.some(e=>void 0!==e)))throw new Error("No, this would invalidate signatures");this.__TX.locktime=e}setVersion(e){l(p.UInt32,e),this.__TX.version=e}addInput(t,r,n,f){if(!this.__canModifyInputs())throw new Error("No, this would invalidate signatures");let o;if("string"==typeof(a=t)||a instanceof String)t=i.reverseBuffer(e.from(t,"hex"));else if(function(e){return e instanceof h.Transaction}(t)){const e=t.outs[r];f=e.script,o=e.value,t=t.getHash(!1)}var a;return this.__addInputUnsafe(t,r,{sequence:n,prevOutScript:f,value:o})}addOutput(e,t){if(!this.__canModifyOutputs())throw new Error("No, this would invalidate signatures");return"string"==typeof e&&(e=n.toOutputScript(e,this.network)),this.__TX.addOutput(e,t)}build(){return this.__build(!1)}buildIncomplete(){return this.__build(!0)}sign(e,t,r,n,i,f){!function({input:e,ourPubKey:t,keyPair:r,signatureHash:n,hashType:i,useLowR:f}){let o=!1;for(const[a,s]of e.pubkeys.entries()){if(!t.equals(s))continue;if(e.signatures[a])throw new Error("Signature already exists");if(33!==t.length&&e.hasWitness)throw new Error("BIP143 rejects uncompressed public keys in P2WPKH or P2WSH");const c=r.sign(n,f);e.signatures[a]=u.signature.encode(c,i),o=!0}if(!o)throw new Error("Key pair cannot sign for this input")}(function(e,t,r,n,i,f,o,a,s,d,v){let _;if("number"==typeof i)_=i;else{if("object"!=typeof i)throw new TypeError("TransactionBuilder sign first arg must be TxbSignArg or number");!function(e,t){if(!y.has(t.prevOutScriptType))throw new TypeError(`Unknown prevOutScriptType "${t.prevOutScriptType}"`);m(l.Number,t.vin,"sign must include vin parameter as Number (input index)"),m(p.Signer,t.keyPair,"sign must include keyPair parameter as Signer interface"),m(l.maybe(l.Number),t.hashType,"sign hashType parameter must be a number");const r=(e[t.vin]||[]).prevOutType,n=t.prevOutScriptType;switch(n){case"p2pkh":if(r&&"pubkeyhash"!==r)throw new TypeError(`input #${t.vin} is not of type p2pkh: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(l.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2pk":if(r&&"pubkey"!==r)throw new TypeError(`input #${t.vin} is not of type p2pk: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(l.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2wpkh":if(r&&"witnesspubkeyhash"!==r)throw new TypeError(`input #${t.vin} is not of type p2wpkh: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(p.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2ms":if(r&&"multisig"!==r)throw new TypeError(`input #${t.vin} is not of type p2ms: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(l.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2sh-p2wpkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${t.vin} is not of type p2sh-p2wpkh: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.Buffer,t.redeemScript,`${n} requires redeemScript`),m(p.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2sh-p2ms":case"p2sh-p2pk":case"p2sh-p2pkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);m(l.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),m(l.Buffer,t.redeemScript,`${n} requires redeemScript`),m(l.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2wsh-p2ms":case"p2wsh-p2pk":case"p2wsh-p2pkh":if(r&&"witnessscripthash"!==r)throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);m(l.Buffer,t.witnessScript,`${n} requires witnessScript`),m(l.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),m(p.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2sh-p2wsh-p2ms":case"p2sh-p2wsh-p2pk":case"p2sh-p2wsh-p2pkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);m(l.Buffer,t.witnessScript,`${n} requires witnessScript`),m(l.Buffer,t.redeemScript,`${n} requires witnessScript`),m(p.Satoshi,t.witnessValue,`${n} requires witnessScript`)}}(t,i),({vin:_,keyPair:f,redeemScript:o,hashType:a,witnessValue:s,witnessScript:d}=i)}if(void 0===f)throw new Error("sign requires keypair");if(f.network&&f.network!==e)throw new TypeError("Inconsistent network");if(!t[_])throw new Error("No input at index: "+_);if(a=a||h.Transaction.SIGHASH_ALL,r(a))throw new Error("Transaction needs outputs");const S=t[_];if(void 0!==S.redeemScript&&o&&!S.redeemScript.equals(o))throw new Error("Inconsistent redeemScript");const E=f.publicKey||f.getPublicKey&&f.getPublicKey();if(!w(S)){if(void 0!==s){if(void 0!==S.value&&S.value!==s)throw new Error("Input did not match witnessValue");l(p.Satoshi,s),S.value=s}if(!w(S)){const e=function(e,t,r,n){if(r&&n){const i=c.p2wsh({redeem:{output:n}}),f=c.p2wsh({output:r}),o=c.p2sh({redeem:{output:r}}),a=c.p2sh({redeem:i});if(!i.hash.equals(f.hash))throw new Error("Witness script inconsistent with prevOutScript");if(!o.hash.equals(a.hash))throw new Error("Redeem script inconsistent with prevOutScript");const s=g(i.redeem.output,t);if(!s.pubkeys)throw new Error(s.type+" not supported as witnessScript ("+u.toASM(n)+")");e.signatures&&e.signatures.some(e=>void 0!==e)&&(s.signatures=e.signatures);const d=n;if(s.type===b.P2WPKH)throw new Error("P2SH(P2WSH(P2WPKH)) is a consensus failure");return{redeemScript:r,redeemScriptType:b.P2WSH,witnessScript:n,witnessScriptType:s.type,prevOutType:b.P2SH,prevOutScript:o.output,hasWitness:!0,signScript:d,signType:s.type,pubkeys:s.pubkeys,signatures:s.signatures,maxSignatures:s.maxSignatures}}if(r){const n=c.p2sh({redeem:{output:r}});if(e.prevOutScript){let t;try{t=c.p2sh({output:e.prevOutScript})}catch(e){throw new Error("PrevOutScript must be P2SH")}if(!n.hash.equals(t.hash))throw new Error("Redeem script inconsistent with prevOutScript")}const i=g(n.redeem.output,t);if(!i.pubkeys)throw new Error(i.type+" not supported as redeemScript ("+u.toASM(r)+")");e.signatures&&e.signatures.some(e=>void 0!==e)&&(i.signatures=e.signatures);let f=r;return i.type===b.P2WPKH&&(f=c.p2pkh({pubkey:i.pubkeys[0]}).output),{redeemScript:r,redeemScriptType:i.type,prevOutType:b.P2SH,prevOutScript:n.output,hasWitness:i.type===b.P2WPKH,signScript:f,signType:i.type,pubkeys:i.pubkeys,signatures:i.signatures,maxSignatures:i.maxSignatures}}if(n){const r=c.p2wsh({redeem:{output:n}});if(e.prevOutScript){const t=c.p2wsh({output:e.prevOutScript});if(!r.hash.equals(t.hash))throw new Error("Witness script inconsistent with prevOutScript")}const i=g(r.redeem.output,t);if(!i.pubkeys)throw new Error(i.type+" not supported as witnessScript ("+u.toASM(n)+")");e.signatures&&e.signatures.some(e=>void 0!==e)&&(i.signatures=e.signatures);const f=n;if(i.type===b.P2WPKH)throw new Error("P2WSH(P2WPKH) is a consensus failure");return{witnessScript:n,witnessScriptType:i.type,prevOutType:b.P2WSH,prevOutScript:r.output,hasWitness:!0,signScript:f,signType:i.type,pubkeys:i.pubkeys,signatures:i.signatures,maxSignatures:i.maxSignatures}}if(e.prevOutType&&e.prevOutScript){if(e.prevOutType===b.P2SH)throw new Error("PrevOutScript is "+e.prevOutType+", requires redeemScript");if(e.prevOutType===b.P2WSH)throw new Error("PrevOutScript is "+e.prevOutType+", requires witnessScript");if(!e.prevOutScript)throw new Error("PrevOutScript is missing");const r=g(e.prevOutScript,t);if(!r.pubkeys)throw new Error(r.type+" not supported ("+u.toASM(e.prevOutScript)+")");e.signatures&&e.signatures.some(e=>void 0!==e)&&(r.signatures=e.signatures);let n=e.prevOutScript;return r.type===b.P2WPKH&&(n=c.p2pkh({pubkey:r.pubkeys[0]}).output),{prevOutType:r.type,prevOutScript:e.prevOutScript,hasWitness:r.type===b.P2WPKH,signScript:n,signType:r.type,pubkeys:r.pubkeys,signatures:r.signatures,maxSignatures:r.maxSignatures}}const i=c.p2pkh({pubkey:t}).output;return{prevOutType:b.P2PKH,prevOutScript:i,hasWitness:!1,signScript:i,signType:b.P2PKH,pubkeys:[t],signatures:[void 0]}}(S,E,o,d);Object.assign(S,e)}if(!w(S))throw Error(S.prevOutType+" not supported")}let I;I=S.hasWitness?n.hashForWitnessV0(_,S.signScript,S.value,a):n.hashForSignature(_,S.signScript,a);return{input:S,ourPubKey:E,keyPair:f,signatureHash:I,hashType:a,useLowR:!!v}}(this.network,this.__INPUTS,this.__needsOutputs.bind(this),this.__TX,e,t,r,n,i,f,this.__USE_LOW_R))}__addInputUnsafe(e,t,r){if(h.Transaction.isCoinbaseHash(e))throw new Error("coinbase inputs not supported");const n=e.toString("hex")+":"+t;if(void 0!==this.__PREV_TX_SET[n])throw new Error("Duplicate TxOut: "+n);let i={};if(void 0!==r.script&&(i=function e(t,r,n,i){if(0===t.length&&0===r.length)return{};if(!n){let e=f.input(t,!0),i=f.witness(r,!0);e===b.NONSTANDARD&&(e=void 0),i===b.NONSTANDARD&&(i=void 0),n=e||i}switch(n){case b.P2WPKH:{const{output:e,pubkey:t,signature:n}=c.p2wpkh({witness:r});return{prevOutScript:e,prevOutType:b.P2WPKH,pubkeys:[t],signatures:[n]}}case b.P2PKH:{const{output:e,pubkey:r,signature:n}=c.p2pkh({input:t});return{prevOutScript:e,prevOutType:b.P2PKH,pubkeys:[r],signatures:[n]}}case b.P2PK:{const{signature:e}=c.p2pk({input:t});return{prevOutType:b.P2PK,pubkeys:[void 0],signatures:[e]}}case b.P2MS:{const{m:e,pubkeys:r,signatures:n}=c.p2ms({input:t,output:i},{allowIncomplete:!0});return{prevOutType:b.P2MS,pubkeys:r,signatures:n,maxSignatures:e}}}if(n===b.P2SH){const{output:n,redeem:i}=c.p2sh({input:t,witness:r}),o=f.output(i.output),a=e(i.input,i.witness,o,i.output);return a.prevOutType?{prevOutScript:n,prevOutType:b.P2SH,redeemScript:i.output,redeemScriptType:a.prevOutType,witnessScript:a.witnessScript,witnessScriptType:a.witnessScriptType,pubkeys:a.pubkeys,signatures:a.signatures}:{}}if(n===b.P2WSH){const{output:n,redeem:i}=c.p2wsh({input:t,witness:r}),o=f.output(i.output);let a;return a=o===b.P2WPKH?e(i.input,i.witness,o):e(u.compile(i.witness),[],o,i.output),a.prevOutType?{prevOutScript:n,prevOutType:b.P2WSH,witnessScript:i.output,witnessScriptType:a.prevOutType,pubkeys:a.pubkeys,signatures:a.signatures}:{}}return{prevOutType:b.NONSTANDARD,prevOutScript:t}}(r.script,r.witness||[])),void 0!==r.value&&(i.value=r.value),!i.prevOutScript&&r.prevOutScript){let e;if(!i.pubkeys&&!i.signatures){const t=g(r.prevOutScript);t.pubkeys&&(i.pubkeys=t.pubkeys,i.signatures=t.signatures),e=t.type}i.prevOutScript=r.prevOutScript,i.prevOutType=e||f.output(r.prevOutScript)}const o=this.__TX.addInput(e,t,r.sequence,r.scriptSig);return this.__INPUTS[o]=i,this.__PREV_TX_SET[n]=!0,o}__build(e){if(!e){if(!this.__TX.ins.length)throw new Error("Transaction has no inputs");if(!this.__TX.outs.length)throw new Error("Transaction has no outputs")}const t=this.__TX.clone();if(this.__INPUTS.forEach((r,n)=>{if(!r.prevOutType&&!e)throw new Error("Transaction is not complete");const i=function e(t,r,n){const i=r.pubkeys||[];let f=r.signatures||[];switch(t){case b.P2PKH:if(0===i.length)break;if(0===f.length)break;return c.p2pkh({pubkey:i[0],signature:f[0]});case b.P2WPKH:if(0===i.length)break;if(0===f.length)break;return c.p2wpkh({pubkey:i[0],signature:f[0]});case b.P2PK:if(0===i.length)break;if(0===f.length)break;return c.p2pk({signature:f[0]});case b.P2MS:{const e=r.maxSignatures;f=n?f.map(e=>e||d.OPS.OP_0):f.filter(e=>e);const t=!n||e===f.length;return c.p2ms({m:e,pubkeys:i,signatures:f},{allowIncomplete:n,validate:t})}case b.P2SH:{const t=e(r.redeemScriptType,r,n);if(!t)return;return c.p2sh({redeem:{output:t.output||r.redeemScript,input:t.input,witness:t.witness}})}case b.P2WSH:{const t=e(r.witnessScriptType,r,n);if(!t)return;return c.p2wsh({redeem:{output:r.witnessScript,input:t.input,witness:t.witness}})}}}(r.prevOutType,r,e);if(i)t.setInputScript(n,i.input),t.setWitness(n,i.witness);else{if(!e&&r.prevOutType===b.NONSTANDARD)throw new Error("Unknown input type");if(!e)throw new Error("Not enough information")}}),!e&&this.__overMaximumFees(t.virtualSize()))throw new Error("Transaction has absurd fees");return t}__canModifyInputs(){return this.__INPUTS.every(e=>!e.signatures||e.signatures.every(e=>{if(!e)return!0;return 0!=(_(e)&h.Transaction.SIGHASH_ANYONECANPAY)}))}__needsOutputs(e){return e===h.Transaction.SIGHASH_ALL?0===this.__TX.outs.length:0===this.__TX.outs.length&&this.__INPUTS.some(e=>!!e.signatures&&e.signatures.some(e=>{if(!e)return!1;return!(_(e)&h.Transaction.SIGHASH_NONE)}))}__canModifyOutputs(){const e=this.__TX.ins.length,t=this.__TX.outs.length;return this.__INPUTS.every(r=>void 0===r.signatures||r.signatures.every(r=>{if(!r)return!0;const n=31&_(r);return n===h.Transaction.SIGHASH_NONE||n===h.Transaction.SIGHASH_SINGLE&&e<=t}))}__overMaximumFees(e){return(this.__INPUTS.reduce((e,t)=>e+(t.value>>>0),0)-this.__TX.outs.reduce((e,t)=>e+t.value,0))/e>this.maximumFeeRate}}function g(e,t){l(p.Buffer,e);const r=f.output(e);switch(r){case b.P2PKH:{if(!t)return{type:r};const n=c.p2pkh({output:e}).hash,i=o.hash160(t);return n.equals(i)?{type:r,pubkeys:[t],signatures:[void 0]}:{type:r}}case b.P2WPKH:{if(!t)return{type:r};const n=c.p2wpkh({output:e}).hash,i=o.hash160(t);return n.equals(i)?{type:r,pubkeys:[t],signatures:[void 0]}:{type:r}}case b.P2PK:return{type:r,pubkeys:[c.p2pk({output:e}).pubkey],signatures:[void 0]};case b.P2MS:{const t=c.p2ms({output:e});return{type:r,pubkeys:t.pubkeys,signatures:t.pubkeys.map(()=>{}),maxSignatures:t.m}}}return{type:r}}function w(e){return void 0!==e.signScript&&void 0!==e.signType&&void 0!==e.pubkeys&&void 0!==e.signatures&&e.signatures.length===e.pubkeys.length&&e.pubkeys.length>0&&(!1===e.hasWitness||void 0!==e.value)}function _(e){return e.readUInt8(e.length-1)}t.TransactionBuilder=v}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(185),f=r(362),o=r(186),a=r(187),s=r(367),c=r(370),u=r(372),d=r(374),h={P2MS:"multisig",NONSTANDARD:"nonstandard",NULLDATA:"nulldata",P2PK:"pubkey",P2PKH:"pubkeyhash",P2SH:"scripthash",P2WPKH:"witnesspubkeyhash",P2WSH:"witnessscripthash",WITNESS_COMMITMENT:"witnesscommitment"};t.types=h,t.output=function(e){if(u.output.check(e))return h.P2WPKH;if(d.output.check(e))return h.P2WSH;if(a.output.check(e))return h.P2PKH;if(s.output.check(e))return h.P2SH;const t=n.decompile(e);if(!t)throw new TypeError("Invalid script");return i.output.check(t)?h.P2MS:o.output.check(t)?h.P2PK:c.output.check(t)?h.WITNESS_COMMITMENT:f.output.check(t)?h.NULLDATA:h.NONSTANDARD},t.input=function(e,t){const r=n.decompile(e);if(!r)throw new TypeError("Invalid script");return a.input.check(r)?h.P2PKH:s.input.check(r,t)?h.P2SH:i.input.check(r,t)?h.P2MS:o.input.check(r)?h.P2PK:h.NONSTANDARD},t.witness=function(e,t){const r=n.decompile(e);if(!r)throw new TypeError("Invalid script");return u.input.check(r)?h.P2WPKH:d.input.check(r,t)?h.P2WSH:h.NONSTANDARD}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){return e===i.OPS.OP_0||n.isCanonicalScriptSignature(e)}function o(e,t){const r=n.decompile(e);return!(r.length<2)&&(r[0]===i.OPS.OP_0&&(t?r.slice(1).every(f):r.slice(1).every(n.isCanonicalScriptSignature)))}t.check=o,o.toJSON=()=>"multisig input"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3),f=r(34),o=i.OPS.OP_RESERVED;function a(e,t){const r=n.decompile(e);if(r.length<4)return!1;if(r[r.length-1]!==i.OPS.OP_CHECKMULTISIG)return!1;if(!f.Number(r[0]))return!1;if(!f.Number(r[r.length-2]))return!1;const a=r[0]-o,s=r[r.length-2]-o;return!(a<=0)&&(!(s>16)&&(!(a>s)&&(s===r.length-3&&(!!t||r.slice(1,-2).every(n.isCanonicalPubKey)))))}t.check=a,a.toJSON=()=>"multi-sig output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=n.OPS;function f(e){const t=n.compile(e);return t.length>1&&t[0]===i.OP_RETURN}t.check=f,f.toJSON=()=>"null data output";const o={check:f};t.output=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);function i(e){const t=n.decompile(e);return 1===t.length&&n.isCanonicalScriptSignature(t[0])}t.check=i,i.toJSON=()=>"pubKey input"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.decompile(e);return 2===t.length&&n.isCanonicalPubKey(t[0])&&t[1]===i.OPS.OP_CHECKSIG}t.check=f,f.toJSON=()=>"pubKey output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);function i(e){const t=n.decompile(e);return 2===t.length&&n.isCanonicalScriptSignature(t[0])&&n.isCanonicalPubKey(t[1])}t.check=i,i.toJSON=()=>"pubKeyHash input"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.compile(e);return 25===t.length&&t[0]===i.OPS.OP_DUP&&t[1]===i.OPS.OP_HASH160&&20===t[2]&&t[23]===i.OPS.OP_EQUALVERIFY&&t[24]===i.OPS.OP_CHECKSIG}t.check=f,f.toJSON=()=>"pubKeyHash output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(368);t.input=n;const i=r(369);t.output=i},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(185),f=r(186),o=r(187),a=r(288),s=r(289);function c(t,r){const c=n.decompile(t);if(c.length<1)return!1;const u=c[c.length-1];if(!e.isBuffer(u))return!1;const d=n.decompile(n.compile(c.slice(0,-1))),h=n.decompile(u);return!!h&&(!!n.isPushOnly(d)&&(1===c.length?s.check(h)||a.check(h):!(!o.input.check(d)||!o.output.check(h))||(!(!i.input.check(d,r)||!i.output.check(h))||!(!f.input.check(d)||!f.output.check(h)))))}t.check=c,c.toJSON=()=>"scriptHash input"}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3);function f(e){const t=n.compile(e);return 23===t.length&&t[0]===i.OPS.OP_HASH160&&20===t[1]&&t[22]===i.OPS.OP_EQUAL}t.check=f,f.toJSON=()=>"scriptHash output"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(371);t.output=n},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(3),f=r(34),o=r(13),a=e.from("aa21a9ed","hex");function s(e){const t=n.compile(e);return t.length>37&&t[0]===i.OPS.OP_RETURN&&36===t[1]&&t.slice(2,6).equals(a)}t.check=s,s.toJSON=()=>"Witness commitment output",t.encode=function(t){o(f.Hash256bit,t);const r=e.allocUnsafe(36);return a.copy(r,0),t.copy(r,4),n.compile([i.OPS.OP_RETURN,r])},t.decode=function(e){return o(s,e),n.decompile(e)[1].slice(4,36)}}).call(this,r(0).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(373);t.input=n;const i=r(288);t.output=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);function i(e){const t=n.decompile(e);return 2===t.length&&n.isCanonicalScriptSignature(t[0])&&(r=t[1],n.isCanonicalPubKey(r)&&33===r.length);var r}t.check=i,i.toJSON=()=>"witnessPubKeyHash input"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(375);t.input=n;const i=r(289);t.output=i},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(13),f=r(185),o=r(186),a=r(187);function s(t,r){if(i(i.Array,t),t.length<1)return!1;const s=t[t.length-1];if(!e.isBuffer(s))return!1;const c=n.decompile(s);if(!c||0===c.length)return!1;const u=n.compile(t.slice(0,-1));return!(!a.input.check(u)||!a.output.check(c))||(!(!f.input.check(u,r)||!f.output.check(c))||!(!o.input.check(u)||!o.output.check(c)))}t.check=s,s.toJSON=()=>"witnessScriptHash input"}).call(this,r(0).Buffer)},,,,,,,,,,,,,,,,,function(e,t,r){"use strict";(function(e){var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var f=r(87),o=n(r(87)),a=i(r(393));t.DUST_AMOUNT=546,t.USDT_PROPERTYID_MAINNET=31,t.USDT_PROPERTYID_TESTNET=1;var s=function(){function r(r){var n=this;this.addInputsForPsbt=function(e){if(n.verifyInput(e))return e.inputs.forEach((function(e){return n.addInputForPsbt(e)})),n;throw new Error("input value are invaild")},this.addMultiSignInputsForPsbt=function(e){if(n.verifyInput(e))return e.inputs.forEach((function(t){var r=n.getMultiSignInputData(t,e.requires);return n.psbt.addInput(r)})),n;throw new Error("input value are invaild")},this.addOutputForPsbt=function(e){if(n.isDestinationOutputs(e.outputs)){n.psbt.addOutput({address:e.outputs.to,value:e.outputs.amount});var t=e.inputs.reduce((function(e,t){return e+t.utxo.value}),0)-e.outputs.amount-e.outputs.fee;t>0&&n.psbt.addOutput({address:e.outputs.changeAddress,value:t})}else n.psbt.addOutputs(e.outputs);return n},this.getPsbt=function(){return n.psbt},this.calculateScript=function(t){var r=o.payments.p2wpkh({pubkey:e.from(t,"hex"),network:n.network}),i=o.payments.p2sh({redeem:r,network:n.network});return n.compileScript(i.redeem.output)},this.verifyOmniInput=function(e){return e.inputs.reduce((function(e,t){return e+t.utxo.value}),0)>=t.DUST_AMOUNT+e.fee},this.generateOmniPayload=function(t,r){var n=a.default(t.toString(16),16,"0").toUpperCase(),i=["6f6d6e69","0000",a.default(r.toString(16),12,"0"),n].join(""),f=[e.from(i,"hex")];return o.payments.embed({data:f}).output},this.buildOmniPsbt=function(e){var r=e.inputs.reduce((function(e,t){return e+t.utxo.value}),0);if(r>=t.DUST_AMOUNT+e.fee){e.inputs.forEach((function(e){return n.addInputForPsbt(e)})),n.psbt.addOutput({address:e.to,value:t.DUST_AMOUNT});var i=n.network===o.networks.bitcoin?t.USDT_PROPERTYID_MAINNET:t.USDT_PROPERTYID_TESTNET;n.psbt.addOutput({script:n.generateOmniPayload(e.omniAmount,e.propertyId||i),value:0});var f=r-t.DUST_AMOUNT-e.fee;return f>t.DUST_AMOUNT&&n.psbt.addOutput({address:e.changeAddress,value:f}),n}throw new Error("input value are invalid")},this.verifyInput=function(e,t){void 0===t&&(t=!0);var r=e.inputs.reduce((function(e,t){return e+t.utxo.value}),0);if(n.isDestinationOutputs(e.outputs)){if(r>=e.outputs.fee+e.outputs.amount)return!0}else{var i=r-e.outputs.reduce((function(e,t){return e+t.value}),0);if(i>=0&&(!t||i<1e6))return!0}return!1},this.isNonWitnessUtxo=function(e){return void 0!==e.nonWitnessUtxo},this.isDestinationOutputs=function(e){var t=e;return void 0!==t.to&&void 0!==t.amount&&void 0!==t.fee&&void 0!==t.changeAddress},this.network=r,this.psbt=new o.Psbt({network:r})}return r.prototype.addInputForPsbt=function(t){return this.isNonWitnessUtxo(t.utxo)?this.psbt.addInput({hash:t.hash,index:t.index,sequence:t.sequence,nonWitnessUtxo:e.from(t.utxo.nonWitnessUtxo,"hex"),bip32Derivation:t.bip32Derivation}):this.psbt.addInput({hash:t.hash,index:t.index,sequence:t.sequence,witnessUtxo:{script:e.from(t.utxo.script||this.calculateScript(t.utxo.publicKey).toString("hex"),"hex"),value:t.utxo.value},redeemScript:o.payments.p2wpkh({pubkey:e.from(t.utxo.publicKey,"hex"),network:this.network}).output,bip32Derivation:t.bip32Derivation})},r.prototype.getMultiSignInputData=function(t,r){if(this.isNonWitnessUtxo(t.utxo))return{hash:t.hash,index:t.index,nonWitnessUtxo:e.from(t.utxo.nonWitnessUtxo,"hex")};var n=this.createMultiSignPayment(r,t.utxo.publicKeys).payment,i=this.compileScript(n.redeem.output);return{hash:t.hash,index:t.index,witnessUtxo:{script:e.from(t.utxo.script||i.toString("hex"),"hex"),value:t.utxo.value},witnessScript:n.redeem.redeem.output,redeemScript:n.redeem.output}},r.prototype.createMultiSignPayment=function(t,r){var n=this.network;if(0===r.length)throw new Error("publicKeys length cannot be 0");var i=r.map((function(t){return e.from(t,"hex")})),f=o.payments.p2ms({m:t,pubkeys:i,network:n}),a=o.payments.p2wsh({redeem:f,network:n});return{payment:o.payments.p2sh({redeem:a,network:n}),keys:i}},r.prototype.compileScript=function(e){return o.script.compile([o.script.OPS.OP_HASH160,f.crypto.hash160(e),o.script.OPS.OP_EQUAL])},r}();t.default=s}).call(this,r(0).Buffer)},function(e,t,r){(function(t){var r,n=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,o=/^0o[0-7]+$/i,a="[\\ud800-\\udfff]",s="[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]",c="\\ud83c[\\udffb-\\udfff]",u="[^\\ud800-\\udfff]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",h="[\\ud800-\\udbff][\\udc00-\\udfff]",p="(?:"+s+"|"+c+")"+"?",l="[\\ufe0e\\ufe0f]?"+p+("(?:\\u200d(?:"+[u,d,h].join("|")+")[\\ufe0e\\ufe0f]?"+p+")*"),b="(?:"+[u+s+"?",s,d,h,a].join("|")+")",y=RegExp(c+"(?="+c+")|"+b+l,"g"),m=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),v=parseInt,g="object"==typeof t&&t&&t.Object===Object&&t,w="object"==typeof self&&self&&self.Object===Object&&self,_=g||w||Function("return this")(),S=(r="length",function(e){return null==e?void 0:e[r]});function E(e){return m.test(e)}function I(e){return E(e)?function(e){var t=y.lastIndex=0;for(;y.test(e);)t++;return t}(e):S(e)}function A(e){return E(e)?function(e){return e.match(y)||[]}(e):function(e){return e.split("")}(e)}var k=Object.prototype.toString,T=_.Symbol,P=Math.ceil,x=Math.floor,M=T?T.prototype:void 0,O=M?M.toString:void 0;function B(e,t){var r="";if(!e||t<1||t>9007199254740991)return r;do{t%2&&(r+=e),(t=x(t/2))&&(e+=e)}while(t);return r}function N(e){if("string"==typeof e)return e;if(U(e))return O?O.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function R(e,t,r){var n=e.length;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var f=Array(i);++n loadCoin(final String coinId) { + return mDb.coinDao().loadCoin(coinId, getBelongTo()); + } + public LiveData> loadAddress(String coinId) { return mDb.addressDao().loadAddressForCoin(coinId, getBelongTo()); } @@ -130,6 +136,10 @@ public class DataRepository { return mDb.txDao().loadElectrumTxsSync(coinId); } + public List loadWasabiTxsSync(String coinId) { + return mDb.txDao().loadWasabiTxsSync(coinId); + } + public LiveData loadTx(String txId) { return mDb.txDao().load(txId); } @@ -192,6 +202,14 @@ public class DataRepository { return mDb.accountDao().loadForCoin(coin.getId()); } + public AccountEntity loadAccountsByXpub(long id, String xpub) { + return mDb.accountDao().loadAccountByXpub(id, xpub); + } + + public AccountEntity loadAccountsByPath(long id, String path) { + return mDb.accountDao().loadAccountByPath(id,path); + } + public CoinEntity loadCoinEntityByCoinCode(String coinCode) { String coinId = Coins.coinIdFromCoinCode(coinCode); return loadCoinSync(coinId); diff --git a/app/src/main/java/com/cobo/cold/MainApplication.java b/app/src/main/java/com/cobo/cold/MainApplication.java index 3594abf..8fd261e 100644 --- a/app/src/main/java/com/cobo/cold/MainApplication.java +++ b/app/src/main/java/com/cobo/cold/MainApplication.java @@ -17,6 +17,7 @@ package com.cobo.cold; +import android.annotation.SuppressLint; import android.app.Activity; import android.app.Application; import android.content.BroadcastReceiver; @@ -24,7 +25,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; -import android.text.TextUtils; import androidx.annotation.NonNull; @@ -35,13 +35,11 @@ import com.cobo.cold.logging.FileLogger; import com.cobo.cold.service.AttackCheckingService; import com.cobo.cold.ui.MainActivity; import com.cobo.cold.ui.UnlockActivity; -import com.cobo.cold.util.HashUtil; - -import org.spongycastle.util.encoders.Hex; import java.lang.ref.SoftReference; public class MainApplication extends Application { + @SuppressLint("StaticFieldLeak") private static MainApplication sApplication; private AppExecutors mAppExecutors; private SoftReference topActivity; @@ -67,9 +65,6 @@ public class MainApplication extends Application { }); initBackgroundCallBack(); ScriptLoader.init(this); - if (TextUtils.isEmpty(Utilities.getRandomSalt(this))) { - Utilities.setRandomSalt(this, Hex.toHexString(HashUtil.getNextSalt())); - } IntentFilter mScreenOffFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF); registerReceiver(mScreenOReceiver, mScreenOffFilter); diff --git a/app/src/main/java/com/cobo/cold/Utilities.java b/app/src/main/java/com/cobo/cold/Utilities.java index be42c4b..dede7c3 100644 --- a/app/src/main/java/com/cobo/cold/Utilities.java +++ b/app/src/main/java/com/cobo/cold/Utilities.java @@ -36,7 +36,6 @@ import static com.cobo.cold.ui.fragment.setting.FingerprintPreferenceFragment.FI public class Utilities { public static final String PREFERENCE_SECRET = "secret"; - public static final String PREFERENCE_KEY_PASSWORD = "password"; public static final String PREFERENCE_KEY_PATTERN = "pattern"; public static final String PREFERENCE_KEY_VAULT_CREATED = "vault_created"; public static final String PREFERENCE_KEY_LANGUAGE_SET = "language_set"; @@ -52,7 +51,6 @@ public class Utilities { public static final String PREFERENCE_KEY_MNEMONIC_COUNT = "mnemonic_count"; public static final String FINGERPRINT_CLICKED = "fingerprint_clicked"; public static final String PATTERN_LOCK_CLICKED = "pattern_lock_clicked"; - public static final String PREFERENCE_KEY_RANDOM_SALT = "random_salt"; public static final String FINGERPRINT_PASSWORD = "fingerprint_password"; public static final String ATTACK_DETECTED = "attack_detected"; @@ -119,16 +117,6 @@ public class Utilities { sp.edit().putString(PREFERENCE_KEY_VAULT_ID, id).apply(); } - public static void setRandomSalt(Context context, String salt) { - SharedPreferences sp = context.getSharedPreferences(PREFERENCE_SECRET, MODE_PRIVATE); - sp.edit().putString(PREFERENCE_KEY_RANDOM_SALT, salt).apply(); - } - - public static String getRandomSalt(Context context) { - SharedPreferences sp = context.getSharedPreferences(PREFERENCE_SECRET, MODE_PRIVATE); - return sp.getString(PREFERENCE_KEY_RANDOM_SALT, ""); - } - public static void setCurrentBelongTo(Context context, String s) { SharedPreferences sp = context.getSharedPreferences(PREFERENCE_SECRET, MODE_PRIVATE); sp.edit().putString(PREFERENCE_KEY_BELONG_TO, s).apply(); diff --git a/app/src/main/java/com/cobo/cold/callables/GetMasterFingerprintCallable.java b/app/src/main/java/com/cobo/cold/callables/GetMasterFingerprintCallable.java new file mode 100644 index 0000000..f0889a2 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/callables/GetMasterFingerprintCallable.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.callables; + +import com.cobo.cold.encryption.interfaces.CONSTANTS; +import com.cobo.cold.encryptioncore.base.Packet; +import com.cobo.cold.encryptioncore.base.Payload; + +import java.util.concurrent.Callable; + +public class GetMasterFingerprintCallable implements Callable { + @Override + public String call() { + try { + final Callable callable = new BlockingCallable( + new Packet.Builder(CONSTANTS.METHODS.GET_MASTER_FINGERPRINT).build()); + final Packet result = callable.call(); + final Payload payload = result.getPayload(CONSTANTS.TAGS.MASTER_FINGERPRINT); + + if (payload != null) { + return payload.toHex(); + } + } catch (Exception e) { + e.printStackTrace(); + } + + return ""; + } +} diff --git a/app/src/main/java/com/cobo/cold/db/PresetData.java b/app/src/main/java/com/cobo/cold/db/PresetData.java index 9afe71b..c786614 100644 --- a/app/src/main/java/com/cobo/cold/db/PresetData.java +++ b/app/src/main/java/com/cobo/cold/db/PresetData.java @@ -19,7 +19,6 @@ package com.cobo.cold.db; import android.content.Context; -import com.cobo.coinlib.path.CoinPath; import com.cobo.coinlib.utils.Coins; import com.cobo.cold.Utilities; import com.cobo.cold.db.entity.AccountEntity; @@ -44,18 +43,12 @@ public class PresetData { entity.setIndex(coin.coinIndex()); entity.setBelongTo(Utilities.getCurrentBelongTo(context)); entity.setAddressCount(0); - AccountEntity account = new AccountEntity(); - String defaultHdPath = CoinPath.M() - .purpose(Coins.purposeNumber(entity.getCoinCode())) - .coinType(entity.getIndex()) - .account(0) - .toString(); - if (Coins.CURVE.ED25519 == getCurveByPath(defaultHdPath)) { - defaultHdPath += "/0'/0'"; + for (String path : coin.accountPaths()) { + AccountEntity accountEntity = new AccountEntity(); + accountEntity.setHdPath(path); + entity.addAccount(accountEntity); } - account.setHdPath(defaultHdPath); - entity.addAccount(account); return entity; } diff --git a/app/src/main/java/com/cobo/cold/db/dao/AccountDao.java b/app/src/main/java/com/cobo/cold/db/dao/AccountDao.java index 9628667..5e44e71 100644 --- a/app/src/main/java/com/cobo/cold/db/dao/AccountDao.java +++ b/app/src/main/java/com/cobo/cold/db/dao/AccountDao.java @@ -35,6 +35,12 @@ public interface AccountDao { @Query("SELECT * FROM accounts WHERE coinId=:id") List loadForCoin(long id); + @Query("SELECT * FROM accounts WHERE coinId =:id AND exPub=:expub") + AccountEntity loadAccountByXpub(long id, String expub); + + @Query("SELECT * FROM accounts WHERE coinId =:id AND hdPath=:path") + AccountEntity loadAccountByPath(long id, String path); + @Update void update(AccountEntity account); } diff --git a/app/src/main/java/com/cobo/cold/db/dao/CoinDao.java b/app/src/main/java/com/cobo/cold/db/dao/CoinDao.java index 20041b5..13da208 100644 --- a/app/src/main/java/com/cobo/cold/db/dao/CoinDao.java +++ b/app/src/main/java/com/cobo/cold/db/dao/CoinDao.java @@ -48,6 +48,9 @@ public interface CoinDao { @Query("SELECT * FROM coins WHERE coinId = :coinId AND belongTo = :belongTo") CoinEntity loadCoinSync(String coinId, String belongTo); + @Query("SELECT * FROM coins WHERE coinId = :coinId AND belongTo = :belongTo") + LiveData loadCoin(String coinId, String belongTo); + @Update int update(CoinEntity coinEntity); diff --git a/app/src/main/java/com/cobo/cold/db/dao/TxDao.java b/app/src/main/java/com/cobo/cold/db/dao/TxDao.java index d2fe3c3..ca16ba1 100644 --- a/app/src/main/java/com/cobo/cold/db/dao/TxDao.java +++ b/app/src/main/java/com/cobo/cold/db/dao/TxDao.java @@ -36,6 +36,9 @@ public interface TxDao { @Query("SELECT * FROM txs where coinId = :coinId and signId = 'electrum_sign_id' ORDER BY timeStamp DESC") List loadElectrumTxsSync(String coinId); + @Query("SELECT * FROM txs where coinId = :coinId and signId = 'wasabi_sign_id' ORDER BY timeStamp DESC") + List loadWasabiTxsSync(String coinId); + @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(TxEntity tx); diff --git a/app/src/main/java/com/cobo/cold/db/entity/AccountEntity.java b/app/src/main/java/com/cobo/cold/db/entity/AccountEntity.java index 02439d4..8302e7a 100644 --- a/app/src/main/java/com/cobo/cold/db/entity/AccountEntity.java +++ b/app/src/main/java/com/cobo/cold/db/entity/AccountEntity.java @@ -94,4 +94,16 @@ public class AccountEntity { public void setCoinId(Long coinId) { this.coinId = coinId; } + + @Override + public String toString() { + return "AccountEntity{" + + "id=" + id + + ", hdPath='" + hdPath + '\'' + + ", exPub='" + exPub + '\'' + + ", addressLength=" + addressLength + + ", isMultiSign=" + isMultiSign + + ", coinId=" + coinId + + '}'; + } } diff --git a/app/src/main/java/com/cobo/cold/encryption/interfaces/BASECONSTANTS.java b/app/src/main/java/com/cobo/cold/encryption/interfaces/BASECONSTANTS.java index 330605c..482d19a 100644 --- a/app/src/main/java/com/cobo/cold/encryption/interfaces/BASECONSTANTS.java +++ b/app/src/main/java/com/cobo/cold/encryption/interfaces/BASECONSTANTS.java @@ -37,6 +37,7 @@ public abstract class BASECONSTANTS { int VERIFY_MNEMONIC = 0x0502; int UPDATE_PASSPHRASE = 0x0303; int GET_EXTENDED_PUBLICKEY = 0x0305; + int GET_MASTER_FINGERPRINT = 0x0308; int WEB_AUTH = 0x0701; int GET_UPDATE_KEY = 0x0702; int REQUEST_UPDATE = 0x0108; @@ -87,6 +88,7 @@ public abstract class BASECONSTANTS { int NEED_TOKEN = 0x0405; int MESSAGE = 0x0406; int MESSAGE_SIGNATURE = 0x0407; + int MASTER_FINGERPRINT = 0x020B; } public interface VALS { diff --git a/app/src/main/java/com/cobo/cold/ui/MainActivity.java b/app/src/main/java/com/cobo/cold/ui/MainActivity.java index 38bc93c..dcf9472 100644 --- a/app/src/main/java/com/cobo/cold/ui/MainActivity.java +++ b/app/src/main/java/com/cobo/cold/ui/MainActivity.java @@ -45,15 +45,12 @@ import com.cobo.cold.databinding.ActivityMainBinding; import com.cobo.cold.fingerprint.FingerprintKit; import com.cobo.cold.ui.common.FullScreenActivity; import com.cobo.cold.ui.fragment.AboutFragment; -import com.cobo.cold.ui.fragment.SyncFragment; -import com.cobo.cold.ui.fragment.main.AssetListFragment; -import com.cobo.cold.ui.fragment.main.ManageCoinFragment; -import com.cobo.cold.ui.fragment.main.electrum.ElectrumTxnListFragment; +import com.cobo.cold.ui.fragment.main.AssetFragment; import com.cobo.cold.ui.fragment.setting.SettingFragment; import com.cobo.cold.ui.views.DrawerAdapter; import com.cobo.cold.ui.views.FullScreenDrawer; import com.cobo.cold.ui.views.UpdatingHelper; -import com.cobo.cold.viewmodel.ElectrumViewModel; +import com.cobo.cold.viewmodel.GlobalViewModel; import java.util.Arrays; import java.util.HashMap; @@ -75,7 +72,6 @@ public class MainActivity extends FullScreenActivity { int currentFragmentIndex = R.id.drawer_wallet; private DrawerAdapter drawerAdapter; - private ElectrumViewModel viewModel; @Override protected void onCreate(Bundle savedInstanceState) { @@ -92,7 +88,7 @@ public class MainActivity extends FullScreenActivity { if (savedInstanceState == null) { new UpdatingHelper(this); } - viewModel = ViewModelProviders.of(this).get(ElectrumViewModel.class); + ViewModelProviders.of(this).get(GlobalViewModel.class); } private void initNavController() { @@ -178,14 +174,6 @@ public class MainActivity extends FullScreenActivity { case R.id.drawer_wallet: mNavController.navigateUp(); break; - case R.id.drawer_sync: - mNavController.navigateUp(); - mNavController.navigate(R.id.action_to_syncFragment); - break; - case R.id.drawer_sdcard: - mNavController.navigateUp(); - mNavController.navigate(R.id.action_to_txnListFragment); - break; case R.id.drawer_settings: mNavController.navigateUp(); mNavController.navigate(R.id.action_to_settingFragment); @@ -211,7 +199,7 @@ public class MainActivity extends FullScreenActivity { } else { NavDestination destination = mNavController.getCurrentDestination(); if (destination != null && destination.getLabel() != null) { - if (AssetListFragment.TAG.equals(destination.getLabel().toString())) { + if (AssetFragment.TAG.equals(destination.getLabel().toString())) { return; } } @@ -288,10 +276,7 @@ public class MainActivity extends FullScreenActivity { private final static Map mMainFragments = new HashMap<>(); static { - mMainFragments.put(R.id.drawer_wallet, AssetListFragment.TAG); - mMainFragments.put(R.id.drawer_manage, ManageCoinFragment.TAG); - mMainFragments.put(R.id.drawer_sync, SyncFragment.TAG); - mMainFragments.put(R.id.drawer_sdcard, ElectrumTxnListFragment.TAG); + mMainFragments.put(R.id.drawer_wallet, AssetFragment.TAG); mMainFragments.put(R.id.drawer_settings, SettingFragment.TAG); mMainFragments.put(R.id.drawer_about, AboutFragment.TAG); } diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/Constants.java b/app/src/main/java/com/cobo/cold/ui/fragment/Constants.java index 5fd633c..09f566d 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/Constants.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/Constants.java @@ -23,6 +23,9 @@ public interface Constants { String KEY_ID = "id"; String KEY_ADDRESS = "address"; String KEY_ADDRESS_NAME = "address_name"; + String KEY_ADDRESS_PATH = "address_path"; + String KEY_IS_CHANGE_ADDRESS = "is_change_address"; + String KEY_ACCOUNT_HDPATH = "account_hd_path"; String KEY_TITLE = "title"; String KEY_NAV_ID = "nav_id"; String IS_FORCE = "is_force"; diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/PassphraseFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/PassphraseFragment.java index 53980b6..c8b6562 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/PassphraseFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/PassphraseFragment.java @@ -30,7 +30,6 @@ import android.widget.EditText; import androidx.databinding.DataBindingUtil; import androidx.databinding.Observable; import androidx.databinding.ObservableField; -import androidx.navigation.Navigation; import com.cobo.cold.R; import com.cobo.cold.Utilities; diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/SyncFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/SyncFragment.java index 9105dbf..ab5094e 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/SyncFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/SyncFragment.java @@ -44,11 +44,14 @@ public class SyncFragment extends BaseFragment { @Override protected void init(View view) { - mActivity.setSupportActionBar(mBinding.toolbar); - mBinding.toolbar.setNavigationOnClickListener(((MainActivity) mActivity)::toggleDrawer); - mBinding.toolbar.setTitle(""); + mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); viewModel = ViewModelProviders.of(mActivity).get(CoinListViewModel.class); subscribe(viewModel.getCoins()); + if (mActivity instanceof MainActivity) { + mBinding.complete.setVisibility(View.GONE); + } else { + mBinding.complete.setOnClickListener(v -> navigate(R.id.action_to_setupCompleteFragment)); + } } private void subscribe(LiveData> coins) { @@ -56,11 +59,13 @@ public class SyncFragment extends BaseFragment { } private void generateSyncData(List coinEntities) { - viewModel.generateSync(coinEntities).observe(this, sync -> { - if (!TextUtils.isEmpty(sync)) { - mBinding.sync.qrcodeLayout.qrcode.setData(sync); - } - }); + if (coinEntities != null) { + viewModel.generateSync(coinEntities).observe(this, sync -> { + if (!TextUtils.isEmpty(sync)) { + mBinding.sync.qrcodeLayout.qrcode.setData(sync); + } + }); + } } @Override diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/AddressFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/AddressFragment.java index 5427c0a..8aad251 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/AddressFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/AddressFragment.java @@ -22,11 +22,11 @@ import android.text.TextUtils; import android.view.View; import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; import androidx.lifecycle.LiveData; import androidx.lifecycle.ViewModelProviders; import androidx.recyclerview.widget.RecyclerView; +import com.cobo.coinlib.utils.Coins; import com.cobo.cold.R; import com.cobo.cold.databinding.AddressFragmentBinding; import com.cobo.cold.db.entity.AddressEntity; @@ -39,14 +39,19 @@ import java.util.Objects; import static com.cobo.cold.ui.fragment.Constants.KEY_ADDRESS; import static com.cobo.cold.ui.fragment.Constants.KEY_ADDRESS_NAME; +import static com.cobo.cold.ui.fragment.Constants.KEY_ADDRESS_PATH; import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_CODE; import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_ID; -import static com.cobo.cold.ui.fragment.Constants.KEY_ID; +import static com.cobo.cold.ui.fragment.Constants.KEY_IS_CHANGE_ADDRESS; +import static com.cobo.cold.viewmodel.GlobalViewModel.getAccount; public class AddressFragment extends BaseFragment { - String query; + private String query; private CoinViewModel viewModel; + private boolean isChangeAddress; + private String accountHdPath; + private List addressEntities; private final AddressCallback mAddrCallback = new AddressCallback() { @Override public void onClick(AddressEntity addr) { @@ -58,6 +63,7 @@ public class AddressFragment extends BaseFragment { data.putString(KEY_COIN_CODE, bundle.getString(KEY_COIN_CODE)); data.putString(KEY_ADDRESS, addr.getAddressString()); data.putString(KEY_ADDRESS_NAME, addr.getName()); + data.putString(KEY_ADDRESS_PATH, addr.getPath()); navigate(R.id.action_to_receiveCoinFragment, data); } } @@ -70,18 +76,13 @@ public class AddressFragment extends BaseFragment { private AddressAdapter mAddressAdapter; - public void exitEditAddressName() { - if (mAddressAdapter.isEditing()) { - mAddressAdapter.exitEdit(); - } - } - - public static Fragment newInstance(long id, @NonNull String coinId, @NonNull String coinCode) { + public static AddressFragment newInstance(@NonNull String coinId, + boolean isChange) { AddressFragment fragment = new AddressFragment(); Bundle args = new Bundle(); - args.putLong(KEY_ID, id); args.putString(KEY_COIN_ID, coinId); - args.putString(KEY_COIN_CODE, coinCode); + args.putString(KEY_COIN_CODE, Coins.coinCodeFromCoinId(coinId)); + args.putBoolean(KEY_IS_CHANGE_ADDRESS, isChange); fragment.setArguments(args); return fragment; } @@ -113,28 +114,31 @@ public class AddressFragment extends BaseFragment { @Override protected void initData(Bundle savedInstanceState) { Bundle data = Objects.requireNonNull(getArguments()); + isChangeAddress = data.getBoolean(KEY_IS_CHANGE_ADDRESS); + accountHdPath = Objects.requireNonNull(getAccount(mActivity)).getPath(); Objects.requireNonNull(getParentFragment()); CoinViewModel.Factory factory = new CoinViewModel.Factory(mActivity.getApplication(), - data.getLong(KEY_ID), data.getString(KEY_COIN_ID)); - viewModel = ViewModelProviders.of(getParentFragment(), factory) - .get(CoinViewModel.class); + viewModel = ViewModelProviders.of(getParentFragment(), factory).get(CoinViewModel.class); subscribeUi(viewModel.getAddress()); - } private void subscribeUi(LiveData> address) { - address.observe(this, entities -> mAddressAdapter.setItems(entities)); - } - - public void setQuery(String s) { - query = s; - mAddressAdapter.getFilter().filter(s); + if (addressEntities != null) { + updateAddressList(addressEntities); + } + address.observe(this, entities -> { + addressEntities = entities; + updateAddressList(entities); + }); } - public void enterSearch() { - if (mAddressAdapter != null) { - mAddressAdapter.enterSearch(); + private void updateAddressList(List entities) { + List filteredEntity = viewModel.filterByAccountHdPath(entities, accountHdPath); + if (isChangeAddress) { + mAddressAdapter.setItems(viewModel.filterChangeAddress(filteredEntity)); + } else { + mAddressAdapter.setItems(viewModel.filterReceiveAddress(filteredEntity)); } } diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/AddressNumberPicker.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/AddressNumberPicker.java deleted file mode 100644 index 91ce3ab..0000000 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/AddressNumberPicker.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2020 Cobo - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * in the file COPYING. If not, see . - */ - -package com.cobo.cold.ui.fragment.main; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.databinding.DataBindingUtil; -import androidx.fragment.app.DialogFragment; - -import com.cobo.cold.R; -import com.cobo.cold.databinding.PickerDialogBinding; - -import java.util.Objects; -import java.util.stream.IntStream; - -public class AddressNumberPicker extends DialogFragment { - - private NumberPickerCallback mCallback; - private static final int MIN = 0; - private static final int MAX = 8; - - public AddressNumberPicker(){ - - } - - public void setCallback(NumberPickerCallback mCallback) { - this.mCallback = mCallback; - } - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, - @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - - Objects.requireNonNull(getDialog()).requestWindowFeature(STYLE_NO_TITLE); - - PickerDialogBinding binding = DataBindingUtil.inflate(inflater, R.layout.picker_dialog, - container, false); - String[] displayValue = IntStream.range(MIN, MAX + 1) - .mapToObj(i -> String.valueOf(i + 1)) - .toArray(String[]::new); - binding.setValue(1); - binding.picker.setValue(0); - binding.picker.setDisplayedValues(displayValue); - binding.picker.setMinValue(MIN); - binding.picker.setMaxValue(MAX); - binding.picker.setOnValueChangedListener((picker, oldVal, newVal) -> binding.setValue(newVal + 1)); - binding.confirm.setOnClickListener(v -> { - dismiss(); - if (mCallback != null) { - mCallback.onValueSet(binding.picker.getValue() + 1); - } - }); - binding.cancel.setOnClickListener(v -> dismiss()); - - return binding.getRoot(); - } -} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/AssetFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/AssetFragment.java index a26a064..25c4efb 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/AssetFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/AssetFragment.java @@ -17,60 +17,58 @@ package com.cobo.cold.ui.fragment.main; -import android.content.Context; +import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.os.Handler; -import android.text.TextUtils; -import android.view.KeyEvent; +import android.provider.Settings; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; -import android.view.inputmethod.InputMethodManager; +import android.widget.Toast; import androidx.annotation.NonNull; -import androidx.appcompat.widget.Toolbar; import androidx.databinding.DataBindingUtil; -import androidx.databinding.Observable; -import androidx.databinding.ObservableField; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentPagerAdapter; +import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.lifecycle.ViewModelProviders; import com.cobo.coinlib.utils.Coins; import com.cobo.cold.AppExecutors; import com.cobo.cold.R; +import com.cobo.cold.databinding.AddAddressBottomSheetBinding; import com.cobo.cold.databinding.AssetFragmentBinding; import com.cobo.cold.databinding.DialogBottomSheetBinding; +import com.cobo.cold.db.PresetData; import com.cobo.cold.db.entity.CoinEntity; +import com.cobo.cold.ui.MainActivity; import com.cobo.cold.ui.fragment.BaseFragment; import com.cobo.cold.ui.modal.ProgressModalDialog; import com.cobo.cold.viewmodel.AddAddressViewModel; import com.cobo.cold.viewmodel.CoinViewModel; -import com.cobo.cold.viewmodel.PublicKeyViewModel; +import com.cobo.cold.viewmodel.SetupVaultViewModel; +import com.cobo.cold.viewmodel.SupportedWatchWallet; import com.google.android.material.bottomsheet.BottomSheetDialog; +import com.yanzhenjie.permission.AndPermission; +import com.yanzhenjie.permission.Permission; -import java.util.ArrayList; -import java.util.List; import java.util.Objects; +import java.util.stream.IntStream; import static androidx.fragment.app.FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT; -import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_CODE; import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_ID; -import static com.cobo.cold.ui.fragment.Constants.KEY_ID; +import static com.cobo.cold.viewmodel.GlobalViewModel.getAddressType; public class AssetFragment extends BaseFragment - implements Toolbar.OnMenuItemClickListener, NumberPickerCallback { + implements NumberPickerCallback { - private final ObservableField query = new ObservableField<>(); - - private boolean isInSearch; + public static final String TAG = "AssetFragment"; private Fragment[] fragments; - private boolean showPublicKey; private String coinId; - private String coinCode; - private long id; - private AddressNumberPicker mAddressNumberPicker; - private boolean hasAddress; + private String[] title; + private SupportedWatchWallet watchWallet; @Override protected int setView() { @@ -79,57 +77,58 @@ public class AssetFragment extends BaseFragment @Override protected void init(View view) { - Bundle data = Objects.requireNonNull(getArguments()); - coinId = data.getString(KEY_COIN_ID); - coinCode = data.getString(KEY_COIN_CODE); - id = data.getLong(KEY_ID); - showPublicKey = Coins.showPublicKey(coinCode); - mBinding.toolbar.inflateMenu(getMenuResId()); - mBinding.toolbar.setOnMenuItemClickListener(this); - mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); - initSearchView(); - initTabs(); + coinId = Coins.BTC.coinId(); + watchWallet = SupportedWatchWallet.getSupportedWatchWallet(mActivity); + mActivity.setSupportActionBar(mBinding.toolbar); + mBinding.toolbar.setNavigationOnClickListener(((MainActivity) mActivity)::toggleDrawer); + String walletName = watchWallet.getWalletName(mActivity); + mBinding.toolbar.setTitle(walletName); + mBinding.fab.setOnClickListener(v -> addAddress()); + title = new String[]{ getString(R.string.tab_my_address), getString(R.string.tab_my_change_address)}; + initViewPager(); } - private int getMenuResId() { - if (Coins.BTC.coinCode().equals(coinCode)) { - return R.menu.asset_hasmore; - } - return showPublicKey ? R.menu.asset_without_add : R.menu.asset; + private void addAddress() { + BottomSheetDialog dialog = new BottomSheetDialog(mActivity); + AddAddressBottomSheetBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mActivity), + R.layout.add_address_bottom_sheet,null,false); + String[] displayValue = IntStream.range(0, 9) + .mapToObj(i -> String.valueOf(i + 1)) + .toArray(String[]::new); + binding.setValue(1); + binding.title.setText(getString(R.string.select_address_num, title[mBinding.tab.getSelectedTabPosition()])); + binding.close.setOnClickListener(v -> dialog.dismiss()); + binding.picker.setValue(0); + binding.picker.setDisplayedValues(displayValue); + binding.picker.setMinValue(0); + binding.picker.setMaxValue(8); + binding.picker.setOnValueChangedListener((picker, oldVal, newVal) -> binding.setValue(newVal + 1)); + binding.confirm.setOnClickListener(v-> { + onValueSet(binding.picker.getValue() + 1); + dialog.dismiss(); + + }); + dialog.setContentView(binding.getRoot()); + dialog.show(); } - private void initTabs() { - if (!showPublicKey) { - initViewPager(); - } else { - PublicKeyViewModel viewModel = ViewModelProviders.of(this) - .get(PublicKeyViewModel.class); - Handler handler = new Handler(); - AppExecutors.getInstance().diskIO().execute(() -> { - String address = viewModel.getAddress(coinId); - hasAddress = !TextUtils.isEmpty(address); - handler.post(this::initViewPager); - - }); + @Override + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { + inflater.inflate(R.menu.asset_hasmore, menu); + if (watchWallet == SupportedWatchWallet.COBO + || watchWallet == SupportedWatchWallet.BLUE) { + menu.findItem(R.id.action_sdcard).setVisible(false); } - + super.onCreateOptionsMenu(menu, inflater); } private void initViewPager() { - String[] title = {showPublicKey && !hasAddress ? getString(R.string.tab_my_pubkey) - : getString(R.string.tab_my_address), - getString(R.string.tab_transaction_history)}; if (fragments == null) { fragments = new Fragment[title.length]; - if (showPublicKey) { - fragments[0] = PublicKeyFragment.newInstance(coinId); - } else { - fragments[0] = AddressFragment.newInstance(id, coinId, coinCode); - } - fragments[1] = TxListFragment.newInstance(coinId, coinCode); + fragments[0] = AddressFragment.newInstance(coinId, false); + fragments[1] = AddressFragment.newInstance(coinId, true); } - - mBinding.viewpager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager(), + mBinding.viewpager.setAdapter(new FragmentStatePagerAdapter(getChildFragmentManager(), BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) { @NonNull @Override @@ -150,46 +149,23 @@ public class AssetFragment extends BaseFragment mBinding.tab.setupWithViewPager(mBinding.viewpager); } - private void initSearchView() { - mBinding.btnCancel.setOnClickListener(v -> exitSearch()); - View.OnKeyListener backListener = (view, key_code, keyEvent) -> { - if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) { - if (key_code == KeyEvent.KEYCODE_BACK) { - if (isInSearch) { - exitSearch(); - return true; - } - } - } - return false; - }; - mBinding.search.setOnKeyListener(backListener); - query.set(""); - mBinding.setQuery(query); - query.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { - @Override - public void onPropertyChanged(Observable sender, int propertyId) { - if (fragments[0] instanceof AddressFragment) { - AddressFragment addressFragment = (AddressFragment) fragments[0]; - addressFragment.setQuery(query.get()); - } - - TxListFragment txListFragment = (TxListFragment) fragments[1]; - txListFragment.setQuery(query.get()); - - } - }); - - } - @Override protected void initData(Bundle savedInstanceState) { - CoinViewModel.Factory factory = new CoinViewModel.Factory(mActivity.getApplication(), id, coinId); + CoinViewModel.Factory factory = new CoinViewModel.Factory(mActivity.getApplication(), coinId); CoinViewModel viewModel = ViewModelProviders.of(this, factory) .get(CoinViewModel.class); - mBinding.setCoinViewModel(viewModel); subscribeUi(viewModel); + checkAndAddNewCoins(); + } + + private void checkAndAddNewCoins() { + SetupVaultViewModel viewModel = ViewModelProviders.of(mActivity) + .get(SetupVaultViewModel.class); + AppExecutors.getInstance().diskIO().execute(() + -> viewModel.presetData(PresetData.generateCoins(mActivity), null) + ); + } private void subscribeUi(CoinViewModel viewModel) { @@ -197,84 +173,83 @@ public class AssetFragment extends BaseFragment } @Override - public boolean onMenuItemClick(MenuItem item) { + public boolean onOptionsItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); switch (id) { - case R.id.action_search: - enterSearch(); - break; - case R.id.action_add: - handleAddAddress(); - break; case R.id.action_more: showBottomSheetMenu(); break; + case R.id.action_scan: + scanQrCode(); + break; + case R.id.action_sdcard: + showFileList(); default: break; } - return true; + return super.onOptionsItemSelected(item); } - private void handleAddAddress() { - if (fragments[0] instanceof AddressFragment) { - ((AddressFragment) fragments[0]).exitEditAddressName(); - } - if (mAddressNumberPicker == null) { - mAddressNumberPicker = new AddressNumberPicker(); - mAddressNumberPicker.setCallback(this); + private void showFileList() { + switch (watchWallet) { + case ELECTRUM: + case GENERIC: + navigate(R.id.action_to_txnListFragment); + break; + case WASABI: + navigate(R.id.action_to_psbtListFragment); + break; } - mAddressNumberPicker.show(mActivity.getSupportFragmentManager(), ""); + } + + private void scanQrCode() { + AndPermission.with(this) + .permission(Permission.CAMERA, Permission.READ_EXTERNAL_STORAGE) + .onGranted(permissions -> navigate(R.id.action_to_scan)) + .onDenied(permissions -> { + Uri packageURI = Uri.parse("package:" + mActivity.getPackageName()); + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + Toast.makeText(mActivity, getString(R.string.scan_permission_denied), Toast.LENGTH_LONG).show(); + }).start(); } private void showBottomSheetMenu() { BottomSheetDialog dialog = new BottomSheetDialog(mActivity); DialogBottomSheetBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mActivity), R.layout.dialog_bottom_sheet,null,false); - binding.addAddress.setOnClickListener(v-> { - handleAddAddress(); + binding.exportXpub.setOnClickListener(v-> { + if (watchWallet == SupportedWatchWallet.GENERIC) { + navigate(R.id.action_to_export_xpub_generic); + } else { + navigate(R.id.action_to_export_xpub_guide); + } + dialog.dismiss(); + + }); + + binding.signHistory.setOnClickListener(v-> { + Bundle data = new Bundle(); + data.putString(KEY_COIN_ID, coinId); + navigate(R.id.action_to_txList, data); dialog.dismiss(); }); - binding.exportXpubToElectrum.setOnClickListener(v-> { - navigate(R.id.action_to_electrum_guide); + + binding.walletInfo.setOnClickListener(v-> { + navigate(R.id.action_to_walletInfoFragment); dialog.dismiss(); }); + dialog.setContentView(binding.getRoot()); dialog.show(); } - private void enterSearch() { - isInSearch = true; - if (fragments[0] != null && fragments[0] instanceof AddressFragment) { - ((AddressFragment) fragments[0]).enterSearch(); - } - mBinding.searchBar.setVisibility(View.VISIBLE); - mBinding.search.requestFocus(); - InputMethodManager inputManager = - (InputMethodManager) mActivity.getSystemService(Context.INPUT_METHOD_SERVICE); - if (inputManager != null) { - inputManager.showSoftInput(mBinding.search, 0); - } - } - - private void exitSearch() { - isInSearch = false; - mBinding.search.setText(""); - mBinding.searchBar.setVisibility(View.INVISIBLE); - mBinding.search.clearFocus(); - InputMethodManager inputManager = - (InputMethodManager) mActivity.getSystemService(Context.INPUT_METHOD_SERVICE); - if (inputManager != null) { - inputManager.hideSoftInputFromWindow(mBinding.search.getWindowToken(), 0); - } - } - @Override public void onValueSet(int value) { - AddAddressViewModel.Factory factory = new AddAddressViewModel.Factory(mActivity.getApplication(), - id); - AddAddressViewModel viewModel = ViewModelProviders.of(this, factory) + AddAddressViewModel viewModel = ViewModelProviders.of(this) .get(AddAddressViewModel.class); ProgressModalDialog dialog = ProgressModalDialog.newInstance(); @@ -283,14 +258,16 @@ public class AssetFragment extends BaseFragment AppExecutors.getInstance().diskIO().execute(() -> { CoinEntity coinEntity = viewModel.getCoin(coinId); if (coinEntity != null) { - int addrCount = coinEntity.getAddressCount(); - List observableAddressNames = new ArrayList<>(); - for (int i = addrCount; i < value + addrCount; i++) { - String name = coinEntity.getCoinCode() + "-" + (i + 1); - observableAddressNames.add(name); + + int tabPosition = mBinding.tab.getSelectedTabPosition(); + int changeIndex; + if (tabPosition == 0) { + changeIndex = 0; + } else { + changeIndex = 1; } - viewModel.addAddress(observableAddressNames); + viewModel.addAddress(value, getAddressType(mActivity), changeIndex); handler.post(() -> viewModel.getObservableAddState().observe(this, complete -> { if (complete) { handler.postDelayed(dialog::dismiss, 500); diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/AssetListFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/AssetListFragment.java deleted file mode 100644 index a1cee36..0000000 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/AssetListFragment.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (c) 2020 Cobo - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * in the file COPYING. If not, see . - */ - -package com.cobo.cold.ui.fragment.main; - -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import android.provider.Settings; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.Toast; - -import androidx.annotation.NonNull; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.ViewModelProviders; - -import com.cobo.cold.AppExecutors; -import com.cobo.cold.R; -import com.cobo.cold.databinding.AssetListFragmentBinding; -import com.cobo.cold.db.PresetData; -import com.cobo.cold.db.entity.CoinEntity; -import com.cobo.cold.ui.MainActivity; -import com.cobo.cold.ui.fragment.BaseFragment; -import com.cobo.cold.viewmodel.CoinListViewModel; -import com.cobo.cold.viewmodel.SetupVaultViewModel; -import com.yanzhenjie.permission.AndPermission; -import com.yanzhenjie.permission.Permission; - -import java.util.List; -import java.util.stream.Collectors; - -import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_CODE; -import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_ID; -import static com.cobo.cold.ui.fragment.Constants.KEY_ID; -import static com.cobo.cold.viewmodel.CoinListViewModel.coinEntityComparator; - -public class AssetListFragment extends BaseFragment { - - public static final String TAG = "AssetListFragment"; - - private long startTime; - public static final int REQUEST_CODE_SCAN = 1000; - private CoinAdapter mCoinAdapter; - - - @Override - protected int setView() { - return R.layout.asset_list_fragment; - } - - @Override - protected void init(View view) { - mActivity.setSupportActionBar(mBinding.toolbar); - mBinding.toolbar.setNavigationOnClickListener(((MainActivity) mActivity)::toggleDrawer); - mBinding.toolbar.setTitle(""); - mCoinAdapter = new CoinAdapter(mActivity, mCoinClickCallback, false); - mBinding.assetList.setAdapter(mCoinAdapter); - } - - @Override - protected void initData(Bundle savedInstanceState) { - CoinListViewModel mViewModel = ViewModelProviders.of(mActivity).get(CoinListViewModel.class); - subscribeUi(mViewModel.getCoins()); - checkAndAddNewCoins(); - } - - private void checkAndAddNewCoins() { - SetupVaultViewModel viewModel = ViewModelProviders.of(mActivity) - .get(SetupVaultViewModel.class); - AppExecutors.getInstance().diskIO().execute(() - -> viewModel.presetData(PresetData.generateCoins(mActivity), null) - ); - - } - - private void subscribeUi(LiveData> coins) { - coins.observe(this, coinEntities -> { - if (coinEntities != null) { - List toShow = coinEntities - .stream() - .filter(CoinEntity::isShow) - .collect(Collectors.toList()); - if (toShow.isEmpty()) { - mBinding.setIsEmpty(true); - } else { - mBinding.setIsEmpty(false); - toShow.sort(coinEntityComparator); - mCoinAdapter.setItems(toShow); - } - - } else { - mBinding.setIsEmpty(true); - } - mBinding.executePendingBindings(); - }); - } - - @Override - public void onCreateOptionsMenu(@NonNull Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.main, menu); - super.onCreateOptionsMenu(menu, inflater); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - if (id == R.id.action_scan) { - AndPermission.with(this) - .permission(Permission.CAMERA, Permission.READ_EXTERNAL_STORAGE) - .onGranted(permissions -> { - startTime = System.currentTimeMillis(); - Bundle bundle = new Bundle(); - bundle.putLong("starttime", startTime); - navigate(R.id.action_to_scan, bundle); - }) - .onDenied(permissions -> { - Uri packageURI = Uri.parse("package:" + mActivity.getPackageName()); - Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); - Toast.makeText(mActivity, getString(R.string.scan_permission_denied), Toast.LENGTH_LONG).show(); - }).start(); - return true; - } - - return super.onOptionsItemSelected(item); - } - - private final CoinClickCallback mCoinClickCallback = coin -> { - Bundle data = new Bundle(); - data.putLong(KEY_ID, coin.getId()); - data.putString(KEY_COIN_ID, coin.getCoinId()); - data.putString(KEY_COIN_CODE, coin.getCoinCode()); - navigate(R.id.action_to_assetFragment, data); - }; -} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/ExportGenericXpubFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/ExportGenericXpubFragment.java new file mode 100644 index 0000000..b0c98a9 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/ExportGenericXpubFragment.java @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.ui.fragment.main; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.databinding.DataBindingUtil; + +import com.cobo.coinlib.Util; +import com.cobo.coinlib.utils.Coins; +import com.cobo.cold.R; +import com.cobo.cold.databinding.ExportSdcardModalBinding; +import com.cobo.cold.databinding.ExportXpubBinding; +import com.cobo.cold.ui.MainActivity; +import com.cobo.cold.ui.SetupVaultActivity; +import com.cobo.cold.ui.fragment.BaseFragment; +import com.cobo.cold.ui.modal.ModalDialog; +import com.cobo.cold.update.utils.Storage; +import com.cobo.cold.viewmodel.GlobalViewModel; + +import org.json.JSONException; +import org.json.JSONObject; + +import static com.cobo.cold.viewmodel.GlobalViewModel.exportSuccess; +import static com.cobo.cold.viewmodel.GlobalViewModel.getAccount; +import static com.cobo.cold.viewmodel.GlobalViewModel.showNoSdcardModal; +import static com.cobo.cold.viewmodel.GlobalViewModel.writeToSdcard; + + +public class ExportGenericXpubFragment extends BaseFragment { + + private JSONObject xpubInfo; + + @Override + protected int setView() { + return R.layout.export_xpub; + } + + @Override + protected void init(View view) { + mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); + try { + xpubInfo = GlobalViewModel.getXpubInfo(mActivity); + String exPub = xpubInfo.getString("ExtPubKey"); + exPub = convertExtpub(exPub, getAccount(mActivity)); + xpubInfo.put("ExtPubKey", exPub); + mBinding.qrcode.setData(xpubInfo.toString()); + mBinding.expub.setText(exPub); + } catch (JSONException e) { + e.printStackTrace(); + } + mBinding.addressType.setText(getString(R.string.master_xpub, + GlobalViewModel.getAddressFormat(mActivity))); + mBinding.done.setOnClickListener(v -> { + if (mActivity instanceof SetupVaultActivity) { + navigate(R.id.action_to_setupCompleteFragment); + } else { + MainActivity activity = (MainActivity) mActivity; + activity.getNavController().popBackStack(R.id.assetFragment, false); + } + }); + mBinding.exportToSdcard.setOnClickListener(v -> { + Storage storage = Storage.createByEnvironment(mActivity); + if (storage == null || storage.getExternalDir() == null) { + showNoSdcardModal(mActivity); + } else { + ModalDialog modalDialog = ModalDialog.newInstance(); + ExportSdcardModalBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mActivity), + R.layout.export_sdcard_modal, null, false); + binding.title.setText(R.string.export_xpub_text_file); + binding.fileName.setText(getFileName()); + binding.actionHint.setText(R.string.electrum_import_xpub_action); + binding.cancel.setOnClickListener(vv -> modalDialog.dismiss()); + binding.confirm.setOnClickListener(vv -> { + modalDialog.dismiss(); + if (writeToSdcard(storage, xpubInfo.toString(), getFileName())) { + exportSuccess(mActivity, null); + } + }); + modalDialog.setBinding(binding); + modalDialog.show(mActivity.getSupportFragmentManager(), ""); + } + }); + } + + private String getFileName() { + Coins.Account account = GlobalViewModel.getAccount(mActivity); + switch (account) { + case SegWit: + return "p2wpkh-pubkey.txt"; + case P2SH: + return "p2wpkh-p2sh-pubkey.txt"; + case P2PKH: + return "p2pkh-pubkey.txt"; + } + return "p2wpkh-p2sh-pubkey.txt"; + } + + @Override + protected void initData(Bundle savedInstanceState) { + + } + + private String convertExtpub(String xpub, Coins.Account account) { + if (account == Coins.Account.SegWit) { + return Util.convertXpubToZpub(xpub); + } else if (account == Coins.Account.P2SH) { + return Util.convertXpubToYpub(xpub); + } else { + return xpub; + } + } +} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/ManageCoinFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/ManageCoinFragment.java deleted file mode 100644 index 3d1c134..0000000 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/ManageCoinFragment.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (c) 2020 Cobo - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * in the file COPYING. If not, see . - */ - -package com.cobo.cold.ui.fragment.main; - -import android.content.Context; -import android.content.Intent; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.os.Bundle; -import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.inputmethod.InputMethodManager; - -import androidx.annotation.NonNull; -import androidx.databinding.Observable; -import androidx.databinding.ObservableField; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.ViewModelProviders; -import androidx.recyclerview.widget.RecyclerView; - -import com.cobo.cold.AppExecutors; -import com.cobo.cold.MainApplication; -import com.cobo.cold.R; -import com.cobo.cold.config.FeatureFlags; -import com.cobo.cold.databinding.ManageCoinFragmentBinding; -import com.cobo.cold.db.entity.CoinEntity; -import com.cobo.cold.ui.MainActivity; -import com.cobo.cold.ui.SetupVaultActivity; -import com.cobo.cold.ui.fragment.BaseFragment; -import com.cobo.cold.viewmodel.CoinListViewModel; - -import java.util.List; -import java.util.Objects; - -import static com.cobo.cold.Utilities.IS_SETUP_VAULT; -import static com.cobo.cold.Utilities.IS_SET_PASSPHRASE; -import static com.cobo.cold.viewmodel.CoinListViewModel.coinEntityComparator; - -public class ManageCoinFragment extends BaseFragment { - - private final ObservableField query = new ObservableField<>(); - public static final String TAG = "ManageCoinFragment"; - private CoinAdapter mCoinAdapter; - private CoinListViewModel mViewModel; - - private boolean hideConfirmAction = true; - - private boolean isInSearch; - - @Override - protected int setView() { - return R.layout.manage_coin_fragment; - } - - @Override - protected void init(View view) { - - mActivity.setSupportActionBar(mBinding.toolbar); - - Bundle data = getArguments(); - if (data != null && data.getBoolean(IS_SET_PASSPHRASE)) { - mBinding.toolbarTitle.setText(R.string.add_coins); - mBinding.toolbar.setNavigationIcon(new ColorDrawable(Color.TRANSPARENT)); - mBinding.toolbar.setNavigationOnClickListener(null); - hideConfirmAction = false; - } else if (mActivity instanceof SetupVaultActivity) { - mBinding.toolbarTitle.setText(R.string.add_coins); - mBinding.toolbar.setNavigationIcon(new ColorDrawable(Color.TRANSPARENT)); - mBinding.toolbar.setNavigationOnClickListener(null); - hideConfirmAction = false; - } else { - mBinding.toolbar.setNavigationOnClickListener(((MainActivity) mActivity)::toggleDrawer); - } - - mBinding.toolbar.setTitle(""); - mCoinAdapter = new CoinAdapter(mActivity, mCoinClickCallback, true); - mBinding.assetList.setAdapter(mCoinAdapter); - initSearchView(); - } - - private void initSearchView() { - mBinding.btnCancel.setOnClickListener(v -> exitSearch()); - View.OnKeyListener backListener = (view, keyCode, keyEvent) -> { - if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) { - if (keyCode == KeyEvent.KEYCODE_BACK) { - if (isInSearch) { - exitSearch(); - return true; - } - } - } - return false; - }; - mBinding.search.setOnKeyListener(backListener); - query.set(""); - mBinding.setQuery(query); - query.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { - @Override - public void onPropertyChanged(Observable sender, int propertyId) { - mCoinAdapter.getFilter().filter(query.get()); - } - }); - mCoinAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { - @Override - public void onChanged() { - super.onChanged(); - if (isInSearch) { - if (mCoinAdapter.getItems().size() == 0) { - mBinding.empty.setVisibility(View.VISIBLE); - mBinding.assetList.setVisibility(View.GONE); - } else { - mBinding.empty.setVisibility(View.GONE); - mBinding.assetList.setVisibility(View.VISIBLE); - } - } - } - }); - } - - @Override - public void onCreateOptionsMenu(@NonNull Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.manage, menu); - if (hideConfirmAction) { - menu.findItem(R.id.action_confirm).setVisible(false); - } - super.onCreateOptionsMenu(menu, inflater); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.action_confirm: - Bundle data = Objects.requireNonNull(getArguments()); - if (data.getBoolean(IS_SETUP_VAULT)) { -// if (FeatureFlags.ENABLE_WHITE_LIST) { -// navigate(R.id.action_manageCoin_to_manageWhiteList, data); -// } else { -// navigate(R.id.action_manageCoinFragment_to_setupSyncFragment, data); -// } - - } else { - startActivity(new Intent(mActivity, MainActivity.class)); - } - break; - case R.id.action_search: - enterSearch(); - break; - } - return super.onOptionsItemSelected(item); - } - - @Override - protected void initData(Bundle savedInstanceState) { - mViewModel = ViewModelProviders.of(this).get(CoinListViewModel.class); - if (mActivity instanceof SetupVaultActivity) { - subscribeUi(MainApplication.getApplication().getRepository().reloadCoins()); - } else if (getArguments() != null && getArguments().getBoolean(IS_SET_PASSPHRASE)) { - subscribeUi(MainApplication.getApplication().getRepository().reloadCoins()); - } else { - subscribeUi(mViewModel.getCoins()); - } - } - - private void subscribeUi(LiveData> coins) { - coins.observe(this, coinEntities -> { - if (coinEntities != null) { - coinEntities.sort(coinEntityComparator); - mCoinAdapter.setItems(coinEntities); - } - mBinding.executePendingBindings(); - }); - } - - private final CoinClickCallback mCoinClickCallback = coin -> - AppExecutors.getInstance().diskIO() - .execute(() -> mViewModel.toggleCoin(coin)); - - private void enterSearch() { - isInSearch = true; - mBinding.searchBar.setVisibility(View.VISIBLE); - mBinding.search.requestFocus(); - InputMethodManager inputManager = - (InputMethodManager) mActivity.getSystemService(Context.INPUT_METHOD_SERVICE); - if (inputManager != null) { - inputManager.showSoftInput(mBinding.search, 0); - } - } - - private void exitSearch() { - isInSearch = false; - mBinding.search.setText(""); - mBinding.searchBar.setVisibility(View.INVISIBLE); - mBinding.search.clearFocus(); - mBinding.empty.setVisibility(View.GONE); - mBinding.assetList.setVisibility(View.VISIBLE); - InputMethodManager inputManager = - (InputMethodManager) mActivity.getSystemService(Context.INPUT_METHOD_SERVICE); - if (inputManager != null) { - inputManager.hideSoftInputFromWindow(mBinding.search.getWindowToken(), 0); - } - } -} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtListFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtListFragment.java new file mode 100644 index 0000000..bed4c22 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtListFragment.java @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.ui.fragment.main; + +import android.content.Context; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.RecyclerView; + +import com.cobo.cold.R; +import com.cobo.cold.databinding.ElectrumTxnBinding; +import com.cobo.cold.databinding.FileListBinding; +import com.cobo.cold.ui.common.BaseBindingAdapter; +import com.cobo.cold.ui.fragment.BaseFragment; +import com.cobo.cold.ui.fragment.main.electrum.Callback; +import com.cobo.cold.ui.modal.ModalDialog; +import com.cobo.cold.update.utils.FileUtils; +import com.cobo.cold.update.utils.Storage; +import com.cobo.cold.viewmodel.PsbtViewModel; + +import org.spongycastle.util.encoders.Base64; +import org.spongycastle.util.encoders.Hex; + +import java.io.File; +import java.nio.charset.StandardCharsets; +import java.util.concurrent.atomic.AtomicBoolean; + +import static com.cobo.cold.viewmodel.GlobalViewModel.hasSdcard; + +public class PsbtListFragment extends BaseFragment + implements Callback { + + public static final String TAG = "ElectrumTxnListFragment"; + public static final String PSBT_MAGIC_PREFIX = Hex.toHexString("psbt".getBytes(StandardCharsets.UTF_8)); + private PsbtViewModel viewModel; + private TxnAdapter adapter; + private AtomicBoolean showEmpty; + + @Override + protected int setView() { + return R.layout.file_list; + } + + @Override + protected void init(View view) { + mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); + viewModel = ViewModelProviders.of(mActivity).get(PsbtViewModel.class); + adapter = new TxnAdapter(mActivity, this); + initViews(); + } + + private void initViews() { + showEmpty = new AtomicBoolean(false); + if (!hasSdcard(mActivity)) { + showEmpty.set(true); + mBinding.emptyTitle.setText(R.string.no_sdcard); + mBinding.emptyMessage.setText(R.string.no_sdcard_hint); + } else { + mBinding.list.setAdapter(adapter); + viewModel.loadUnsignPsbt().observe(this, files -> { + if (files.size() > 0) { + adapter.setItems(files); + } else { + showEmpty.set(true); + mBinding.emptyTitle.setText(R.string.no_unsigned_txn); + mBinding.emptyMessage.setText(R.string.no_unsigned_txn_hint); + } + updateUi(); + }); + } + updateUi(); + } + + private void updateUi() { + if (showEmpty.get()) { + mBinding.emptyView.setVisibility(View.VISIBLE); + mBinding.list.setVisibility(View.GONE); + } else { + mBinding.emptyView.setVisibility(View.GONE); + mBinding.list.setVisibility(View.VISIBLE); + } + } + + @Override + protected void initData(Bundle savedInstanceState) { + + } + + @Override + public void onClick(String file) { + Storage storage = Storage.createByEnvironment(mActivity); + byte[] content = FileUtils.bufferlize(new File(storage.getExternalDir(), file)); + if (content != null) { + String psbtBase64 = null; + if (isBase64Psbt(content)) { + psbtBase64 = new String(content); + } else if (Hex.toHexString(content).startsWith(PSBT_MAGIC_PREFIX)) { + psbtBase64 = Base64.toBase64String(content); + } + + if (psbtBase64 != null) { + Bundle bundle = new Bundle(); + bundle.putString("psbt_base64", psbtBase64); + navigate(R.id.action_to_psbtTxConfirmFragment, bundle); + return; + } + } + + ModalDialog.showCommonModal(mActivity, + getString(R.string.electrum_decode_txn_fail), + getString(R.string.error_txn_file), + getString(R.string.confirm), + null); + + } + + private boolean isBase64Psbt(byte[] content) { + try { + byte[] data = Base64.decode(new String(content)); + return Hex.toHexString(data).startsWith(PSBT_MAGIC_PREFIX); + }catch (Exception e) { + return false; + } + } + + + public static class TxnAdapter extends BaseBindingAdapter { + private Callback callback; + + TxnAdapter(Context context, Callback callback) { + super(context); + this.callback = callback; + } + + @Override + protected int getLayoutResId(int viewType) { + return R.layout.electrum_txn; + } + + @Override + protected void onBindItem(ElectrumTxnBinding binding, String item) { + binding.setFile(item); + binding.setCallback(callback); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + super.onBindViewHolder(holder, position); + } + } + + +} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumGuideFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtSignedTxFragment.java similarity index 53% rename from app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumGuideFragment.java rename to app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtSignedTxFragment.java index a245b9a..f7560ed 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumGuideFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtSignedTxFragment.java @@ -15,30 +15,25 @@ * in the file COPYING. If not, see . */ -package com.cobo.cold.ui.fragment.main.electrum; +package com.cobo.cold.ui.fragment.main; -import android.os.Bundle; import android.view.View; -import com.cobo.cold.R; -import com.cobo.cold.databinding.ElectrumExportGuideBinding; -import com.cobo.cold.ui.fragment.BaseFragment; +import com.cobo.cold.db.entity.TxEntity; +import com.cobo.cold.ui.fragment.main.electrum.SignedTxFragment; -public class ElectrumGuideFragment extends BaseFragment { +import static com.cobo.cold.ui.fragment.main.PsbtTxConfirmFragment.showExportPsbtDialog; +public class PsbtSignedTxFragment extends SignedTxFragment { @Override - protected int setView() { - return R.layout.electrum_export_guide; + protected void displaySignResult(TxEntity txEntity) { + mBinding.txDetail.qr.setVisibility(View.GONE); + mBinding.txDetail.broadcastGuide.setVisibility(View.GONE); } @Override - protected void init(View view) { - mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); - mBinding.export.setOnClickListener(v -> navigate(R.id.export_electrum_ypub)); - } - - @Override - protected void initData(Bundle savedInstanceState) { - + protected void showExportDialog() { + showExportPsbtDialog(mActivity, txEntity.getTxId(), + txEntity.getSignedHex(), this::navigateUp); } } diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtTxConfirmFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtTxConfirmFragment.java new file mode 100644 index 0000000..21d4d03 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/PsbtTxConfirmFragment.java @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.ui.fragment.main; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; + +import com.cobo.cold.R; +import com.cobo.cold.databinding.ExportSdcardModalBinding; +import com.cobo.cold.ui.fragment.main.electrum.UnsignedTxFragment; +import com.cobo.cold.ui.modal.ModalDialog; +import com.cobo.cold.ui.views.AuthenticateModal; +import com.cobo.cold.update.utils.FileUtils; +import com.cobo.cold.update.utils.Storage; + +import java.io.File; +import java.util.Objects; + +import static com.cobo.cold.viewmodel.GlobalViewModel.exportSuccess; +import static com.cobo.cold.viewmodel.GlobalViewModel.hasSdcard; +import static com.cobo.cold.viewmodel.GlobalViewModel.showNoSdcardModal; + +public class PsbtTxConfirmFragment extends UnsignedTxFragment { + + private String psbtBase64; + @Override + protected void init(View view) { + super.init(view); + } + + static void showExportPsbtDialog(AppCompatActivity activity, String txId, String psbt, + Runnable onExportSuccess) { + ModalDialog modalDialog = ModalDialog.newInstance(); + ExportSdcardModalBinding binding = DataBindingUtil.inflate(LayoutInflater.from(activity), + R.layout.export_sdcard_modal, null, false); + String fileName = "signed_" + txId.substring(0, 8) + ".psbt"; + binding.title.setText(R.string.export_signed_txn); + binding.fileName.setText(fileName); + binding.actionHint.setVisibility(View.GONE); + binding.cancel.setOnClickListener(vv -> modalDialog.dismiss()); + binding.confirm.setOnClickListener(vv -> { + modalDialog.dismiss(); + if (hasSdcard(activity)) { + Storage storage = Storage.createByEnvironment(activity); + File file = new File(Objects.requireNonNull(storage).getExternalDir(), fileName); + boolean result = FileUtils.writeString(file, psbt); + if (result) { + exportSuccess(activity, onExportSuccess); + } + } else { + showNoSdcardModal(activity); + } + }); + modalDialog.setBinding(binding); + modalDialog.show(activity.getSupportFragmentManager(), ""); + } + + @Override + protected AuthenticateModal.OnVerify signWithVerifyInfo() { + return token -> { + viewModel.setToken(token); + viewModel.handleSignPsbt(psbtBase64); + subscribeSignState(); + }; + } + + @Override + protected void parseTx() { + psbtBase64 = Objects.requireNonNull(getArguments()).getString("psbt_base64"); + viewModel.parsePsbtBase64(psbtBase64); + } + + protected void onSignSuccess() { + showExportPsbtDialog(mActivity, viewModel.getTxId(), + viewModel.getTxHex(), this::navigateUp); + viewModel.getSignState().removeObservers(this); + } + + @Override + protected void initData(Bundle savedInstanceState) { + + } +} + + + diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/QRCodeScanFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/QRCodeScanFragment.java index a00b758..122f0fe 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/QRCodeScanFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/QRCodeScanFragment.java @@ -43,14 +43,15 @@ import com.cobo.cold.scan.bean.ZxingConfig; import com.cobo.cold.scan.bean.ZxingConfigBuilder; import com.cobo.cold.scan.camera.CameraManager; import com.cobo.cold.scan.view.PreviewFrame; -import com.cobo.cold.ui.MainActivity; import com.cobo.cold.ui.fragment.BaseFragment; import com.cobo.cold.ui.modal.ModalDialog; -import com.cobo.cold.viewmodel.ElectrumViewModel; +import com.cobo.cold.viewmodel.GlobalViewModel; import com.cobo.cold.viewmodel.QrScanViewModel; import com.cobo.cold.viewmodel.SharedDataViewModel; +import com.cobo.cold.viewmodel.SupportedWatchWallet; import com.cobo.cold.viewmodel.UnknowQrCodeException; import com.cobo.cold.viewmodel.UuidNotMatchException; +import com.cobo.cold.viewmodel.WatchWalletNotMatchException; import com.cobo.cold.viewmodel.XpubNotMatchException; import org.json.JSONException; @@ -59,6 +60,8 @@ import org.spongycastle.util.encoders.Hex; import java.io.IOException; import static com.cobo.cold.Utilities.IS_SETUP_VAULT; +import static com.cobo.cold.viewmodel.SupportedWatchWallet.ELECTRUM; +import static com.cobo.cold.viewmodel.SupportedWatchWallet.getSupportedWatchWallet; public class QRCodeScanFragment extends BaseFragment implements SurfaceHolder.Callback, Host { @@ -73,6 +76,7 @@ public class QRCodeScanFragment extends BaseFragment private QrScanViewModel viewModel; private ModalDialog dialog; + private SupportedWatchWallet watchWallet; @Override protected int setView() { @@ -81,6 +85,7 @@ public class QRCodeScanFragment extends BaseFragment @Override protected void init(View view) { + watchWallet = getSupportedWatchWallet(mActivity); boolean isSetupVault = getArguments() != null && getArguments().getBoolean(IS_SETUP_VAULT); purpose = getArguments() != null ? getArguments().getString("purpose") : ""; mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); @@ -98,7 +103,6 @@ public class QRCodeScanFragment extends BaseFragment } } - @Override public void onResume() { super.onResume(); @@ -183,8 +187,16 @@ public class QRCodeScanFragment extends BaseFragment navigateUp(); } else { try { - if (tryParseElecturmTx(res) != null) { - handleElectrumTx(res); + if (tryParseElectrumTx(res) != null) { + if (SupportedWatchWallet.getSupportedWatchWallet(mActivity) == ELECTRUM) { + handleElectrumTx(res); + } else { + alert(getString(R.string.identification_failed), + getString(R.string.master_pubkey_not_match) + + getString(R.string.watch_wallet_not_match, + SupportedWatchWallet.getSupportedWatchWallet(mActivity) + .getWalletName(mActivity))); + } } else { alert(getString(R.string.unsupported_qrcode)); } @@ -202,7 +214,7 @@ public class QRCodeScanFragment extends BaseFragment navigate(R.id.action_to_ElectrumTxConfirmFragment, bundle); } - private ElectrumTx tryParseElecturmTx(String res) throws XpubNotMatchException { + private ElectrumTx tryParseElectrumTx(String res) throws XpubNotMatchException { try { byte[] data = Base43.decode(res); ElectrumTx tx = ElectrumTx.parse(data); @@ -217,7 +229,7 @@ public class QRCodeScanFragment extends BaseFragment } private boolean checkElectrumExpub(ElectrumTx tx) { - String xpub = ViewModelProviders.of(mActivity).get(ElectrumViewModel.class).getXpub(); + String xpub = ViewModelProviders.of(mActivity).get(GlobalViewModel.class).getXpub(); return tx.getInputs() .stream() .allMatch(input -> xpub.equals(input.pubKey.xpub)); @@ -242,6 +254,12 @@ public class QRCodeScanFragment extends BaseFragment } catch (UnknowQrCodeException e) { e.printStackTrace(); alert(getString(R.string.unsupported_qrcode)); + } catch (WatchWalletNotMatchException e) { + e.printStackTrace(); + alert(getString(R.string.identification_failed), + getString(R.string.master_pubkey_not_match) + + getString(R.string.watch_wallet_not_match, + SupportedWatchWallet.getSupportedWatchWallet(mActivity).getWalletName(mActivity))); } } diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/ReceiveCoinFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/ReceiveCoinFragment.java index c53d285..8c21a09 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/ReceiveCoinFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/ReceiveCoinFragment.java @@ -28,6 +28,7 @@ import java.util.Objects; import static com.cobo.cold.ui.fragment.Constants.KEY_ADDRESS; import static com.cobo.cold.ui.fragment.Constants.KEY_ADDRESS_NAME; +import static com.cobo.cold.ui.fragment.Constants.KEY_ADDRESS_PATH; import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_CODE; public class ReceiveCoinFragment extends BaseFragment { @@ -44,6 +45,7 @@ public class ReceiveCoinFragment extends BaseFragment { mBinding.setAddress(data.getString(KEY_ADDRESS)); mBinding.setAddressName(data.getString(KEY_ADDRESS_NAME)); mBinding.setCoinCode(data.getString(KEY_COIN_CODE)); + mBinding.setPath(data.getString(KEY_ADDRESS_PATH)); mBinding.qrcode.setData(data.getString(KEY_ADDRESS)); } diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/TxConfirmFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/TxConfirmFragment.java index ae1bde2..21dcdc6 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/TxConfirmFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/TxConfirmFragment.java @@ -58,7 +58,7 @@ import java.util.Objects; import static com.cobo.cold.ui.fragment.Constants.KEY_NAV_ID; import static com.cobo.cold.ui.fragment.main.BroadcastTxFragment.KEY_TXID; -public class TxConfirmFragment extends BaseFragment { +public class TxConfirmFragment extends BaseFragment { public static final String KEY_TX_DATA = "tx_data"; private final Runnable forgetPassword = () -> { @@ -245,6 +245,7 @@ public class TxConfirmFragment extends BaseFragment { private void subscribeSignState() { viewModel.getSignState().observe(this, s -> { + if (TxConfirmViewModel.STATE_SIGNING.equals(s)) { signingDialog = SigningDialog.newInstance(); signingDialog.show(mActivity.getSupportFragmentManager(), ""); diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/TxListFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/TxListFragment.java index 55c8b19..fd6fec4 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/TxListFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/TxListFragment.java @@ -22,10 +22,7 @@ import android.os.Bundle; import android.text.TextUtils; import android.view.View; -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProviders; -import androidx.navigation.Navigation; import androidx.recyclerview.widget.RecyclerView; import com.cobo.cold.R; @@ -36,18 +33,16 @@ import com.cobo.cold.db.entity.TxEntity; import com.cobo.cold.ui.common.FilterableBaseBindingAdapter; import com.cobo.cold.ui.fragment.BaseFragment; import com.cobo.cold.viewmodel.CoinListViewModel; - -import org.json.JSONArray; -import org.json.JSONException; +import com.cobo.cold.viewmodel.SupportedWatchWallet; import java.util.Comparator; import java.util.Objects; import java.util.stream.Collectors; -import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_CODE; import static com.cobo.cold.ui.fragment.Constants.KEY_COIN_ID; import static com.cobo.cold.ui.fragment.main.TxFragment.KEY_TX_ID; import static com.cobo.cold.viewmodel.ElectrumViewModel.ELECTRUM_SIGN_ID; +import static com.cobo.cold.viewmodel.PsbtViewModel.WASABI_SIGN_ID; public class TxListFragment extends BaseFragment { @@ -56,16 +51,6 @@ public class TxListFragment extends BaseFragment { private String query; private Comparator txEntityComparator; - - static Fragment newInstance(@NonNull String coinId, @NonNull String coinCode) { - TxListFragment fragment = new TxListFragment(); - Bundle args = new Bundle(); - args.putString(KEY_COIN_ID, coinId); - args.putString(KEY_COIN_CODE, coinCode); - fragment.setArguments(args); - return fragment; - } - @Override protected int setView() { return R.layout.tx_list; @@ -78,15 +63,16 @@ public class TxListFragment extends BaseFragment { .get(CoinListViewModel.class); adapter = new TxAdapter(mActivity); mBinding.list.setAdapter(adapter); + mBinding.toolbar.setNavigationOnClickListener(v->navigateUp()); txCallback = tx -> { Bundle bundle = new Bundle(); bundle.putString(KEY_TX_ID, tx.getTxId()); - if (ELECTRUM_SIGN_ID.equals(tx.getSignId())) { - Navigation.findNavController(Objects.requireNonNull(getView())) - .navigate(R.id.action_to_electrumTxFragment, bundle); - } else { - Navigation.findNavController(Objects.requireNonNull(getView())) - .navigate(R.id.action_to_txFragment, bundle); + if (WASABI_SIGN_ID.equals(tx.getSignId())) { + navigate(R.id.action_to_psbtSignedTxFragment, bundle); + } else if(ELECTRUM_SIGN_ID.equals(tx.getSignId())){ + navigate(R.id.action_to_electrumTxFragment, bundle); + }else { + navigate(R.id.action_to_txFragment, bundle); } }; @@ -103,6 +89,7 @@ public class TxListFragment extends BaseFragment { }; txEntities = txEntities.stream() .filter(this::shouldShow) + .filter(this::filterByMode) .sorted(txEntityComparator) .collect(Collectors.toList()); adapter.setItems(txEntities); @@ -122,6 +109,21 @@ public class TxListFragment extends BaseFragment { }); } + private boolean filterByMode(TxEntity txEntity) { + SupportedWatchWallet watchWallet = SupportedWatchWallet.getSupportedWatchWallet(mActivity); + switch (watchWallet) { + case COBO: + return !txEntity.getSignId().endsWith("_sign_id"); + case ELECTRUM: + return ELECTRUM_SIGN_ID.equals(txEntity.getSignId()); + case WASABI: + return WASABI_SIGN_ID.equals(txEntity.getSignId()); + case BLUE: + return ELECTRUM_SIGN_ID.equals(txEntity.getSignId()); + } + return false; + } + private boolean shouldShow(TxEntity tx) { return Utilities.getCurrentBelongTo(mActivity).equals(tx.getBelongTo()); } @@ -152,38 +154,6 @@ public class TxListFragment extends BaseFragment { protected void onBindItem(TxListItemBinding binding, TxEntity item) { binding.setTx(item); binding.setTxCallback(txCallback); - if (ELECTRUM_SIGN_ID.equals(item.getSignId())) { - binding.fromWallet.setText(R.string.from_electrum); - binding.fromWallet.setVisibility(View.VISIBLE); - binding.amount.setVisibility(View.GONE); - } else { - binding.fromWallet.setVisibility(View.GONE); - } - updateFrom(binding, item); - updateTo(binding, item); - } - - private void updateTo(TxListItemBinding binding, TxEntity item) { - String to = item.getTo(); - binding.to.setText(item.getTo()); - try { - JSONArray outputs = new JSONArray(to); - binding.to.setText(outputs.getJSONObject(0).getString("address")); - } catch (JSONException e) { - e.printStackTrace(); - } - } - - private void updateFrom(TxListItemBinding binding, TxEntity item) { - String from = item.getFrom(); - binding.from.setText(item.getFrom()); - try { - JSONArray inputs = new JSONArray(from); - String address = inputs.getJSONObject(0).getString("address"); - binding.from.setText(address); - } catch (JSONException e) { - e.printStackTrace(); - } } } diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/WalletInfoFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/WalletInfoFragment.java new file mode 100644 index 0000000..4469f02 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/WalletInfoFragment.java @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.ui.fragment.main; + +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; + +import androidx.lifecycle.ViewModelProviders; + +import com.cobo.coinlib.utils.Coins; +import com.cobo.cold.R; +import com.cobo.cold.databinding.WalletInfoBinding; +import com.cobo.cold.ui.fragment.BaseFragment; +import com.cobo.cold.viewmodel.GlobalViewModel; +import com.cobo.cold.viewmodel.SupportedWatchWallet; +import com.cobo.cold.viewmodel.WalletInfoViewModel; + +import static com.cobo.cold.ui.fragment.Constants.KEY_TITLE; + +public class WalletInfoFragment extends BaseFragment { + private Coins.Account account; + + @Override + protected int setView() { + return R.layout.wallet_info; + } + + @Override + protected void init(View view) { + mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); + mBinding.switchAddress.setOnClickListener(v -> switchAddressFormat()); + account = GlobalViewModel.getAccount(mActivity); + SupportedWatchWallet watchOnly = SupportedWatchWallet.getSupportedWatchWallet(mActivity); + if (watchOnly != SupportedWatchWallet.ELECTRUM + && watchOnly != SupportedWatchWallet.GENERIC) { + mBinding.switchAddress.setVisibility(View.GONE); + } + mBinding.addressFormat.setText(getAddressFormat()); + mBinding.addressType.setText(account.getType()); + mBinding.path.setText(account.getPath()); + + WalletInfoViewModel viewModel = ViewModelProviders.of(this) + .get(WalletInfoViewModel.class); + + viewModel.getFingerprint().observe(this, s -> { + if (!TextUtils.isEmpty(s)) { + mBinding.fingerprint.setText(s); + } + }); + + viewModel.getXpub(account).observe(this, s -> { + if (!TextUtils.isEmpty(s)) { + mBinding.xpub.setText(s); + } + }); + + } + + private String getAddressFormat() { + switch (account) { + case SegWit: + return getString(R.string.native_segwit); + case P2PKH: + return getString(R.string.p2pkh); + case P2SH: + return getString(R.string.nested_segwit); + } + return ""; + } + + private void switchAddressFormat() { + Bundle data = new Bundle(); + data.putInt(KEY_TITLE, R.string.select_address_format); + navigate(R.id.action_to_selectAddressFormatFragment, data); + } + + @Override + protected void initData(Bundle savedInstanceState) { + + } +} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumBroadcastTxFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumBroadcastTxFragment.java index 5d93925..37f1098 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumBroadcastTxFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumBroadcastTxFragment.java @@ -39,7 +39,7 @@ import org.spongycastle.util.encoders.Hex; import java.util.Objects; -import static com.cobo.cold.ui.fragment.main.electrum.ElectrumTxConfirmFragment.showExportTxnDialog; +import static com.cobo.cold.ui.fragment.main.electrum.UnsignedTxFragment.showExportTxnDialog; public class ElectrumBroadcastTxFragment extends BaseFragment { diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumExportFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumExportFragment.java index 5fb8bc7..6bc5b44 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumExportFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumExportFragment.java @@ -26,23 +26,25 @@ import android.view.View; import androidx.databinding.DataBindingUtil; import androidx.lifecycle.ViewModelProviders; +import com.cobo.coinlib.utils.Coins; import com.cobo.cold.R; import com.cobo.cold.databinding.CommonModalBinding; import com.cobo.cold.databinding.ElectrumExportBinding; import com.cobo.cold.databinding.ExportSdcardModalBinding; import com.cobo.cold.ui.MainActivity; +import com.cobo.cold.ui.SetupVaultActivity; import com.cobo.cold.ui.fragment.BaseFragment; import com.cobo.cold.ui.modal.ModalDialog; import com.cobo.cold.update.utils.Storage; -import com.cobo.cold.viewmodel.ElectrumViewModel; +import com.cobo.cold.viewmodel.GlobalViewModel; + +import static com.cobo.cold.viewmodel.GlobalViewModel.exportSuccess; +import static com.cobo.cold.viewmodel.GlobalViewModel.showNoSdcardModal; +import static com.cobo.cold.viewmodel.GlobalViewModel.writeToSdcard; -import static com.cobo.cold.viewmodel.ElectrumViewModel.exportSuccess; -import static com.cobo.cold.viewmodel.ElectrumViewModel.showNoSdcardModal; -import static com.cobo.cold.viewmodel.ElectrumViewModel.writeToSdcard; public class ElectrumExportFragment extends BaseFragment { - private static final String EXTEND_PUB_FILE_NAME = "p2wpkh-p2sh-pubkey.txt"; private String exPub; @Override @@ -53,8 +55,13 @@ public class ElectrumExportFragment extends BaseFragment @Override protected void init(View view) { mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); - ElectrumViewModel viewModel = ViewModelProviders.of(mActivity).get(ElectrumViewModel.class); - viewModel.getMasterPublicKey().observe(this, s -> { + GlobalViewModel viewModel; + if (mActivity instanceof SetupVaultActivity) { + viewModel = ViewModelProviders.of(this).get(GlobalViewModel.class); + } else { + viewModel = ViewModelProviders.of(mActivity).get(GlobalViewModel.class); + } + viewModel.getExtendPublicKey().observe(this, s -> { if (!TextUtils.isEmpty(s)) { exPub = s; mBinding.qrcode.setData(s); @@ -62,9 +69,15 @@ public class ElectrumExportFragment extends BaseFragment } }); mBinding.info.setOnClickListener(v -> showElectrumInfo()); - mBinding.done.setOnClickListener(v->{ - MainActivity activity = (MainActivity) mActivity; - activity.getNavController().popBackStack(R.id.assetFragment,false); + mBinding.addressType.setText(getString(R.string.master_xpub, + GlobalViewModel.getAddressFormat(mActivity))); + mBinding.done.setOnClickListener(v -> { + if (mActivity instanceof SetupVaultActivity) { + navigate(R.id.action_to_setupCompleteFragment); + } else { + MainActivity activity = (MainActivity) mActivity; + activity.getNavController().popBackStack(R.id.assetFragment, false); + } }); mBinding.exportToSdcard.setOnClickListener(v -> { Storage storage = Storage.createByEnvironment(mActivity); @@ -75,12 +88,12 @@ public class ElectrumExportFragment extends BaseFragment ExportSdcardModalBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mActivity), R.layout.export_sdcard_modal, null, false); binding.title.setText(R.string.export_xpub_text_file); - binding.fileName.setText(EXTEND_PUB_FILE_NAME); + binding.fileName.setText(getFileName()); binding.actionHint.setText(R.string.electrum_import_xpub_action); binding.cancel.setOnClickListener(vv -> modalDialog.dismiss()); binding.confirm.setOnClickListener(vv -> { modalDialog.dismiss(); - if (writeToSdcard(storage, exPub, EXTEND_PUB_FILE_NAME)) { + if (writeToSdcard(storage, exPub, getFileName())) { exportSuccess(mActivity, null); } }); @@ -105,6 +118,19 @@ public class ElectrumExportFragment extends BaseFragment modalDialog.show(mActivity.getSupportFragmentManager(), ""); } + private String getFileName() { + Coins.Account account = GlobalViewModel.getAccount(mActivity); + switch (account) { + case SegWit: + return "p2wpkh-pubkey.txt"; + case P2SH: + return "p2wpkh-p2sh-pubkey.txt"; + case P2PKH: + return "p2pkh-pubkey.txt"; + } + return "p2wpkh-p2sh-pubkey.txt"; + } + @Override protected void initData(Bundle savedInstanceState) { diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxnListFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxnListFragment.java index acb51c0..306a942 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxnListFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxnListFragment.java @@ -21,7 +21,6 @@ import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import android.view.View; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.lifecycle.ViewModelProviders; @@ -29,8 +28,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.cobo.cold.R; import com.cobo.cold.databinding.ElectrumTxnBinding; -import com.cobo.cold.databinding.TxnListBinding; -import com.cobo.cold.ui.MainActivity; +import com.cobo.cold.databinding.FileListBinding; import com.cobo.cold.ui.common.BaseBindingAdapter; import com.cobo.cold.ui.fragment.BaseFragment; import com.cobo.cold.ui.modal.ModalDialog; @@ -38,9 +36,9 @@ import com.cobo.cold.viewmodel.ElectrumViewModel; import java.util.concurrent.atomic.AtomicBoolean; -import static com.cobo.cold.viewmodel.ElectrumViewModel.hasSdcard; +import static com.cobo.cold.viewmodel.GlobalViewModel.hasSdcard; -public class ElectrumTxnListFragment extends BaseFragment +public class ElectrumTxnListFragment extends BaseFragment implements Callback { public static final String TAG = "ElectrumTxnListFragment"; @@ -50,14 +48,12 @@ public class ElectrumTxnListFragment extends BaseFragment @Override protected int setView() { - return R.layout.txn_list; + return R.layout.file_list; } @Override protected void init(View view) { - mActivity.setSupportActionBar(mBinding.toolbar); - mBinding.toolbar.setNavigationOnClickListener(((MainActivity) mActivity)::toggleDrawer); - mBinding.toolbar.setTitle(""); + mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); viewModel = ViewModelProviders.of(mActivity).get(ElectrumViewModel.class); adapter = new TxnAdapter(mActivity, this); initViews(); diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ExportXpubGuideFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ExportXpubGuideFragment.java new file mode 100644 index 0000000..d2a1391 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ExportXpubGuideFragment.java @@ -0,0 +1,177 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.ui.fragment.main.electrum; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.databinding.DataBindingUtil; + +import com.cobo.cold.R; +import com.cobo.cold.databinding.ExportSdcardModalBinding; +import com.cobo.cold.databinding.ExportXpubGuideBinding; +import com.cobo.cold.ui.MainActivity; +import com.cobo.cold.ui.SetupVaultActivity; +import com.cobo.cold.ui.fragment.BaseFragment; +import com.cobo.cold.ui.modal.ModalDialog; +import com.cobo.cold.update.utils.Storage; +import com.cobo.cold.viewmodel.GlobalViewModel; +import com.cobo.cold.viewmodel.SupportedWatchWallet; + +import org.json.JSONObject; + +import static com.cobo.cold.viewmodel.GlobalViewModel.exportSuccess; +import static com.cobo.cold.viewmodel.GlobalViewModel.showNoSdcardModal; +import static com.cobo.cold.viewmodel.GlobalViewModel.writeToSdcard; + +public class ExportXpubGuideFragment extends BaseFragment { + + private SupportedWatchWallet watchWallet; + private JSONObject wasabiXpubJson; + private static final String WASABI_XPUB_FILENAME = "CoboVault-Wasabi.json"; + @Override + protected int setView() { + return R.layout.export_xpub_guide; + } + + @Override + protected void init(View view) { + watchWallet = SupportedWatchWallet.getSupportedWatchWallet(mActivity); + mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); + mBinding.toolbarTitle.setText(getTitle()); + mBinding.export.setOnClickListener(v -> export()); + if (mActivity instanceof MainActivity) { + mBinding.skip.setVisibility(View.GONE); + } else { + mBinding.skip.setOnClickListener(v -> navigate(R.id.action_to_setupCompleteFragment)); + } + + mBinding.text1.setText(getText1()); + mBinding.text2.setText(getText2()); + mBinding.export.setText(getButtonText()); + wasabiXpubJson = GlobalViewModel.getXpubInfo(mActivity); + } + + private void export() { + switch (watchWallet) { + case ELECTRUM: + navigate(R.id.export_electrum_ypub); + break; + case COBO: + navigate(R.id.export_xpub_cobo); + break; + case WASABI: + exportXpub(); + break; + case BLUE: + //return R.string.show_qrcode; + break; + case GENERIC: + //navigate(R.id.export_electrum_ypub); + break; + } + } + + public void exportXpub() { + Storage storage = Storage.createByEnvironment(mActivity); + if (storage == null || storage.getExternalDir() == null) { + showNoSdcardModal(mActivity); + } else { + ModalDialog modalDialog = ModalDialog.newInstance(); + ExportSdcardModalBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mActivity), + R.layout.export_sdcard_modal, null, false); + binding.title.setText(R.string.export_xpub_text_file); + binding.fileName.setText(WASABI_XPUB_FILENAME); + binding.actionHint.setVisibility(View.GONE); + binding.cancel.setOnClickListener(vv -> modalDialog.dismiss()); + binding.confirm.setOnClickListener(vv -> { + modalDialog.dismiss(); + if (writeToSdcard(storage, wasabiXpubJson.toString(), WASABI_XPUB_FILENAME)) { + Runnable runnable = null; + if (mActivity instanceof SetupVaultActivity) { + runnable = () -> navigate(R.id.action_to_setupCompleteFragment); + } + exportSuccess(mActivity, runnable); + } + }); + modalDialog.setBinding(binding); + modalDialog.show(mActivity.getSupportFragmentManager(), ""); + } + } + + private int getButtonText() { + switch (watchWallet) { + case ELECTRUM: + return R.string.show_master_public_key_qrcode; + case WASABI: + return R.string.export_wallet; + case COBO: + case BLUE: + return R.string.show_qrcode; + } + return 0; + } + + private int getTitle() { + switch (watchWallet) { + case ELECTRUM: + return R.string.export_xpub_guide_title_electrum; + case WASABI: + return R.string.export_xpub_guide_title_wasabi; + case COBO: + return R.string.export_xpub_guide_title_cobo; + case BLUE: + return R.string.export_xpub_guide_title_blue; + } + return 0; + } + + private int getText1() { + switch (watchWallet) { + case ELECTRUM: + return R.string.export_xpub_guide_text1_electrum; + case WASABI: + return R.string.export_xpub_guide_text1_wasabi; + case COBO: + return R.string.export_xpub_guide_text1_cobo; + case BLUE: + return R.string.export_xpub_guide_text1_blue; + } + return 0; + } + + private int getText2() { + switch (watchWallet) { + case ELECTRUM: + return R.string.export_xpub_guide_text2_electrum; + case WASABI: + return R.string.export_xpub_guide_text2_wasabi; + case COBO: + return R.string.export_xpub_guide_text2_cobo; + case BLUE: + return R.string.export_xpub_guide_text2_blue; + } + return 0; + } + + @Override + protected void initData(Bundle savedInstanceState) { + + } +} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/SignedTxFragment.java similarity index 75% rename from app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxFragment.java rename to app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/SignedTxFragment.java index e18c7d8..6e3a596 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/SignedTxFragment.java @@ -29,13 +29,14 @@ import androidx.lifecycle.ViewModelProviders; import com.cobo.coinlib.utils.Base43; import com.cobo.coinlib.utils.Coins; import com.cobo.cold.R; -import com.cobo.cold.databinding.ElectrumTxBinding; +import com.cobo.cold.databinding.SignedTxBinding; import com.cobo.cold.db.entity.TxEntity; import com.cobo.cold.ui.fragment.BaseFragment; import com.cobo.cold.ui.fragment.main.TransactionItem; import com.cobo.cold.ui.fragment.main.TransactionItemAdapter; import com.cobo.cold.viewmodel.CoinListViewModel; -import com.cobo.cold.viewmodel.ElectrumViewModel; +import com.cobo.cold.viewmodel.GlobalViewModel; +import com.cobo.cold.viewmodel.SupportedWatchWallet; import org.json.JSONArray; import org.json.JSONException; @@ -47,51 +48,46 @@ import java.util.List; import java.util.Objects; import static com.cobo.cold.ui.fragment.main.electrum.ElectrumBroadcastTxFragment.showElectrumInfo; -import static com.cobo.cold.ui.fragment.main.electrum.ElectrumTxConfirmFragment.showExportTxnDialog; +import static com.cobo.cold.ui.fragment.main.electrum.UnsignedTxFragment.showExportTxnDialog; -public class ElectrumTxFragment extends BaseFragment { +public class SignedTxFragment extends BaseFragment { - public static final String KEY_TX_ID = "txid"; - private TxEntity txEntity; + private static final String KEY_TX_ID = "txid"; + protected TxEntity txEntity; private List changeAddress = new ArrayList<>(); @Override protected int setView() { - return R.layout.electrum_tx; + return R.layout.signed_tx; } @Override protected void init(View view) { Bundle data = Objects.requireNonNull(getArguments()); mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); + String walletName = SupportedWatchWallet.getSupportedWatchWallet(mActivity) + .getWalletName(mActivity); + mBinding.txDetail.watchWallet.setText(walletName); + + ViewModelProviders.of(mActivity) + .get(GlobalViewModel.class) + .getChangeAddress() + .observe(this, address -> this.changeAddress = address); CoinListViewModel viewModel = ViewModelProviders.of(mActivity).get(CoinListViewModel.class); viewModel.loadTx(data.getString(KEY_TX_ID)).observe(this, txEntity -> { mBinding.setTx(txEntity); this.txEntity = txEntity; - String signTx = getSignTxString(txEntity); - if (signTx.length() <= 1000) { - new Handler().postDelayed(() -> mBinding.txDetail.qrcodeLayout.qrcode.setData(signTx), 500); - mBinding.txDetail.export.setVisibility(View.GONE); - mBinding.txDetail.exportToSdcardHint.setOnClickListener(v -> - showExportTxnDialog(mActivity, txEntity.getTxId(), txEntity.getSignedHex(), null)); - mBinding.txDetail.info.setOnClickListener(v -> showElectrumInfo(mActivity)); - } else { - mBinding.txDetail.qr.setVisibility(View.GONE); - } + displaySignResult(txEntity); refreshAmount(); refreshFromList(); refreshReceiveList(); - mBinding.txDetail.exportToSdcard.setOnClickListener(v -> { - showExportTxnDialog(mActivity, txEntity.getTxId(), txEntity.getSignedHex(),null); - }); + mBinding.txDetail.exportToSdcard.setOnClickListener(v -> showExportDialog()); }); + } - ViewModelProviders.of(mActivity) - .get(ElectrumViewModel.class) - .getChangeAddress() - .observe(this, address -> this.changeAddress = address); - + protected void showExportDialog() { + showExportTxnDialog(mActivity, txEntity.getTxId(), txEntity.getSignedHex(),null); } private void refreshFromList() { @@ -150,9 +146,18 @@ public class ElectrumTxFragment extends BaseFragment { } - private String getSignTxString(TxEntity txEntity) { + protected void displaySignResult(TxEntity txEntity) { byte[] txData = Hex.decode(txEntity.getSignedHex()); - return Base43.encode(txData); + String base43 = Base43.encode(txData); + if (base43.length() <= 1000) { + new Handler().postDelayed(() -> mBinding.txDetail.qrcodeLayout.qrcode.setData(base43), 500); + mBinding.txDetail.export.setVisibility(View.GONE); + mBinding.txDetail.exportToSdcardHint.setOnClickListener(v -> + showExportTxnDialog(mActivity, txEntity.getTxId(), txEntity.getSignedHex(), null)); + mBinding.txDetail.info.setOnClickListener(v -> showElectrumInfo(mActivity)); + } else { + mBinding.txDetail.qr.setVisibility(View.GONE); + } } } diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxConfirmFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/UnsignedTxFragment.java similarity index 88% rename from app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxConfirmFragment.java rename to app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/UnsignedTxFragment.java index b71dbbc..b23f05c 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/ElectrumTxConfirmFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/main/electrum/UnsignedTxFragment.java @@ -50,8 +50,10 @@ import com.cobo.cold.ui.modal.SigningDialog; import com.cobo.cold.ui.views.AuthenticateModal; import com.cobo.cold.update.utils.Storage; import com.cobo.cold.util.KeyStoreUtil; -import com.cobo.cold.viewmodel.ElectrumViewModel; +import com.cobo.cold.viewmodel.GlobalViewModel; +import com.cobo.cold.viewmodel.SupportedWatchWallet; import com.cobo.cold.viewmodel.TxConfirmViewModel; +import com.cobo.cold.viewmodel.WatchWalletNotMatchException; import com.cobo.cold.viewmodel.XpubNotMatchException; import org.json.JSONArray; @@ -66,13 +68,13 @@ import java.util.Objects; import static com.cobo.cold.ui.fragment.Constants.KEY_NAV_ID; import static com.cobo.cold.ui.fragment.main.BroadcastTxFragment.KEY_TXID; -import static com.cobo.cold.viewmodel.ElectrumViewModel.exportSuccess; -import static com.cobo.cold.viewmodel.ElectrumViewModel.hasSdcard; -import static com.cobo.cold.viewmodel.ElectrumViewModel.showNoSdcardModal; -import static com.cobo.cold.viewmodel.ElectrumViewModel.writeToSdcard; +import static com.cobo.cold.viewmodel.GlobalViewModel.exportSuccess; +import static com.cobo.cold.viewmodel.GlobalViewModel.hasSdcard; +import static com.cobo.cold.viewmodel.GlobalViewModel.showNoSdcardModal; +import static com.cobo.cold.viewmodel.GlobalViewModel.writeToSdcard; import static com.cobo.cold.viewmodel.TxConfirmViewModel.STATE_NONE; -public class ElectrumTxConfirmFragment extends BaseFragment { +public class UnsignedTxFragment extends BaseFragment { private final Runnable forgetPassword = () -> { Bundle data = new Bundle(); @@ -80,15 +82,14 @@ public class ElectrumTxConfirmFragment extends BaseFragment changeAddress = new ArrayList<>(); - public static void showExportTxnDialog(AppCompatActivity activity, String txId, String hex, - Runnable onExportSuccess) { + static void showExportTxnDialog(AppCompatActivity activity, String txId, String hex, + Runnable onExportSuccess) { ModalDialog modalDialog = ModalDialog.newInstance(); ExportSdcardModalBinding binding = DataBindingUtil.inflate(LayoutInflater.from(activity), R.layout.export_sdcard_modal, null, false); @@ -101,7 +102,8 @@ public class ElectrumTxConfirmFragment extends BaseFragment navigateUp()); mBinding.txDetail.txIdInfo.setVisibility(View.GONE); mBinding.txDetail.export.setVisibility(View.GONE); mBinding.txDetail.qr.setVisibility(View.GONE); - txnData = bundle.getString("txn"); + + String walletName = SupportedWatchWallet.getSupportedWatchWallet(mActivity) + .getWalletName(mActivity); + mBinding.txDetail.watchWallet.setText(walletName); + viewModel = ViewModelProviders.of(this).get(TxConfirmViewModel.class); mBinding.setViewModel(viewModel); - subscribeTxEntityState(); - mBinding.sign.setOnClickListener(v -> handleSign()); ViewModelProviders.of(mActivity) - .get(ElectrumViewModel.class) + .get(GlobalViewModel.class) .getChangeAddress() .observe(this, address -> this.changeAddress = address); + subscribeTxEntityState(); + mBinding.sign.setOnClickListener(v -> handleSign()); } private void handleSign() { @@ -179,7 +184,7 @@ public class ElectrumTxConfirmFragment extends BaseFragment { viewModel.setToken(token); viewModel.handleSign(); @@ -187,44 +192,40 @@ public class ElectrumTxConfirmFragment extends BaseFragment { if (txEntity != null) { dialog.dismiss(); this.txEntity = txEntity; mBinding.setTx(txEntity); - refreshAmount(); - refreshFromList(); - refreshReceiveList(); + refreshUI(); } }); + observeParseTx(dialog); + } - viewModel.getAddingAddressState().observe(this, b -> { - if (b) { - addingAddressDialog = ModalDialog.newInstance(); - ProgressModalBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mActivity), - R.layout.progress_modal, null, false); - binding.text.setText(R.string.sync_in_progress); - binding.text.setVisibility(View.VISIBLE); - addingAddressDialog.setBinding(binding); - addingAddressDialog.show(mActivity.getSupportFragmentManager(), ""); - } else { - if (addingAddressDialog != null) { - addingAddressDialog.dismiss(); - } - } - }); + private void refreshUI() { + refreshAmount(); + refreshFromList(); + refreshReceiveList(); + } + private void observeParseTx(ProgressModalDialog dialog) { viewModel.parseTxException().observe(this, ex -> { if (ex != null) { ex.printStackTrace(); dialog.dismiss(); String errorMessage = getString(R.string.incorrect_tx_data); - if (ex instanceof XpubNotMatchException) { + if (ex instanceof XpubNotMatchException || ex instanceof WatchWalletNotMatchException) { errorMessage = getString(R.string.master_pubkey_not_match); } ModalDialog.showCommonModal(mActivity, @@ -237,6 +238,24 @@ public class ElectrumTxConfirmFragment extends BaseFragment { + if (b) { + addingAddressDialog = ModalDialog.newInstance(); + ProgressModalBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mActivity), + R.layout.progress_modal, null, false); + binding.text.setText(R.string.sync_in_progress); + binding.text.setVisibility(View.VISIBLE); + addingAddressDialog.setBinding(binding); + addingAddressDialog.show(mActivity.getSupportFragmentManager(), ""); + } else { + if (addingAddressDialog != null) { + addingAddressDialog.dismiss(); + } + } + }); + } + private void refreshAmount() { SpannableStringBuilder style = new SpannableStringBuilder(txEntity.getAmount()); style.setSpan(new ForegroundColorSpan(mActivity.getColor(R.color.colorAccent)), @@ -291,7 +310,7 @@ public class ElectrumTxConfirmFragment extends BaseFragment { if (TxConfirmViewModel.STATE_SIGNING.equals(s)) { signingDialog = SigningDialog.newInstance(); @@ -326,7 +345,7 @@ public class ElectrumTxConfirmFragment extends BaseFragment. + */ + +package com.cobo.cold.ui.fragment.setting; + +import android.os.Bundle; +import android.view.View; + +import com.cobo.coinlib.utils.Coins; +import com.cobo.cold.R; +import com.cobo.cold.Utilities; +import com.cobo.cold.ui.SetupVaultActivity; +import com.cobo.cold.viewmodel.SupportedWatchWallet; + +import java.util.Arrays; + +import static com.cobo.cold.ui.fragment.Constants.KEY_TITLE; +import static com.cobo.cold.ui.fragment.setting.MainPreferenceFragment.SETTING_ADDRESS_FORMAT; +import static com.cobo.cold.ui.fragment.setting.MainPreferenceFragment.SETTING_CHOOSE_WATCH_WALLET; + +public class ChooseWatchWalletFragment extends ListPreferenceFragment { + + @Override + protected void init(View view) { + Bundle data = getArguments(); + if (data != null) { + mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); + mBinding.toolbarTitle.setText(data.getInt(KEY_TITLE)); + } else { + mBinding.toolbar.setVisibility(View.GONE); + } + prefs = Utilities.getPrefs(mActivity); + entries = getResources().getStringArray(getEntries()); + values = getResources().getStringArray(getValues()); + value = prefs.getString(getKey(), defaultValue()); + adapter = new Adapter(mActivity); + if (mActivity instanceof SetupVaultActivity) { + adapter.setItems(Arrays.asList(Arrays.copyOfRange(entries,0,entries.length - 1))); + } else { + adapter.setItems(Arrays.asList(entries)); + } + mBinding.list.setAdapter(adapter); + } + + @Override + protected int getEntries() { + return R.array.watch_wallet_list; + } + + @Override + protected int getValues() { + return R.array.watch_wallet_list_values; + } + + @Override + protected String getKey() { + return SETTING_CHOOSE_WATCH_WALLET; + } + + @Override + protected String defaultValue() { + return SupportedWatchWallet.ELECTRUM.getWalletId(); + } + + @Override + public void onSelect(int position) { + String old = value; + value = values[position].toString(); + if (!old.equals(value)) { + setWatchWallet(); + adapter.notifyDataSetChanged(); + } + } + + private void setWatchWallet() { + prefs.edit().putString(SETTING_CHOOSE_WATCH_WALLET, value).apply(); + if (value.equals(SupportedWatchWallet.COBO.getWalletId())) { + prefs.edit().putString(SETTING_ADDRESS_FORMAT, Coins.Account.P2SH.getType()).apply(); + } else if (value.equals(SupportedWatchWallet.WASABI.getWalletId()) + || value.equals(SupportedWatchWallet.BLUE.getWalletId())) { + prefs.edit().putString(SETTING_ADDRESS_FORMAT, Coins.Account.SegWit.getType()).apply(); + } + } +} + diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/setting/FingerprintEnrollFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/setting/FingerprintEnrollFragment.java index bc6969c..2744cf5 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/setting/FingerprintEnrollFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/setting/FingerprintEnrollFragment.java @@ -19,6 +19,8 @@ package com.cobo.cold.ui.fragment.setting; import android.hardware.fingerprint.Fingerprint; import android.os.Bundle; +import android.text.InputFilter; +import android.text.InputType; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; @@ -231,6 +233,9 @@ public class FingerprintEnrollFragment extends BaseFragment dialog.dismiss()); binding.confirm.setOnClickListener(v -> { fingerprintKit.renameFingerprint(currentEnrolled, Objects.requireNonNull(input.get())); diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/setting/FingerprintManageFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/setting/FingerprintManageFragment.java index fc50b97..1bf7ecb 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/setting/FingerprintManageFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/setting/FingerprintManageFragment.java @@ -21,6 +21,7 @@ import android.graphics.Color; import android.hardware.fingerprint.Fingerprint; import android.os.Bundle; import android.text.InputFilter; +import android.text.InputType; import android.view.LayoutInflater; import android.view.View; @@ -115,6 +116,8 @@ public class FingerprintManageFragment extends BaseFragment dialog.dismiss()); binding.confirm.setOnClickListener(v -> { fpKit.renameFingerprint(fingerprint, input.get()); diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/setting/ListPreferenceFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/setting/ListPreferenceFragment.java index ed7379a..d61b13b 100644 --- a/app/src/main/java/com/cobo/cold/ui/fragment/setting/ListPreferenceFragment.java +++ b/app/src/main/java/com/cobo/cold/ui/fragment/setting/ListPreferenceFragment.java @@ -34,18 +34,18 @@ import com.cobo.cold.ui.common.BaseBindingAdapter; import com.cobo.cold.ui.fragment.BaseFragment; import java.util.Arrays; -import java.util.Objects; import static com.cobo.cold.ui.fragment.Constants.KEY_TITLE; -public abstract class ListPreferenceFragment extends BaseFragment - implements ListPreferenceCallback { +public abstract class ListPreferenceFragment + extends BaseFragment implements ListPreferenceCallback { protected Adapter adapter; protected SharedPreferences prefs; protected CharSequence[] values; protected String value; - private CharSequence[] entries; + protected CharSequence[] entries; + protected CharSequence[] subTitles; @Override protected int setView() { @@ -62,9 +62,13 @@ public abstract class ListPreferenceFragment extends BaseFragment navigateUp()); - mBinding.toolbarTitle.setText(getArguments().getInt(KEY_TITLE)); + Bundle data = getArguments(); + if (data != null) { + mBinding.toolbar.setNavigationOnClickListener(v -> navigateUp()); + mBinding.toolbarTitle.setText(data.getInt(KEY_TITLE)); + } else { + mBinding.toolbar.setVisibility(View.GONE); + } prefs = Utilities.getPrefs(mActivity); entries = getResources().getStringArray(getEntries()); values = getResources().getStringArray(getValues()); @@ -94,6 +98,12 @@ public abstract class ListPreferenceFragment extends BaseFragment { @@ -262,6 +270,12 @@ public class MainPreferenceFragment extends PreferenceFragmentCompat { update(); } break; + case SETTING_CHOOSE_WATCH_WALLET: + Bundle data = new Bundle(); + data.putInt(Constants.KEY_TITLE, R.string.setting_language); + Navigation.findNavController(Objects.requireNonNull(getView())) + .navigate(R.id.action_to_chooseWatchOnly, data); + break; default: break; } diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/setup/SelectAddressFormatFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/setup/SelectAddressFormatFragment.java new file mode 100644 index 0000000..c97b4c9 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/ui/fragment/setup/SelectAddressFormatFragment.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.ui.fragment.setup; + +import android.view.View; + +import com.cobo.coinlib.utils.Coins; +import com.cobo.cold.R; +import com.cobo.cold.ui.MainActivity; +import com.cobo.cold.ui.fragment.setting.ListPreferenceFragment; + +import static com.cobo.cold.ui.fragment.setting.MainPreferenceFragment.SETTING_ADDRESS_FORMAT; + +public class SelectAddressFormatFragment extends ListPreferenceFragment { + + @Override + protected void init(View view) { + super.init(view); + subTitles = getResources().getStringArray(R.array.address_format_subtitle); + mBinding.confirm.setVisibility(View.VISIBLE); + mBinding.confirm.setText(R.string.next); + mBinding.confirm.setOnClickListener(v -> next()); + if (mActivity instanceof MainActivity) { + mBinding.confirm.setVisibility(View.GONE); + } + } + + private void next() { + navigate(R.id.action_to_export_xpub_guide); + } + + @Override + protected int getEntries() { + return R.array.address_format; + } + + @Override + protected int getValues() { + return R.array.address_format_value; + } + + @Override + protected String getKey() { + return SETTING_ADDRESS_FORMAT; + } + + @Override + protected String defaultValue() { + return Coins.Account.P2SH.getType(); + } + + @Override + public void onSelect(int position) { + String old = value; + value = values[position].toString(); + if (!old.equals(value)) { + prefs.edit().putString(getKey(), value).apply(); + adapter.notifyDataSetChanged(); + } + } +} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/setup/SetupSyncFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/setup/SetupSyncFragment.java deleted file mode 100644 index 3494de2..0000000 --- a/app/src/main/java/com/cobo/cold/ui/fragment/setup/SetupSyncFragment.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2020 Cobo - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * in the file COPYING. If not, see . - */ - -package com.cobo.cold.ui.fragment.setup; - -import android.text.TextUtils; -import android.view.View; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.ViewModelProviders; - -import com.cobo.cold.R; -import com.cobo.cold.databinding.SetupSyncBinding; -import com.cobo.cold.db.entity.CoinEntity; -import com.cobo.cold.viewmodel.CoinListViewModel; -import com.cobo.cold.viewmodel.SetupVaultViewModel; - -import java.util.List; - -public class SetupSyncFragment extends SetupVaultBaseFragment { - - @Override - protected int setView() { - return R.layout.setup_sync; - } - - @Override - protected void init(View view) { - super.init(view); - mBinding.complete.setOnClickListener(this::complete); - SetupVaultViewModel model = ViewModelProviders.of(mActivity).get(SetupVaultViewModel.class); - subscribe(model.getCoins()); - } - - private void complete(View view) { - navigate(R.id.action_to_setupCompleteFragment); - } - - private void subscribe(LiveData> coins) { - coins.observe(this, this::generateSyncData); - } - - private void generateSyncData(List coinEntities) { - ViewModelProviders.of(mActivity).get(CoinListViewModel.class) - .generateSync(coinEntities).observe(this, sync -> { - if (!TextUtils.isEmpty(sync)) { - mBinding.sync.qrcodeLayout.qrcode.setData(sync); - } - }); - } -} diff --git a/app/src/main/java/com/cobo/cold/ui/fragment/setup/SetupWatchWalletFragment.java b/app/src/main/java/com/cobo/cold/ui/fragment/setup/SetupWatchWalletFragment.java new file mode 100644 index 0000000..e2ce07b --- /dev/null +++ b/app/src/main/java/com/cobo/cold/ui/fragment/setup/SetupWatchWalletFragment.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.ui.fragment.setup; + +import android.os.Bundle; +import android.view.View; + +import com.cobo.cold.R; +import com.cobo.cold.databinding.SetupWatchWalletBinding; +import com.cobo.cold.viewmodel.SupportedWatchWallet; + +import static com.cobo.cold.ui.fragment.Constants.KEY_TITLE; +import static com.cobo.cold.viewmodel.SupportedWatchWallet.getSupportedWatchWallet; + +public class SetupWatchWalletFragment extends SetupVaultBaseFragment { + + @Override + protected int setView() { + return R.layout.setup_watch_wallet; + } + + @Override + protected void init(View view) { + super.init(view); + mBinding.complete.setOnClickListener(v -> complete()); + } + + private void complete() { + int navId = 0; + Bundle data = new Bundle(); + SupportedWatchWallet selectWatchOnlyWallet = getSupportedWatchWallet(mActivity); + switch (selectWatchOnlyWallet) { + case ELECTRUM: + data.putInt(KEY_TITLE, R.string.select_address_format); + navId = R.id.action_to_selectAddressFormatFragment; + break; + case COBO: + case WASABI: + case BLUE: + navId = R.id.action_to_export_xpub_guide; + break; + } + navigate(navId, data); + } +} diff --git a/app/src/main/java/com/cobo/cold/ui/views/DrawerAdapter.java b/app/src/main/java/com/cobo/cold/ui/views/DrawerAdapter.java index d5aed00..2f3087e 100644 --- a/app/src/main/java/com/cobo/cold/ui/views/DrawerAdapter.java +++ b/app/src/main/java/com/cobo/cold/ui/views/DrawerAdapter.java @@ -43,8 +43,6 @@ public class DrawerAdapter extends RecyclerView.Adapter { public OnItemClickListener listener; private final List dataList = Arrays.asList( new DrawerItem(R.id.drawer_wallet, R.drawable.drawer_wallet, R.string.drawer_menu_my_vault), - new DrawerItem(R.id.drawer_sync, R.drawable.drawer_asset_observation, R.string.drawer_menu_sync), - new DrawerItem(R.id.drawer_sdcard, R.drawable.drawer_sdcard, R.string.read_sdcard), new DrawerItem(R.id.drawer_settings, R.drawable.drawer_setting, R.string.drawer_menu_setting), new DrawerItem(R.id.drawer_about, R.drawable.drawer_about, R.string.drawer_menu_about) ); diff --git a/app/src/main/java/com/cobo/cold/viewmodel/AddAddressViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/AddAddressViewModel.java index 75707fc..609b0a7 100644 --- a/app/src/main/java/com/cobo/cold/viewmodel/AddAddressViewModel.java +++ b/app/src/main/java/com/cobo/cold/viewmodel/AddAddressViewModel.java @@ -19,57 +19,62 @@ package com.cobo.cold.viewmodel; import android.app.Application; import android.os.AsyncTask; -import android.text.TextUtils; import androidx.annotation.NonNull; -import androidx.databinding.ObservableField; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; -import androidx.lifecycle.ViewModelProvider; -import com.cobo.coinlib.coins.AbsDeriver; +import com.cobo.coinlib.coins.BTC.Btc; +import com.cobo.coinlib.coins.BTC.Deriver; import com.cobo.coinlib.exception.InvalidPathException; -import com.cobo.coinlib.path.Account; +import com.cobo.coinlib.path.AddressIndex; +import com.cobo.coinlib.path.CoinPath; import com.cobo.coinlib.utils.Coins; import com.cobo.cold.DataRepository; import com.cobo.cold.MainApplication; -import com.cobo.cold.callables.GetExtendedPublicKeyCallable; import com.cobo.cold.db.entity.AccountEntity; import com.cobo.cold.db.entity.AddressEntity; import com.cobo.cold.db.entity.CoinEntity; import java.util.ArrayList; import java.util.List; +import java.util.Optional; public class AddAddressViewModel extends AndroidViewModel { private final DataRepository mRepo; public CoinEntity coin; - private final ObservableField loading = new ObservableField<>(); + private final MutableLiveData addComplete = new MutableLiveData<>(); - private AddAddressViewModel(@NonNull Application application, DataRepository repository, - final long id) { + public AddAddressViewModel(@NonNull Application application) { super(application); - mRepo = repository; + mRepo = ((MainApplication)application).getRepository(); } - public ObservableField getLoading() { - return loading; - } + public void addAddress(int count, Btc.AddressType type, int changeIndex) { + String hdPath; + switch (type) { + case P2SH: + hdPath = Coins.Account.P2SH.getPath(); + break; + case SegWit: + hdPath = Coins.Account.SegWit.getPath(); + break; + default: + hdPath = Coins.Account.P2PKH.getPath(); + break; + } + List accounts = mRepo.loadAccountsForCoin(coin); - public void addAddress(List addrs) { - loading.set(true); - new AddAddressTask(coin, mRepo, () -> { - loading.set(false); - addComplete.setValue(Boolean.TRUE); - }).execute(addrs.toArray(new String[0])); - } + accounts.stream() + .filter(account -> account.getHdPath().toUpperCase().equals(hdPath)) + .findFirst() + .ifPresent(accountEntity -> new AddAddressTask(coin, mRepo, + () -> addComplete.setValue(Boolean.TRUE), accountEntity.getExPub(), + changeIndex).execute(count)); - public void addAddress(CoinEntity coinEntity, DataRepository repo, String addrName) { - new AddAddressTask(coinEntity, repo, null).execute(addrName); } public CoinEntity getCoin(String coinId) { @@ -81,85 +86,79 @@ public class AddAddressViewModel extends AndroidViewModel { return addComplete; } - public static class Factory extends ViewModelProvider.NewInstanceFactory { - @NonNull - private final Application mApplication; - - private final long mId; - - private final DataRepository mRepository; - - public Factory(@NonNull Application application, long id) { - mApplication = application; - mId = id; - mRepository = ((MainApplication) application).getRepository(); - } - - @NonNull - @Override - public T create(@NonNull Class modelClass) { - //noinspection unchecked - return (T) new AddAddressViewModel(mApplication, mRepository, mId); - } - } - - static class AddAddressTask extends AsyncTask { + static class AddAddressTask extends AsyncTask { private final CoinEntity coinEntity; private final DataRepository repo; private final Runnable onComplete; - - AddAddressTask(CoinEntity coinEntity, DataRepository repo, Runnable onComplete) { + private String xpub; + private int changeIndex; + + AddAddressTask(CoinEntity coinEntity, + DataRepository repo, + Runnable onComplete, + @NonNull String xpub, + int changeIndex) { this.coinEntity = coinEntity; this.repo = repo; this.onComplete = onComplete; + this.changeIndex = changeIndex; + this.xpub = xpub; } @Override - protected Void doInBackground(String... strings) { - - AccountEntity defaultAccount = repo.loadAccountsForCoin(coinEntity).get(0); - int addressCount = coinEntity.getAddressCount(); - Account account; - try { - account = Account.parseAccount(defaultAccount.getHdPath()); - } catch (InvalidPathException e) { - return null; - } - - String exPub = defaultAccount.getExPub(); - if (TextUtils.isEmpty(exPub)) { - exPub = new GetExtendedPublicKeyCallable(account.toString()).call(); - defaultAccount.setExPub(exPub); + protected Void doInBackground(Integer... count) { + AccountEntity accountEntity = repo.loadAccountsByXpub(coinEntity.getId(), xpub); + List address = repo.loadAddressSync(coinEntity.getCoinId()); + + Optional optional = address.stream() + .filter(addressEntity -> addressEntity.getPath() + .startsWith(accountEntity.getHdPath()+"/" + changeIndex)) + .max((o1, o2) -> o1.getIndex() - o2.getIndex()); + int index = -1; + if (optional.isPresent()) { + try { + AddressIndex addressIndex = CoinPath.parsePath(optional.get().getPath()); + index = addressIndex.getValue(); + } catch (InvalidPathException e) { + e.printStackTrace(); + } } + int addressCount = index + 1; + Btc.AddressType addressType = getAddressType(accountEntity); List entities = new ArrayList<>(); - for (int i = 0; i < strings.length; i++) { + for (int i = 0; i < count[0]; i++) { AddressEntity addressEntity = new AddressEntity(); - addressEntity.setPath( - account.external() - .address(i + addressCount).toString()); - - int coinType = account.getParent().getValue(); - AbsDeriver deriver = AbsDeriver.newInstance(Coins.coinCodeOfIndex(coinType)); - if (deriver != null) { - String addr = deriver.derive(exPub, 0, i + addressCount); - addressEntity.setAddressString(addr); - addressEntity.setCoinId(coinEntity.getCoinId()); - addressEntity.setIndex(i + addressCount); - addressEntity.setName(strings[i]); - addressEntity.setBelongTo(coinEntity.getBelongTo()); - entities.add(addressEntity); - } + addressEntity.setPath(accountEntity.getHdPath()+"/" + changeIndex+"/" + (addressCount + i)); + String addr = new Deriver() + .derive(xpub, changeIndex, i + addressCount, addressType); + addressEntity.setAddressString(addr); + addressEntity.setCoinId(coinEntity.getCoinId()); + addressEntity.setIndex(i + addressCount); + addressEntity.setName("BTC-" + (i + addressCount)); + addressEntity.setBelongTo(coinEntity.getBelongTo()); + entities.add(addressEntity); } - coinEntity.setAddressCount(coinEntity.getAddressCount() + strings.length); - defaultAccount.setAddressLength(addressCount + strings.length); - repo.updateAccount(defaultAccount); + coinEntity.setAddressCount(coinEntity.getAddressCount() + count[0]); + accountEntity.setAddressLength(addressCount + count[0]); + repo.updateAccount(accountEntity); repo.updateCoin(coinEntity); repo.insertAddress(entities); return null; } + static Btc.AddressType getAddressType(AccountEntity accountEntity) { + String hdPath = accountEntity.getHdPath(); + if (Coins.Account.P2SH.getPath().equals(hdPath)) { + return Btc.AddressType.P2SH; + } else if(Coins.Account.SegWit.getPath().equals(hdPath)) { + return Btc.AddressType.SegWit; + } else { + return Btc.AddressType.P2PKH; + } + } + @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); diff --git a/app/src/main/java/com/cobo/cold/viewmodel/CoinListViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/CoinListViewModel.java index dcdf419..8b377b8 100644 --- a/app/src/main/java/com/cobo/cold/viewmodel/CoinListViewModel.java +++ b/app/src/main/java/com/cobo/cold/viewmodel/CoinListViewModel.java @@ -25,7 +25,6 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MediatorLiveData; import androidx.lifecycle.MutableLiveData; -import com.cobo.coinlib.utils.Coins; import com.cobo.cold.AppExecutors; import com.cobo.cold.DataRepository; import com.cobo.cold.MainApplication; @@ -36,23 +35,19 @@ import com.cobo.cold.model.Coin; import com.cobo.cold.protocol.EncodeConfig; import com.cobo.cold.protocol.builder.SyncBuilder; -import java.util.Comparator; import java.util.List; public class CoinListViewModel extends AndroidViewModel { private final DataRepository mRepository; private final MediatorLiveData> mObservableCoins; - public static final Comparator coinEntityComparator = (o1, o2) -> 0; public CoinListViewModel(@NonNull Application application) { super(application); mObservableCoins = new MediatorLiveData<>(); mObservableCoins.setValue(null); - mRepository = ((MainApplication) application).getRepository(); - mObservableCoins.addSource(mRepository.loadCoins(), mObservableCoins::setValue); } @@ -78,7 +73,7 @@ public class CoinListViewModel extends AndroidViewModel { return mRepository.loadTxs(coinId); } - public List loadAccountForCoin(CoinEntity coin) { + private List loadAccountForCoin(CoinEntity coin) { return mRepository.loadAccountsForCoin(coin); } diff --git a/app/src/main/java/com/cobo/cold/viewmodel/CoinViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/CoinViewModel.java index 61c70ce..6ae252e 100644 --- a/app/src/main/java/com/cobo/cold/viewmodel/CoinViewModel.java +++ b/app/src/main/java/com/cobo/cold/viewmodel/CoinViewModel.java @@ -26,6 +26,9 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModelProvider; +import com.cobo.coinlib.exception.InvalidPathException; +import com.cobo.coinlib.path.AddressIndex; +import com.cobo.coinlib.path.CoinPath; import com.cobo.cold.AppExecutors; import com.cobo.cold.DataRepository; import com.cobo.cold.MainApplication; @@ -33,6 +36,7 @@ import com.cobo.cold.db.entity.AddressEntity; import com.cobo.cold.db.entity.CoinEntity; import java.util.List; +import java.util.stream.Collectors; public class CoinViewModel extends AndroidViewModel { @@ -41,15 +45,42 @@ public class CoinViewModel extends AndroidViewModel { private final LiveData> mObservableAddress; public final ObservableField coin = new ObservableField<>(); - private CoinViewModel(@NonNull Application application, DataRepository repository, - final long id, final String coinId) { + private CoinViewModel(@NonNull Application application,final String coinId) { super(application); - mRepository = repository; - mObservableCoin = repository.loadCoin(id); - mObservableAddress = repository.loadAddress(coinId); + mRepository = ((MainApplication)application).getRepository(); + mObservableCoin = mRepository.loadCoin(coinId); + mObservableAddress = mRepository.loadAddress(coinId); } + public List filterChangeAddress(List addressEntities) { + return addressEntities.stream() + .filter(this::isChangeAddress) + .collect(Collectors.toList()); + } + + public List filterReceiveAddress(List addressEntities) { + return addressEntities.stream() + .filter(addressEntity -> !isChangeAddress(addressEntity)) + .collect(Collectors.toList()); + } + + public List filterByAccountHdPath(List addressEntities, String hdPath) { + return addressEntities.stream() + .filter(addressEntity -> addressEntity.getPath().toUpperCase().startsWith(hdPath)) + .collect(Collectors.toList()); + } + + private boolean isChangeAddress(AddressEntity addressEntity) { + String path = addressEntity.getPath(); + try { + AddressIndex addressIndex = CoinPath.parsePath(path); + return !addressIndex.getParent().isExternal(); + } catch (InvalidPathException e) { + e.printStackTrace(); + } + return false; + } public LiveData getObservableCoin() { return mObservableCoin; } @@ -69,22 +100,19 @@ public class CoinViewModel extends AndroidViewModel { public static class Factory extends ViewModelProvider.NewInstanceFactory { @NonNull private final Application mApplication; - private final long mId; + private final String mCoinId; - private final DataRepository mRepository; - public Factory(@NonNull Application application, long id, String coinId) { + public Factory(@NonNull Application application, String coinId) { mApplication = application; - mId = id; mCoinId = coinId; - mRepository = ((MainApplication) application).getRepository(); } @NonNull @Override public T create(@NonNull Class modelClass) { //noinspection unchecked - return (T) new CoinViewModel(mApplication, mRepository, mId, mCoinId); + return (T) new CoinViewModel(mApplication, mCoinId); } } } diff --git a/app/src/main/java/com/cobo/cold/viewmodel/ElectrumViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/ElectrumViewModel.java index 59ca04e..c4c19c8 100644 --- a/app/src/main/java/com/cobo/cold/viewmodel/ElectrumViewModel.java +++ b/app/src/main/java/com/cobo/cold/viewmodel/ElectrumViewModel.java @@ -18,37 +18,18 @@ package com.cobo.cold.viewmodel; import android.app.Application; -import android.content.Context; -import android.os.Handler; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; import androidx.annotation.NonNull; -import androidx.appcompat.app.AppCompatActivity; -import androidx.databinding.DataBindingUtil; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import com.cobo.coinlib.Util; -import com.cobo.coinlib.coins.AbsDeriver; -import com.cobo.coinlib.coins.BTC.Btc; import com.cobo.coinlib.coins.BTC.Electrum.ElectrumTx; import com.cobo.coinlib.coins.BTC.Electrum.TransactionInput; import com.cobo.coinlib.coins.BTC.Electrum.TransactionOutput; -import com.cobo.coinlib.exception.InvalidPathException; -import com.cobo.coinlib.path.Account; -import com.cobo.coinlib.utils.Coins; import com.cobo.cold.AppExecutors; import com.cobo.cold.DataRepository; import com.cobo.cold.MainApplication; -import com.cobo.cold.R; -import com.cobo.cold.databinding.CommonModalBinding; -import com.cobo.cold.db.entity.AccountEntity; -import com.cobo.cold.db.entity.CoinEntity; -import com.cobo.cold.ui.modal.ExportToSdcardDialog; -import com.cobo.cold.ui.modal.ModalDialog; import com.cobo.cold.update.utils.FileUtils; import com.cobo.cold.update.utils.Storage; @@ -66,73 +47,16 @@ import java.util.regex.Pattern; public class ElectrumViewModel extends AndroidViewModel { public static final String ELECTRUM_SIGN_ID = "electrum_sign_id"; - private static final int DEFAULT_CHANGE_ADDRESS_NUM = 100; private static Pattern signedTxnPattern = Pattern.compile("^signed_[0-9a-fA-F]{8}.txn$"); private final DataRepository mRepo; private MutableLiveData exPub = new MutableLiveData<>(); private Storage storage; - private MutableLiveData> changeAddress = new MutableLiveData<>(); - private String xpub; public ElectrumViewModel(@NonNull Application application) { super(application); mRepo = MainApplication.getApplication().getRepository(); storage = Storage.createByEnvironment(application); - deriveChangeAddress(); - } - - private void deriveChangeAddress() { - AppExecutors.getInstance().networkIO().execute(()->{ - if (TextUtils.isEmpty(xpub)) { - xpub = new ExpubInfo().invoke().expub; - } - List changes = new ArrayList<>(); - AbsDeriver btcDeriver = new Btc.Deriver(); - for (int i = 0; i < DEFAULT_CHANGE_ADDRESS_NUM; i++) { - changes.add(btcDeriver.derive(xpub,1, i)); - } - changeAddress.postValue(changes); - }); - } - - public LiveData> getChangeAddress() { - return changeAddress; - } - - public static boolean hasSdcard(Context context) { - Storage storage = Storage.createByEnvironment(context); - return storage != null && storage.getExternalDir() != null; - } - - public static boolean writeToSdcard(Storage storage, String content, String fileName) { - File file = new File(storage.getElectrumDir(), fileName); - return FileUtils.writeString(file, content); - } - - public static void showNoSdcardModal(AppCompatActivity activity) { - ModalDialog modalDialog = ModalDialog.newInstance(); - CommonModalBinding binding = DataBindingUtil.inflate( - LayoutInflater.from(activity), R.layout.common_modal, - null, false); - binding.title.setText(R.string.hint); - binding.subTitle.setText(R.string.insert_sdcard_hint); - binding.close.setVisibility(View.GONE); - binding.confirm.setText(R.string.know); - binding.confirm.setOnClickListener(vv -> modalDialog.dismiss()); - modalDialog.setBinding(binding); - modalDialog.show(activity.getSupportFragmentManager(), ""); - } - - public static void exportSuccess(AppCompatActivity activity, Runnable runnable) { - ExportToSdcardDialog dialog = new ExportToSdcardDialog(); - dialog.show(activity.getSupportFragmentManager(), ""); - new Handler().postDelayed(() -> { - dialog.dismiss(); - if (runnable != null) { - runnable.run(); - } - }, 1000); } public static JSONObject adapt(ElectrumTx tx) throws JSONException { @@ -174,31 +98,6 @@ public class ElectrumViewModel extends AndroidViewModel { } } - public String getXpub() { - return xpub; - } - - public LiveData getMasterPublicKey() { - AppExecutors.getInstance().diskIO().execute(() -> { - ExpubInfo expubInfo = new ExpubInfo().invoke(); - String hdPath = expubInfo.getHdPath(); - String expub = expubInfo.getExpub(); - xpub = expub; - try { - Account account = Account.parseAccount(hdPath); - if (account.getParent().getParent().getValue() == 49 && expub.startsWith("xpub")) { - exPub.postValue(Util.convertXpubToYpub(expub)); - } else if (expub.startsWith("ypub")) { - exPub.postValue(expub); - } - } catch (InvalidPathException e) { - e.printStackTrace(); - } - - }); - return exPub; - } - private boolean isSignedTxn(String fileName) { Matcher matcher = signedTxnPattern.matcher(fileName); return matcher.matches(); @@ -239,25 +138,4 @@ public class ElectrumViewModel extends AndroidViewModel { }); return txnHex; } - - private class ExpubInfo { - private String hdPath; - private String expub; - - public String getHdPath() { - return hdPath; - } - - public String getExpub() { - return expub; - } - - public ExpubInfo invoke() { - CoinEntity btc = mRepo.loadCoinSync(Coins.coinIdFromCoinCode("BTC")); - AccountEntity accountEntity = mRepo.loadAccountsForCoin(btc).get(0); - hdPath = accountEntity.getHdPath(); - expub = accountEntity.getExPub(); - return this; - } - } } diff --git a/app/src/main/java/com/cobo/cold/viewmodel/GlobalViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/GlobalViewModel.java new file mode 100644 index 0000000..2452276 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/viewmodel/GlobalViewModel.java @@ -0,0 +1,271 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.viewmodel; + +import android.app.Application; +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Handler; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; + +import com.cobo.coinlib.Util; +import com.cobo.coinlib.coins.BTC.Btc; +import com.cobo.coinlib.coins.BTC.Deriver; +import com.cobo.coinlib.exception.InvalidPathException; +import com.cobo.coinlib.path.Account; +import com.cobo.coinlib.utils.Coins; +import com.cobo.cold.AppExecutors; +import com.cobo.cold.BuildConfig; +import com.cobo.cold.DataRepository; +import com.cobo.cold.MainApplication; +import com.cobo.cold.R; +import com.cobo.cold.Utilities; +import com.cobo.cold.callables.GetExtendedPublicKeyCallable; +import com.cobo.cold.callables.GetMasterFingerprintCallable; +import com.cobo.cold.databinding.CommonModalBinding; +import com.cobo.cold.db.entity.AccountEntity; +import com.cobo.cold.db.entity.CoinEntity; +import com.cobo.cold.ui.modal.ExportToSdcardDialog; +import com.cobo.cold.ui.modal.ModalDialog; +import com.cobo.cold.update.utils.FileUtils; +import com.cobo.cold.update.utils.Storage; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import static com.cobo.cold.ui.fragment.setting.MainPreferenceFragment.SETTING_ADDRESS_FORMAT; + +public class GlobalViewModel extends AndroidViewModel { + + private static final int DEFAULT_CHANGE_ADDRESS_NUM = 100; + + private final DataRepository mRepo; + private final SharedPreferences.OnSharedPreferenceChangeListener listener = (sp, key) -> { + if (SETTING_ADDRESS_FORMAT.equals(key)) { + deriveChangeAddress(); + } + }; + private MutableLiveData exPub = new MutableLiveData<>(); + private MutableLiveData> changeAddress = new MutableLiveData<>(); + private String xpub; + private AccountEntity accountEntity; + + public GlobalViewModel(@NonNull Application application) { + super(application); + mRepo = MainApplication.getApplication().getRepository(); + deriveChangeAddress(); + Utilities.getPrefs(application).registerOnSharedPreferenceChangeListener(listener); + } + + public static Coins.Account getAccount(Context context) { + SharedPreferences pref = Utilities.getPrefs(context); + String type = pref.getString(SETTING_ADDRESS_FORMAT, Coins.Account.P2SH.getType()); + for (Coins.Account account: Coins.Account.values()) { + if (type.equals(account.getType())) { + return account; + } + } + return Coins.Account.P2SH; + } + + public static Btc.AddressType getAddressType(Context context) { + switch (getAccount(context)) { + case P2SH: + return Btc.AddressType.P2SH; + case P2PKH: + return Btc.AddressType.P2PKH; + case SegWit: + return Btc.AddressType.SegWit; + } + return Btc.AddressType.SegWit; + } + + + public static String getAddressFormat(Context context) { + switch (getAccount(context)) { + case SegWit: + return context.getString(R.string.native_segwit); + case P2PKH: + return context.getString(R.string.p2pkh); + case P2SH: + return context.getString(R.string.nested_segwit); + } + return context.getString(R.string.nested_segwit); + } + + public static JSONObject getXpubInfo(Context activity) { + JSONObject xpubInfo = new JSONObject(); + Coins.Account account = getAccount(activity); + String xpub = new GetExtendedPublicKeyCallable(account.getPath()).call(); + String masterKeyFingerprint = new GetMasterFingerprintCallable().call(); + try { + xpubInfo.put("ExtPubKey", xpub); + xpubInfo.put("MasterFingerprint", masterKeyFingerprint); + xpubInfo.put("CoboVaultVersion", BuildConfig.VERSION_NAME); + } catch (JSONException e) { + e.printStackTrace(); + } + return xpubInfo; + } + + private void deriveChangeAddress() { + AppExecutors.getInstance().networkIO().execute(()->{ + ExpubInfo expubInfo = new ExpubInfo().getExPubInfo(); + xpub = expubInfo.expub; + String path = expubInfo.hdPath; + List changes = new ArrayList<>(); + Btc.AddressType type; + if (Coins.Account.P2SH.getPath().equals(path)) { + type = Btc.AddressType.P2SH; + } else if (Coins.Account.SegWit.getPath().equals(path)) { + type = Btc.AddressType.SegWit; + } else { + type = Btc.AddressType.P2PKH; + } + + Deriver btcDeriver = new Deriver(); + for (int i = 0; i < DEFAULT_CHANGE_ADDRESS_NUM; i++) { + changes.add(btcDeriver.derive(xpub,1, i, type)); + } + changeAddress.postValue(changes); + }); + } + + public LiveData getExtendPublicKey() { + AppExecutors.getInstance().diskIO().execute(() -> { + ExpubInfo expubInfo = new ExpubInfo().getExPubInfo(); + String hdPath = expubInfo.getHdPath(); + String extPub = expubInfo.getExpub(); + try { + Account account = Account.parseAccount(hdPath); + if (account.getParent().getParent().getValue() == 49 + && extPub.startsWith("xpub")) { + exPub.postValue(Util.convertXpubToYpub(extPub)); + } else if (extPub.startsWith("ypub")) { + exPub.postValue(extPub); + } else if (account.getParent().getParent().getValue() == 84 + && extPub.startsWith("xpub")) { + exPub.postValue(Util.convertXpubToZpub(extPub)); + } + } catch (InvalidPathException e) { + e.printStackTrace(); + } + + }); + return exPub; + } + + public AccountEntity getAccountEntity() { + return accountEntity; + } + + public LiveData> getChangeAddress() { + deriveChangeAddress(); + return changeAddress; + } + + public String getXpub() { + return xpub; + } + + public static boolean hasSdcard(Context context) { + Storage storage = Storage.createByEnvironment(context); + return storage != null && storage.getExternalDir() != null; + } + + public static boolean writeToSdcard(Storage storage, String content, String fileName) { + File file = new File(storage.getElectrumDir(), fileName); + return FileUtils.writeString(file, content); + } + + public static void showNoSdcardModal(AppCompatActivity activity) { + ModalDialog modalDialog = ModalDialog.newInstance(); + CommonModalBinding binding = DataBindingUtil.inflate( + LayoutInflater.from(activity), R.layout.common_modal, + null, false); + binding.title.setText(R.string.hint); + binding.subTitle.setText(R.string.insert_sdcard_hint); + binding.close.setVisibility(View.GONE); + binding.confirm.setText(R.string.know); + binding.confirm.setOnClickListener(vv -> modalDialog.dismiss()); + modalDialog.setBinding(binding); + modalDialog.show(activity.getSupportFragmentManager(), ""); + } + + public static void exportSuccess(AppCompatActivity activity, Runnable runnable) { + ExportToSdcardDialog dialog = new ExportToSdcardDialog(); + dialog.show(activity.getSupportFragmentManager(), ""); + new Handler().postDelayed(() -> { + dialog.dismiss(); + if (runnable != null) { + runnable.run(); + } + }, 1000); + } + + + private class ExpubInfo { + private String hdPath; + private String expub; + + public String getHdPath() { + return hdPath; + } + + public String getExpub() { + return expub; + } + + public ExpubInfo getExPubInfo() { + CoinEntity btc = mRepo.loadCoinSync(Coins.BTC.coinId()); + SharedPreferences sp = Utilities.getPrefs(getApplication()); + List accounts = mRepo.loadAccountsForCoin(btc); + String format = sp.getString(SETTING_ADDRESS_FORMAT, Coins.Account.P2SH.getType()); + + Coins.Account account; + if (Coins.Account.P2SH.getType().equals(format)) { + account = Coins.Account.P2SH; + } else if(Coins.Account.SegWit.getType().equals(format)) { + account = Coins.Account.SegWit; + } else { + account = Coins.Account.P2PKH; + } + for (AccountEntity entity : accounts) { + if (entity.getHdPath().equals(account.getPath())) { + accountEntity = entity; + hdPath = entity.getHdPath(); + expub = entity.getExPub(); + + } + } + return this; + } + } +} diff --git a/app/src/main/java/com/cobo/cold/viewmodel/PsbtViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/PsbtViewModel.java new file mode 100644 index 0000000..b163701 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/viewmodel/PsbtViewModel.java @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.viewmodel; + +import android.app.Application; + +import androidx.annotation.NonNull; +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; + +import com.cobo.cold.AppExecutors; +import com.cobo.cold.callables.GetMasterFingerprintCallable; +import com.cobo.cold.update.utils.Storage; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class PsbtViewModel extends AndroidViewModel { + + public static final String WASABI_SIGN_ID = "wasabi_sign_id"; + private static Pattern signedTxnPattern = Pattern.compile("^signed_[0-9a-fA-F]{8}.psbt$"); + private Storage storage; + + public PsbtViewModel(@NonNull Application application) { + super(application); + storage = Storage.createByEnvironment(application); + } + + public static JSONObject adapt(JSONObject psbt) throws JSONException, WatchWalletNotMatchException { + JSONObject object = new JSONObject(); + JSONArray inputs = new JSONArray(); + JSONArray outputs = new JSONArray(); + adaptInputs(psbt.getJSONArray("inputs"), inputs); + if (inputs.length() < 1) { + throw new WatchWalletNotMatchException("no input match masterFingerprint"); + } + adaptOutputs(psbt.getJSONArray("outputs"), outputs); + object.put("inputs", inputs); + object.put("outputs", outputs); + return object; + } + + private static void adaptInputs(JSONArray psbtInputs, JSONArray inputs) throws JSONException { + String masterKeyFingerprint = new GetMasterFingerprintCallable().call(); + for (int i = 0; i < psbtInputs.length(); i++) { + JSONObject psbtInput = psbtInputs.getJSONObject(i); + JSONObject in = new JSONObject(); + JSONObject utxo = new JSONObject(); + in.put("hash", psbtInput.getString("txId")); + in.put("index", psbtInput.getInt("index")); + JSONArray bip32Derivation = psbtInput.getJSONArray("hdPath"); + for (int j = 0; j < bip32Derivation.length(); j++) { + JSONObject item = bip32Derivation.getJSONObject(j); + if (item.getString("masterFingerprint").equals(masterKeyFingerprint)) { + utxo.put("publicKey", item.getString("pubkey")); + utxo.put("value", psbtInput.optInt("value")); + in.put("utxo", utxo); + in.put("ownerKeyPath", item.getString("path")); + in.put("masterFingerprint", item.getString("masterFingerprint")); + inputs.put(in); + break; + } + } + + } + + } + + private static void adaptOutputs(JSONArray psbtOutputs, JSONArray outputs) throws JSONException { + for(int i = 0; i < psbtOutputs.length(); i++) { + JSONObject psbtOutput = psbtOutputs.getJSONObject(i); + JSONObject out = new JSONObject(); + out.put("address", psbtOutput.getString("address")); + out.put("value", psbtOutput.getInt("value")); + outputs.put(out); + } + } + + private boolean isSignedPsbt(String fileName) { + Matcher matcher = signedTxnPattern.matcher(fileName); + return matcher.matches(); + } + + public LiveData> loadUnsignPsbt() { + MutableLiveData> result = new MutableLiveData<>(); + AppExecutors.getInstance().diskIO().execute(() -> { + List fileList = new ArrayList<>(); + if (storage != null) { + File[] files = storage.getElectrumDir().listFiles(); + if (files != null) { + for (File f : files) { + if (f.getName().endsWith(".psbt") + && !isSignedPsbt(f.getName())) { + fileList.add(f.getName()); + } + } + } + } + result.postValue(fileList); + }); + return result; + } +} diff --git a/app/src/main/java/com/cobo/cold/viewmodel/PublicKeyViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/PublicKeyViewModel.java index e042d2b..56d1b55 100644 --- a/app/src/main/java/com/cobo/cold/viewmodel/PublicKeyViewModel.java +++ b/app/src/main/java/com/cobo/cold/viewmodel/PublicKeyViewModel.java @@ -24,12 +24,9 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MediatorLiveData; -import com.cobo.cold.AppExecutors; import com.cobo.cold.DataRepository; import com.cobo.cold.MainApplication; -import com.cobo.cold.db.entity.AccountEntity; import com.cobo.cold.db.entity.AddressEntity; -import com.cobo.cold.db.entity.CoinEntity; import java.util.List; diff --git a/app/src/main/java/com/cobo/cold/viewmodel/QrScanViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/QrScanViewModel.java index cba4ee6..e3f1ef6 100644 --- a/app/src/main/java/com/cobo/cold/viewmodel/QrScanViewModel.java +++ b/app/src/main/java/com/cobo/cold/viewmodel/QrScanViewModel.java @@ -29,14 +29,11 @@ import androidx.lifecycle.ViewModelProvider; import com.cobo.coinlib.exception.CoinNotFindException; import com.cobo.coinlib.exception.InvalidTransactionException; import com.cobo.coinlib.utils.Coins; -import com.cobo.cold.AppExecutors; import com.cobo.cold.BuildConfig; import com.cobo.cold.DataRepository; import com.cobo.cold.MainApplication; import com.cobo.cold.R; import com.cobo.cold.callables.GetUuidCallable; -import com.cobo.cold.db.entity.AccountEntity; -import com.cobo.cold.db.entity.CoinEntity; import com.cobo.cold.encryptioncore.utils.ByteFormatter; import com.cobo.cold.protocol.ZipUtil; import com.cobo.cold.protocol.parser.ProtoParser; @@ -44,14 +41,11 @@ import com.cobo.cold.scan.ScannedData; import com.cobo.cold.ui.fragment.main.QRCodeScanFragment; import com.cobo.cold.update.utils.Digest; -import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.spongycastle.util.encoders.Base64; import org.spongycastle.util.encoders.DecoderException; -import java.util.List; - import static com.cobo.cold.Utilities.IS_SETUP_VAULT; import static com.cobo.cold.ui.fragment.main.TxConfirmFragment.KEY_TX_DATA; import static com.cobo.cold.ui.fragment.setup.WebAuthResultFragment.WEB_AUTH_DATA; @@ -73,7 +67,7 @@ public class QrScanViewModel extends AndroidViewModel { public void handleDecode(QRCodeScanFragment owner, ScannedData[] res) throws InvalidTransactionException, JSONException, CoinNotFindException, - UuidNotMatchException, UnknowQrCodeException { + UuidNotMatchException, UnknowQrCodeException, WatchWalletNotMatchException { this.fragment = owner; String valueType = res[0].valueType; JSONObject object = parseToJson(res, valueType); @@ -88,7 +82,7 @@ public class QrScanViewModel extends AndroidViewModel { CoinNotFindException, JSONException, UuidNotMatchException, - UnknowQrCodeException { + UnknowQrCodeException, WatchWalletNotMatchException { logObject(object); String type = object.getString("type"); @@ -99,9 +93,6 @@ public class QrScanViewModel extends AndroidViewModel { case "TYPE_SIGN_TX": handleSign(object); break; - case "TYPE_SYNC": - handleSync(object); - break; default: throw new UnknowQrCodeException("unknow qrcode type " + type); } @@ -119,69 +110,6 @@ public class QrScanViewModel extends AndroidViewModel { } } - private void handleSync(JSONObject object) throws JSONException, UuidNotMatchException { - checkUuid(object); - JSONObject sync = object.getJSONObject("sync"); - JSONArray coins = sync.getJSONArray("coins"); - - AppExecutors.getInstance().diskIO().execute(() -> { - List coinEntities = repository.loadCoinsSync(); - for (int i = 0; i < coins.length(); i++) { - try { - JSONObject coinObj = coins.getJSONObject(i); - CoinEntity coinEntity = matchCoinEntity(coinEntities, coinObj.getString("id")); - if (coinEntity == null) { - continue; - } - sync(coinObj, coinEntity); - } catch (JSONException e) { - e.printStackTrace(); - } - } - AppExecutors.getInstance().mainThread().execute(() -> fragment.navigateUp()); - }); - } - - private void sync(JSONObject coinObj, CoinEntity coinEntity) throws JSONException { - List accountEntities = repository.loadAccountsForCoin(coinEntity); - JSONArray accountObjs = coinObj.getJSONArray("accounts"); - for (int i = 0; i < accountObjs.length(); i++) { - JSONObject accountObj = accountObjs.getJSONObject(i); - AccountEntity accountEntity = matchAccountEntity(accountEntities, accountObj.getString("hdPath")); - if (accountEntity == null) { - continue; - } - int addressLengthNew = accountObj.getInt("addressLength"); - int addressLengthCurrent = accountEntity.getAddressLength(); - if (addressLengthNew > addressLengthCurrent) { - String[] names = new String[addressLengthNew - addressLengthCurrent]; - int index = 0; - for (int j = addressLengthCurrent; j < addressLengthNew; j++) { - names[index++] = coinEntity.getCoinCode() + "-" + (j + 1); - } - new AddAddressViewModel.AddAddressTask(coinEntity, repository, null).execute(names); - } - } - } - - private AccountEntity matchAccountEntity(List accounts, String hdPath) { - for (AccountEntity a : accounts) { - if (a.getHdPath().equals(hdPath)) { - return a; - } - } - return null; - } - - private CoinEntity matchCoinEntity(List coins, String code) { - for (CoinEntity c : coins) { - if (code.equals(c.getCoinCode()) || code.equals(c.getCoinId())) { - return c; - } - } - return null; - } - private void handleWebAuth(JSONObject object) throws JSONException { String data = object.getString("data"); Bundle bundle = new Bundle(); @@ -197,7 +125,13 @@ public class QrScanViewModel extends AndroidViewModel { private void handleSign(JSONObject object) throws InvalidTransactionException, CoinNotFindException, - UuidNotMatchException { + UuidNotMatchException, WatchWalletNotMatchException { + + if (SupportedWatchWallet.getSupportedWatchWallet(getApplication()) + != SupportedWatchWallet.COBO) { + throw new WatchWalletNotMatchException(""); + } + checkUuid(object); try { String coinCode = object.getJSONObject("signTx") diff --git a/app/src/main/java/com/cobo/cold/viewmodel/SetupVaultViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/SetupVaultViewModel.java index 7e069ae..42d2773 100644 --- a/app/src/main/java/com/cobo/cold/viewmodel/SetupVaultViewModel.java +++ b/app/src/main/java/com/cobo/cold/viewmodel/SetupVaultViewModel.java @@ -28,7 +28,6 @@ import androidx.lifecycle.MutableLiveData; import com.cobo.coinlib.MnemonicUtils; import com.cobo.coinlib.utils.Bip39; -import com.cobo.coinlib.utils.Coins; import com.cobo.cold.AppExecutors; import com.cobo.cold.DataRepository; import com.cobo.cold.MainApplication; @@ -204,26 +203,32 @@ public class SetupVaultViewModel extends AndroidViewModel { AppExecutors.getInstance().diskIO().execute(() -> { for (CoinEntity coin : coins) { CoinEntity coinEntity = mRepository.loadCoinSync(coin.getCoinId()); - if (coinEntity != null) { - continue; + long id; + if (coinEntity == null) { + id = mRepository.insertCoin(coin); + coinEntity = mRepository.loadCoinSync(coin.getCoinId()); + } else { + id = coinEntity.getId(); + coinEntity = mRepository.loadCoinSync(coin.getCoinId()); } - String xPub = new GetExtendedPublicKeyCallable(coin.getAccounts().get(0).getHdPath()).call(); - coin.setExPub(xPub); - long id = mRepository.insertCoin(coin); - coin.setId(id); - boolean isFirstAccount = true; + + List existsAccount = mRepository.loadAccountsForCoin(coinEntity); + for (AccountEntity account : coin.getAccounts()) { - if (!isFirstAccount) { - xPub = new GetExtendedPublicKeyCallable(account.getHdPath()).call(); + if (existsAccount.stream() + .anyMatch(exist -> exist.getHdPath().equals(account.getHdPath()))) { + continue; } - isFirstAccount = false; + String xPub = new GetExtendedPublicKeyCallable(account.getHdPath()).call(); account.setCoinId(id); account.setExPub(xPub); mRepository.insertAccount(account); - if (!Coins.showPublicKey(coin.getCoinCode())) { - new AddAddressViewModel.AddAddressTask(coin, mRepository, null) - .execute(coin.getCoinCode() + "-1"); - } + new AddAddressViewModel.AddAddressTask(coinEntity, mRepository, + null, xPub,0) + .execute(1); + new AddAddressViewModel.AddAddressTask(coinEntity, mRepository, + null, xPub,1) + .execute(1); } } if (onComplete != null) { diff --git a/app/src/main/java/com/cobo/cold/viewmodel/SupportedWatchWallet.java b/app/src/main/java/com/cobo/cold/viewmodel/SupportedWatchWallet.java new file mode 100644 index 0000000..6ab9740 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/viewmodel/SupportedWatchWallet.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.viewmodel; + +import android.content.Context; + +import com.cobo.cold.R; +import com.cobo.cold.Utilities; + +import static com.cobo.cold.ui.fragment.setting.MainPreferenceFragment.SETTING_CHOOSE_WATCH_WALLET; + +public enum SupportedWatchWallet { + COBO("0"), + ELECTRUM("1"), + WASABI("2"), + BLUE("3"), + GENERIC("4"); + + private String walletId; + SupportedWatchWallet(String walletId) { + this.walletId = walletId; + } + + public String getWalletId() { + return walletId; + } + + public String getWalletName(Context context) { + return context.getResources() + .getStringArray(R.array.watch_wallet_list)[Integer.parseInt(walletId)]; + } + + public static SupportedWatchWallet getSupportedWatchWallet(Context context) { + String wallet = Utilities.getPrefs(context) + .getString(SETTING_CHOOSE_WATCH_WALLET, ELECTRUM.getWalletId()); + SupportedWatchWallet selectWatchWallet = ELECTRUM; + for (SupportedWatchWallet watchWallet: SupportedWatchWallet.values()) { + if (watchWallet.getWalletId().equals(wallet)) { + selectWatchWallet = watchWallet; + break; + } + } + return selectWatchWallet; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cobo/cold/viewmodel/TxConfirmViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/TxConfirmViewModel.java index 5920ae4..361e7c3 100644 --- a/app/src/main/java/com/cobo/cold/viewmodel/TxConfirmViewModel.java +++ b/app/src/main/java/com/cobo/cold/viewmodel/TxConfirmViewModel.java @@ -28,15 +28,16 @@ import androidx.lifecycle.MutableLiveData; import com.cobo.coinlib.Util; import com.cobo.coinlib.coins.AbsCoin; -import com.cobo.coinlib.coins.AbsDeriver; import com.cobo.coinlib.coins.AbsTx; import com.cobo.coinlib.coins.BTC.Btc; import com.cobo.coinlib.coins.BTC.BtcImpl; +import com.cobo.coinlib.coins.BTC.Deriver; import com.cobo.coinlib.coins.BTC.Electrum.ElectrumTx; import com.cobo.coinlib.coins.BTC.UtxoTx; import com.cobo.coinlib.exception.InvalidPathException; import com.cobo.coinlib.exception.InvalidTransactionException; import com.cobo.coinlib.interfaces.SignCallback; +import com.cobo.coinlib.interfaces.SignPsbtCallback; import com.cobo.coinlib.interfaces.Signer; import com.cobo.coinlib.path.AddressIndex; import com.cobo.coinlib.path.CoinPath; @@ -44,11 +45,11 @@ import com.cobo.coinlib.utils.Coins; import com.cobo.cold.AppExecutors; import com.cobo.cold.DataRepository; import com.cobo.cold.MainApplication; -import com.cobo.cold.Utilities; import com.cobo.cold.callables.ClearTokenCallable; import com.cobo.cold.callables.GetMessageCallable; import com.cobo.cold.callables.GetPasswordTokenCallable; import com.cobo.cold.callables.VerifyFingerprintCallable; +import com.cobo.cold.db.entity.AccountEntity; import com.cobo.cold.db.entity.AddressEntity; import com.cobo.cold.db.entity.CoinEntity; import com.cobo.cold.db.entity.TxEntity; @@ -69,6 +70,7 @@ import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; @@ -76,8 +78,11 @@ import java.util.concurrent.Executors; import java.util.stream.Stream; import static com.cobo.coinlib.coins.BTC.Electrum.TxUtils.isMasterPublicKeyMatch; +import static com.cobo.cold.viewmodel.AddAddressViewModel.AddAddressTask.getAddressType; import static com.cobo.cold.viewmodel.ElectrumViewModel.ELECTRUM_SIGN_ID; import static com.cobo.cold.viewmodel.ElectrumViewModel.adapt; +import static com.cobo.cold.viewmodel.GlobalViewModel.getAccount; +import static com.cobo.cold.viewmodel.PsbtViewModel.WASABI_SIGN_ID; public class TxConfirmViewModel extends AndroidViewModel { @@ -156,14 +161,21 @@ public class TxConfirmViewModel extends AndroidViewModel { public void parseTxnData(String txnData) { AppExecutors.getInstance().networkIO().execute(() -> { try { - String xpub = mRepository.loadCoinEntityByCoinCode(Coins.BTC.coinCode()).getExPub(); - ElectrumTx tx = ElectrumTx.parse(Hex.decode(txnData)); - if (!isMasterPublicKeyMatch(xpub, tx)) { - throw new XpubNotMatchException("xpub not match"); - } + CoinEntity coinEntity = mRepository.loadCoinSync(Coins.BTC.coinId()); + AccountEntity accountEntity = + mRepository.loadAccountsByPath(coinEntity.getId(), getAccount(getApplication()).getPath()); - JSONObject signTx = parseElectrumTxHex(tx); - parseTxData(signTx.toString()); + if (accountEntity != null) { + String xpub = accountEntity.getExPub(); + ElectrumTx tx = ElectrumTx.parse(Hex.decode(txnData)); + + if (!isMasterPublicKeyMatch(xpub, tx)) { + throw new XpubNotMatchException("xpub not match"); + } + + JSONObject signTx = parseElectrumTxHex(tx); + parseTxData(signTx.toString()); + } } catch (ElectrumTx.SerializationException | JSONException | DecoderException e) { e.printStackTrace(); parseTxException.postValue(new InvalidTransactionException("invalid transaction")); @@ -179,7 +191,7 @@ public class TxConfirmViewModel extends AndroidViewModel { TransactionProtoc.SignTransaction.Builder builder = TransactionProtoc.SignTransaction.newBuilder(); builder.setCoinCode(Coins.BTC.coinCode()) .setSignId(ELECTRUM_SIGN_ID) - .setTimestamp(generateElectrumTimestamp()) + .setTimestamp(generateAutoIncreaseId()) .setDecimal(8); String signTransaction = new JsonFormat().printToString(builder.build()); JSONObject signTx = new JSONObject(signTransaction); @@ -187,7 +199,48 @@ public class TxConfirmViewModel extends AndroidViewModel { return signTx; } - private long generateElectrumTimestamp() { + + public void parsePsbtBase64(String psbtBase64) { + AppExecutors.getInstance().networkIO().execute(() -> { + Btc btc = new Btc(new BtcImpl()); + JSONObject psbtTx = btc.parsePsbt(psbtBase64); + if (psbtTx == null) { + parseTxException.postValue(new InvalidTransactionException("parse failed,invalid psbt data")); + return; + } + + try { + JSONObject adaptTx = PsbtViewModel.adapt(psbtTx); + if (adaptTx.getJSONArray("inputs").length() == 0) { + parseTxException.postValue( + new InvalidTransactionException("master fingerprint not match, or nothing can be sign")); + } + JSONObject signTx = parseWasabiTx(adaptTx); + parseTxData(signTx.toString()); + } catch (JSONException e) { + e.printStackTrace(); + parseTxException.postValue(new InvalidTransactionException("adapt failed,invalid psbt data")); + } catch (WatchWalletNotMatchException e) { + e.printStackTrace(); + parseTxException.postValue(e); + } + + }); + } + + private JSONObject parseWasabiTx(JSONObject adaptTx) throws JSONException { + TransactionProtoc.SignTransaction.Builder builder = TransactionProtoc.SignTransaction.newBuilder(); + builder.setCoinCode(Coins.BTC.coinCode()) + .setSignId(WASABI_SIGN_ID) + .setTimestamp(generateAutoIncreaseId()) + .setDecimal(8); + String signTransaction = new JsonFormat().printToString(builder.build()); + JSONObject signTx = new JSONObject(signTransaction); + signTx.put("btcTx", adaptTx); + return signTx; + } + + private long generateAutoIncreaseId() { List txEntityList = mRepository.loadElectrumTxsSync(Coins.BTC.coinId()); if (txEntityList == null || txEntityList.isEmpty()) { return 0; @@ -205,14 +258,23 @@ public class TxConfirmViewModel extends AndroidViewModel { } String hdPath = changeAddressInfo.hdPath; String address = changeAddressInfo.address; - String exPub = mRepository.loadCoinEntityByCoinCode(utxoTx.getCoinCode()).getExPub(); - AbsDeriver deriver = AbsDeriver.newInstance(utxoTx.getCoinCode()); + + String accountHdPath = getAccountHdPath(changeAddressInfo.hdPath); + + AccountEntity accountEntity = getAccountEntityByPath(accountHdPath, + mRepository.loadCoinEntityByCoinCode(utxoTx.getCoinCode())); + if (accountEntity == null) { + return false; + } + String exPub = accountEntity.getExPub(); + Deriver deriver = new Deriver(); try { AddressIndex addressIndex = CoinPath.parsePath(hdPath); int change = addressIndex.getParent().getValue(); int index = addressIndex.getValue(); - String expectAddress = Objects.requireNonNull(deriver).derive(exPub, change, index); + String expectAddress = Objects.requireNonNull(deriver).derive(exPub, change, + index, getAddressType(accountEntity)); return address.equals(expectAddress); } catch (InvalidPathException e) { e.printStackTrace(); @@ -248,8 +310,9 @@ public class TxConfirmViewModel extends AndroidViewModel { JSONArray inputsClone = new JSONArray(); JSONArray inputs = ((UtxoTx) transaction).getInputs(); - CoinEntity coin = mRepository.loadCoinSync(Coins.coinIdFromCoinCode(coinCode)); - String expub = mRepository.loadAccountsForCoin(coin).get(0).getExPub(); + CoinEntity coinEntity = mRepository.loadCoinSync(Coins.coinIdFromCoinCode(transaction.getCoinCode())); + AccountEntity accountEntity = + mRepository.loadAccountsByPath(coinEntity.getId(), getAccount(getApplication()).getPath()); for (int i = 0; i < inputs.length(); i++) { JSONObject input = inputs.getJSONObject(i); @@ -259,20 +322,18 @@ public class TxConfirmViewModel extends AndroidViewModel { int index = addressIndex.getValue(); int change = addressIndex.getParent().getValue(); - String from = AbsDeriver.newInstance(transaction.getCoinCode()).derive(expub,change,index); + String from = new Deriver().derive(accountEntity.getExPub() + ,change,index, getAddressType(accountEntity)); inputsClone.put(new JSONObject().put("value", value) .put("address",from)); } return inputsClone.toString(); } - } catch (JSONException e) { - e.printStackTrace(); - } catch (InvalidPathException e) { + } catch (JSONException | InvalidPathException e) { e.printStackTrace(); } - return Stream.of(externalPath) .distinct() .map(path -> mRepository.loadAddressBypath(path).getAddressString()) @@ -296,15 +357,6 @@ public class TxConfirmViewModel extends AndroidViewModel { return false; } - private boolean isInternalPath(@NonNull String path) { - try { - return !CoinPath.parsePath(path).getParent().isExternal(); - } catch (InvalidPathException e) { - e.printStackTrace(); - } - return false; - } - private void ensureAddressExist(String[] paths) { if (paths == null || paths.length == 0) { return; @@ -321,7 +373,7 @@ public class TxConfirmViewModel extends AndroidViewModel { } AddressEntity address = mRepository.loadAddressBypath(maxIndexHdPath); if (address == null) { - addAddress(getAddressIndex(maxIndexHdPath)); + addAddress(maxIndexHdPath); } } @@ -329,20 +381,44 @@ public class TxConfirmViewModel extends AndroidViewModel { return addingAddress; } - private void addAddress(int addressIndex) { - CoinEntity coin = mRepository.loadCoinSync(Coins.coinIdFromCoinCode(coinCode)); - int addressLength = mRepository.loadAccountsForCoin(coin).get(0).getAddressLength(); + private void addAddress(String hdPath) { + String accountHdPath; + int pathIndex; + try { + AddressIndex index = CoinPath.parsePath(hdPath); + pathIndex = index.getValue(); + accountHdPath = index.getParent().getParent().toString(); + } catch (InvalidPathException e) { + e.printStackTrace(); + return; + } - if (addressLength < addressIndex + 1) { - String[] names = new String[addressIndex + 1 - addressLength]; - int index = 0; - for (int i = addressLength; i < addressIndex + 1; i++) { - names[index++] = coinCode + "-" + (i + 1); + CoinEntity coin = mRepository.loadCoinSync(Coins.coinIdFromCoinCode(coinCode)); + AccountEntity accountEntity = getAccountEntityByPath(accountHdPath, coin); + if (accountEntity == null) return; + + List addressEntities = mRepository.loadAddressSync(coin.getCoinId()); + Optional addressEntityOptional = addressEntities + .stream() + .filter(addressEntity -> addressEntity.getPath() + .startsWith(accountEntity.getHdPath()+"/" + 0)) + .max((o1, o2) -> o1.getPath().compareTo(o2.getPath())); + + int index = -1; + if (addressEntityOptional.isPresent()) { + try { + AddressIndex addressIndex = CoinPath.parsePath(addressEntityOptional.get().getPath()); + index = addressIndex.getValue(); + } catch (InvalidPathException e) { + e.printStackTrace(); } + } + + if (index < pathIndex) { final CountDownLatch mLatch = new CountDownLatch(1); addingAddress.postValue(true); - new AddAddressViewModel.AddAddressTask(coin, mRepository, mLatch::countDown) - .execute(names); + new AddAddressViewModel.AddAddressTask(coin, mRepository, mLatch::countDown, + accountEntity.getExPub(), 0).execute(pathIndex - index); try { mLatch.await(); addingAddress.postValue(false); @@ -353,6 +429,22 @@ public class TxConfirmViewModel extends AndroidViewModel { } + private AccountEntity getAccountEntityByPath(String accountHdPath, CoinEntity coin) { + List accountEntities = mRepository.loadAccountsForCoin(coin); + Optional optional = accountEntities.stream() + .filter(accountEntity -> + accountEntity.getHdPath().equals(accountHdPath.toUpperCase())) + .findFirst(); + + AccountEntity accountEntity; + if (optional.isPresent()) { + accountEntity = optional.get(); + } else { + return null; + } + return accountEntity; + } + private int getAddressIndex(String hdPath) { try { return CoinPath.parsePath(hdPath).getValue(); @@ -376,9 +468,45 @@ public class TxConfirmViewModel extends AndroidViewModel { SignCallback callback = initSignCallback(); signTransaction(transaction, callback, signer); }); + } + public void handleSignPsbt(String psbt) { + AppExecutors.getInstance().diskIO().execute(() -> { + Signer[] signer = initSigners(); + SignPsbtCallback callback = new SignPsbtCallback() { + @Override + public void startSign() { + signState.postValue(STATE_SIGNING); + } + + @Override + public void onFail() { + signState.postValue(STATE_SIGN_FAIL); + new ClearTokenCallable().call(); + } + + @Override + public void onSuccess(String txId, String psbtB64) { + TxEntity tx = observableTx.getValue(); + Objects.requireNonNull(tx).setTxId(txId); + tx.setSignedHex(psbtB64); + mRepository.insertTx(tx); + signState.postValue(STATE_SIGN_SUCCESS); + new ClearTokenCallable().call(); + } + + @Override + public void postProgress(int progress) { + + } + }; + callback.startSign(); + Btc btc = new Btc(new BtcImpl()); + btc.signPsbt(psbt, callback, signer); + }); } + private SignCallback initSignCallback() { return new SignCallback() { @Override @@ -432,34 +560,39 @@ public class TxConfirmViewModel extends AndroidViewModel { String coinCode = transaction.getCoinCode(); String[] distinctPaths = Stream.of(paths).distinct().toArray(String[]::new); Signer[] signer = new Signer[distinctPaths.length]; - boolean shouldProvidePublicKey = Signer.shouldProvidePublicKey(transaction.getCoinCode()); - String exPub = null; - if (shouldProvidePublicKey) { - exPub = mRepository.loadCoinSync(Coins.coinIdFromCoinCode(coinCode)).getExPub(); - } String authToken = getAuthToken(); if (TextUtils.isEmpty(authToken)) { Log.w(TAG,"authToken null"); return null; } - + CoinEntity coinEntity = mRepository.loadCoinEntityByCoinCode(coinCode); for (int i = 0; i < distinctPaths.length; i++) { - if (shouldProvidePublicKey) { - String pubKey; - if (Coins.curveFromCoinCode(coinCode) == Coins.CURVE.ED25519) { - pubKey = Util.getPublicKeyHex(exPub).substring(2); - } else { - pubKey = Util.getPublicKeyHex(exPub, distinctPaths[i]); - } - signer[i] = new ChipSigner(distinctPaths[i].toLowerCase(), authToken, pubKey); - } else { - signer[i] = new ChipSigner(distinctPaths[i].toLowerCase(), authToken); + String accountHdPath = getAccountHdPath(distinctPaths[i]); + if (accountHdPath == null) { + return null; + } + AccountEntity accountEntity = getAccountEntityByPath(accountHdPath,coinEntity); + if (accountEntity == null) { + return null; } + String pubKey = Util.getPublicKeyHex(accountEntity.getExPub(), distinctPaths[i]); + signer[i] = new ChipSigner(distinctPaths[i].toLowerCase(), authToken, pubKey); } return signer; } + private String getAccountHdPath(String addressPath) { + String accountHdPath; + try { + accountHdPath = CoinPath.parsePath(addressPath).getParent().getParent().toString(); + } catch (InvalidPathException e) { + e.printStackTrace(); + return null; + } + return accountHdPath; + } + private String getAuthToken() { String authToken = null; if (!TextUtils.isEmpty(token.password)) { diff --git a/app/src/main/java/com/cobo/cold/viewmodel/WalletInfoViewModel.java b/app/src/main/java/com/cobo/cold/viewmodel/WalletInfoViewModel.java new file mode 100644 index 0000000..ccca660 --- /dev/null +++ b/app/src/main/java/com/cobo/cold/viewmodel/WalletInfoViewModel.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.viewmodel; + +import android.app.Application; + +import androidx.annotation.NonNull; +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.MutableLiveData; + +import com.cobo.coinlib.utils.Coins; +import com.cobo.cold.AppExecutors; +import com.cobo.cold.DataRepository; +import com.cobo.cold.MainApplication; +import com.cobo.cold.callables.GetMasterFingerprintCallable; +import com.cobo.cold.db.entity.AccountEntity; +import com.cobo.cold.db.entity.CoinEntity; + +public class WalletInfoViewModel extends AndroidViewModel { + private final MutableLiveData fingerprint = new MutableLiveData<>(""); + private final MutableLiveData xpub = new MutableLiveData<>(""); + + public WalletInfoViewModel(@NonNull Application application) { + super(application); + } + + public MutableLiveData getFingerprint() { + AppExecutors.getInstance().diskIO().execute(() -> { + String masterFingerprint = new GetMasterFingerprintCallable().call(); + fingerprint.postValue(masterFingerprint); + }); + return fingerprint; + } + + public MutableLiveData getXpub(Coins.Account account) { + AppExecutors.getInstance().diskIO().execute(() -> { + DataRepository repo = ((MainApplication)getApplication()).getRepository(); + CoinEntity coinEntity = repo.loadCoinEntityByCoinCode(Coins.BTC.coinCode()); + AccountEntity accountEntity = repo.loadAccountsByPath(coinEntity.getId(), account.getPath()); + xpub.postValue(accountEntity.getExPub()); + }); + return xpub; + } +} diff --git a/app/src/main/java/com/cobo/cold/viewmodel/WatchWalletNotMatchException.java b/app/src/main/java/com/cobo/cold/viewmodel/WatchWalletNotMatchException.java new file mode 100644 index 0000000..7d6670b --- /dev/null +++ b/app/src/main/java/com/cobo/cold/viewmodel/WatchWalletNotMatchException.java @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2020 Cobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * in the file COPYING. If not, see . + */ + +package com.cobo.cold.viewmodel; + +public class WatchWalletNotMatchException extends Exception { + public WatchWalletNotMatchException(String message) { + super(message); + } +} diff --git a/app/src/main/res/drawable-xhdpi/electrum.png b/app/src/main/res/drawable-xhdpi/electrum.png new file mode 100644 index 0000000..cdcd908 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/electrum.png differ diff --git a/app/src/main/res/drawable-xhdpi/sdcard.png b/app/src/main/res/drawable-xhdpi/sdcard.png new file mode 100644 index 0000000..936aea4 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sdcard.png differ diff --git a/app/src/main/res/drawable/text_button_bg.xml b/app/src/main/res/drawable/text_button_bg.xml new file mode 100644 index 0000000..a5268c4 --- /dev/null +++ b/app/src/main/res/drawable/text_button_bg.xml @@ -0,0 +1,23 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/add_address_bottom_sheet.xml b/app/src/main/res/layout/add_address_bottom_sheet.xml new file mode 100644 index 0000000..21e6226 --- /dev/null +++ b/app/src/main/res/layout/add_address_bottom_sheet.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + +